盤 龍,林光春,任德均,鄧霖杰
(四川大學制造科學與工程學院,四川成都 610065)
基于CAN總線的設備監控系統設計
盤 龍,林光春,任德均,鄧霖杰
(四川大學制造科學與工程學院,四川成都 610065)
介紹了一種基于CAN總線的設備監控系統的設計方法,監控的對象是不同品牌的PLC。系統由一個主站模塊和30個分支節點模塊組成,各模塊均采用ARM Cortex-M3內核的STM32F107系列單片機,它擁有內置CAN控制器,能夠高效的實現CAN總線通信。此外,各節點模塊還擁有多種通信接口,支持多種PLC通信協議。
CAN總線;Cortex M3;PLC通信協議
CAN總線可靠性高,并具有良好的錯誤檢測能力,可用于實現遠距離串行通信。本文所述網絡在遠距離(布線長度達1.2 km左右),強干擾(布線區域分布著大量大功率設備)的現場環境中,亦可使用100 kbit/s以上的總線波特率現實數據的可靠傳輸,滿足系統實時性要求。所選用的CAN驅動器MCP2551能夠可靠驅動20個以上的節點。
(1)現場的設備分布情況
現場需要監控的設備分布在占地面積約5 000 m2的工房內,布線里程達到1.2 km。周圍環境復雜,干擾嚴重。設備種類多,且屬于不同年代的設備。
(2)分布式網絡結構
本系統采用分布式網絡布局,共有3層主從關系:工控機對主站;主站對分支節點;節點對PLC。主設備向從設備發命令,從設備收到命令后執行相應的動作。
主站和各分支節點組成的CAN總線網絡是整個系統的主體部分。它作為工控機與PLC之間通信的橋梁,完成了兩項功能:1)充當工控機與PLC之間的通信介質;2)將PLC的各種通信協議(包括:HOSTLINK、MODBUS以及MPI協議)轉換為自定義的通信協議,以便上位機軟件對數據進行解析。
(3)系統主要配置
硬件配置:無風扇工控機及觸摸屏顯示器1臺,主站模塊1個,節點模塊30個;
軟件配置:操作系統:Windows Embedded 7/ Windows Embedded XP;
數據庫: SQL Server。

圖1 網絡結構示意圖
(1)CAN總線接口電路設計
總線控制器采用單片機自帶的bxCAN模塊,支持CAN協議2.0A和2.0B[1-2]。
單片機CAN收發引腳通過高速光耦6N137與電平轉換芯片MCP2551相連。圖2即為總線的接口電路圖(隔離電源部分沒有展示出來)。
(2)CAN應用層協議
在CAN2.0協議中,只對物理層和數據鏈路層作了規定[4]。用戶可以自行制定應用層協議。本系統所設計的協議將CAN總線上的數據分為兩大類:命令類和數據類,并將每一類數據按重要程度的不同再次細分。無論是主站還是從站,對總線上數據類型的鑒別都是通過標識符過濾器實現的,過濾器對數據的篩選是由bxCAN控制器硬件完成。
(3)CAN總線通信實現的關鍵問題
由于CAN總線的實際鋪設距離較長,達到了1 200 m,同時,周圍存在很多干擾源,如:電力線,大型電機等。并且,每個節點都存在與PLC的電氣連接(包括節點的供電線路以及節點與PLC的通信線路),所以必須特別注意網絡的隔離屏蔽設計。
如圖3所示,節點模塊的串口電路(RS-232接口)與CAN接口電路在電氣上沒有隔離,即:有公共的電源和地。如果從某臺PLC引入干擾信號(如:PLC地電平的擾動),那么干擾將進入節點模塊中的CAN接口電路,影響到CAN電平轉換器的正常工作,嚴重時會對系統的穩定性構成威脅:某一個節點模塊失去電力供應,這時由節點與PLC的通信線引入干擾,在節點模塊失去了穩壓電源對干擾信號有吸收抑制作用情況下[5],整個網路變得非常脆弱(干擾信號有可能會占據CAN總線使用權,使得其他節點之間無法通信)。
在此,選用B0505隔離電源與高速光耦6N137將節點模塊的串口電路與其他功能模塊實現隔離,每個部分使用獨立的電源和地參考平面。
如圖4所示,此時,即使某個節點受到了嚴重的干擾,也只會對單臺設備的通信造成影響,而不會妨礙總線上的通信。

