李昕澤,鄧中華
(1.華中科技大學,武漢 430074; 2.武漢華茂工業(yè)自動化公司)
?
一種工業(yè)遠程實時監(jiān)控系統(tǒng)的實現
李昕澤1,鄧中華2
(1.華中科技大學,武漢 430074; 2.武漢華茂工業(yè)自動化公司)
為了解決當今工業(yè)生產中實時監(jiān)控系統(tǒng)通信距離短和傳輸速率慢的問題,提出了一種基于CAN總線和ModbusTCP的遠程監(jiān)控系統(tǒng)方案。該方案以異構雙核處理器F28M35x為硬件平臺核心,移植了嵌入式實時操作系統(tǒng)μC/OS-II和LwIP網絡協(xié)議棧,并開發(fā)了人機監(jiān)控程序。實驗結果表明該方案有效地實現了遠距離、高速率的工業(yè)數據通信,達到了遠程實時監(jiān)控系統(tǒng)的各項要求。
F28M35x;實時監(jiān)控系統(tǒng);ModbusTCP;LwIP
本文提出了一種基于嵌入式實時操作系統(tǒng)μC/OS-II的采用ModbusTCP協(xié)議來實現遠程實時監(jiān)控系統(tǒng)的方案,有效地解決了工業(yè)應用中設備與監(jiān)控系統(tǒng)通信速率慢、傳輸距離短的問題,并成功將其應用于武漢華茂工業(yè)自動化公司的印刷套色設備的遠程監(jiān)控系統(tǒng)中。
本文采用的主控制器為TI公司生產的異構雙核處理器F28M35x,該芯片雙核由主系統(tǒng)ARM Cortex-M3核和控制系統(tǒng)TMS320C28x核組成,實際應用中,Cortex-M3內核主要負責數據通信、協(xié)議轉換及操作系統(tǒng)的植入,TMS320C28x內核的浮點運算功能支持高效可靠的控制算法,雙核間通過片上IPC(Inter-Process Communication)模塊進行數據交互。本文中的監(jiān)控設備采用HITECH公司生產的支持Ethernet通信的HMI設備PWS6800C。
本遠程實時監(jiān)控系統(tǒng)在運行過程中,系統(tǒng)現場套色設備各通道數據采集通過CAN總線協(xié)議傳輸給主芯片F28M35x,CAN模塊將CAN郵箱里的數據取出來,分析計算后將核心參數交給協(xié)議棧進程,協(xié)議棧對該數據進行各層封裝后再通過EMAC模塊傳輸到以太網總線上,在監(jiān)控設備和工業(yè)現場的控制板已經建立了通信的基礎上,遠程的HMI人機設備可以通過以太網實時獲取套色設備的數據,達到遠程監(jiān)控的目的。工業(yè)現場的控制板為TI公司研發(fā)的以F28M35x為主芯片的開發(fā)板套件Concerto開發(fā)板。本系統(tǒng)整體原理圖如圖1所示。

圖1 系統(tǒng)整體原理圖
系統(tǒng)的實現需要完成的主要任務有:嵌入式操作系統(tǒng)μC/OS-II在F28M35x上的移植、CAN協(xié)議在F28M35x上的實現、基于LwIP協(xié)議棧的ModbusTCP網絡協(xié)議在μC/OS-II上的實現及上位機HMI觸摸屏程序的開發(fā)。F28M35x軟件設計結構如圖2所示。
2.1 CAN協(xié)議在F28M35x上的實現

圖2 F28M35x軟件設計結構
CAN(Controller Area Network)總線協(xié)議目前已廣泛應用于工業(yè)通信中,是一種自動化系統(tǒng)常用的多主方式的串行通信總線。CAN的標準報文幀結構如圖3所示。
具體實現CAN協(xié)議的主要任務是CAN初始化函數和中斷處理函數。CAN初始化函數需要對各寄存器配置來完成模塊啟動、位定時、郵箱參數、波特率設置、運行模式選擇等任務,然后初始化函數打開內核級中斷和子中斷。中斷服務程序完成的任務有檢測中斷來源、執(zhí)行相關的數據提取和回應等。

