盤 龍,林光春,任德均,鄧霖杰
(四川大學(xué)制造科學(xué)與工程學(xué)院,四川成都 610065)
基于CAN總線的設(shè)備監(jiān)控系統(tǒng)設(shè)計(jì)
盤 龍,林光春,任德均,鄧霖杰
(四川大學(xué)制造科學(xué)與工程學(xué)院,四川成都 610065)
介紹了一種基于CAN總線的設(shè)備監(jiān)控系統(tǒng)的設(shè)計(jì)方法,監(jiān)控的對象是不同品牌的PLC。系統(tǒng)由一個(gè)主站模塊和30個(gè)分支節(jié)點(diǎn)模塊組成,各模塊均采用ARM Cortex-M3內(nèi)核的STM32F107系列單片機(jī),它擁有內(nèi)置CAN控制器,能夠高效的實(shí)現(xiàn)CAN總線通信。此外,各節(jié)點(diǎn)模塊還擁有多種通信接口,支持多種PLC通信協(xié)議。
CAN總線;Cortex M3;PLC通信協(xié)議
CAN總線可靠性高,并具有良好的錯(cuò)誤檢測能力,可用于實(shí)現(xiàn)遠(yuǎn)距離串行通信。本文所述網(wǎng)絡(luò)在遠(yuǎn)距離(布線長度達(dá)1.2 km左右),強(qiáng)干擾(布線區(qū)域分布著大量大功率設(shè)備)的現(xiàn)場環(huán)境中,亦可使用100 kbit/s以上的總線波特率現(xiàn)實(shí)數(shù)據(jù)的可靠傳輸,滿足系統(tǒng)實(shí)時(shí)性要求。所選用的CAN驅(qū)動器MCP2551能夠可靠驅(qū)動20個(gè)以上的節(jié)點(diǎn)。
(1)現(xiàn)場的設(shè)備分布情況
現(xiàn)場需要監(jiān)控的設(shè)備分布在占地面積約5 000 m2的工房內(nèi),布線里程達(dá)到1.2 km。周圍環(huán)境復(fù)雜,干擾嚴(yán)重。設(shè)備種類多,且屬于不同年代的設(shè)備。
(2)分布式網(wǎng)絡(luò)結(jié)構(gòu)
本系統(tǒng)采用分布式網(wǎng)絡(luò)布局,共有3層主從關(guān)系:工控機(jī)對主站;主站對分支節(jié)點(diǎn);節(jié)點(diǎn)對PLC。主設(shè)備向從設(shè)備發(fā)命令,從設(shè)備收到命令后執(zhí)行相應(yīng)的動作。
主站和各分支節(jié)點(diǎn)組成的CAN總線網(wǎng)絡(luò)是整個(gè)系統(tǒng)的主體部分。它作為工控機(jī)與PLC之間通信的橋梁,完成了兩項(xiàng)功能:1)充當(dāng)工控機(jī)與PLC之間的通信介質(zhì);2)將PLC的各種通信協(xié)議(包括:HOSTLINK、MODBUS以及MPI協(xié)議)轉(zhuǎn)換為自定義的通信協(xié)議,以便上位機(jī)軟件對數(shù)據(jù)進(jìn)行解析。
(3)系統(tǒng)主要配置
硬件配置:無風(fēng)扇工控機(jī)及觸摸屏顯示器1臺,主站模塊1個(gè),節(jié)點(diǎn)模塊30個(gè);
軟件配置:操作系統(tǒng):Windows Embedded 7/ Windows Embedded XP;
數(shù)據(jù)庫: SQL Server。
圖1 網(wǎng)絡(luò)結(jié)構(gòu)示意圖
(1)CAN總線接口電路設(shè)計(jì)
總線控制器采用單片機(jī)自帶的bxCAN模塊,支持CAN協(xié)議2.0A和2.0B[1-2]。
單片機(jī)CAN收發(fā)引腳通過高速光耦6N137與電平轉(zhuǎn)換芯片MCP2551相連。圖2即為總線的接口電路圖(隔離電源部分沒有展示出來)。
(2)CAN應(yīng)用層協(xié)議
在CAN2.0協(xié)議中,只對物理層和數(shù)據(jù)鏈路層作了規(guī)定[4]。用戶可以自行制定應(yīng)用層協(xié)議。本系統(tǒng)所設(shè)計(jì)的協(xié)議將CAN總線上的數(shù)據(jù)分為兩大類:命令類和數(shù)據(jù)類,并將每一類數(shù)據(jù)按重要程度的不同再次細(xì)分。無論是主站還是從站,對總線上數(shù)據(jù)類型的鑒別都是通過標(biāo)識符過濾器實(shí)現(xiàn)的,過濾器對數(shù)據(jù)的篩選是由bxCAN控制器硬件完成。
(3)CAN總線通信實(shí)現(xiàn)的關(guān)鍵問題
由于CAN總線的實(shí)際鋪設(shè)距離較長,達(dá)到了1 200 m,同時(shí),周圍存在很多干擾源,如:電力線,大型電機(jī)等。并且,每個(gè)節(jié)點(diǎn)都存在與PLC的電氣連接(包括節(jié)點(diǎn)的供電線路以及節(jié)點(diǎn)與PLC的通信線路),所以必須特別注意網(wǎng)絡(luò)的隔離屏蔽設(shè)計(jì)。
如圖3所示,節(jié)點(diǎn)模塊的串口電路(RS-232接口)與CAN接口電路在電氣上沒有隔離,即:有公共的電源和地。如果從某臺PLC引入干擾信號(如:PLC地電平的擾動),那么干擾將進(jìn)入節(jié)點(diǎn)模塊中的CAN接口電路,影響到CAN電平轉(zhuǎn)換器的正常工作,嚴(yán)重時(shí)會對系統(tǒng)的穩(wěn)定性構(gòu)成威脅:某一個(gè)節(jié)點(diǎn)模塊失去電力供應(yīng),這時(shí)由節(jié)點(diǎn)與PLC的通信線引入干擾,在節(jié)點(diǎn)模塊失去了穩(wěn)壓電源對干擾信號有吸收抑制作用情況下[5],整個(gè)網(wǎng)路變得非常脆弱(干擾信號有可能會占據(jù)CAN總線使用權(quán),使得其他節(jié)點(diǎn)之間無法通信)。
在此,選用B0505隔離電源與高速光耦6N137將節(jié)點(diǎn)模塊的串口電路與其他功能模塊實(shí)現(xiàn)隔離,每個(gè)部分使用獨(dú)立的電源和地參考平面。
如圖4所示,此時(shí),即使某個(gè)節(jié)點(diǎn)受到了嚴(yán)重的干擾,也只會對單臺設(shè)備的通信造成影響,而不會妨礙總線上的通信。
圖2 CAN總線接口電路
(1)串行通信接口電路
串行通信接口負(fù)責(zé)實(shí)現(xiàn)節(jié)點(diǎn)模塊與PLC的通信。由于涉及的PLC的品牌及型號眾多,并且PLC的某一種類型通信口可能已經(jīng)被占用,所以,在硬件上要提供足夠豐富的接口,包括:RS-232,RS-422以及RS-485接口。使用一個(gè)撥碼開關(guān)來選擇需要使用的串口類型,串口參數(shù)的配置在上位機(jī)軟件上完成。
(2)PLC串口通信協(xié)議
串口通信需要嚴(yán)格的按照PLC廠商提供的協(xié)議規(guī)范。OMRON全系列均使用HOSTLINK協(xié)議[3],協(xié)議完全公開,可以完成對PLC的大多數(shù)操作(如:模式切換、讀寫操作等),所以無需修改PLC中的應(yīng)用程序;ABB的KT93型PLC購買于20年前,相關(guān)資料匱乏,所以在PLC程序中添加一段自定義的通信代碼,使用PLC的RS-232端口進(jìn)行通信;ABB的AC500型PLC可提供一個(gè)串口,配置為MODBUS協(xié)議;西門子S7-300可提供一個(gè)RS485串口,采用MPI協(xié)議進(jìn)行通信,MPI協(xié)議屬于不公開協(xié)議,在此,使用邏輯分析儀監(jiān)聽西門子專用編程電纜與PLC之間的通信,破譯了部分報(bào)文格式,最終以187.5 kbit/s的波特率實(shí)現(xiàn)了與西門子S7-300的部分通信功能,滿足系統(tǒng)的需求。
完成了通信協(xié)議的解析工作,就可以讀取PLC中指定的寄存器單元的數(shù)據(jù),并可以按要求,給某個(gè)寄存器單元或者位寫入相應(yīng)的值,實(shí)現(xiàn)控制功能。
圖3 串口電路域CAN接口電路之間共地
圖4 串口電路與CAN接口電路之間徹底的電氣隔離
上位機(jī)軟件使用C#語言編寫,為用戶提供交互接口,實(shí)現(xiàn)定向采集,即:用戶指定某臺PLC的某個(gè)寄存器的某一位(或者某一段地址),系統(tǒng)便可以完成采集工作,并將采集到的數(shù)據(jù)顯示出來,同時(shí)保存到數(shù)據(jù)庫中。
用戶還可以將系統(tǒng)設(shè)置為自動周期性采集,此時(shí)需要用戶提供一個(gè)需要采集的數(shù)據(jù)地址清單,這樣系統(tǒng)會自動進(jìn)行核算,給出一個(gè)兼顧實(shí)時(shí)性與可靠性的參考采樣周期(上位機(jī)與CAN總線主站節(jié)點(diǎn)通信,主站節(jié)點(diǎn)與整個(gè)分布式網(wǎng)絡(luò)通信,各個(gè)節(jié)點(diǎn)分別與相應(yīng)的PLC設(shè)備通信,這些過程需要時(shí)間),用戶可以根據(jù)這個(gè)參考采樣周期進(jìn)行恰當(dāng)?shù)呐渲谩?/p>
本文設(shè)計(jì)的基于CAN總線的分布式監(jiān)控系統(tǒng)具有很高的實(shí)時(shí)性與可靠性,已經(jīng)在生產(chǎn)現(xiàn)場長時(shí)間穩(wěn)定的運(yùn)行,給用戶提供了設(shè)備遠(yuǎn)程控制功能,并保存了設(shè)備的故障記錄,為下一步故障診斷系統(tǒng)的建設(shè)提供了硬件平臺和數(shù)據(jù)積累。
[1]劉軍.例說STM32[M].北京:北京航空航天大學(xué)出版社,2011.
[2]彭剛,秦志強(qiáng).基于ARM Cortex-M3的STM32系列嵌入式微控制器應(yīng)用實(shí)踐[M].北京:電子工業(yè)出版社,2011.
[3]范永勝,徐鹿眉.可編程控制器應(yīng)用技術(shù)[M].北京:中國電力出版社,2010.
[4]楊春杰.CAN總線技術(shù)[M].北京:北京航空航天大學(xué)出版社,2010.
[5]鄭軍奇.EMC電磁兼容設(shè)計(jì)與測試案例分析[M].北京:電子工業(yè)出版社,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年生,廣西桂林人,碩士研究生。研究領(lǐng)域:嵌入式系統(tǒng),機(jī)電控制工程。
(編輯:向 飛)
2013-09-04