一文解讀什麼是CANopen通訊協議?

伺服內部使用了一種嚴格定義的對象列表,我們把它稱作對象辭典,這種對象辭典的設計方式基於 CANopen 國際標準,所有的對象有明確的功能定義。

這裏說的對象(Objects)類似我們常說的內存地址,有些對象如速度和位置等可以由外部控制器修改,有些對象卻只能由驅動器本身修改,如狀態、錯誤信息。這些對象都為十六進制數,如工作模式的CANopen 地址為 0x60400010,舉例如表

CAN 通訊協議主要描述設備之間的信息傳遞方式,CAN 層的定義與開放系統互連模型 OSI 一致,每一層與另一設備上相同的那一層通訊,實際的通訊發生在每一設備上相鄰的兩層而設備只通過模型物理層的物理介質互連,CAN 的規範定義了模型的最下面兩層數據鏈路層和物理層。CAN 總線物理層沒有嚴格規定,能夠使用多種物理介質例如雙絞線光纖等,最常用的就是雙絞線信號,使用差分電壓傳送(常用總線收發器),兩條信號線被稱為 CAN_H 和 CAN_L,靜態時均是 2.5V 左右,此時狀態表示為邏輯 1,也可以叫做隱位,用 CAN_H 比 CAN_L 高表示邏輯 0,稱為顯位,此時通常電壓值為 CAN_H=3.5V 和 CAN_L=1.5V,競爭時顯位優先。

注意

1、所有從站的 CAN_L、CAN_H 腳直接相接即可,採用串連的方式接線,不能採用星型連接方式;

2、主站端和最後一個從站端需要接 120 歐姆的終端電阻,驅動器內置,可通過撥碼開關 啟用;

3、不需要外部 24V 電源供電的;

