黃軍政,姜紹陽,孫照江,張彥軍
(新疆獨山子石化信息網絡公司 乙烯儀表車間,新疆維吾爾自治區 克拉瑪依 833600)
在煉油、化工生產中,經常需要將儀表、電氣、工藝的各種信號通過Modbus 通訊在以DCS為主的工藝操作站、儀表專業的DCS工程師站、SIS工程師站、PLC等監測控制、聯鎖保護設備、電氣設備、第三方廠家等不同專業、不同系統之間傳遞。在這些信號中,儀表信號主要分為模擬信號和數字信號。這樣一方面可以實現各種信號在不同專業系統中的數據共享,使各個不同專業人員可以更加全面、及時、有效、方便地分析各自專業的各種信息,實現綜合分析,并盡快甚至提前預見故障的發生,更好地為裝置安全生產服務。另一方面,也因為使用方便,可以為企業降低各方面成本,提升企業在市場中的綜合競爭力。
雖然這種數據通信在當今化工生產中已經被普遍采用并標準化,但是仍然需要技術人員根據生產實踐的具體情況,機動靈活地采取有效措施解決問題。
獨山子石化研究院溶聚丁苯橡膠中試裝置是國內首套丁苯橡膠中試裝置,可為工業試產提供可靠的工藝方案。該裝置在運行一段時間后,由于工藝生產的需要,新增加了一臺變頻器用于實現現場泵的變頻運行。設計上,這臺變頻器接收來自CENTUM VP系統硬線傳輸的4mA~20mA信號,作為變頻器的頻率設定值。變頻器內部的PID調節器根據設定值進行運算,輸出變頻信號到現場泵,使該泵按著工藝要求的速度運轉。現場泵運行情況的反饋信號則是通過Modbus通訊由第三方廠家傳遞返回DCS,保證工藝操作人員能夠在DCS畫面上查詢并觀察變頻器的運行狀態和電流信號。
要實現以上功能,需要儀表人員在CENTUM VP系統中修改Modbus組態。具體來講就是根據新增通訊信號的Modbus地址完成信號的讀取、顯示。為了更好地理解儀表技術人員的工作思路,首先介紹一下Modbus協議。
Modbus是工業標準的主/從通信協議,廣泛應用于能源管理、傳送線控制、管道監測和其他工業過程。Modbus的最初定義是:MODICON的各種控制器所使用的公共語言稱為Modbus協議[1]。該協議定義了控制器能識別和使用的信息結構。因為免費,現在實際上已經成為各種工業通信中的行業標準。通信接口采用RS232,最大傳輸距離為15m,僅用于點對點通信;采用RS422,最大傳輸距離1220m,但僅用于點對點通信;采用RS485,最大傳輸距離1220m,可用于點對點或多點串行通信。RS485可用2線或4線電纜,均采用雙絞線,以提高抗干擾能力。在Modbus 通信中,一個主站最多可以有32個從站。
Modbus有兩種通信模式:ASCII模式和RTU模式。
當控制器以ASCII模式在Modbus總線上進行通信時,是將原始數據信息中的每8bit轉換為兩個以16進制表示的ASCII字符傳輸。這種模式效率較低,主要用于只能傳輸7bit的老式設備。
當控制器以RTU模式在Modbus總線上進行通信時,數據信息是以原始的二進制傳輸的,效率高。因此,本廠DCS和SIS的Modbus通信都采用RTU模式。
1)ALR121卡件與外部設備接線
在CENTUM VP和第三方廠家的通信中,CENTUM VP為主站,第三方廠家為從站(在本文中第三方廠家為南瑞繼保)。CENTUM VP的ALR121是該系統的Modbus專用模塊,負責接收從第三方廠家,具體就是南瑞繼保的光電轉換器NR0203B通過RS485串口通訊接收傳輸的Modbus信號。CENTUM VP的ALR121和南瑞繼保的NR0203B的Modbus連接圖如圖1。

