楊 偉 劉婷婷
(中國南車集團南京浦鎮(zhèn)車輛有限公司,210031,南京∥第一作者,工程師)
過程數(shù)據(jù)對象和服務數(shù)據(jù)對象通信在CANopen列車網(wǎng)絡中的應用
楊 偉 劉婷婷
(中國南車集團南京浦鎮(zhèn)車輛有限公司,210031,南京∥第一作者,工程師)
CANopen因其實時性高、成本低等優(yōu)勢成為目前列車網(wǎng)絡的主流協(xié)議。提出了利用PDO(過程數(shù)據(jù)對象)和SDO(服務數(shù)據(jù)對象)的特殊通信方式,解決CANopen協(xié)議在列車網(wǎng)絡應用中局限性的方案??蓡为毷褂肞DO或SDO的特殊通信方式以滿足需求,也可以兩種方式配合使用來滿足更復雜的功能需求,這樣可以有效提高CANopen列車網(wǎng)絡的靈活性和可靠性。
CANopen;列車網(wǎng)絡;通信
First-author'saddressCSR Nanjing Puzhen Co.,Ltd.,210031,Nanjing,China
列車網(wǎng)絡系統(tǒng)控制(TCMS)是現(xiàn)代化軌道交通列車尤其是電動車組的控制神經(jīng)中樞,在世界軌道交通行業(yè)的應用越來越廣泛。
CAN(控制器局域網(wǎng))是20世紀80年代初,德國BOSCH公司為現(xiàn)代汽車應用推出的一種多主機局部網(wǎng),具有成本低、可靠性高、實時性和抗干擾能力強等特點,已被應用于工業(yè)自動化、交通工具、醫(yī)療儀器、環(huán)境控制等眾多領域[2]。CANopen作為城市軌道交通領域中的主流通信協(xié)議,是一種基于CAN,在應用層上定義的通信協(xié)議,協(xié)議中定義了完備的多種類型的通信方式,如過程數(shù)據(jù)對象(Process Data Object,簡為PDO)、服務數(shù)據(jù)對象(Service Data Object,簡為SDO)、心跳(Heartbeat)、緊急報文(EMCY)等,而在列車網(wǎng)絡通信中起主要作用且應用最頻繁的就是PDO通信和SDO Expedited(SDO通信的一種主要方式)通信。但在CANopen列車網(wǎng)絡的實際應用中,僅使用這些基本通信方式是存在局限性的,不足以滿足用戶的所有需求,這時就需要利用PDO和SDO的一些特殊用法,如CPU-CPU通信(一種特殊的PDO通信)和SDO Block通信,來滿足項目的復雜功能或要求,以完善和提高CANopen列車網(wǎng)絡的靈活性和可靠性。
列車通信網(wǎng)絡中數(shù)據(jù)傳輸?shù)目煽啃?、實時性、準確性非常重要[3]。而PDO因其實時性強、傳輸效率高,因此主要用于列車主控制器(CANopen Master,下文中均用VTCU表示)和網(wǎng)絡中的牽引、制動等子系統(tǒng)(CANopen Slave)進行過程數(shù)據(jù)、狀態(tài)數(shù)據(jù)及部分控制命令的傳輸。每個PDO可以傳輸8個字節(jié)的用戶數(shù)據(jù)。
SDO Expedited傳輸方式主要用來傳輸服務數(shù)據(jù),一般只用于在CANopen網(wǎng)絡初始化的時候由CANopen Master設備對網(wǎng)絡中的CANopen Slave設備進行通信參數(shù)配置,和讀取CANopen Slave的軟硬件版本號。每次請求或響應只能傳輸4個字節(jié)的有效數(shù)據(jù),效率較低,不用于大數(shù)據(jù)量的傳輸。
典型的動車編組為6節(jié)車輛,由兩個單元組成,每單元2節(jié)車輛[4],如圖1所示。在CANopen列車網(wǎng)絡中,通常設置兩個互為冗余的主控制器
(VTCU,Vehicle Train Control Unit)。正常情況下只有C1車的VTCU為強主并接收所有子系統(tǒng)的數(shù)據(jù)和向子系統(tǒng)發(fā)送命令,而C6車的VTCU為弱主且只接收子系統(tǒng)的數(shù)據(jù)而不發(fā)送數(shù)據(jù)給子系統(tǒng)。當C1車VTCU故障時,C6車自動接替C1車成為強主,以保證列車網(wǎng)絡的正常運行。VTCU與網(wǎng)絡中所有子系統(tǒng)之間通過PDO進行過程數(shù)據(jù)的通信,通過SDO進行服務數(shù)據(jù)的通信。
圖1 6節(jié)編組列車網(wǎng)絡架構
然而在CANopen網(wǎng)絡的實際應用中,僅使用PDO來傳輸過程數(shù)據(jù)而SDO Expedited僅用來傳輸服務數(shù)據(jù)并不能滿足某些復雜功能的要求,下面將結合具體示例進行說明。
2.1 維護輔助的局限性與CPU-CPU通信的解決方案
目前的業(yè)主都希望將盡可能多的列車維護操作集成在列車網(wǎng)絡中,因為列車網(wǎng)絡的一個重要功能就是維護輔助。比如列車運營過程中的大部分重要參數(shù)(列車運行時間、運行里程、門參數(shù)等)都要通過TCMS維護軟件連接在任意一個VTCU上進行設置,然后轉發(fā)給相應的子系統(tǒng)。
而對于常用的通信方式存在這樣的局限性:弱主VTCU只能接收子系統(tǒng)的數(shù)據(jù)而不能給子系統(tǒng)發(fā)送數(shù)據(jù)。因此,如果維護人員連接在弱主VTCU上進行相關的維護操作就不能成功,所設置的參數(shù)僅是保存在弱主VTCU中而已,卻不能發(fā)送到需要的子系統(tǒng)中(如司機顯示器,門控器等),這就導致列車網(wǎng)絡的維護輔助功能大打折扣或者增加了業(yè)主的維護成本和難度。因此解決這個問題對于主機廠而言是十分必要和重要的.
為了使維護操作在弱主VTCU上也能正常實現(xiàn)功能,就需要將弱主收到的設置和參數(shù)通過某種方式發(fā)送給強主VTCU,由強主VTCU向需要的子系統(tǒng)發(fā)送。這里就可以用CPU-CPU通信來解決。CPU-CPU通信只存在于兩個互為冗余的VTCU之間,是一種特殊的PDO方式,一次最多可以發(fā)送512個字節(jié),相當于64個普通PDO。如果維護人員連接的VTCU是弱主,則該VTCU將維護人員設置的參數(shù)通過CPU-CPU通信發(fā)送給強主VTCU,強主將收到的參數(shù)發(fā)送給指定的子系統(tǒng),完美實現(xiàn)列車網(wǎng)絡的維護輔助功能。
深圳地鐵4號線二期車輛工程項目中CPUCPU通信實現(xiàn)的代碼如圖2所示,由一個接收模塊“CAN_CPU_CPU_RCV”和發(fā)送模塊“CAN_CPU_ CPU_TRM”控制。其中本地VTCU的數(shù)據(jù)放在“g Master_t”中通過發(fā)送模塊發(fā)送給遠端VTCU,而遠端VTCU的數(shù)據(jù)通過接收模塊接收下來后放在“gSlave_t”中,按需使用。
圖2 CPU-CPU實現(xiàn)代碼
在CANopen列車網(wǎng)絡的應用中,CPU-CPU通信除了在維護輔助方面的作用,所有需要在兩個VTCU之間進行實時同步(比如列車運行時間、運行里程、功率損耗等)的需求,也可以通過CPU-CPU通信實現(xiàn),在兩個VTCU之間進行數(shù)據(jù)的實時對比
分析,根據(jù)具體要求可選取兩者間的大值或小值。
2.2 操作輔助的局限性與SDOBlock通信的解決方案
列車網(wǎng)絡的另一個重要功能就是操作輔助,主要通過列車上的司機室顯示屏DDU(Driver Display Unit)承擔,用于顯示列車及重要子系統(tǒng)的運行狀態(tài)和故障信息等。隨著列車網(wǎng)絡的發(fā)展和用戶需求的不斷增加,DDU上需要顯示的信息越來越多,甚至增加了部分維護輔助的功能,比如信號校對、故障數(shù)據(jù)記錄等功能,這導致VTCU需要發(fā)送給DDU的過程數(shù)據(jù)量非常大。
而常用CANopen數(shù)據(jù)通信方式存在另一個局限性:一個CANopen子系統(tǒng)能接收的PDO上限為32個。如果VTCU發(fā)送給DDU的數(shù)據(jù)大于32個PDO,就會導致多余的數(shù)據(jù)無法送達DDU,導致列車操作輔助的功能缺失,對主機廠而言必須解決這個重要的問題。
此時就需要用其他途徑來發(fā)送額外的數(shù)據(jù),前面提到的SDO Expedited傳輸方式由于傳輸效率低下,并不適合擔當這個重任,而SDO Block通信則可以解決該難題。SDO Block通信是一種特殊的SDO通信。SDO Expedited方式與SDO Block的主要區(qū)別在于SDO Expedited一次只能傳輸4個字節(jié)的數(shù)據(jù),如圖3所示。
圖3 SDO Expedited傳輸
SDO Block一次能傳輸最多127個數(shù)據(jù)段,每個數(shù)據(jù)段里面可以包含7個字節(jié)的數(shù)據(jù),因此SDO Block通信一次最多可以傳輸127×7=889個字節(jié)的數(shù)據(jù),如圖4所示。這樣在傳輸很大數(shù)量的數(shù)據(jù)時,SDO Block通信的傳輸速度遠高于SDO Expedited,其效率更高。
圖4 SDO Block傳輸
深圳地鐵4號線二期車輛工程項目的SDO Block通信實現(xiàn)的代碼如圖5所示,將需要通過SDO發(fā)送到DDU的數(shù)據(jù)放在數(shù)據(jù)集gDDU_SDO_t中,通過L2_CAN2鏈路發(fā)送給節(jié)點地址為13的DDU,
這些SDO數(shù)據(jù)的對象索引為16#2050。因此在CANopen列車網(wǎng)絡中,如果某節(jié)點所需的數(shù)據(jù)量大于32個PDO,使用SDO Block通信方式來發(fā)送多余的數(shù)據(jù)是一個切實可行且效率很高的解決方案。
圖5 SDO Block實現(xiàn)代碼
2.3 SDOBlock和CPU-CPU的結合使用
現(xiàn)在主流的地鐵信號系統(tǒng)ATC(列車自動控制)系統(tǒng)與列車網(wǎng)絡的接口為RS485,如南京地鐵1號線、深圳地鐵4號線等,所以對于CANopen列車網(wǎng)絡來說就需要一個RS485/CAN的網(wǎng)關在兩者之間轉發(fā)數(shù)據(jù)。
以深圳地鐵4號線二期車輛工程項目為例,供應商只提供不可編程的黑匣子網(wǎng)關。對于網(wǎng)關與VTCU之間的通信,其只提供1個PDO用于發(fā)送通知信號,而大量的用戶數(shù)據(jù)通信只能通過開放的SDO通道進行收發(fā)。
對于這個局限性,解決方案就是使用前面提到的SDO Block通信。完整的數(shù)據(jù)傳輸流程如圖6所示,通過僅有的一個通知PDO來告知網(wǎng)關準備好發(fā)送串行數(shù)據(jù)或者告知VTCU有新的串行數(shù)據(jù)收到,然后所有的串行數(shù)據(jù)都通過SDO Block通信的方式,由VTCU發(fā)送給網(wǎng)關,再由網(wǎng)關轉發(fā)給串行鏈路上的ATC;ATC將串行數(shù)據(jù)發(fā)送給網(wǎng)關,由網(wǎng)關轉發(fā)給VTCU,具體實現(xiàn)方法與2.2節(jié)所述一致。
圖6 串行數(shù)據(jù)傳輸流程
在利用SDO Block通信解決了網(wǎng)關與VTCU之間數(shù)據(jù)傳遞的問題后,仍存在另一個問題,就是在CANopen網(wǎng)絡中,只有強主VTCU能發(fā)起與子系統(tǒng)之間SDO通信的請求,而弱主VTCU始終處于監(jiān)聽狀態(tài),不能發(fā)送SDO通信請求。這就導致一個問題,只有強主能與ATC系統(tǒng)進行數(shù)據(jù)收發(fā),而弱主收不到任何ATC的信息。根據(jù)實際項目的要求,兩個VTCU中記錄的數(shù)據(jù)必須是完全一致的,而由于SDO點對點通信的特殊性,導致弱主VTCU無法獲取ATC系統(tǒng)的任何信息,這樣就會出現(xiàn)兩個VTCU中記錄數(shù)據(jù)不一致的問題,而這是地鐵業(yè)主不能接受的情況。
解決這個問題的方案就是結合CPU/CPU通信,將強主VTCU接收到的ATC系統(tǒng)的所有信息實時轉發(fā)給弱主(實現(xiàn)方法參見2.1節(jié)所述),使得兩個VTCU中的信息一致,完美解決這個問題。
CANopen因其實時性高,成本低等優(yōu)勢成為目前列車網(wǎng)絡的主流協(xié)議。而在實際項目中,用戶的需求日益豐富和復雜,應根據(jù)具體的網(wǎng)絡架構和用戶需求,充分、合理且靈活地應用CANopen網(wǎng)絡中PDO和SDO的各種通信方式,為完善和擴充CANopen列車網(wǎng)絡的可靠性、可用性提供強有力的保障。
[1] 常振臣,牛得田,王立德,等.列車通信網(wǎng)絡研究現(xiàn)狀及展望[J].電力機車與城軌車輛,2005(3):5.
[2] 高青松,黃越群,陳旭文,等.基于CAN總線的列車無線同步控制數(shù)據(jù)采集系統(tǒng)[J].計算機測量與控制,2008,16(3):333.
[3] 王樹賓.動車組列車通信網(wǎng)絡及其可靠性設計[J].鐵道車輛,2007,45(10):20.
[4] 陳美霞,楊吟飛,趙威.CAN總線在列車綜合管理系統(tǒng)中的應用[J].數(shù)據(jù)采集與處理,2008(23):231.
[5] 程寧子,李耀華,張瑞華,等.基于CANopen協(xié)議的城市軌道交通直線電機車輛通信網(wǎng)絡研究與實現(xiàn)[J].城市軌道交通研究,2012(9):67.
Application of PDO and SDO in CANopen Train Network
Yang Wei,Liu Tingting
CANopen has become the mainstream protocolin train network because of its advantages in real-time application and low cost.A special process data object(PDO)and service data object(SDO)communication scheme is proposed to solve the limitations of CANopen protocol in train network applications.This special communication means of PDO and SDO can be used separately and together to meet complicated demands,thus the flexibility and reliability of CANopen train networkcan be effectively improved.
CANopen;train network;communication
U 285.4+1
2012-10-10)