4、通訊電纜請採用屏蔽雙絞線,並做好接地處理(短距離通訊時 3 腳地線可以不接,但是長距離、高波特率通訊時建議把 3 腳接地;

各種波特率所理論上能夠通訊的最長距離如表

EDS 說明

EDS(电子數據表格)文件是 PLC 所連接從站的標識文件或者類似碼,通過該文件來辨認從站所屬的類型(是 401、402、403 中的何種類似,或者屬於 402 中的哪一種設備)。該文件包含包含了從站的所有信息,比如生產廠家、序列號、軟件版本、支持波特率種類、可以映射的 OD 及各個 OD 的屬性等等參數,類似於Profibus 的 GSD 文件。因此在進行硬件配置前,我們首先需要把從站的 EDS 文件導入到上位組態軟件中。

SDO 說明

SDO 主要用來在設備之間傳輸低優先級的對象,典型是用來對從設備進行配置、管理,比如用來修改電流環、速度環、位置環的 PID 參數,PDO 配置參數等,這種數據傳輸跟 MODBUS 的方式一樣,即主站發出后,需要從站返回數據響應。這種通訊方式只適合對參數的設置,不適合於對實時性要求較高的數據傳輸。

SDO 的通訊方式分為上傳和下載,上位機可以根據專用的 SDO 讀寫指令來讀寫伺服內部的 OD 即可。在 CANopen 協議中,對對象字典的內容進行修改可以通過 SDO(Service Data Object)來完成,下面介紹 SDO命令的結構和遵循的準則。

SDO 的基本結構如下:Client→Server/Server→Client

讀取參數時接收 SDO 報文

注意

  • SDO 報文發送時命令字均為 0x40;

  • 如果接收數據為 1 個字節,則接收命令字為 0x4F;

  • 如果接收數據為 2 個字節,則接收命令字為 0x4B;

  • 如果接收數據為 4 個字節,則接收命令字為 0x43;

  • 如果接收數據存在錯誤,則接收命令字為 0x80。

注意

  • 如果待發數據為 1 個字節,則發送命令字為 0x2F;

  • 如果待發數據為 2 個字節,則發送命令字為 0x2B;

  • 如果待發數據為 4 個字節,則發送命令字為 0x23;

  • SDO 報文發送成功,接收命令字為 0x60;

  • SDO 報文發送失敗,接收命令字為 0x80。

PDO 說明

PDO 一次性可傳送 8 個字節的數據,沒有其它協議預設定(意味着數據內容已預先定義),主要用來傳輸需要高頻率交換的數據。PDO 的傳輸方式打破了現有的數據問答式傳輸理念,採用全新的數據交換模式,設備雙方在傳輸前先在各個設備定義好數據接收和發送區域,在數據交換時直接發送相關的數據到對方的數據接收區即可,減少了問答式的詢問時間,從而極大的提高了總線通訊的效率,從而得到了極高的總線利用率。

PDO COB-ID 說明

COB-ID 是 CANopen 通訊協議的特有方式,它的全稱是 Communication Object Identifier-通訊對象-ID,這些 COB-ID 為 PDO 定義了相應的傳輸級別,有了這些傳輸級別後,控制器和伺服就能夠在各自的軟件里配置里定義相同的傳輸級別和其裏面的傳輸內容,這樣控制器和伺服都採用的同一個傳輸級別和傳輸內容后,數據的傳輸即透明化了,也就是雙方都知道所要傳輸的數據內容了,也就不需要在傳輸數據時還需要對方回複數據是否傳輸成功。

缺省 ID 分配表是基於 CANopen 2.0A 定義的 11 位 CAN-ID(CANopen 2.0B 協議 COB-ID 是 29 位),包含一個 4 位的功能碼部分和一個 7 位的節點 ID(Node-ID)部分

注意

  • Node-ID —— 即伺服的站號,Node-ID 範圍是 1~127;

  • Function Code ——數據傳輸的功能碼,定義各種 PDO、SDO、管理報文的傳輸級別,功能碼越小,優先級越高。

注意

1、COB-ID 越小,優先級越高;

2、每一個級別的 COB-ID 前面的功能碼是固定格式;

3、COB-ID 為 00H、80H、100H、701H-77FH、081H-0FFH 均為系統管理格式

發送 PDO 相對於伺服來說就是指伺服發送出去的數據,這些數據由 PLC 來接收。發送 PDO 的功能碼(COB-ID)為:

1、0x180+伺服站號

2、0x280+伺服站號

3、0x380+伺服站號

4、0x480+伺服站號

接收 PDO 相對於伺服來說就是指伺服接收的數據,這些數據由 PLC 來發送,發送 PDO 的功能碼(COB-ID)為:

1、0x200+伺服站號

2、0x300+伺服站號

3、0x400+伺服站號

4、0x500+伺服站號

PDO 有兩種傳輸方式:

同步(S

YNC)——由同步報文觸發傳輸(傳輸類型:0-240)

在該傳輸模式下,控制器必須具有發送同步報文的能力(頻率最高為 1KHZ 的周期發送的報文),伺服在接收到該同步報文後在發送。

非周期——由遠程幀預觸發傳送,或者由設備子協議中規定的對象特定事件預觸發傳送。該方式下伺服驅動器每接收到一個同步報文 PDO 里的數據即發送一次。

周期——傳送在每 1 到 240 個 SYNC 消息后觸發。該方式下伺服驅動器每接收到 n 個同步報文後,PDO里的數據發送一次。

異步(傳輸類型:254/255)

從站報文數據改變后即發送,不管主站是否詢問,而且可以定義同一個報文兩次發送之間的時間間隔,避免高優先級報文一直佔據總線(PDO 的數值越低優先級越高)。

保護方式/監督類型說明

監督類型是指在運行過程中主站選擇何種檢查方式檢查從站,通過這兩種方式來判斷從站是否出現故

障,並根據這些故障做出相應的處理!

1、心跳報文

從站按照“心跳報文產生時間”周期性的發送報文到主站,如果超過一定時間(在主站中設置)後主站還沒有收到從站的下一個心跳報文,那麼主站判斷從站出錯!報文格式——(0x700+節點號)+狀態

狀態——0:啟動,4:停止,5:運行,127:預操作

2、節點保護

主站以“監督時間”周期性的發送報文到從站,如果超過“監督時間*壽命因子”時間后,從站還沒有收到主站發送的節點報文,那麼從站報警!

主站請求報文格式——(0x700+節點號)(該報文無數據)

從站響應報文格式——(0x700+節點號)+狀態:

狀態——數據部分包括一個觸發位(bit7),觸發位必須在每次節點保護應答中交替置“0”或者“1”。

觸發位在第一次節點保護請求時置為“0”。位 0 到位 6(bit0~6)表示節點狀態;0:初始化,1:未連接,2:連接,3:操作,4:停止,5:運行,127:預操作。

標準的 CAN 從站一般都只支持一種節點保護方式,步科伺服驅動器兩

種保護方式都支持。

CANopen啟動過程說明

在網絡初始化過程中,CANopen 支持擴展的 boot-up,也支持最小化 boot-up 過程。可以用節點狀態轉換圖表示這種初始化過程

管理報文格式

當 Node-ID=0 時,所有的 NMT 從設備被尋址。CS 是命令字,其取值如表

可以通過 NMT 管理報文來實現在各種模式之間切換,只有 NMT-Master 節點能夠傳送 NMT Module Control 報文,所有從設備都必須支持 NMT 模塊控制服務,同時 NMT Module Control 消息不需要應答。NMT消息格式如下:NMT-Master→NMT Slave(s)

注意:

只有處於操作狀態 0x5,PDO 才能傳輸。如果要讓一個處於操作狀態的 6 號站開啟節點,那麼控制器發送如下的報文即可:

各種模式發送和接收數據報文,全部以站號為 1 舉例。

軍隊文職丨提醒:“報名回執表”妥善保管,面試、體檢會有大作用

距離2020軍隊文職筆試還剩29天!最近部分考生在後台問到關於“報名回執表”的一些問題:近日,考生諮詢紅師教育說,在某公眾號看到一篇文章,裏面明確告訴考生們“沒有報名回執單對筆試和面試沒有影響”!紅師教育是由退役軍人創辦的,專註於軍隊文職培訓的教育培訓機構。幾十年的軍旅工作經歷,我們保持着嚴肅、嚴謹的工作作風,贏得了考生的信賴。紅師教育提醒大家:報名回執表會在面試、體檢等環節使用,考生們必須打印!千萬不要因為一個小小的回執表耽誤了自己。報名回執表的作用報名回執表是考生報名成功的證明,回執表裡包扣

軍隊文職丨提醒:“報名回執表”妥善保管,面試、體檢會有大作用距離2020軍隊文職筆試還剩29天!最近部分考生在後台問到關於“報名回執表”的一些問題:近日,考生諮詢紅師教育說,在某公眾號看到一篇文章,裏面明確告訴考生們“沒有報名回執單對筆試和面試沒有影響”!紅師教育是由退役軍人創辦的,專註於軍隊文職培訓的教育培訓機構。幾十年的軍旅工作經歷,我們保持着嚴肅、嚴謹的工作作風,贏得了考生的信賴。紅師教育提醒大家:報名回執表會在面試、體檢等環節使用,考生們必須打印!千萬不要因為一個小小的回執表耽誤了自己。報名回執表的作用報名回執表是考生報名成功的證明,回執表裡包扣教育培訓,軍隊文職,退役軍人,面向社會,29天,回執單,保駕護航,個人信息,公眾號,不需要,2020年

发表评论

%d 博主赞过: