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