沈林暉
(中石化鎮海煉化分公司,浙江 寧波 315207)
Modbus RTU串口通信技術成熟可靠、應用方便、實用性強,可以很容易地實現不同系統之間的數據通信,因此在工業自動化控制系統中被廣泛應用,其應用特點在于:Modbus RTU串口通信開放透明,幾乎所有的自動化控制系統都支持;Modbus RTU串口通信實現成本很低;使用Modbus RTU串口通信技術,便于設備專利商設計可加密保護的專用控制系統,而不受用戶其他系統的限制,這同樣也有利于系統的標準化設計和集成,能夠減少重復性勞動;通過Modbus RTU串口通信,可以大幅減少用戶長距離鋪設模擬信號電纜,降低電纜成本和人工布線成本。采用Modbus RTU通信技術,隨設備引進的控制系統可以很方便地與用戶DCS通信,從而實現用戶所需要的指示、記錄及報警等功能。
筆者在簡要介紹Modbus RTU通信技術工作原理的基礎上,通過幾個實例來說明幾種控制系統的串口通信基本參數設置方法,幾種不同的電氣接口和站間串口通信的接線方式,以及串口通信的軟件編程組態等。
Modbus RTU通信協議是以主從(Master-Slave)方式進行數據傳輸的,沒有主站的請求從站不會發送任何數據。在主站和從站數據傳輸的過程中,主站一次只發送一個請求報文到指定的從站,然后等待從站響應;從站得到請求報文后檢查并分析數據包,然后執行報文的請求,之后再返回主站相應的響應報文;主站接收到響應報文檢查數據包,無誤之后再對接收的數據做相應處理,如果檢查有誤則重發請求報文。Modbus RTU串口通信總線上只允許有一個主站,從站可以有多個,而只有主站沒有站地址。主站和從站之間的數據交換是通過功能碼來控制的,不同的功能碼訪問不同的數據區,有的功能碼是對狀態位操作的,有的功能碼是對16位寄存器操作的。功能碼、數據區和用戶級地址(十進制)之間的對應關系見表1。

表1 數據區用戶級地址表示法及訪問權限
用戶只在西門子PLC的編程中用到功能碼,而其余大多系統只需使用用戶級地址就可以了。用戶級地址“1”(00001的簡寫)表示“數字量輸出地址1”,對應的功能碼是FC01/FC05/FC15;用戶級地址“10001”表示“數字量輸入地址1”,對應的功能碼是FC02;用戶級地址“30012”表示“16位整型輸入地址12”,對應的功能碼是FC04;用戶級地址“40012”表示“16位整型輸出地址12”,對應的功能碼是FC03/FC06/FC16。主站的請求報文包括從站地址、功能碼、數據起始地址和數據長度;從站的響應報文包括功能碼、字節計數和寄存器數據。
RS485 Modbus RTU串口通信的電纜最長可達1.2km,電纜的實際允許長度與波特率有關,波特率越大(即傳輸速度越快)允許的電纜長度越短。需要長距離通信時,可以增加中繼器來延長通信距離。
RS485 Modbus RTU串口通信一般采用兩線制接線,可以實現多點雙向通信,并且接線時一般會在總線兩邊的末端安裝終端電阻,例如:Honeywell TPS系統的Modbus RTU串口通信,當總線的長度超過305m時要在總線的末端安裝120Ω的終端電阻。
要實現Modbus RTU串口通信,首先要給主站和各從站設置一致的Modbus RTU串口通信的基本參數;然后由施工人員鋪設通信電纜總線并連接到各站的電氣接口上;最后由組態編程工程師對主站或從站進行程序編程或軟件組態。
Modbus RTU串口通信的基本參數包括:波特率、數據位、停止位和奇偶校驗。其中,波特率表示的是傳輸速率,數據位一般默認為8位,停止位一般設為1位(也有兩位),奇偶校驗可選擇無奇偶校驗、奇校驗或偶校驗。對于掛在同一條Modbus RTU串口通信總線上的所有節點來說,這些基本參數都必須一致。
每個控制系統都有參數設置界面,但所需設置的內容卻不盡相同。PLC、TPS、TRICON和PKS的Modbus RTU串口通信基本參數的設置界面如圖1~4所示。

圖1 西門子PLC從站Modbus RTU串口通信基本參數設置界面

圖2 TPS主站Modbus RTU串口通信基本參數設置界面

圖3 TRICON從站Modbus RTU串口通信基本參數設置界面

圖4 PKS(Nport5630轉換器作主站) Modbus RTU串口通信基本參數設置界面
不同控制系統或設備的Modbus RTU串口通信電氣接口的成套方式也有所不同,有的是集成在系統或設備中,如西門子的S7-200 PLC及質量流量計等;有的是可插拔的通信卡件,如西門子S7-300/400 PLC采用CP341Modbus RTU串口通信卡,Honeywell TPS采用SIModbus RTU串口通信卡,TRICON系統采用TCM4351B通信卡;有的則采用第三方通信轉換設備,如Honeywell新一代PKS系統采用Terminal Server將Modbus RTU串口通信數據轉換為以太網通信數據。這些通信卡件或設備提供的電氣接口也不盡相同,有的采用端子接線方式,有的采用9針串口,有的采用25針串口,也有的采用RJ45接口,其串口通信電氣接口分別如圖5~8所示。需要注意的是,即便是同樣的電氣接口,不同產品的引腳定義也不盡相同,接線之前一定要查看引腳的詳細說明;終端電阻的要求也有差別,設計時必須根據產品標明的距離和阻值計算后再布線或接線;在Modbus RTU串口通信總線上,一個主站一般最多可以接32個從站。