圖3 CAN的標準報文幀結構
本系統(tǒng)中,在CAN基本通信實現后,加入了定時查詢報文,旨在獲取套色各通道的節(jié)點狀態(tài)。定時查詢報文在200 ms定時中斷服務程序完成,從節(jié)點會將自己的狀態(tài)數據返回主站,主站再通過Modbus/TCP協(xié)議將此狀態(tài)傳給遠程實時人機監(jiān)控設備。
2.2 μC/OS-II在F28M35x上的移植
μC/OS-II是一個完整的搶占式多任務內核,執(zhí)行效率高,占用空間較小,實時性能和可擴展性較強。其源代碼完全公開,移植性很強,適合在各種微處理器上運行。μC/OS-II為每個任務賦予了不同的優(yōu)先級,不支持時間輪轉調度法。μC/OS-II提供了任務管理的各種函數可供移植者調用,包括任務的創(chuàng)建、刪除、優(yōu)先級翻轉、掛起等。為了實現系統(tǒng)的各項功能,需要對任務進行劃分。主要包括TCP/IP協(xié)議棧進程、CAN數據收發(fā)進程、以太網數據收發(fā)進程、I/O任務、時鐘信號等任務。
移植過程中,主要實現的內容是與處理器相關的文件編寫,包括C語言編寫的OS_CPU.H和OS_CPU_C.C,以及匯編語言編寫的OS_CPU_A.S。具體配置時,應注意配置參數TCP_NODELAY,該參數用于屏蔽NAGLE算法。NAGLE算法是將網絡上的小包組成大包發(fā)出去,用于減少網絡阻塞。監(jiān)控系統(tǒng)中傳輸的數據包多為小包,為了提升實時性,即使小量的數據也應該及時發(fā)送。
2.3 基于LwIP開源網絡協(xié)議棧的網絡協(xié)議移植
這部分任務是本系統(tǒng)的核心部分,ModbusTCP協(xié)議是通過移植LwIP開源協(xié)議棧實現的。LwIP是由瑞士計算機科學院開發(fā)的一套開源TCP/IP協(xié)議棧,它只占用了幾十KB的RAM和40 KB的ROM,是專用于嵌入式系統(tǒng)的協(xié)議棧。LwIP主要實現的模塊有IP、ICMP、TCP、UDP和ARP,另外也包括IGMP、PPPoE和DNS等服務。
F28M35x開發(fā)板的EMAC模塊為網絡報文幀的收發(fā)模塊,當有數據包發(fā)來的時候會觸發(fā)以太網接收中斷,中斷子服務程序再通過μDMA(Micro Direct Memory Access)模塊將接收的數據通過接收線程傳給LwIP協(xié)議棧,協(xié)議棧再對接收的數據包進行分析、重組、掛起、丟棄等操作。其中μDMA模塊為直接內存訪問,數據直接傳輸而不需要CPU的參與,增強了數據傳輸的實時性和速率。EMAC模塊接收到的以太網數據包結構如下所示。

以太網首部(14字節(jié))IP首部(20字節(jié))TCP首部(20字節(jié))Modbus報文MBAP(7字節(jié))功能碼數據以太網尾部
數據報交由LwIP協(xié)議棧處理的流程圖如圖4所示。

