宋振鵬,孟祥印,徐鑫凱,谷翠軍
(西南交通大學(xué) 機械工程學(xué)院,四川 成都 610031)
基于Modbus與ZigBee的通信冗余過程控制系統(tǒng)開發(fā)
宋振鵬,孟祥印,徐鑫凱,谷翠軍
(西南交通大學(xué) 機械工程學(xué)院,四川 成都 610031)
針對傳統(tǒng)的工業(yè)現(xiàn)場過程控制系統(tǒng)布線量大、成本高和維護困難等問題,提出了一種采用Modbus總線技術(shù)、ZigBee無線技術(shù)和STM32技術(shù)的通信冗余監(jiān)控系統(tǒng)。該系統(tǒng)可實現(xiàn)兩種形式的通信:Modbus總線通信和作為通信冗余的ZigBee無線通信,提高了系統(tǒng)的穩(wěn)定性。下位機將工業(yè)現(xiàn)場儀器儀表采集的數(shù)據(jù)信息集中傳輸給上位機,便于對現(xiàn)場進行監(jiān)測。系統(tǒng)具有一定的隔離、抗干擾和防雷擊保護措施,適用于工業(yè)現(xiàn)場。
Modbus;ZigBee;通信冗余;過程控制
在傳統(tǒng)的過程控制系統(tǒng)中,對系統(tǒng)的實時監(jiān)測和控制是最重要的兩個環(huán)節(jié),但是現(xiàn)場設(shè)備的分布式布局造成了布線量大、設(shè)備維護困難以及可靠性低等缺點,特別是數(shù)據(jù)的傳輸存在很大的安全隱患。根據(jù)上述現(xiàn)狀,筆者以STM32F103RCT6芯片和CC2530芯片作為系統(tǒng)控制器,設(shè)計了一套基于Modbus和 ZigBee的通信冗余過程監(jiān)控系統(tǒng)替代傳統(tǒng)的過程控制系統(tǒng)。
基于 Modbus和 ZigBee的通信冗余過程控制系統(tǒng)主要分為現(xiàn)場設(shè)備、STM32處理器模塊、ZigBee無線通信模塊和上位機四個部分,系統(tǒng)整體架構(gòu)如圖1所示。通過圖1可以看出,現(xiàn)場電氣設(shè)備通過I/O口連接到現(xiàn)場的終端模塊,由終端模塊負(fù)責(zé)采集現(xiàn)場設(shè)備的數(shù)據(jù)以及對現(xiàn)場設(shè)備輸出控制指令。終端模塊通過基于Modbus協(xié)議的 RS-485總線或 ZigBee無線的方式與網(wǎng)關(guān)模塊進行通信,實現(xiàn)了通信冗余的功能。網(wǎng)關(guān)模塊通過RS-485總線與上位機通信。上位機監(jiān)控系統(tǒng)是由 Microsoft Visual Studio 2010編寫的界面監(jiān)控軟件,數(shù)據(jù)傳輸以RS-485總線通信為核心,實現(xiàn)了采集數(shù)據(jù)信息的顯示、人機交互以及溢出報警等功能。
圖1 遠(yuǎn)程冗余過程控制系統(tǒng)架構(gòu)圖
下位機硬件電路主控芯片采用基于ARM內(nèi)核Cortex-M3的STM32F10x系列F103RCT6芯片。該芯片擁有256 KB的 Flash存儲器和 48 KB RAM,具有多路定時器以及輸入輸出端口,并且具有功耗低、多線程等優(yōu)點,滿足工業(yè)現(xiàn)場設(shè)備的數(shù)據(jù)采集性能要求。ZigBee無線通信模塊采用的主控芯片是 TI公司生產(chǎn)的 CC2530芯片。CC2530內(nèi)部搭載了增強型 8051CPU,內(nèi)置德州儀器的ZigBee協(xié)議棧(Z-Stack-TM),并且具有優(yōu)良的 RF性能,適用于 ZigBee無線通信的解決方案[1]。
下位機硬件電路示意圖如圖2所示,整個系統(tǒng)的正常工作都由STM32芯片控制。在下位機硬件電路中,要保證系統(tǒng)的正常運行,除去STM32和CC2530芯片基本的外圍電路,還需要其他電路模塊,如電源模塊、RS485收發(fā)模塊、數(shù)據(jù)采集模塊等。
圖2 下位機硬件電路示意圖
電池冗余備用電路如圖3所示。為保證系統(tǒng)在工業(yè)現(xiàn)場的連續(xù)穩(wěn)定工作,設(shè)計了電池冗余的備用電路,即外部掉電時使用電池供電,外部未掉電時電路給電池充電。電池采用可反復(fù)充電的AAA鋰電池,其中TP4075為電源充電芯片,A3401為P溝道MOS管,當(dāng)外部未掉電時處于截斷狀態(tài);當(dāng)外部掉電時,MOS管處于導(dǎo)通狀態(tài),電池開始工作。
圖3 電池冗余備用電路
電源防雷擊保護電路如圖4所示。外部24 V電源經(jīng)過電源防雷擊保護電路后才可以進入系統(tǒng)電路,這一部分有效防止了因雷擊產(chǎn)生的高浪涌、快速脈沖以及靜電對系統(tǒng)電路的損壞。
圖4 電源防雷擊保護電路
光耦隔離電路如圖5所示。應(yīng)對工業(yè)現(xiàn)場惡劣的環(huán)境,信號的輸入和輸出需要經(jīng)過隔離,否則會產(chǎn)生很大的干擾,影響系統(tǒng)數(shù)據(jù)采集和控制的準(zhǔn)確性。數(shù)字信號的隔離采用光耦隔離器 PS2801進行信號的隔離。電路中的下拉電阻R43確保在沒有信號輸入時過濾由引腳自身引起的信號干擾。
圖5 光耦隔離電路
3.1Modbus通信軟件設(shè)計
下位機終端模塊與網(wǎng)關(guān)模塊之間的通信優(yōu)先使用基于Modbus協(xié)議的RS-485總線進行傳輸。RS-485收發(fā)器收發(fā)數(shù)據(jù)的方式為平衡發(fā)送和差分接收,因此具有較好的抗共模干擾能力,即有較好的抗噪聲干擾能力,并且其靈敏度極高,所以RS-485總線在中長距離的通信中備受歡迎。
Modbus協(xié)議是一種通用的標(biāo)準(zhǔn)協(xié)議,它使得控制器與控制器之間的通信成為可能,并且使不同設(shè)備生產(chǎn)商的控制設(shè)備之間進行通信、互相連接成網(wǎng)絡(luò)、實現(xiàn)集中監(jiān)控成為了現(xiàn)實[2]。Modbus協(xié)議定義了其工作方式為主從模式,在整個通信網(wǎng)絡(luò)中,只允許有一個主設(shè)備,其余則為從設(shè)備,該系統(tǒng)中網(wǎng)關(guān)模塊為主設(shè)備,終端模塊為從設(shè)備。
該系統(tǒng)采用的通信方式是廣播方式,即網(wǎng)關(guān)模塊以廣播的方式對所有終端模塊發(fā)送查詢指令。在 Modbus網(wǎng)絡(luò)中,每一個設(shè)備都有一個唯一的地址,終端模塊通過對比查詢指令中的設(shè)備地址和自己的地址是否相同來確定指令是否發(fā)送給自己[3]。
系統(tǒng)信息傳輸方式采用Modbus RTU方式,在該模式中每 8 bit字節(jié)被定義為兩個 4 bit的十六進制字符[4],其通信的格式幀如圖6所示。
圖6 RTU格式幀
系統(tǒng)中 Modbus協(xié)議是由移植的 FreeModbus協(xié)議棧來實現(xiàn),F(xiàn)reeModbus協(xié)議棧實現(xiàn)了Modbus協(xié)議函數(shù)的封裝,開發(fā)時只需要調(diào)用相應(yīng)的API函數(shù),其所支持的協(xié)議功能碼完全滿足本系統(tǒng)的設(shè)計需求,該系統(tǒng)應(yīng)用到的功能碼有0x01(讀線圈)、0x02(讀開關(guān)量)、0x03(讀寫保持寄存器)、0x04(讀輸入寄存器)。協(xié)議功能碼通過對應(yīng)的處理函數(shù)和回調(diào)函數(shù)實現(xiàn)數(shù)據(jù)的讀或?qū)?。圖7所示為RS-485總線運用 Modbus協(xié)議棧進行串口采集任務(wù)的流程圖。
圖7 RS-485串口采集任務(wù)流程圖
3.2ZigBee通信軟件設(shè)計
作為系統(tǒng)冗余的通信方式,當(dāng)Modbus總線通信失效時,ZigBee無線通信會被激活(空閑時進入休眠),用來完成終端模塊與網(wǎng)關(guān)模塊之前的數(shù)據(jù)通信,網(wǎng)絡(luò)通信的切換由網(wǎng)關(guān)模塊控制。
ZigBee是一種基于IEEE802.15.4標(biāo)準(zhǔn)的低功耗局域網(wǎng)協(xié)議,其具有低成本、低功耗以及組網(wǎng)靈活等優(yōu)點,在無線數(shù)據(jù)傳輸方案中應(yīng)用廣泛。
在ZigBee組網(wǎng)網(wǎng)絡(luò)中,設(shè)備根據(jù)其功能可以分為三種不同的角色:協(xié)調(diào)器節(jié)點、終端節(jié)點和路由器節(jié)點。協(xié)調(diào)器節(jié)點是ZigBee網(wǎng)絡(luò)不可缺少的一環(huán),在ZigBee網(wǎng)絡(luò)中有且僅有一個,主要功能是網(wǎng)絡(luò)的建立和維護。終端節(jié)點主要負(fù)責(zé)接收協(xié)調(diào)器節(jié)點命令,并響應(yīng)相應(yīng)的數(shù)據(jù)信息。路由器節(jié)點主要負(fù)責(zé)選取網(wǎng)絡(luò)通信信道以及轉(zhuǎn)發(fā)數(shù)據(jù)。ZigBee網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)主要有星型、網(wǎng)狀型和樹狀型三種[5]。
該系統(tǒng)中,網(wǎng)關(guān)模塊作為協(xié)調(diào)器,終端模塊作為終端節(jié)點,因為網(wǎng)絡(luò)結(jié)構(gòu)比較簡單,所以網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)為星型結(jié)構(gòu)。協(xié)調(diào)器組網(wǎng)方式為廣播,終端節(jié)點組網(wǎng)方式為點播。
無論是協(xié)調(diào)器還是終端節(jié)點,通信軟件的開發(fā)都是基于 Z-Stack協(xié)議棧,協(xié)議棧已經(jīng)實現(xiàn)了 ZigBee的通信協(xié)議,用戶可以使用其提供的API函數(shù)進行應(yīng)用程序開發(fā)。圖8為Z-Stack協(xié)議棧的運行流程圖。
圖8 Z-Stack運行流程圖
協(xié)議棧設(shè)計了一個管理任務(wù)處理函數(shù)的數(shù)組taskArr[],開發(fā)者需要將任務(wù)處理函數(shù)加入數(shù)組序列。該數(shù)組簡化后定義如下:
其中 ZigBeeApp_ProcessEvent()為該系統(tǒng)設(shè)計的通信處理函數(shù)。
上位機軟件的設(shè)計是在 Microsoft Visual Studio 2010開發(fā)平臺下使用C#語言進行的,VS是目前最流行的Windows平臺應(yīng)用程序的集成開發(fā)環(huán)境。C#語言集成了VB語言的可視化操作和C++的高運行效率,成為了當(dāng)前.NET開發(fā)的首選語言[6]。
上位機軟件主要實現(xiàn)數(shù)據(jù)的可視化和更好的人機交互,下位機發(fā)送的數(shù)據(jù)很難直觀地表達出當(dāng)前系統(tǒng)的工作狀態(tài),利用VS2010軟件編寫上位機監(jiān)控界面,使用Chart控件實現(xiàn)數(shù)據(jù)的圖表化顯示,同時設(shè)置報警溢出閾值,及時發(fā)現(xiàn)系統(tǒng)異常進而進行維護。上位機監(jiān)控界面功能框圖如圖9所示。
圖9 上位機監(jiān)控界面功能框圖
本文采用Modbus總線技術(shù)和 ZigBee無線技術(shù)設(shè)計了一種通信冗余過程控制系統(tǒng),下位機實現(xiàn)數(shù)據(jù)的采集和通信的冗余,上位機實現(xiàn)數(shù)據(jù)的監(jiān)測和設(shè)備控制。硬件電路具有一定的抗干擾、防雷擊能力,以應(yīng)對復(fù)雜的工業(yè)現(xiàn)場環(huán)境,該系統(tǒng)有一定的推廣價值,為解決傳統(tǒng)過程控制系統(tǒng)中的諸多難題提供了解決方案。
[1]李俊斌,胡永忠.基于CC2530的 ZigBee通信網(wǎng)絡(luò)的應(yīng)用設(shè)計[J].電子設(shè)計工程,2011,19(16):108-111.
[2]朱懿,蔣念平.Modbus協(xié)議在工業(yè)控制系統(tǒng)中的應(yīng)用[J].微計算機信息,2006(22):118-120.
[3]盧文俊,冷杉,楊建軍.基于 Modbus協(xié)議的控制器遠(yuǎn)程監(jiān)控系統(tǒng)[J].電力自動化設(shè)備,2003,23(6):54-56.
[4]薛海濤,和衛(wèi)星,陳曉平.數(shù)據(jù)采集系統(tǒng)中 Modbus協(xié)議的實現(xiàn)[J].微計算機信息,2007,23(10-1):68-69.
[5]章偉聰,俞新武,李忠成.基于 CC2530及 ZigBee協(xié)議棧設(shè)計無線網(wǎng)絡(luò)傳感器節(jié)點[J].計算機系統(tǒng)應(yīng)用,2011,20(7):184-187.
[6]劉奇,林崗.基于Visual Studio 2010的UG二次開發(fā)研究[J].計算機應(yīng)用,2015,34(1):40-41.
Development of redundant communication process control system based on Modbus and ZigBee
Song Zhenpeng,Meng Xiangyin,Xu Xinkai,Gu Cuijun
(School of Mechanical Engineering,Southwest Jiaotong University,Chengdu,610031)
To solve problems of the traditional industrial field process control system such as too much amount of wiring,high cost, difficult maintenance,this paper proposes a redundancy monitoring system based on Modbus,ZigBee and STM32.This system has two means of communication:Modbus bus communication and ZigBee wireless communication for redundant communication,which improves the reliability of the system.It can intentionally transmit data collected by instruments in the industrial field to PC.Meanwhile,the system has a certain degree of measures of isolation,interference and lightning protection for applying in the industrial field.
Modbus;ZigBee;redundant communication;process control
TP274
A
10.16157/j.issn.0258-7998.2016.01.016
2015-10-24)
宋振鵬(1990-),通信作者,男,碩士研究生,主要研究方向:過程控制、機器人,E-mail:695729993@qq.com。
孟祥?。?979-),男,副教授,主要研究方向:過程控制。
徐鑫凱(1990-),男,碩士研究生,主要研究方向:過程控制。
中文引用格式:宋振鵬,孟祥印,徐鑫凱,等.基于 Modbus與ZigBee的通信冗余過程控制系統(tǒng)開發(fā) [J].電子技術(shù)應(yīng)用,2016,42(1):61-64.
英文引用格式:Song Zhenpeng,Meng Xiangyin,Xu Xinkai,et al.Development of redundant communication process control system based on Modbus and ZigBee[J].Application of Electronic Technique,2016,42(1):61-64.