圖5 Honeywell TPS MC-TSIM12卡件串口通信電氣接口

圖6 西門子PLC CP341卡件串口通信電氣接口

圖7 TRICON TCM 4351B卡件串口通信電氣接口

圖8 Honeywell PKS NPort 5630 設備串口通信電氣接口
RS485 Modbus RTU串口通信一般采用兩線制接線方式,少數也有四線制接線方式。兩線制接線比較簡單,只要在主站和從站的電氣接口之間將正端和正端相連,負端和負端相連就行。如果采用的是四線制接線方式,那么主站的發送(TxD)端要和從站的接收(RxD)端連接,主站的接收(RxD)端要和從站的發送(TxD)端連接,并且正端接正端、負端接負端。通信設備正端引腳的符號有Data+、T(B)+、R(B)+、TxD+和RxD+,負端引腳的符號有Data-、T(A)-、R(A)-、TxD-和RxD-。符號Data+和Data-只用于兩線制接線方式,TxD、T(A)和T(B)是發送端,RxD、R(A)和R(B)是接收端。兩線制和四線制接線示例如圖9、10所示。

圖9 Honeywell TPS Modbus RTU 串口通信兩線制接線示例
對于用戶而言,大部分設備或系統要實現Modbus RTU串口通信只需進行簡單的參數設置和點組態就可以了,如Honeywell TPS和羅斯門特質量流量計的Modbus RTU串口通信組態,流量計上只需使用275或375手操器在COMM菜單下設置通信協議(RTU)、波特率、奇偶校驗、停止位(1位)和本站地址即可,其他如流量計的寄存器地址是在流量計出廠前就固化好的(表2),不需要任何操作。在Honeywell TPS 中,只需新建一個Array數組點,并在該點的參數AUXDATA3上設置通信模式(圖2),在參數AUXDATA4上設置波特率和奇偶校驗(圖2),并指定要訪問的流量計地址和數據首位寄存器地址(如20247)和通信數據量(如8)就可以訪問質量流量計的數據了。又如TRICON Modbus RTU串口通信組態,只要使用TS1131組態軟件對Modbus RTU串口通信卡設置Modbus RTU串口通信基本參數(圖3)即可,無需編寫通信程序,無需定義寄存器地址(寄存器地址已在工程師定義變量申明時自動生成)。TRICON Modbus RTU串口通信的用戶級地址(在TS1131軟件中稱之為Alias地址)的分配規則見表3。

圖10 西門子PLC Modbus RTU 串口通信四線制接線示例

表2 質量流量計數據/地址對照

表3 TRICON Modbus RTU串口通信用戶級地址分配規則
對于西門子PLC這類非面向Modbus RTU串口通信設計的系統而言,Modbus RTU串口通信的組態相對復雜一些。當西門子PLC作為從站時,CP341通信卡的硬件組態中要選擇Modbus Slave協議,然后在Protocol中設置Modbus RTU串口通信基本參數,并在功能代碼選項卡中設置寄存器區域,最后還要編寫通信程序。在通信程序中,首先是在Blocks中添加發送程序塊FB8和接收程序塊FB7(供Modbus RTU串口通信時后臺調用),然后在用戶程序中調用功能塊FB80,用它調用后臺程序塊FB7和FB8用于應答主站的數據請求。當西門子PLC作為主站時,CP341通信卡的硬件組態中要選擇Modbus Master協議,然后在Protocol中設置Modbus RTU串口通信基本參數,最后編寫比從站更復雜的通信程序,包括:一個用于發送請求的DB數據塊,該數據塊必須按照標準格式定義主站的請求內容;一個用于接收數據的DB數據塊,該數據塊要有有足夠多的地址,使之能夠存放從站返回的所有數據;程序調用發送功能塊FB8,用于發送請求數據和調用接收功能塊FB7,用于接收從站返回的數據。
Modbus RTU串口通信不但技術成熟可靠、開放透明,而且其應用成本很低,組態及布線等工作量也小,又是不同系統之間實現數據交換的理想方式,因此在大煉油和大乙烯裝置以及新舊裝置中的應用比比皆是。中石化鎮海煉化分公司從美國引進一套最新版的UOP控制系統,也采用Modbus RTU串口通信技術,而且還應用了兩路RS485 Modbus RTU串口通信:一路用于西門子S7-400與TRICON通信,另一路用于TRICON與橫河DCS通信。可見Modbus RTU串口通信仍然是不同自動化系統實現數據交換的首選,未來其應用可能還會遍布工業自動化系統的各個角落。