圖1 ALR121 接線圖Fig.1 Wiring diagram of ALR121
2)ALR121卡件軟件組態
在系統組態畫面SYSTEM VIEW中,選中與第三方廠家設備連接的ALR121卡。右鍵單擊它,出現屬性設置對話框。可以在屬性頁中定義一些參數,如波特率、偶校驗、響應時間等。屬性對話框中Card Common屬性頁的Connection Device一項,一定要選Modbus。
在定義完ALR121通信卡屬性后,最重要的一項工作是在ALR121中定義通信點的地址。在SYSTEM VIEW中對應的FCS中找到要組態的ALR121,右擊該圖標選擇edit detail,出現communication building(圖2),其中關鍵參數是:

圖2 ALR121字地址分配圖Fig.2 Distribution diagram of ALR121 word address
SIZE:4
PORT:1
STATION:1
DEVICE&ADDRESS:A31030
DATA TYPE:input(discrete)
DEVICE&ADDRESS的地址A31030是第三方廠家提供的Modbus通信地址的起始地址,以后的排列順序必須與第三方廠家提供的地址表相一致。“Device & Address”在Modbus PLC的地址結構如下:
< function code> +
在本例中“A”為CENTUM VP功能碼[2],表示讀或寫第三方廠家系統中打包好的數據,一次讀寫16bits。第一個數字“3”表示CENTUM VP要讀的信息是存在第三方廠家系統中的保持寄存器[2]中的內容,“1030”表示第三方廠家系統中保持寄存器的初始地址。
對于數字量通信,在定義完硬件地址A31030等參數后,應記住%WW0089地址,然后在所在FCS的SWITCH表格中定義通信點變量的詳細地址。注意,由于1Word=2Byte=16Bit,因而%WW0089對應SWITCH表格中的%WB008901~%WB008916,可以定義16個數字量。按照第三方廠家提供的通信變量順序將變量分配給%WB008901~%WB008916。其中,SWITCH表格中的Tag Name是在CENTUM VP系統中調用的變量名稱。
模擬量的Modbus通信可以采用兩種方式。
1)以無符號16位整型數的形式傳輸
對于由第三方廠家通信到CS3000的模擬量信號,第三方廠家一般將一個模擬量轉換成一個無符號16位整型數,取值范圍是819~4095,并賦予別名。每個別名對應一個Modbus地址。CENTUM VP根據Modbus地址收到該信號后,將此無符號16位整型數放在ALR 121的一個%WWxxxx中,并在data type中選16-bit unsigned(16位無符號整型數)。然后在CONTROL DRAWING 中組態時采用PVI顯示模塊,該模塊輸入地址為%WWxxxx,從而將信號值傳到PVI中處理。在PVI顯示模塊EDIT DETAIL中的INPUT菜單下填入利用公式(1)算出的GAIN和BIAS的值。將無符號16位整型數轉換成CS3000所需要的工程值。原理圖見圖4。

式(1)中:Y為HIS中顯示的PV;X為通過Modbus傳到DCS的數據,即圖4中(Modbus Max-Modbus Min),這里取值范圍是0~32767;GAIN為“斜率”,即圖4中(Maxspan-Minspan)/(Modbus Max-Modbus Min);BIAS為偏差值,即圖4中Minspan。
2)以浮點數的形式傳輸
第三方廠家也可以將一個模擬量直接轉換成用浮點數表示的工程量,并賦予別名,每個別名對應一個Modbus地址。CENTUM VP系統根據Modbus地址收到該信號后,將此浮點數放在ALR 121的一個%WWxxxx中,并在data type中選32-bit floating(32位浮點數)。然后在CONTROL DRAWING 中組態時采用PVI顯示模塊,該模塊輸入地址為%WWxxxx,從而將信號值傳到PVI中。此時,無需再利用公式就可以在DCS中顯示該值的工程量。
為了完成新增變頻泵運行狀態信號和變頻電流信號的Modbus通訊,儀表人員首先檢查了裝置建設期間DCS最初的Modbus組態表,發現該裝置原先通過Modbus通訊傳遞至DCS的信號有91個模擬量和91個數字量。
按著前述3.2中關于功能碼的介紹可知:在裝置改造之前,CENTUM VP通過Modbus通訊從第三方廠家的第1~第91個保持寄存器[3]中讀取了91個模擬量。新增變頻器之后,第三方廠家提供資料中給出的變量列表(此變量列表并不是Modbus通訊點表,因此并沒有儀表需要的Modbus通訊地址)中將模擬量和數字量都增加到了98個,并且明確表示Z-P-402變頻器中標志泵轉速的電流百分比信號是第98個(圖3)。為了尋找到儀表組態所需要的Modbus地址,謹慎起見儀表人員仔細檢查了廠家最新表格中前91個模擬量和數字量與DCS原先Modbus組態表中的量,發現都能對應上,說明前91個通訊變量的Modbus地址和相關組態沒有變化。