圖4 LwIP協(xié)議棧流程
圖4中,netif結構為網卡參數結構體,結構體中的兩個指針函數netif->input()和netif->output()分別為數據的以太網層的數據收發(fā)函數。接收到的數據包依次經過IP層和TCP層解析,檢驗校驗和、協(xié)議類型、IP地址、端口號、序列號、連接狀態(tài)、確認序號等是否正確,如果是正確的報文幀,LwIP就把它交給應用層處理。這些數據是一個帶MBAP報頭的Modbus報文,MBAP報頭是Modbus/TCP協(xié)議定義的一個7字節(jié)的報頭,包括2字節(jié)標識符、2字節(jié)協(xié)議碼、2字節(jié)長度和1字節(jié)單元標識符,接下來是1字節(jié)的功能碼和Modbus數據,應用層部分再作出相應回應。
發(fā)送數據時,應用層要發(fā)送的數據先被掛到TCP層的發(fā)送隊列,執(zhí)行函數為tcp_enquene()。在符合窗口滑動協(xié)議和擁塞控制協(xié)議情況下,將數據進行TCP頭部封裝后發(fā)送至IP層,IP層封裝了IP頭部后,再在arp緩存表尋找有沒有符合目的IP地址的MAC地址。若有則調用netif->output()函數將數據包發(fā)送出去,若沒有找到則發(fā)送ARP請求獲取目的MAC地址后再發(fā)送數據。
移植過程需要將LwIP移植于μC/OS-II操作系統(tǒng)上,LwIP中需要使用信號量進行通信,所以在sys_arch中應實現相應的信號量結構體struct sys_semt、處理函數sys_sem_new()、sys_sem_free()、sys_sem_signal()和sys_arch_sem_wait()。μC/OS-II已經實現了信號量OSEVENT的各種操作,只需要稍作修改直接調用就可以了。另外,LwIP通過消息隊列來緩沖、傳輸數據報文,因此需要實現相應的消息隊列結構和操作函數,在μC/OS-II中需要通過其內存管理模塊實現對消息的創(chuàng)建、使用、刪除和回收。μC/OS-II中沒有線程(thread)的概念,因此移植時還需要在μC/OS-II中創(chuàng)建新線程函數,并為其分配好優(yōu)先級。
本次實驗套色盒子和儀器設備均為武漢華茂工業(yè)自動化公司設備,人機監(jiān)控設備使用的是HITECH公司生產的支持網絡通信的HMI設備PWS6800C,該人機設備程序的編寫使用的是專用于人機程序編程的軟件ADP6.5。在該軟件的工程參數設定中,選擇通信方式為Ethernet通信,人機類型為網絡型,PLC種類為ModbusTCP/IP master。
本次實驗中人機設備接入路由器的網絡,該路由器IP地址為183.94.7.80,人機設備本機IP地址設為子網地址192.168.101.100。本公司有5M靜態(tài)IP網絡,將F28M35x板子接入該靜態(tài)IP網絡,靜態(tài)IP地址為113.57.163.146。程序中本地IP地址填為路由器子網IP:192.168.101.72,并在路由器設置界面的協(xié)議轉換選項中建立好映射192.168.101.72對應于端口號502。人機程序軟件設定中將目的IP地址和目的端口號填為之前設定的靜態(tài)IP113.57.163.146和502端口。8個套色盒子通過CAN總線連到F28M35x上,然后上電系統(tǒng)開始正常工作。實驗中在系統(tǒng)運行后斷開通道4、6、7三個通道的總線,監(jiān)控系統(tǒng)顯示如圖5所示。

圖5 監(jiān)控系統(tǒng)顯示圖
檢查各通道參數,與工業(yè)現場控制計算機所存儲的參數一樣。通過實驗表明,系統(tǒng)準確地完成了遠程實時監(jiān)控任務,功能強大,可擴展性強,使得工業(yè)監(jiān)控不再有地域的限制,工業(yè)設備調試未來也可通過遠程實現。

[1] Labrosse Jean J.嵌入式實時操作系統(tǒng)μC/OS-II[M]. 北京:北京航空航天大學出版社,2003: 40-153.
[2] 王慶雙. 基于ARM的CAN通訊系統(tǒng)的設計與實現[J]. 航空電子技術,2011,42(1):9-13.
[3] 王海,張娟,朱曉陽,等.TCP/IP協(xié)議族[M]. 北京:清華大學出版社,2011:300-319.
[4] 司馬莉萍. 基于ModbusTCP協(xié)議的工業(yè)控制通訊[J]. 計算機應用,2005,25(12):29-31.
[5] 李素俠,段友祥. 嵌入式TCP/IP協(xié)議的分析與研究[J]. 微計算機信息,2005(21):52-54.
[6] 王力生,梅巖,曹南洋. 輕量級嵌入式TCP/IP協(xié)議棧的設計[J]. 計算機工程,2007,2(33):246-248.
[7] 景柏豪,沈孟良.CAN-Modbus/TCP協(xié)議轉換的設計與實現[J].計算機工程與設計,2013,5(34):2-6.
李昕澤(碩士研究生),研究方向為嵌入式系統(tǒng)開發(fā)、以太網通信及其他工業(yè)通信;鄧中華(博士生導師),研究方向為嵌入式系統(tǒng)研究、自動控制原理、計算機網絡等。
An Industrial Implementation of Remote Real-time Monitoring System
Li Xinze1, Deng Zhonghua2
(1.Huazhong University of Science & Technology, Wuhan 430074,China; 2.Huamao Industrial Automation Company in Wuhan)
In order to solve the problems of short communication distance and low transmission rate in nowadays' industrial production, the paper proposes a remote real-time monitoring system based on CAN-Bus and ModbusTCP. In this program, the heterogeneous dual-core processor F28M35x works as the core of hardware platform, it transplantes embedded real-time operating system μC/OS-II and LwIP network protocol stack, and the HMI monitoring program is developed. The experimental results show that the programs effectively achieves long-distance, high-speed data communications of industry,and reaches requirements of remote real-time monitoring system and remote real-time monitoring system requirements.
F28M35x; real-time monitoring system; ModbusTCP;LwIP
TP368.1
A
迪娜
2013-07-29)