1、 引言 原油輸送站控系統是原油輸送中不可缺少的環(huán)節,其主要是實(shí)現原油的匯集與轉輸,同時(shí)要對來(lái)油進(jìn)行加熱、加壓和含水分析等,其站內主要分為加熱爐系統、加壓泵系統、罐區系統、流量計系統等。為了實(shí)現生產(chǎn)數據的集中管理、保存和打印,就需要將各個(gè)系統中的數據進(jìn)行集中采集和保存,而多個(gè)系統都是采用專(zhuān)用的和不同廠(chǎng)家的控制系統,如加熱爐系統、流量計系統等。因此,對中心站控系統就必須解決各個(gè)系統之間的通訊問(wèn)題。 作者在對中國石油長(cháng)慶油田XX管道沿河灣SCADA系統的設計中,就遇到此類(lèi)問(wèn)題,即加熱爐系統采用的是北京亞控自動(dòng)化公司的組態(tài)王軟件進(jìn)行監控,而中心SCADA系統則采用Siemens公司的S7 400 PLC和Wincc軟件進(jìn)行監控,并且在通訊電纜的設計中采用的是兩芯屏蔽電纜,因此就無(wú)法采用工業(yè)以太網(wǎng)和OPC協(xié)議實(shí)現互相之間的通訊,最后雙方?jīng)Q定采用Modbus RTU通訊協(xié)議進(jìn)行通訊。 2、通訊系統組成 中國石油長(cháng)慶油田XX管道沿河灣站控系統采用的是Siemens S7 400和ET200M系列PLC,其監控系統原理圖如下所示: 為了實(shí)現站控計算機可以同加熱爐系統通過(guò)Modbus RTU協(xié)議進(jìn)行通訊,采集必要的數據,在ET200M子站中配置了Siemens公司S7 300系列PLC中的CP341通訊模塊。CP341通訊模塊是通過(guò)點(diǎn)到點(diǎn)連接,用于高速,強大的串行數據交換,以減輕CPU的負擔。該模塊提供了三種不同類(lèi)型的傳輸接口: (1)、RS232C(V.24) (2)、20mA(TTY) (3)、Rs422/Rs485(X.27) 同時(shí),該模塊內置有ASCII、3964(R)和RK512通訊協(xié)議,此外,該模塊也可以裝載其他的通訊協(xié)議,如Modbus Master協(xié)議、Modbus Slave協(xié)議和Data Highway協(xié)議。 在本設計中,CP341作為Modbus RTU Master,組態(tài)王作為Modbus RTU Slave,CP341通過(guò)單獨定購的Modbus RTU Master軟件來(lái)實(shí)現雙方的主從通訊,其可以實(shí)現的功能代碼為:01,02,03,04,05,06,07,08,11,12,15,16,傳輸速率最高可以達到76.8Kbit/s。CP341與組態(tài)王運行的工業(yè)控制計算機之間的通訊為Rs485方式,其連接方式如下所示: 3、軟件實(shí)現方法 要通過(guò)CP341通訊模塊同組態(tài)王之間的通訊,軟件的設計也是一個(gè)比較重要的環(huán)節,對于CP341主要包括Modbus Master的下裝和對應的發(fā)送、接收模塊程序的設計,對于組態(tài)王側則需要安裝Modbus Slave的驅動(dòng)程序。在CP341中下載Modbus Master驅動(dòng),可以進(jìn)入Step7中的Hardware Configuration中選中模塊雙擊,在彈出的窗口中選擇Parameter按鈕,在出現的Assigning Parameters to Point-To-Point Connections窗口中進(jìn)行對應的驅動(dòng)下載。CP341接收、發(fā)送程序的設計主要包括DB塊的設計和FC功能塊的調用。 (1)、CP341發(fā)送模塊的設計 對于通過(guò)CP341的Modbus Master驅動(dòng)通訊的發(fā)送模塊需要設計DB塊和FC塊,其DB塊的結構如下: 而發(fā)送程序主要是通過(guò)調用功能塊FB8來(lái)實(shí)現,其程序可以設計為如下: (2)、CP341接收程序的設計 由于CP341可以處理接收程序的細節部分,因此對于設計者來(lái)說(shuō)只需要進(jìn)行簡(jiǎn)單的設計就可以實(shí)現數據的接收。接收程序同樣也需要設計Db塊和FC程序塊,其DB塊和FC塊的結構可以定義成如下的結構: (3)、組態(tài)王程序設計方法 組態(tài)王是作為Modbus Slave端的,其通過(guò)安裝ModbusRTUServer驅動(dòng)程序和定義“智能模塊――北京亞控――ModRTUServer――串口”通訊設備來(lái)實(shí)現的。組態(tài)王提供2種寄存器,其說(shuō)明如下: 名字 編號范圍 數據類(lèi)型 含義 B 1 " 30000 BIT 開(kāi)關(guān)寄存器 R 1 " 30000 INT/UINT/LONG/FLOAT 數據寄存器 外部設備通過(guò)標準Modbus與組態(tài)王驅動(dòng)進(jìn)行通訊,使用的功能碼對應如下: 寄存器 讀功能碼 寫(xiě)功能碼 B 1,2 5 R 3,4 6,16 由此,僅需要定義對應的變量名稱(chēng),并且通過(guò)周期執行的命令語(yǔ)言,將數據賦給對應的外部通訊設備需要讀取的變量中就可以完成通訊功能。組態(tài)王是通過(guò)不斷的監聽(tīng)串口的通訊數據,一旦有外部讀取數據命令,組態(tài)王就將對應的數據傳送到對方。 在調試雙方的通訊程序時(shí),需要注意以下幾點(diǎn):第一、在PLC程序中調用發(fā)送模塊FB8時(shí),其R_TYP參數數值為字符型并且必須為大寫(xiě)字母X,否則通訊不能成功;第二、為了使PLC接收程序比較簡(jiǎn)單,建議將組態(tài)王側的數據均定義成寄存器(R),而不區分是位還是寄存器;第三、在組態(tài)王中定義Modbus Slave地址時(shí),采用1:20的結構,其1代表組態(tài)王作為Modbus Slave的從站地址,20代表通訊的時(shí)間間隔,單位毫秒。 4、結束語(yǔ) 通過(guò)使用CP341點(diǎn)對點(diǎn)通訊模塊和組態(tài)王ModbusRTUServer驅動(dòng)程序,解決了不同的應用系統之間通過(guò)Modbus標準通訊進(jìn)行互相通訊的方法,同時(shí)也為將不同系統的數據集成到一個(gè)系統中提供了可能的實(shí)現方法。 |