CANopen協議興起于歐洲,現階段在歐洲特別是工業發達的德國幾乎所有的設備都提供CANopen的支持,我國工業還相對的落后,正處在引進國外先進設備的階段,這就要求我們懂得CANopen通信協議,同時能夠利用CANopen設備正確的組建一個適合特定應用的CANopen網絡。CANopen的多種數據傳輸方式為各種應用提供優異的解決方案,普遍應用于數據采集與傳輸、電機控制、汽車電子、電池充電控制以及紡織等行業。 1. CANopen從站/主站特點 具有網絡管理(Network Management:簡稱NMT)主機功能的設備通常被稱為CANopen主站設備,通常也具有服務數據(Service Date Object:簡稱SDO)客戶端功能。反之具有網絡管理(NMT)從機功能的設備通常被稱為CANopen從站設備,且其必須具備有服務數據服務器功能。這樣CANopen主站設備就可以控制從站以及讀寫CANopen從站設備的對象字典。 (1)CANopen從站特性CANopen從站在CANopen網絡中擁有唯一的節點地址,并且能獨立完成特定的功能,例如數據采集、電機控制等等。對實時性要求高的數據,通常通過實時數據過程(Process Data Object:簡稱PDO)進行傳輸,因此CANopen從站應當支持一定數量的PDO傳輸功能。根據CANopen協議DS301 V4.02的定義,每個從站都預定義了4個TPDO(Transmit Process Data Object:簡稱TPDO)和4個RPDO(Receive Process Data Object),另外從站也應具有節點/壽命保護或心跳報文以及生產緊急報文等功能。每個CANopen從站都應有一個對象字典,描述了從站所具有的應用參數和通信參數。 (2) CANopen主站特性CANopen主站在網絡所起的作用有別于CANopen從站,通常CANopen主站在網絡中負責網絡管理、從站參數配置以及從站數據的處理,其并不一定具有特定的功能,但也有自己的對象字典和唯一的節點地址。 2. CANopen網絡組建 由于CANopen是基于CAN總線的一種應用層協議,因此其網絡組建與CAN總線一致,典型的總線型結構,從站和主站都掛接在該總線上即可,在一個CANopen網絡中只能有一個主站設備和若干個從站設備同時工作。CANopen網絡布線時選用帶屏蔽雙絞線,提高總線抗干擾能力。表1所示為CAN通信波特率與總線長度的關系。注意網絡中的各節點的支線長度不易過長,波特率大于100Kbps的情況下,支線總長度不應大于30m,單個節點的支線也不應大于60cm. 表1總線長度與波特率關系 (1)基本的CANopen網絡結構 圖1 CANopen基本網絡結構 圖1所示為CANopen網絡的基本結構,在該網絡中有一個CANopen主站,負責管理網絡中的所有從站,每個設備都有一個獨立的節點地址(NodeID)。從站與從站之間也能建立通信,通常需要事先對各個從站進行配置,使各個從站之間能夠建立起獨立的PDO通信。 (2)復雜的CANopen網絡結構 圖2帶網關設備的CANopen網絡 圖3所示為帶有網關設備的CANopen網絡,與基本的CANopen網絡相比,該網絡中增加了一個CANopen網關設備,該網關設備可以是CANopen轉DeviceNet、Profibus、Modbus或其它的設備。在CANopen網絡中,我們也可把該網關設備作為一個從站設備或者是CANopen主站設備。 3. CANopen網絡中從站的配置CANopen從站設備在出廠時都設定有默認參數,并且這些參數都與節點地址綁定,例如實時數據傳輸PDO,其預定義連接集定義了其默認的參數有4個TPDO和4個RPDO,其COB-ID(Communication Object -ID)如表2所示。在一些應用簡單的場合只需要采用默認設置即可進行正常通信,但對于一些應用比較復雜的場合,則需要對從站進行相應的配置,最常見的配置參數有PDO的COB-ID、PDO映射參數、以及節點/壽命保護等參數。 表2 PDO預定義鏈接 CANopen網絡中,對從站的參數配置或獲取都是通過SDO進行傳輸,因此從站和主站都必須支持SDO傳輸才能進行正常的配置。為了快速配置從站設備,在配置從站之前通過NMT使整個網絡設備進入到預操作狀態。 (1)通信參數配置CANopen設備的通信參數包括PDO的COB-ID、傳輸類型、禁止時間以及映射參數等。其參數配置順序如圖3所示。 圖3通信參數配置順序 在配置PDO的通信參數時,首先禁止PDO通信,根據DS301 V4.02的定義,當COB-ID的最高位(第31位)為1時即可禁止該PDO通信,禁止PDO通信操作示例如圖4所示。需要注意的是只有在PDO禁止的情況下,相應的傳輸類型、映射參數以及COB-ID的值才能被改變,否則試圖以任何方式去更改都會出現錯誤。 (2)其它參數的配置除了通信相關的參數之外,CANopen設備還有一些與安全相關的參數,例如節點/壽命保護或者心跳報文。根據DS301 V4.02的定義,同一個CANopen從站中只可能使用節點/壽命保護或心跳報文的一種。節點/壽命保護可以實現雙向保護,即主站可監控從站的狀態,而從站也可監控主站是否在線。心跳報文只是一種單向的保護機制,心跳報文的消費者可以監控到心跳報文生產者的狀態。在網絡總線負載較大的情況下,建議使用心跳報文的保護機制來減輕總線負載。 圖4禁止PDO通信方法 (3)配置從站與從之間的通信CANopen網絡中從站與從站可以直接進行PDO通信而不需要主站的參與,這樣就提高了實時數據的實時性。將接收從站RPDO的COB-ID更改為發送從站TPDO的COB-ID,這樣就建立了兩個從站之間了PDO通信,在通信過程中也不需要主站的任何干預。表3所示。 表3從站與從站通信COB-ID配置 4.結語 根據不同應用環境可選用不同的線纜來組建CANopen網絡,在CANopen網絡的布置方面,需要了解線纜的阻抗、容抗、信號延時等來匹配總線的終端電阻,減少由于信號衰減或反射而導致總線工作異常。從而組建一個抗干擾能力強、穩定可靠的CANopen網絡。 |