(華東理工大學化工過程先進控制與優化教育部重點實驗室,上海 200237)
無線設備無需布網和維護成本,適用于高腐蝕、難布線等場合。但現在工廠的通信體系完整,重新開發無線化成本高、時間緊,因此需將無線數據傳輸與現有協議相結合。
文獻[1]利用ZigBee設備的IEEE地址與其Modbus地址進行綁定,并通過無線透傳的方式實現Modbus通信。
文獻[2]將ZigBee技術與Modbus相結合,并應用在電力監控系統中,對方法進行了有效的證實。
文獻[3]~[4]則采用Modbus有線/無線混合傳輸方式,使用的無線技術分別為ZigBee和IEEE 802.15.4。
文獻[5]提出了WIA網絡與Modbus協議結合的透明傳輸概念,但未對網絡的傳輸過程以及如何實現做具體描述。
本文將WIA-PA無線技術[6]和Modbus協議相結合,利用透明機制傳輸,對系統中的主機設備、從機設備的通信數據包封裝、互聯后的通信流程及實際應用做詳細的介紹。
透明傳輸概念是指在傳輸過程中,傳輸設備不對所傳輸的數據進行任何處理,不對數據包作任何修改的傳輸方式[7]。本文利用WIA-PA的應用層,通過透明傳輸機制進行標準Modbus協議的數據傳輸。設計要求傳輸包將完整的Modbus協議報文封裝在WIA-PA網絡的通信協議應用層的報文部分;而物理層、MAC層、網絡層采用WIA-PA網絡標準[8],將報文傳輸到WIA-PA網絡的終端;將應用層報文解析后,直接將Modbus包投遞到設備,完成透明傳輸。
為加快開發速度和減少成本費用,主機利用原先的有線Modbus主站,在連接RS- 485的端口上連接WIA網關相應端口。WIA-PA無線網關采用WIAPA-GW1498,自身可支持RS- 485接口,可與具有RS- 485通信協議的總線進行通信。
從機設備的設計主要是串口通信部分的設計。從機設備的通信使用無線模塊傳輸代替原先的有線傳輸。無線模塊可采用WIAPA-M1800通信模塊,模塊提供一個由數據收發管腳TX和RX組成的串口接口。通過該接口模塊可進行無線網絡發送與接收串口數據。串口參數如表1所示。

表1 串口參數
微處理器與無線模塊之間的所有報文全部以HDLC包格式成幀,對應每個命令成一幀。HDLC包格式如表2所示。

表2 HDLC包格式
無線模塊的Network ID、設備MAC地址、設備Join Key和廣播信道在初始化時根據主機設備的網關進行設定,一旦設定便不能更改,否則無法進入WIA-PA網絡[9]。在通信編程中需要用到兩個命令號,分別是數據透明上傳命令號0x17和數據透明下傳命令號0x18。
比較Modbus兩種傳輸模式,RTU模式幀結構和數據結構相對簡單,而且不需要轉換,適合封裝在WIA-PA協議幀的數據域內。RTU模式中每個字節有11位,包含1位起始位、8位數據位、1位奇偶校驗位和1位停止位。數據位要求先發最低有效位,可無校驗位[10]。
RTU模式的報文幀最大為256 B,由發送設備將帶有起始和停止標記的幀打包入Modbus報文。報文采用循環冗余檢驗。在RTU模式下,報文幀被時長至少為3.5個字符時間的空閑間隔區分。整個報文幀必須以連續的字節流發送,而且若兩個字節之間的空閑間隔大于1.5個字符時間,則報文被認為不完整,將被接收方丟棄[11]。由于此設計的波特率采用9 600 bit/s,Modbus要求這兩個字符時間必須嚴格遵守。
通過軟件編程將Modbus RTU幀裝入WIA-PA報文發送,或將Modbus RTU幀從收到的WIA-PA報文中解析出來,串口設置為UART數據通信。硬件上,將設備微處理器的RXD和TXD與無線模塊的TXD和RXD連接。從機設備的串口通信便設計完成。
WIA-PA與Modbus互聯后,每個從機設備要有兩個地址。一個是Modbus的地址,用于Modbus設備的尋址;另一個是無線模塊的地址,用于WIA-PA網絡的尋址。當從機設備加入網絡時,網關添加了一張關于從機設備Modbus地址和WIA-PA地址的地址映射表[12]。
當網關需要向某臺從機設備無線發送帶有Modbus報文時,需要根據映射關系找到Modbus地址對應的WIA-PA網絡中無線模塊的地址,才能通過無線網絡發到終端從機設備上。
主機對從機進行一次Modbus命令配置的流程與從機響應主機一次請求命令的流程如圖1所示。

