邢月華, 付 磊, 趙海院
(1 中車唐山機(jī)車車輛有限公司, 河北唐山 064000;2 山東普利森集團(tuán)有限責(zé)任公司, 山東德州 253000)
某調(diào)車機(jī)車用于某公司調(diào)車場、專用鐵路線和車站正線上,為直流永磁電傳動調(diào)車用內(nèi)燃機(jī)車,用于20輛普通碳鋼客車、16輛動車組以及滿載貨車進(jìn)行編組、調(diào)車及小運(yùn)轉(zhuǎn)牽引作業(yè)。該調(diào)車機(jī)車適用于工業(yè)企業(yè)的調(diào)車和小運(yùn)轉(zhuǎn)作業(yè),保證機(jī)車連續(xù)穩(wěn)定工作。
CANopen協(xié)議是CIA(CAN in Automation)協(xié)會基于CAN總線定義的應(yīng)用層協(xié)議之一[5],通過采用面向?qū)ο蟮脑O(shè)計(jì)思想,具有模塊化和高適應(yīng)性的特點(diǎn),因此研究CANopen協(xié)議在調(diào)車機(jī)車網(wǎng)絡(luò)控制系統(tǒng)中的應(yīng)用具有很高的實(shí)用價(jià)值。
某調(diào)車機(jī)車網(wǎng)絡(luò)控制系統(tǒng)由車輛控制單元(VCU)、人機(jī)接口設(shè)備(HMI)、事件記錄儀(ERM)、遠(yuǎn)程輸入輸出模塊(RIOM)組成,見圖1網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)示意圖。
圖1 網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)示意圖
通過CANopen總線接入網(wǎng)絡(luò)控制系統(tǒng)的設(shè)備有:人機(jī)接口設(shè)備(HMI)、車輛控制單元(VCU)、事件記錄儀(ERM)、遠(yuǎn)程輸入輸出模塊(RIOM)、牽引變流器(TCU)、輔助供電系統(tǒng)(APU),其中VCU和ERM通過維護(hù)擴(kuò)展單元板卡連接,RIOM板卡與VCU通過背板通信。
通過CAN J1939總線接入網(wǎng)絡(luò)控制系統(tǒng)的設(shè)備有:柴油機(jī)(ECM)、變頻一路(FC1)、變頻二路(FC2)。
在整個(gè)列車網(wǎng)絡(luò)控制系統(tǒng)中,VCU監(jiān)控其他子系統(tǒng),主要完成柴油機(jī)監(jiān)控、牽引系統(tǒng)監(jiān)控、輔助供電系統(tǒng)監(jiān)控、冷卻系統(tǒng)監(jiān)控等,并協(xié)調(diào)各子系統(tǒng)間的數(shù)據(jù)通信。該網(wǎng)絡(luò)系統(tǒng)具有統(tǒng)一的時(shí)鐘,能自動收集、記錄、存儲及顯示列車故障,并通過服務(wù)軟件將列車故障數(shù)據(jù)下載到個(gè)人電腦,方便用戶及維護(hù)人員分析。
CANopen協(xié)議定義了4種報(bào)文格式用作不同功能,分別為系統(tǒng)管理命令(NMT)用于網(wǎng)絡(luò)管理;服務(wù)數(shù)據(jù)對象(SDO)用于傳輸非時(shí)間關(guān)鍵數(shù)據(jù);過程數(shù)據(jù)對象(PDO)用于傳輸時(shí)間關(guān)鍵進(jìn)程數(shù)據(jù);特殊功能對象用于同步、應(yīng)急和時(shí)間戳等。
(1)網(wǎng)絡(luò)管理服務(wù)(NMT)
網(wǎng)絡(luò)管理服務(wù)負(fù)責(zé)啟動配置網(wǎng)絡(luò)和監(jiān)控設(shè)備。網(wǎng)絡(luò)管理服務(wù)為主從結(jié)構(gòu),一個(gè)CANopen網(wǎng)絡(luò)系統(tǒng)中只有一個(gè)主節(jié)點(diǎn),其余都為從節(jié)點(diǎn)[1]。CANopen子節(jié)點(diǎn)在上電后進(jìn)行內(nèi)部初始化,之后進(jìn)入預(yù)操作狀態(tài)。然后通過啟動消息報(bào)文(Boot up),將這一狀態(tài)的改變事件通知NMT主節(jié)點(diǎn)。NMT主節(jié)點(diǎn)會把Start_Remote_Node指令發(fā)送給所有子節(jié)點(diǎn)。Node-ID=0則針對所有的從節(jié)點(diǎn)模塊。操作狀態(tài)下,所有的CANopen通信服務(wù)都支持。此外,NMT主機(jī)的Stop_Remote_Node還可以強(qiáng)制設(shè)備進(jìn)入停止?fàn)顟B(tài)。在該狀態(tài)下,除了網(wǎng)絡(luò)管理和心跳服務(wù)之外,其他的所有CANopen通信服務(wù)都被禁止。
通過對列車的控制結(jié)構(gòu)分析可知,設(shè)置VCU為主節(jié)點(diǎn),其余設(shè)備為從節(jié)點(diǎn),見表1節(jié)點(diǎn)地址設(shè)置。
表1 節(jié)點(diǎn)地址設(shè)置
(2)服務(wù)數(shù)據(jù)對象(SDO)
SDO( Service Data Object) 用來在設(shè)備之間傳輸大的低優(yōu)先級數(shù)據(jù),典型的是用來配置CANopen網(wǎng)絡(luò)上的設(shè)備[2]。SDO的通訊模式是客戶/服務(wù)器型,文中VCU為客戶端,其他從節(jié)點(diǎn)為服務(wù)端。SDO配置過程見表2。
表2 SDO配置過程為例
表2以VCU與HMI進(jìn)行SDO通信為例進(jìn)行說明,客戶端發(fā)送命令COB-ID為600+0Dh,服務(wù)器響應(yīng)命令為580+0Dh。由表2可見,序號1~22是主節(jié)點(diǎn)A對從節(jié)點(diǎn)D的對象字典進(jìn)行讀寫操作的SDO傳輸報(bào)文。其中序號1~4對應(yīng)的報(bào)文為主節(jié)點(diǎn)查詢從節(jié)點(diǎn)的設(shè)備類型和ID信息,確認(rèn)設(shè)備并保存信息。序號5~6為主節(jié)點(diǎn)配置從節(jié)點(diǎn)的心跳時(shí)間報(bào)文,通過SDO對從節(jié)點(diǎn)對象字典進(jìn)行寫操作,心跳時(shí)間修改為2 000 ms。序號7~14為主節(jié)點(diǎn)配置從節(jié)點(diǎn)的TPDO1通信參數(shù),其中第1個(gè)子索引COB-ID為0x18D,第2個(gè)子索引Transmission Type為255,第3個(gè)索引Inhibit Time為250 ms,第5個(gè)子索引PDO event timer為2 000 ms。序號15~22為主節(jié)點(diǎn)配置從節(jié)點(diǎn)的RPDO1通信參數(shù),其中第1個(gè)子索引COB-ID為0x20D,第2個(gè)子索引Transmission Type為255,第3個(gè)索引Inhibit Time為250 ms,第5個(gè)子索引PDO event timer為2 000 ms。SDO參數(shù)配置完后,0x70D的報(bào)文為7F與操作狀態(tài)。主節(jié)點(diǎn)發(fā)送NMT報(bào)文01 00,控制從節(jié)點(diǎn)進(jìn)入運(yùn)行狀態(tài),從節(jié)點(diǎn)心跳報(bào)文內(nèi)容由7F變?yōu)?5,開始主從節(jié)點(diǎn)間PDO報(bào)文的傳輸[3]。
(3) 過程數(shù)據(jù)對象(PDO)
PDO(Process Data Object)報(bào)文主要用來傳輸實(shí)時(shí)性較高的數(shù)據(jù)。PDO采用生產(chǎn)者/消費(fèi)者通信方式[3],數(shù)據(jù)從一個(gè)生產(chǎn)者傳到一個(gè)或多個(gè)消費(fèi)者,數(shù)據(jù)長度限制在8個(gè)字節(jié)之內(nèi)。PDO分為兩種,發(fā)送過程數(shù)據(jù)對象TPDO和接收過程數(shù)據(jù)對象RPDO。報(bào)文主要通過對象詞典中的映射參數(shù)和通訊參數(shù)來描述,見圖2~圖3。
圖2 HMI發(fā)送TPDO1示意圖
圖3 VCU接收RPDO1示意圖
(4)特殊功能對象
時(shí)間戳用來同步系統(tǒng)內(nèi)從節(jié)點(diǎn)與網(wǎng)絡(luò)主的內(nèi)部時(shí)鐘,見圖4。
時(shí)間戳的傳輸依據(jù)生產(chǎn)者/消費(fèi)者模型,參數(shù)如下:
①生產(chǎn)者: VCU
②消費(fèi)者: 所有CAN從節(jié)點(diǎn)
③數(shù)據(jù)類型: TIME_OF_DAY
TIME_OF_DAY 數(shù)據(jù)類型表現(xiàn)的是絕對時(shí)間。它由48 位數(shù)據(jù)組成(6個(gè)字節(jié)),編碼的規(guī)則如下:
①毫秒(ms): 由Unsigned28來表示, 它是從零時(shí)零分零秒開始計(jì)數(shù)的(0:00);
②天(days): 由Unsigned16來表示,它是從1984年1月1日開始計(jì)數(shù)的;
③“毫秒”和“天”之間的4位‘0’為填充位
時(shí)間戳的數(shù)據(jù)組成如圖4所示,數(shù)據(jù)將先發(fā)送低位字節(jié)(LS-Byte) ,后發(fā)送高位字節(jié)(MS-Byte)。
圖4 時(shí)間戳定義示意圖
在此設(shè)置時(shí)間戳的周期為1 s,即信號tProducerTime_TS的值為1 s。
故障診斷的任務(wù)是為維修人員和列車人員排除故障提供一定的支持。如果機(jī)車發(fā)生故障,故障診斷系統(tǒng)能盡早辨認(rèn)故障,準(zhǔn)確指明功能限制和故障位置,指出對車輛行駛的影響并提供維修信息。這些信息將以純文本格式在HMI上顯示,工作人員可以根據(jù)不同的故障類別進(jìn)行故障評估,并給出合適的應(yīng)急指導(dǎo)。HMI故障診斷界面如圖5所示。
根據(jù)故障對子系統(tǒng)或者列車的性能或安全性的影響劃分為不同的故障等級:
(1)嚴(yán)重故障:嚴(yán)重影響系統(tǒng)的故障,系統(tǒng)自動關(guān)閉。
(2)中等故障:列車運(yùn)行或者乘客服務(wù)等功能受限,允許列車維持運(yùn)行至前方站點(diǎn),再進(jìn)行處理;
(3)輕微故障:不影響列車運(yùn)行或乘客服務(wù)功能,給出提示信息,司機(jī)或者機(jī)械師給予關(guān)注,允許列車完成運(yùn)行圖規(guī)劃的全天運(yùn)行后,再返回基地。
圖5 HMI故障診斷界面示意圖
基于CANopen協(xié)議的網(wǎng)絡(luò)控制系統(tǒng)在某國產(chǎn)化直流永磁調(diào)車機(jī)車的現(xiàn)場運(yùn)行試驗(yàn)中,車輛能夠有效接收各子系統(tǒng)發(fā)來的數(shù)據(jù),并控制車輛安全運(yùn)行。通過CANaLyzer軟件采集網(wǎng)絡(luò)總線上的數(shù)據(jù),如圖6所示,直觀顯示了總線中各報(bào)文的傳輸過程和傳輸數(shù)據(jù),主從節(jié)點(diǎn)之間沒有報(bào)文丟失的現(xiàn)象[4],各設(shè)備間通信正常,驗(yàn)證了該網(wǎng)絡(luò)控制系統(tǒng)的可用性和可靠性。
圖6 CANaLyzer采集的總線數(shù)據(jù)
基于CANopen總線技術(shù),通過對NMT、SDO、PDO的設(shè)計(jì)和故障診斷的開發(fā),提出了一種應(yīng)用廣泛、高可靠性的網(wǎng)絡(luò)控制系統(tǒng),并在CANaLyzer軟件環(huán)境中進(jìn)行了通訊測試,成功完成了VCU與其他網(wǎng)絡(luò)設(shè)備的網(wǎng)絡(luò)通信調(diào)試。目前該網(wǎng)絡(luò)控制系統(tǒng)已經(jīng)在某調(diào)車機(jī)車裝車驗(yàn)證。CANopen協(xié)議作為CAN總線的應(yīng)用層協(xié)議,在城市軌道交通領(lǐng)域有著廣闊的應(yīng)用前景,文中的研究成果可供該領(lǐng)域借鑒和參考。