摘要:采用HART通信協(xié)議的現(xiàn)場(chǎng)儀表廣泛應(yīng)用于過(guò)程控制系統(tǒng)。在構(gòu)建西門(mén)子PCS7作為主控制器的控制系統(tǒng)時(shí),shou先要解決好主控Profibus-DP網(wǎng)絡(luò)與HART儀表的通信問(wèn)題。選擇網(wǎng)關(guān)將HART協(xié)議數(shù)據(jù)上傳給Profibus-DP網(wǎng)絡(luò)時(shí),主控系統(tǒng)無(wú)法正確顯示HART協(xié)議數(shù)據(jù)所代表的過(guò)程變量。在對(duì)數(shù)據(jù)結(jié)構(gòu)和存儲(chǔ)方式分析的基礎(chǔ)上,自主研發(fā)程序,將主控系統(tǒng)接收的現(xiàn)場(chǎng)信號(hào)進(jìn)行數(shù)據(jù)轉(zhuǎn)換,并編寫(xiě)功能塊FB、連續(xù)功能圖CFC程序,實(shí)現(xiàn)主控系統(tǒng)對(duì)現(xiàn)場(chǎng)設(shè)備運(yùn)行狀態(tài)和過(guò)程變量等信息的識(shí)別,為HART與Profibus-DP異構(gòu)協(xié)議兼容系統(tǒng)的構(gòu)建提供數(shù)據(jù)通信基礎(chǔ)。
西門(mén)子PCS7與HART儀表通信的數(shù)據(jù)轉(zhuǎn)換研發(fā)
高速可尋址變送器(HighwayAddressableRemoteTransducer,HART)協(xié)議是在4mA~20mA模擬信號(hào)上疊加頻率信號(hào),使模擬信號(hào)與數(shù)字信號(hào)雙向通信同時(shí)進(jìn)行,互不干擾[1]。基于HART協(xié)議的儀表既有模擬儀表的性能,又兼顧數(shù)字通信的性能,在不對(duì)現(xiàn)有系統(tǒng)進(jìn)行改造的情況下即可實(shí)現(xiàn)儀表的數(shù)字化,所以在過(guò)程控制系統(tǒng)中得到廣泛應(yīng)用。通過(guò)手操器可以實(shí)現(xiàn)HART儀表硬件、工程單位、過(guò)程參數(shù)量程的上下限以及節(jié)點(diǎn)地址等設(shè)定,也可以提取并顯示儀表設(shè)備編號(hào)、設(shè)備類(lèi)型以及生產(chǎn)廠商信息[2-4]。在構(gòu)建以HART儀表為現(xiàn)場(chǎng)設(shè)備、以西門(mén)子PCS7為主控制器的控制系統(tǒng)時(shí),通過(guò)網(wǎng)關(guān)使HART儀表與Profibus-DP網(wǎng)絡(luò)通信,實(shí)現(xiàn)異種協(xié)議的現(xiàn)場(chǎng)總線系統(tǒng)集成。由于HART儀表傳輸?shù)臄?shù)據(jù)類(lèi)型復(fù)雜,盡管網(wǎng)關(guān)將HART儀表輸出信號(hào)傳給了遠(yuǎn)程的PCS7,但PCS7讀取的信息,無(wú)法從接受數(shù)據(jù)中提取現(xiàn)場(chǎng)設(shè)備的運(yùn)行狀況、過(guò)程參數(shù)信息,沒(méi)有根本上解決協(xié)議兼容的問(wèn)題。本文通過(guò)在線采集現(xiàn)場(chǎng)HART儀表的運(yùn)行參數(shù),進(jìn)行數(shù)據(jù)結(jié)構(gòu)和存儲(chǔ)方式分析,應(yīng)用自主研發(fā)程序,并編寫(xiě)功能塊(FunctionBlock)FB、連續(xù)功能圖CFC(ContinuousFunctionChart,CFC)程序,將PCS7接收的現(xiàn)場(chǎng)信號(hào)進(jìn)行數(shù)據(jù)轉(zhuǎn)換,從而保證主控系統(tǒng)對(duì)HART信息的識(shí)別,實(shí)現(xiàn)了HART與Profibus-DP的通信兼容[5]。
通信協(xié)議
1.1Profibus-DP協(xié)議
Profibus是ProcessFieldbus的縮寫(xiě),是一種面向工廠自動(dòng)化和流程自動(dòng)化的國(guó)際性現(xiàn)場(chǎng)總線標(biāo)準(zhǔn)。主要包含Profibus-DP、Profibus-FMS、Profibus-PA三種協(xié)議。Profibus-DP面向工業(yè)現(xiàn)場(chǎng),在可編程控制器、傳感器、執(zhí)行器等設(shè)備之間傳遞數(shù)據(jù)信息,采用RS-485的物理連接方式,其傳輸速率為9.6kbit/s~12Mbit/s,#大傳輸距離為1000m,使用中繼器可達(dá)10km。西門(mén)子PCS7系統(tǒng)在自動(dòng)控制站間、自動(dòng)控制站與現(xiàn)場(chǎng)設(shè)備之間的數(shù)據(jù)交換采用Profibus-DP通信協(xié)議,該協(xié)議支持主從通信方式,#多可掛接127個(gè)從站,有3種從站類(lèi)型:PLC控制器,分布式遠(yuǎn)程I/O,智能現(xiàn)場(chǎng)設(shè)備。主站具有對(duì)總線的控制權(quán),可主動(dòng)發(fā)送信息。從站等待主站請(qǐng)求指令,然后執(zhí)行數(shù)據(jù)交換[6-7]。
1.2HART協(xié)議
HART協(xié)議方式是在4mA~20mA模擬信號(hào)上疊加數(shù)字量信號(hào),在二線制變送器與電源之間串接250Ω以上電阻,以保證數(shù)字量信號(hào)的傳輸,模擬量和數(shù)字量雙向通信同時(shí)進(jìn)行,傳輸速率為1200bit/s,支持掛接15個(gè)現(xiàn)場(chǎng)設(shè)備。HART命令可分為:通用命令,適用于所有的HART智能設(shè)備,指令代碼為1-30;普通專(zhuān)用命令,適用于大多數(shù)HART變送器,指令代碼為32-126;設(shè)備專(zhuān)用命令,針對(duì)每一種具體設(shè)備的特殊性,指令代碼為128-253。HART儀表通過(guò)命令與上位級(jí)實(shí)現(xiàn)數(shù)據(jù)交換[8-9]。
2、Profibus-DP與HART異構(gòu)兼容系統(tǒng)
搭建HART儀表與西門(mén)子PCS7之間的數(shù)據(jù)交換系統(tǒng),主控系統(tǒng)PCS7可以監(jiān)視HART儀表的測(cè)量參數(shù)、設(shè)備運(yùn)行狀態(tài)、設(shè)備序列號(hào)等基本信息,也可以采集參數(shù)報(bào)警、維護(hù)狀態(tài)等實(shí)時(shí)監(jiān)管信息,從而提高整個(gè)系統(tǒng)運(yùn)行的可靠性和安全性[10]。
2.1異構(gòu)兼容系統(tǒng)設(shè)計(jì)方案
Profibus-DP與HART異構(gòu)兼容系統(tǒng)以西門(mén)子PCS7系統(tǒng)為上位級(jí),羅斯蒙特3051壓力變送器和若干現(xiàn)場(chǎng)設(shè)備為下位級(jí)。因西門(mén)子PCS7系統(tǒng)采用Profibus-DP現(xiàn)場(chǎng)總線通信協(xié)議,而現(xiàn)場(chǎng)智能設(shè)備羅斯蒙特3051壓力變送器采用HART現(xiàn)場(chǎng)總線通信
協(xié)議,需要解決異構(gòu)協(xié)議兼容問(wèn)題,增加網(wǎng)間協(xié)議轉(zhuǎn)換器(網(wǎng)關(guān)),實(shí)現(xiàn)不同現(xiàn)場(chǎng)總線協(xié)議標(biāo)準(zhǔn)的兼容。選取能夠支持HART/Profibus-DP協(xié)議數(shù)據(jù)轉(zhuǎn)換的網(wǎng)關(guān),完成數(shù)據(jù)格式的轉(zhuǎn)換和數(shù)據(jù)的讀寫(xiě)操作,將HART協(xié)議網(wǎng)絡(luò)與Profibus-DP協(xié)議網(wǎng)絡(luò)進(jìn)行硬連接,實(shí)現(xiàn)西門(mén)子PCS7上位級(jí)對(duì)現(xiàn)場(chǎng)智能設(shè)備的監(jiān)視與管理。
2.2系統(tǒng)硬件組成
該異構(gòu)兼容系統(tǒng)包括上位監(jiān)控PC機(jī)、主控系統(tǒng)PCS7、羅斯蒙特3051壓力變送器、網(wǎng)關(guān)等設(shè)備,系統(tǒng)結(jié)構(gòu)如圖1所示。
上位監(jiān)控PC機(jī)既是上位級(jí)的服務(wù)器、操作員站以及工程師站,承擔(dān)PCS7組態(tài)、數(shù)據(jù)采集、信息交換和系統(tǒng)維護(hù)工作。PC機(jī)與控制站S7-400PLC通過(guò)工業(yè)以太網(wǎng)實(shí)現(xiàn)信息交互。網(wǎng)關(guān)選用上海泗博公司生產(chǎn)的網(wǎng)關(guān)HPM-610。西門(mén)子S7-400PLC與網(wǎng)關(guān)HPM-610通過(guò)Profibus-DP連接,西門(mén)子S7-400PLC是Profibus-DP的主站,網(wǎng)關(guān)HPM-160是Profibus-DP從站,網(wǎng)關(guān)HPM-160與羅斯蒙特3051壓力變送器通過(guò)HART總線聯(lián)接,網(wǎng)關(guān)HPM-160是HART主站,羅斯蒙特3051壓力變送器是HART從站[11-13]。
3通信檢測(cè)與數(shù)據(jù)轉(zhuǎn)換
在成功搭建硬件系統(tǒng)以后,進(jìn)行系統(tǒng)組態(tài)與調(diào)試,即PCS7組態(tài)、HPM-610配置、羅斯蒙特3051壓力變送器組態(tài),以及各部分和全系統(tǒng)的通信測(cè)試與調(diào)試,檢測(cè)數(shù)據(jù)交互的正確性與實(shí)時(shí)性。
3.1PCS7讀取HART儀表標(biāo)識(shí)碼
主控PCS7要獲取并在監(jiān)控畫(huà)面顯示羅斯蒙特3051壓力變送器的設(shè)備信息,需要在網(wǎng)關(guān)HPM-160的專(zhuān)用軟件HT-123中作相應(yīng)配置。網(wǎng)關(guān)HPM-610依據(jù)組態(tài)中的命令功能,從現(xiàn)場(chǎng)級(jí)提取數(shù)據(jù),向上位主控系統(tǒng)傳送現(xiàn)場(chǎng)設(shè)備信息、運(yùn)行參數(shù)、過(guò)程
值變量等數(shù)據(jù)[14-15]。
命令0的功能是讀取現(xiàn)場(chǎng)HART儀表的設(shè)備類(lèi)型代碼、版本和設(shè)備標(biāo)識(shí)碼,并傳送到主控系統(tǒng)。命令0執(zhí)行后在PCS7分配給網(wǎng)關(guān)的存儲(chǔ)區(qū)中占用14個(gè)字節(jié),前兩個(gè)字節(jié)為設(shè)備的現(xiàn)場(chǎng)狀態(tài)信息,后面的數(shù)據(jù)對(duì)應(yīng)設(shè)備類(lèi)型的具體信息,存儲(chǔ)區(qū)中字節(jié)所代表的設(shè)備信息如圖2所示,從字節(jié)0到字節(jié)11表示網(wǎng)關(guān)采集現(xiàn)場(chǎng)設(shè)備的標(biāo)識(shí)碼信息。字節(jié)1為制造商ID號(hào),字節(jié)2是制造商設(shè)備類(lèi)型,字節(jié)3為HART數(shù)據(jù)幀的前導(dǎo)碼信息。
在執(zhí)行命令0之前,shou先診斷命令0檢測(cè)到的現(xiàn)場(chǎng)設(shè)備信息,診斷結(jié)果見(jiàn)圖3(a)所示。然后執(zhí)行命令0,主控PCS7獲取到3051壓力變送器的設(shè)備信息,存儲(chǔ)于主控PCS7分配給網(wǎng)關(guān)的地址寄存器中。如圖3(b)所示,從IW550到IW562的值即執(zhí)行命令0的返回信息。
IW550的值W#16#0040(2個(gè)字節(jié)),表示現(xiàn)場(chǎng)設(shè)備的通信狀態(tài),從IW552到IW562共12個(gè)字節(jié)是羅斯蒙特3051壓力變送器標(biāo)識(shí)碼,數(shù)制是十六進(jìn)制,轉(zhuǎn)換為十進(jìn)制后見(jiàn)表1所示,與圖3(a)所示字節(jié)的十進(jìn)制數(shù)值完全相同,表明命令0可以檢測(cè)到現(xiàn)場(chǎng)設(shè)備信息并正確上傳給主控系統(tǒng)。而且,命令0返回的現(xiàn)場(chǎng)設(shè)備信息可以在監(jiān)控畫(huà)面上顯示。
3.2PCS7讀取HERT儀表的過(guò)程變量值
主控PCS7讀取且在監(jiān)控畫(huà)面上顯示羅斯蒙特3051壓力變送器的過(guò)程變量(PV)值,需在HT-123軟件上作相應(yīng)配置后,使用命令1,命令1的功能是以浮點(diǎn)數(shù)類(lèi)型返回主變量的值,返回路徑為:現(xiàn)場(chǎng)總線智能儀表將現(xiàn)場(chǎng)過(guò)程值送到網(wǎng)關(guān)HPM-610,網(wǎng)關(guān)HPM-610將數(shù)據(jù)上傳到PCS7系統(tǒng),PCS7接收到十六進(jìn)制現(xiàn)場(chǎng)過(guò)程變量值轉(zhuǎn)換為浮點(diǎn)數(shù)在監(jiān)控畫(huà)面上顯示。
在執(zhí)行命令1指令后,PCS7系統(tǒng)從網(wǎng)關(guān)讀取并顯示的數(shù)據(jù)是十六進(jìn)制數(shù),存儲(chǔ)在IW512到IW518地址中,如圖4所示,占用4個(gè)字,8個(gè)字節(jié),前兩個(gè)字節(jié)為設(shè)備的現(xiàn)場(chǎng)狀態(tài)信息,后面的數(shù)據(jù)對(duì)應(yīng)過(guò)程變量值。IW512字節(jié)表示現(xiàn)場(chǎng)設(shè)備的狀態(tài)信息,IW514的高字節(jié)16#ED表示過(guò)程變量的單位MPa,IW514的低位字節(jié)、IW516字節(jié)和IW518的高位字節(jié)共4個(gè)字節(jié),表示現(xiàn)場(chǎng)過(guò)程量。這4個(gè)字節(jié)以十六進(jìn)制的形式存儲(chǔ)在3個(gè)字中,目前要用一個(gè)雙字(4個(gè)字節(jié))表示現(xiàn)場(chǎng)過(guò)程變量,并且在上位系統(tǒng)監(jiān)控畫(huà)面顯示,在對(duì)PCS7系統(tǒng)接收到的數(shù)據(jù)進(jìn)行提取、數(shù)制轉(zhuǎn)換、整合等數(shù)據(jù)轉(zhuǎn)換過(guò)程后,#終以十進(jìn)制浮點(diǎn)數(shù)的形式在監(jiān)控畫(huà)面上實(shí)時(shí)顯示[16]。
以現(xiàn)場(chǎng)壓力測(cè)量值0.55MPa為例,分析PCS7系統(tǒng)接收的數(shù)據(jù)結(jié)構(gòu),進(jìn)行數(shù)據(jù)轉(zhuǎn)換。由圖4可知,命令1返回到PCS7的數(shù)據(jù)由8個(gè)字節(jié)組成:分別是IW512;IW514;IW516;IW518。其中:IW512為現(xiàn)場(chǎng)設(shè)備狀態(tài)信息;IW514的高字節(jié)ED表示現(xiàn)場(chǎng)過(guò)程變量單位(MPa),低字節(jié)3F是測(cè)量值的有效數(shù)據(jù);IW516是測(cè)量值的有效數(shù)據(jù);IW518的高字節(jié)CE是測(cè)量值的有效數(shù)據(jù),這4個(gè)字節(jié)數(shù)據(jù)對(duì)應(yīng)現(xiàn)場(chǎng)壓力測(cè)量值。即:3F,0D7F,CE表示現(xiàn)場(chǎng)過(guò)程量。
上位監(jiān)控系統(tǒng)以單精度浮點(diǎn)數(shù)的形式顯示現(xiàn)場(chǎng)壓力測(cè)量值,是一個(gè)雙字,即4個(gè)字節(jié)32位,存儲(chǔ)在一個(gè)雙字寄存器中,以浮點(diǎn)數(shù)的形式在監(jiān)控畫(huà)面上顯示現(xiàn)場(chǎng)過(guò)程量,而PCS7接收的數(shù)據(jù)是4個(gè)字節(jié),放在4個(gè)輸入寄存器中,并非一個(gè)完整的雙字。故需要對(duì)當(dāng)前PCS7接收到的數(shù)據(jù)進(jìn)行轉(zhuǎn)換,從返回的4個(gè)字中提取出有效數(shù)據(jù)的4個(gè)字節(jié),整合后存放在一個(gè)雙字存儲(chǔ)器中,再將這個(gè)雙字轉(zhuǎn)換為單精度浮點(diǎn)數(shù),即現(xiàn)場(chǎng)壓力測(cè)量值,然后在監(jiān)控畫(huà)面上顯示。
數(shù)據(jù)轉(zhuǎn)換過(guò)程的程序流程如圖5所示:①定義PCS7接收到的數(shù)據(jù)為:HART通道1-HART通道4;②將HART通道2(IW514)據(jù)轉(zhuǎn)換為雙字,向左移24位并保存在中間存儲(chǔ)器,即3F保存在雙字的#高位。③將HART通道3(IW516)數(shù)據(jù)轉(zhuǎn)換為雙字,向左移8位并保存在中間存儲(chǔ)器,即0D7F存到雙字的中間位置。④將HART通道4(IW518)數(shù)據(jù)轉(zhuǎn)換為雙字,向右移8位并保存在中間存儲(chǔ)器,即CE存到雙字的#低位。⑤用“或”指令將三個(gè)雙字移位整合為一個(gè)雙字;⑥用雙字與浮點(diǎn)數(shù)的轉(zhuǎn)換指令將雙字轉(zhuǎn)為單精度浮點(diǎn)數(shù)0.55(MPa)。
數(shù)據(jù)轉(zhuǎn)換程序使用西門(mén)子結(jié)構(gòu)化控制語(yǔ)言StructruedText(STL)編寫(xiě),生成功能塊(Function Block) FB678,可在程序中直接調(diào)用,實(shí)現(xiàn)了主控系 統(tǒng)接受數(shù)據(jù)與現(xiàn)場(chǎng)測(cè)量值的數(shù)值類(lèi)型的一致性轉(zhuǎn) 換,確保主控系統(tǒng)可以實(shí)時(shí)檢測(cè)并正確顯示現(xiàn)場(chǎng)測(cè) 量值。數(shù)據(jù)轉(zhuǎn)換的部分程序如圖 6 所示。 FUNCTION_BLOCK FB678 HART_01: WORD; / /HART 輸入通道 01 N_IN_02: WORD: = 16#0018; / /通道 02 位移_6 移 DATA_01: DWORD; / /通道 01 雙字輸出 N_OUT_01: WORD; / /通道 01 位移位數(shù)輸出 DATA_DWORD_04: =WORD_TO_DWORD( HART_04) ; DATA_04: =DATA_DWORD_04; N_OUT_04: =N_IN_04; / /通道 04 數(shù)據(jù)類(lèi)型轉(zhuǎn)換為雙字
圖 6 數(shù)據(jù)轉(zhuǎn)換的部分程序
4 遠(yuǎn)程監(jiān)視
主控系統(tǒng)對(duì)現(xiàn)場(chǎng)的遠(yuǎn)程監(jiān)控是實(shí)現(xiàn)智能化、無(wú) 人化工廠的基本條件。在西門(mén)子 PCS7 系統(tǒng)組態(tài)操 作員站,創(chuàng)建監(jiān)控變量,創(chuàng)建監(jiān)控畫(huà)面,通過(guò)連續(xù)功 能圖 Continuous Function Chart( CFC) 編寫(xiě)程序,調(diào)用功能塊 FB678 和顯示模塊,并建立變量與監(jiān)控畫(huà) 面的連接,現(xiàn)場(chǎng)過(guò)程變量值就可以直接在 WinCC 監(jiān) 控畫(huà)面上實(shí)時(shí)顯示,實(shí)現(xiàn)了 PCS7 對(duì)生產(chǎn)過(guò)程的遠(yuǎn)程實(shí)時(shí)在線監(jiān)控[17-18]。 主控系統(tǒng)的監(jiān)控畫(huà)面是異構(gòu)系統(tǒng)的人機(jī)接口。通過(guò)畫(huà)面信息,運(yùn)行人員可以監(jiān)視和管理現(xiàn)場(chǎng)設(shè)備 的運(yùn)行狀態(tài),而不需要在現(xiàn)場(chǎng)、或者依賴(lài)就地運(yùn)行人 員傳送數(shù)據(jù)。監(jiān)控畫(huà)面可根據(jù)用戶(hù)的需要進(jìn)行組 態(tài),主要信息包括: 羅斯蒙特 3051 壓力變送器的設(shè)備版本號(hào)、設(shè)備 ID 號(hào)、實(shí)時(shí)壓力測(cè)量值、設(shè)定的壓力 信號(hào)上下限值等,如圖 7 所示。
5 結(jié)論
通過(guò)搭建 Profibus-DP 與 HART 協(xié)議的異構(gòu)兼 容系統(tǒng),基于 HART 協(xié)議的現(xiàn)場(chǎng)智能儀表可以直接 上傳設(shè)備運(yùn)行參數(shù),實(shí)現(xiàn)了不同協(xié)議的信息交互。 在研究現(xiàn)場(chǎng)數(shù)據(jù)與主控系統(tǒng)采集到的數(shù)據(jù)不同數(shù)制 的情況下,編寫(xiě)了數(shù)據(jù)轉(zhuǎn)換程序,確保主控系統(tǒng)可以 查看相同數(shù)制下的過(guò)程變量。通過(guò) CFC 編程,將變 量信息與監(jiān)視畫(huà)面進(jìn)行連接,遠(yuǎn)程監(jiān)控畫(huà)面顯示現(xiàn) 場(chǎng)智能儀表參數(shù)與運(yùn)行狀況,實(shí)現(xiàn)了異構(gòu)兼容系統(tǒng)的遠(yuǎn)程監(jiān)控。 這種異構(gòu)現(xiàn)場(chǎng)總線協(xié)議兼容系統(tǒng)可以拓展 HART 協(xié)議智能儀表的應(yīng)用。在模擬儀表向數(shù)字儀 表的過(guò)渡過(guò)程中,完善了 HART 智能儀表數(shù)據(jù)轉(zhuǎn) 換,實(shí)現(xiàn)了主控系統(tǒng)對(duì)智能儀表的遠(yuǎn)程管控,該方案 可為智能一體化遠(yuǎn)程系統(tǒng)建設(shè)提供參考。