圖1 主機配置與從機響應流程
數據通信采用Client/Service方式傳輸,Modbus采用主從方式收發數據。當主機需要發送請求數據幀時,按照表3所示的含有RTU請求幀的WIA-PA數據請求幀將報文打包后無線發出,從機接收報文并進行相應的處理。
某些功能碼需要從機向主機發送一個應答幀,以通知從機執行情況或者相應寄存器的狀態,或者回傳相關錯誤碼等信息。應答碼則按照表3所示的含有RTU應答幀的WIA-PA數據應答幀將報文打包,并回傳給主機。

表3 含有RTU數據幀的WIA-PA幀
本文將設計方案應用于無線溫度變送器和無線Modbus主站的實時溫度測量通信。其中無線溫度變送器為從機設備,與無線網關相連的Modbus主站和上位機為主機設備。溫度變送器是工業現場常用的儀表,它接收熱電偶或熱電阻的輸入信號,進入極低功耗的A/D轉換器進行模數轉換,實現溫度值的測量。
為保證數據傳輸的實時性,發送、接收數據的工作要在中斷中執行。若Modbus無線主站需要獲取的Modbus地址是0x55的無線溫度變送器所測的溫度值,即讀取溫度值所在寄存器的值。通信過程大致如下。
① 主站首先根據Modbus與WIA-PA網絡地址映射表,找到地址0x55對應的WIA-PA無線模塊的16位短地址24-00-00-01-00-00-00-09。然后按Modbus命令“讀輸入寄存器”的格式:功能碼0x04、起始地址0x0008、輸入寄存器數量0x0002、計算校驗值,得到請求命令幀7E-01-28-24-00-00-01-00-00-00-09-55-04-00-08-00-02-DD-FD-64-DD-7E。最后經網關傳至儀表。
② 無線模塊收到主站發來的命令幀,微處理器響應中斷后,進入中斷服務程序。中斷服務程序須在報文剛接收時設置好接收緩沖區,將整個報文放入其中。
③ 報文接收完整后,將報文中WIA-PA協議的包頭、命令號、CRC校驗值、包尾拆掉,僅保留Modbus數據命令幀,然后賦到如下幀結構中,以便做進一步的功能處理。其中,加入的數據域長度是方便檢查發送數據的完整性。
typedef struct{
unsigned char Address;
//MB目標地址
unsigned char Function;
//MB功能代碼
unsigned char Data[MB_FRAME_SIZE];
//MB請求/應答數據
unsigned int Length;
//不發送,字節長度
unsigned int CRCResult;
//MB CRC校驗
}MB_FRAME;
④ 對功能碼、本機地址或廣播地址、CRC校驗、接收數據超幀等信息進行異常檢驗。對于異常結果,返回功能碼和異常碼,主機收包并解析,對命令請求做相應修改后再發送。
⑤ 若檢驗無異常,則開始進行正常處理,讀取8、9兩個寄存器中的值,加上字節數0x04。然后將它們放入Modbus的應答幀數據域內,本機地址和功能碼不變。經過CRC校驗后,裝入WIA-PA數據域內,按WIA-PA打包后發給無線模塊,無線模塊將其送往網關。
⑥ 網關收到數據包(7E-01-40-24-00-00-01-00-00-00-09-55-04-04-E3-00-41-F6-D3-69-B2- 53-7E)后,拆包提取Modbus報文(55-04-04-E3-00-41-F6-D3-69),并通過RS- 485接口送至Modbus主站,主站顯示儀表溫度。一次無線通信完成。
應用結果表明,WIA-PA與Modbus互聯后的無線溫度變送器與WIA-PA無線網絡完全兼容,通信功能符合標準的要求,可實時進行溫度采集和請求應答,實現了遠距離傳輸,且在瞬時溫度影響下也能正常工作。此外,儀表使用智能自組織網絡技術,數據可靠性高達99%以上,能適應溫度測量的基本要求,功耗低,無線傳輸安全性高,證明了設計方案的可行性。
隨著無線技術在工業領域的逐步推廣,WIA-PA技術必將與越來越多的工業通信網絡或現場總線進行互操作。本文介紹的WIA-PA與Modbus互聯的透明傳輸機制,在對具體技術進行分析的同時,給出了實現的設計方案和具體應用。設計方法具有一定的通用性,除了可以用在各種需要Modbus協議的無線WIA-PA設備上,還適用于WIA-PA與其他工業通信技術的互聯,其設計原理可謂是相通的。此外,應用中的無線溫度變送器因其使用環境惡劣、無需網絡布線、安裝成本低、入網即可使用以及易擴展和升級等優點,具有很好的應用前景。
[1] 涂煊,彭瑜,周怡颋,等.Modbus通信協議的紫蜂無線傳輸網絡的研究[J].自動化儀表,2007,28(7):10-13.
[2] 周惠椒,譚喜堂,朱琴躍,等.ZigBee無線通信技術在電力監控系統中的應用[J].低壓電器,2011(18):36-41.
[3] 劉桂臣,陽憲惠.Modbus報文有線/無線混合傳輸的實現[J].清華大學學報:自然科學版,2008,48(S2):1844-1847.
[4] Guarese G B M,Sieben F G,Webber T,et al.Exploiting Modbus protocol in wired and wireless multilevel communication architecture[C]//Computing System Engineering(SBESC),2012 Brazilian Symposium,2012:13-18.
[5] 曾鵬,肖金超,張瓊.WIA網絡與MODBUS網絡互聯設計與實現[J].儀器儀表標準化與計量,2009(4):35-38.
[6] 彭瑜.工業無線標準WIA-PA的特點分析和應用展望[J].自動化儀表,2010,31(1):1-9.
[7] Gao Jun,Lai Wuwen,Wu Yaping,et al.Protocol study of ZigBee serial transparent transmission with voltage detection function[C]//Wireless Communications,Networking and Mobile Computing(WiCOM),the 7th International Conference,2011:1-4.
[8] Liang Wei,Zhang Xiaoling,Yang Xiao,et al.Survey and experiments of WIA-PA specification of industrial wireless network[J].Wireless Communications & Mobile Computing,2010,11(8):1197-1212.
[9] Tang Zhong,Cheng Mengjin,Zeng Peng,et al.Real-time communication in WIA-PA industrial wireless networks[C]//Computer Science and Information Technology(ICCSIT),the 3rd IEEE International Conference,2010:600-605.
[10]Morris T,Vaughn R,Dandass Y.A retrofit network intrusion detection system for Modbus RTU and ASCII industrial control systems[C]//System Science(HICSS),the 45th Hawaii International Conference,2012:2338-2345.
[11]Kuang Jian,Wang Guibao,Bian Jiali.A Modbus protocol stack compatible with RTU/TCP frames and embedded application[C]//Advances in Intelligent and Soft Computing,Springer-Verlag Berlin Heidelberg,2012:765-770.
[12]邢偉偉,白瑞林,孟偉.ZigBee無線網關在Modbus通信中的應用[J].計算機工程與應用,2011,47(29):81-84.