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