圖3 第三方廠家通訊Fig.3 Third party communication list
進一步分析,儀表人員發現原先DCS中的91個模擬量的Modbus地址是從30001~30091,對應的DCS內存地址為%WW0001~%WW0091。而變頻器電流信號在廠家新表格中是第98個,因此推斷電流百分比信號的Modbus地址是30098。
基于以上思考,儀表人員將原先DCS中的Modbus組態表中的SIZE由91變為98,使DCS每次可讀取98個內存地址中的Modbus信號。對應的DCS內存地址[3]為%WW0001~%WW0098,如果402泵電流信號是通過Modbus地址30098通訊過來,就會存在內存%WW0098中(圖4)。然后將新增泵電流信號組態為讀取DCS內存地址%WW0098中的信息,從而被DCS讀取。組態下裝后果然順利讀取了電流信號。

圖4 DCS中Modbus組態表圖Fig.4 Modbus configuration table in DCS
如該電流信號在DCS中需要顯示時,利用CENTUM VP系統的FUCTION BLOCK建立PVI模塊組態下裝即可。
根據第三方廠家說明,數字量變頻器運行信號在廠家給出的數字量表格(同樣不是Modbus點表,沒有Modbus通訊地址)中是第97個(表格和模擬量Modbus通訊表類似,以下不再給出),而原先DCS中91個數字量的Modbus地址是從10001~10091,因此儀表人員推斷新增變頻器運行信號有可能在Modbus地址為10097的word中。按這個思路組態下裝后,也順利讀取到了變頻器運行信號。
在這個尋找Modbus地址的過程中,首先需要和廠家反復溝通、確認。另一方面是建設期間DCS廠家做Modbus組態時,手中是有Modbus通訊點表的,表中列出了需要讀取的每個量的Modbus地址。按著前述3.3中介紹的數字量的Modbus通訊組態方法,儀表人員猜測的這個Modbus地址首先是對應DCS中的某個%WWxxxx,在本文中Modbus地址10097就對應著%WW0123內存(類似模擬量)。而每個%WWxxxx中可以裝16個數字量,它們對應在SITCH表格[3]中的%WBxxxx01~%WBxxxx16內存地址中。因此,儀表人員還需確認這個數字量最終對應哪一個%WBxxxxzz(zz是1到16的整數)內存地址。在本文中402泵運行信號經過測試,確認就存在%WB012301內存中(圖5),DCS下裝后成功讀取到泵運行信號。

圖5 DCS中Modbus組態表圖Fig.5 Modbus configuration table in DCS
在DCS畫面組態中使用%WB012301對應的儀表位號XL-BZP402進行畫面鏈接,即可實現畫面顯示。
某公司DCS采用的是CENTUM VP系統,該系統支持Modbus 通信,因此Modbus通信應用非常普遍,發揮著十分重要的作用。本文對DCS的Modbus通信進行了比較全面的闡述,并且分享了在實際工作中的經驗,希望對大家有一定的啟發作用。