圖2 CAN總線接口電路
(1)串行通信接口電路
串行通信接口負責實現節點模塊與PLC的通信。由于涉及的PLC的品牌及型號眾多,并且PLC的某一種類型通信口可能已經被占用,所以,在硬件上要提供足夠豐富的接口,包括:RS-232,RS-422以及RS-485接口。使用一個撥碼開關來選擇需要使用的串口類型,串口參數的配置在上位機軟件上完成。
(2)PLC串口通信協議
串口通信需要嚴格的按照PLC廠商提供的協議規范。OMRON全系列均使用HOSTLINK協議[3],協議完全公開,可以完成對PLC的大多數操作(如:模式切換、讀寫操作等),所以無需修改PLC中的應用程序;ABB的KT93型PLC購買于20年前,相關資料匱乏,所以在PLC程序中添加一段自定義的通信代碼,使用PLC的RS-232端口進行通信;ABB的AC500型PLC可提供一個串口,配置為MODBUS協議;西門子S7-300可提供一個RS485串口,采用MPI協議進行通信,MPI協議屬于不公開協議,在此,使用邏輯分析儀監聽西門子專用編程電纜與PLC之間的通信,破譯了部分報文格式,最終以187.5 kbit/s的波特率實現了與西門子S7-300的部分通信功能,滿足系統的需求。
完成了通信協議的解析工作,就可以讀取PLC中指定的寄存器單元的數據,并可以按要求,給某個寄存器單元或者位寫入相應的值,實現控制功能。

圖3 串口電路域CAN接口電路之間共地

圖4 串口電路與CAN接口電路之間徹底的電氣隔離
上位機軟件使用C#語言編寫,為用戶提供交互接口,實現定向采集,即:用戶指定某臺PLC的某個寄存器的某一位(或者某一段地址),系統便可以完成采集工作,并將采集到的數據顯示出來,同時保存到數據庫中。
用戶還可以將系統設置為自動周期性采集,此時需要用戶提供一個需要采集的數據地址清單,這樣系統會自動進行核算,給出一個兼顧實時性與可靠性的參考采樣周期(上位機與CAN總線主站節點通信,主站節點與整個分布式網絡通信,各個節點分別與相應的PLC設備通信,這些過程需要時間),用戶可以根據這個參考采樣周期進行恰當的配置。
本文設計的基于CAN總線的分布式監控系統具有很高的實時性與可靠性,已經在生產現場長時間穩定的運行,給用戶提供了設備遠程控制功能,并保存了設備的故障記錄,為下一步故障診斷系統的建設提供了硬件平臺和數據積累。
[1]劉軍.例說STM32[M].北京:北京航空航天大學出版社,2011.
[2]彭剛,秦志強.基于ARM Cortex-M3的STM32系列嵌入式微控制器應用實踐[M].北京:電子工業出版社,2011.
[3]范永勝,徐鹿眉.可編程控制器應用技術[M].北京:中國電力出版社,2010.
[4]楊春杰.CAN總線技術[M].北京:北京航空航天大學出版社,2010.
[5]鄭軍奇.EMC電磁兼容設計與測試案例分析[M].北京:電子工業出版社,2010.
The Design of an Equipment Monitor and Control System Based on CAN Bus
PAN Long,LIN Guang-chun,REN De-jun,DENG Lin-jie
(Department of Mechanical and Electrical Engineering of Sichuan University,Chengdu610065,China)
This paper presents a method to design a kind of equipment monitor and control system based on CAN bus.The system is consist of PLCs in different brands,one Master module and 30 Slaves,each of which has a STM32F107 MCU with Cortex-M3 core,containing an internal CAN bus controller that makes the CAN bus works efficiently.In addition,each module has multiple transmission interfaces and supports communication protocols of all the PLCs on line.
CAN bus;Cortex M3;PLC Communication protocol
TP273
A
1009-9492(2014)03-0050-03
10.3969/j.issn.1009-9492.2014.03.015
盤 龍,男,1988年生,廣西桂林人,碩士研究生。研究領域:嵌入式系統,機電控制工程。
(編輯:向 飛)
2013-09-04