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