王明成,王玉成,何 彥
1 前言
為改善柴油質(zhì)量,甘肅玉門(mén)油田分公司煉化總廠(chǎng)擴建了柴油加氫裝置,但由于其危險性高,在控制系統時(shí)需考慮DCS與ESD(Emergency Shut Down)系統獨立設置。DCS用于對生產(chǎn)過(guò)程進(jìn)行連續動(dòng)態(tài)監控,使生產(chǎn)裝置在設定值下平穩運行;而ESD系統用于對生產(chǎn)過(guò)程的關(guān)鍵參數及過(guò)程工作狀況進(jìn)行連續監視,檢測其相對于預定安全操作條件的變化,當所監測的過(guò)程變量超過(guò)其安全限定值時(shí),ESD系統即取代DCS進(jìn)行操作,按預置的安全邏輯順序動(dòng)作,將過(guò)程設置成安全的非正常操作狀態(tài),把發(fā)生惡性事故的可能性降到最低。柴油加氫裝置DCS選用ABB公司的Freelance2000系統,ESD選用Moore公司的QUADLOG系統。為便于DCS操作人員了解ESD聯(lián)鎖過(guò)程數據,有必要將ESD關(guān)鍵參數傳至DCS中進(jìn)行顯示,這就涉及到DCS與ESD間數據通訊的問(wèn)題。
2 Modbus從設備
在DCS與ESD通訊時(shí),ESD作為Modbus的從設備,QUADLOG系統提供的Modbus從功能塊庫能將QUADLOG的控制器設置成Modbus的從設備,從設備提供數據響應Modbus主設備發(fā)出的請求。
Modbus從功能塊庫提供了MODBUS_S和SERIAL功能塊,Modbus主設備要能從Modbus從設備取得數據,MODBUS_S功能塊必須將這些數據映射成Modbus主設備能識別的寄存器(Registers)或線(xiàn)圈(Coils)地址,然后主設備通過(guò)Modbus協(xié)議讀取這些寄存器或線(xiàn)圈地址。把數字量如布爾值映射為線(xiàn)圈(地址從00001到09999)或輸入線(xiàn)圈(地址從10001到19999);把模擬量如實(shí)數、整數映射為輸入寄存器(地址從30001到39999)或保持寄存器(地址從40001到49999)。
2.1 SERIAL功能塊
該功能塊用來(lái)初始化Modbus通訊端口、激活從設備的串行端口,以便同Modbus網(wǎng)絡(luò )和Freelance2000進(jìn)行通訊,該功能塊如圖1所示。
EN為T(mén)RUE,激活該功能塊并產(chǎn)生一個(gè)ID號,該ID號提供給串行通訊功能塊如MODBUS_S使用。激活后,SERIAL功能塊處理串行功能塊和連接到串口的主設備的請求。在SERIAL提供的參數表中,可設置串行通信的波特率、數據位、奇偶校驗、停止位、流量控制、超時(shí)和串口號。
圖1 SERIAL功能塊 圖2 MODBUS_S功能塊
2.2 MODBUS_S功能塊
該功能塊將QUADLOG系統的控制器設置成Modbus從設備,使用Modbus協(xié)議使QUADLOG系統同Modbus主設備Freelance2000交換數據,MODBUS_S功能塊如圖2所示。
EN為T(mén)RUE時(shí),MODBUS_S響應Freelance2000的讀請求;ID是SERIAL功能塊產(chǎn)生的ID號,且該ID號可供同一個(gè)控制器中的多個(gè)MODBUS_S使用;ADDR是分配給控制器作為Modbus從設備的地址,Freelance2000發(fā)出的請求必須使用該地址才能同QUADLOG控制器進(jìn)行正常通訊;START是Freelance2000讀取數據的起始地址;NUM是線(xiàn)圈或寄存器數量;DATA是存放實(shí)際數據的數組。
3 Modbus主設備
Freelance2000是Modbus主設備,采用AC800F現場(chǎng)控制器。同ESD的串行通訊由FI820接口模件完成,在FI820下必須設置一個(gè)Modbus主對象(MODM_DEV),在該對象中組態(tài)并完成相關(guān)設置以實(shí)現通訊。
在Modbus主功能塊庫中,提供了Read-coil、Read-register和轉換功能塊。由于在數據通訊時(shí),Read-coil比Read-register簡(jiǎn)單,故只介紹后兩者。
(1) Read-register功能塊
讀寄存器功能塊有三種類(lèi)型:MODM_R1R,MODM_R8R,MODM_R16R,分別最大輸出1個(gè)、8個(gè)、16個(gè)報文數據。該功能塊通過(guò)Freelance2000的串行接口從ESD讀取數據并將讀來(lái)的數據轉換成Freelance2000 WORD數據類(lèi)型。
(2) 轉換功能塊
由于實(shí)數在ESD中占用兩個(gè)寄存器地址,在通訊過(guò)程中,讀寄存器功能塊分別將其讀為尾數和指數,并轉換成實(shí)數格式。
4 Freelance2000與QUADLOG系統的數據通訊
4.1 QUADLOG系統軟件的實(shí)現
圖3 QUADLOG系統程序流程圖
在柴油加氫裝置中,DCS與ESD進(jìn)行數據通訊的點(diǎn)數大約有200多個(gè)位號,為敘述方便,僅舉4個(gè)壓縮機軸振動(dòng)位移傳給DCS進(jìn)行顯示。QUADLOG系統程序實(shí)現如圖3所示。
MODBUS_S的ID輸入值來(lái)自SERIAL塊,ID為“2”表示SERIAL在控制器的串行端口2上進(jìn)行通訊;控制器作為從設備的地址設為10;由于從QUADLOG系統的模擬卡件的內存讀取模擬數據,數據應放入保持寄存器,保持寄存器地址從40001~40009,所以START的起始地址設為40001;由于壓縮機軸振動(dòng)位移是實(shí)數,占用兩個(gè)寄存器,故NUM為位移個(gè)數的兩倍,NUM等于8;SLVDATA是一維數組,維數為4,用來(lái)存放傳給DCS的4個(gè)位移數據,SLVDATA[1]……SLVDATA[4]分別存放DI_101……DI_104值。Freelance2000從QUADLOG系統讀取的寄存器地址范圍從40001到40008,DI_101值映射為寄存器地址40001和40002,DI_102值映射為寄存器地址40003和40004,DI_103值映射為寄存器地址40005和40006,DI_104值映射為寄存器地址40007和40008。
4.2 Freelance2000軟件的實(shí)現
圖4 Freelance2000工作原理框圖
使用Modbus協(xié)議,通過(guò)Freelance2000的串口讀取QUADLOG系統SLVDATA數組元素映射成的寄存器。在Freelance2000為讀取寄存器,將8輸出的讀寄存器功能塊放入組態(tài)區域。由于實(shí)數映射成兩個(gè)寄存器,因此R01讀的是40001寄存器,R02讀的是40002寄存器,要能把兩個(gè)寄存器還原為實(shí)數,還要把轉換功能塊放入組態(tài)區,R01連至轉換功能塊的指數管腳,R02連至轉換功能塊的尾數管腳,轉換功能塊將讀取來(lái)的報文數據轉換成對應的壓縮機軸振動(dòng)位移數據,并在DCS上顯示出來(lái),位號為DI_101。其它三個(gè)位移同理可得,全部8個(gè)輸出的連接如圖4所示。
在MODM_R8R的參數表中還要進(jìn)行一些設置后,Freelance2000才能同ESD進(jìn)行正常通訊。在Interface name中設該功能塊的MODM_DEV對象;在Slave addr中設ESD控制器的地址,此處為10;Function code設為讀保持寄存器;Start addr是MODBUS_S的START地址,地址為40001;Register count是MODM_R8R的最大輸出個(gè)數:8個(gè)。
4.3 QUADLOG系統與Freelance2000硬件結構
QUADLOG系統的控制器有兩個(gè)串口P1和P2。P1用于模塊間通訊,P2用于同DCS交換數據。FI820也有兩個(gè)串口Ser1和Ser2,均可用于同ESD進(jìn)行通訊。但是,每個(gè)串口必須插入一個(gè)MODM_DEV對象,然后在該對象下組態(tài),在對象的參數表中可進(jìn)行參數設置:串行通信的波特率、停止位、奇偶校驗、幀和串口標準;DCS與ESD間串行通訊的標準有:RS232、RS422、RS485。RS232的最大通訊距離只有20m,而RS422和RS485的最大通訊距離可達1200m,最大通訊速率可達12M。由于該廠(chǎng)的DCS與ESD相距較遠,故選用RS485標準,ESD端必須使用RS232/RS485轉換器將RS232轉換成RS485,Freelance2000可軟件組態(tài)成RS485。DCS與ESD的硬件連接如圖5所示。
圖5 DCS與ESD的硬件連接
5 結語(yǔ)
本文僅介紹了DCS從ESD讀數據,利用相應功能塊同樣可實(shí)現DCS寫(xiě)數據到ESD,DCS將實(shí)數或整數轉換成尾數和指數,傳至Write register功能塊的兩個(gè)相鄰的wi和wi+1(i為奇數)。如果通訊的數據是數字量,就更為簡(jiǎn)單,無(wú)需利用轉換功能塊進(jìn)行轉換,把數值量映射成線(xiàn)圈地址即可,一個(gè)數字量只占用一個(gè)線(xiàn)圈地址。