<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

虹科干貨 | 讀不懂CANopen報文?看完這篇文章你就知道了!

虹科智能自動化 ? 2022-08-10 09:21 ? 次閱讀

//

CANopen是位于CAN總線之上的應用層協議。CAN報文由7個不同的位域組成,CANopen主要是規定了其中的仲裁域和數據域的使用情況。

01

CANopen報文格式

CANopen的報文格式為COB-ID+D0+D1+…..+D7, 放入CAN幀的數據,低字節優先。例如數據0x01020304對應如下組織:COB-ID 04030201。COB-ID= Function Code+Node ID(或其他),如圖所示:

e96b3670-17d0-11ed-9ade-dac502259ad0.png

Function Code(二進制):

EMCY:0001;

PDO:0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010;

SDOrx : 1011;

SDOtx : 1100;

NMT error control : 1110;

NMT : 0000;

SYNC : 0001;

TIME STAMP : 0010;

例子:182H=0001 1000 0010(B)

11bit為 0011 0000 010:前四位0011為功能碼PDO,后四位為節點,10=2即節點為2.

02

CANopen報文測試

01

Boot-up報文

Boot-up報文為CAN-ID=700+node_ID。當某個節點在initializing模式之后,進入pre-operational模式將發送boot-up報文,例如CIO102在上電之后會收到報文如下圖。這個boot-up報文其實也是第一個心跳報文。

e97dc6c8-17d0-11ed-9ade-dac502259ad0.png

02

NMT報文

e98e9142-17d0-11ed-9ade-dac502259ad0.png

NMT狀態機:1)Power on上電 2)自動切換到預操作狀態3)6)網絡管理切換到操作狀態。4)7)網絡管理切換到預操作狀態。5)8)網絡管理切換到停止狀態。9)10)11)網絡管理切換到應用層復位狀態。12)13)14)網絡管理切換到通訊復位狀態。15)掉電或者硬件復位。

NMT協議:11-bit的CAN報文ID中只攜帶高4-bit的功能碼,CANID均為000h,具備最高的 CAN 優先級。數據為Node-ID放在數據域的D1處;具體的NMT命令編碼放在數據域的D0處!例:將節點1設置為operational狀態:000 01 01


e9ba1cd6-17d0-11ed-9ade-dac502259ad0.png

如果要對整個網絡所有節點同時進行控制,則D1為0即可。例:將所有節點設置為operational狀態000 01 00


e9e1f42c-17d0-11ed-9ade-dac502259ad0.png

03

心跳報文

Stare:0=Boot-up 4=stopped 5=operational 7F=pre-operational

CAN-ID為700+Node-ID數據為一個字節。如圖,設備上電后處于pre-op狀態,通過SDO寫入心跳周期5s,每隔5s自動發送一次設備的狀態,通過000 01 01將設備的狀態切換為op。報文:601 2B 1710 00 88 13 00 00:601為CAN-ID(600+NODE_ID),2B代表寫兩個字節,17 10 表示索引(根據報文格式低位在前,此處代表對象1017h),00表示子索引,88 13 00 00代表數據內容(低位在前則該數據為00 00 13 88=5000).


e9efc1ce-17d0-11ed-9ade-dac502259ad0.png

04

Node guard

主站發送一幀遠程幀,節點應答700+Node_IDstate

State:0=初始化,1=斷開連接,2=連接,3=準備,4=stopped,5=operational,6=pre-operational

ea076e50-17d0-11ed-9ade-dac502259ad0.png

ea22c222-17d0-11ed-9ade-dac502259ad0.png

05

同步報文

同步窗口時間索引:1007h約束了同步幀發送后從節點發送PDO的時效即在這個時間內發送的PDO才有效超過時間的PDO將被丟棄;通訊循環周期:索引 1006 h 規定了同步幀的循環周期。

測試過程/Testing process

1)令設備處于op狀態

2)1800,1802的transmission type設為3

ea309d3e-17d0-11ed-9ade-dac502259ad0.png

ea597f7e-17d0-11ed-9ade-dac502259ad0.png

06

SDO

快速SDO

用于讀/寫某個節點的對象字典,其數據內容不超過四個字節。例如601 22 00 62 01 FF 00 00 00:601(600+Node_ID);22(不對傳輸數據的字節數做區分)=0010 0010(如下圖)001表示寫,0表示沒有用到的字節數,00表示剩下的字節數,1表示快速傳輸,0表示data區沒有字節數指示;01表示子索引;FF 00 00 00 表示數據區的內容。

SDO寫

ea6dd62c-17d0-11ed-9ade-dac502259ad0.png

CCS: 客戶端的命令碼 [1:寫入初始化請求]

X: unused bits

n: 字節數 (n表示后面4個字節數據剩余的數量)

e: transfer expedited (快速傳輸,無分段)

s: data區是否為字節數指示:0表示data區無,1表示data區的數值為要寫入的數據

SCS: 服務器命令碼 [3:寫入初始化響應]

SDO讀

ea7f1c02-17d0-11ed-9ade-dac502259ad0.png

CCS: 客戶端命令碼 [2:讀SDO初始化請求]

n: 當快速模式時,表示data區內空余的字節數

e: transfer type:1表示快速傳輸,無分段

s: data size indicator

SCS: 服務器端命令碼 [2:讀SDO初始化響應]

X: unused bits

SDO命令符

ea9db964-17d0-11ed-9ade-dac502259ad0.png

下圖為SDO測試的過程,包括讀6200 01和6200 02的讀寫操作。


eacad700-17d0-11ed-9ade-dac502259ad0.png

分段SDO/塊傳輸

針對讀寫數據超過四個字節的情況,報文測試進行分段傳輸。報文傳輸如下圖所示,601 40 08 10 00 00 00 00表示讀取1008索引10子索引。41 01 10 00 0D 00 00 00;60 00 00 00 00 00 00 00;70 00 00 00 00 00 00 00該為確認報文信息。00 68 69 70 65 63 73 2D;13 43 49 4F 31 30 32 00為具體內容,其中00和13為命令碼;其他通過查ASCII表68:h;69:i;70:p;65:e;63:c;73:s;2D:-;43:C;49:I;4F:O;31:1;30:0;32:2;00:NULL;即內容為:hipecs-CIO02。


eae4dcc2-17d0-11ed-9ade-dac502259ad0.png

eaf6aefc-17d0-11ed-9ade-dac502259ad0.png

07

PDO

PDO有三種觸發機制:事件觸發、遠程幀、同步。

PDO的COB-ID組成如下方的表格所示:

eb2cc6fe-17d0-11ed-9ade-dac502259ad0.png

此處的COB-ID就是文章開頭所說的其他的情況,這一應用主要在修改PDO映射中。其中PDO的COB-ID主要有以下這些:


eb436ada-17d0-11ed-9ade-dac502259ad0.png

PDO通訊中有兩個重要的概念,通訊參數與映射參數(CiA301中規定了他們的對象),通訊參數中定義了該設備所使用的COB-ID、傳輸類型、禁止時間、事件定時器觸發時間、同步起始值。

eb835596-17d0-11ed-9ade-dac502259ad0.png

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • CAN
    CAN
    +關注

    關注

    56

    文章

    2485

    瀏覽量

    460046
收藏 人收藏

    評論

    相關推薦

    一幀CANFD報文由多少個位組成?

    要想知道CANFD報文由多少個位組成,那么我們就要了解CANFD幀結構,知道每個段占用位數從而得出CANFD報文位數。
    的頭像 發表于 04-27 06:08 ?881次閱讀
    一幀CANFD<b class='flag-5'>報文</b>由多少個位組成?

    【米爾-瑞薩RZ/G2UL開發板】5.CAN通訊進階CANopen

    1 CANopen協議 從 OSI 的 7 層網絡模型的角度來看同,CAN(Controller Area Network)現場總線僅僅 定義第 1 層(物理層,見 ISO11898-2 標準
    發表于 03-31 16:19

    TC3xx連續發多幀CAN報文,超過40幀就死機怎么解決?

    之前的應用只發送幾個報文很正常,今天測試連續發送100幀(for循環內)時,發現最多只能連續發送40幀,超過40幀就死機,不知道能從哪個標志上看出原因?如果遇到這種應用有啥好方法嗎?請各位大佬指點,謝謝。
    發表于 02-06 07:18

    CANopen以太網網關怎么用?

    CANopen以太網網關怎么用? CANopen以太網網關是一種連接CANopen總線和以太網的設備,它提供了在CANopen網絡和以太網之間傳輸數據的功能。本文將詳細介紹
    的頭像 發表于 02-02 16:59 ?819次閱讀

    EtherCAT轉CANopen網關在工業領域的應用方法

    在工業領域中,EtherCAT轉CANopen網關是一種重要的通訊設備,它能夠實現EtherCAT協議與CANopen協議之間的轉換,從而讓不同的設備之間能夠進行通訊。 以下是EtherCAT轉
    發表于 01-31 14:54

    Profinet協議轉換為CanOpen協議來連接CanOpen伺服驅動器的應用

    在自動化控制領域,Profinet和CanOpen都是廣泛應用的通信協議。Profinet是一種基于以太網的通信協議,主要用于工業自動化領域的數據傳輸和遠程監控;而CanOpen是一種用于控制器
    發表于 01-10 10:29

    工業通訊中CANOPEN轉EtherCAT的轉換

    CANOPEN轉EtherCAT協議轉換網關是一款能夠將CANOPEN接口設備連接到EtherCAT網絡系統的產品。該網關作為EtherCAT網絡的從站,可以將CANOPEN設備集成到
    發表于 12-12 11:31

    ModbusTCP轉CanOpen網關助力工控行業

    CANopen協議的優勢,確保在數據傳輸過程中的高效與穩定。 這款網關的應用場景十分廣泛。在工業自動化系統中,它可以實現不同設備間的互聯互通,如傳感器、執行器、控制器等。同時,對于設備的遠程監控
    發表于 12-11 10:53

    從理論到實踐——CANopen源代碼配置

    前文所述,CANopen的適應性在滿足實時應用需求方面發揮著至關重要的作用。本系列文章的最后一部分將向您展示CANopen源代碼配置的技術細節,以及實現高效實時性能的優化方法。前文回顧虹科干貨|平衡
    的頭像 發表于 11-03 08:04 ?836次閱讀
    從理論到實踐——<b class='flag-5'>CANopen</b>源代碼配置

    CANOPEN 轉 Modbus 協議網關

    YC-COP-RTU網關可通過自帶的配置軟件設置成兩種不同的通信網關,CANopen 做主站/Modbus 做從站網關:CANopen 主站協議與 Modbus 從站協議之間的轉換,可實現單個 CANopen 從站設備與 Mod
    的頭像 發表于 09-19 17:55 ?411次閱讀
    <b class='flag-5'>CANOPEN</b> 轉 Modbus 協議網關

    虹科CANopen設備開發方案

    6月13日晚2000,虹科技術工程師張工為大家分享了“虹科CANopen設備開發方案”主題直播課程,課程的主要內容包括CANopen協議概述、對象字典、NMT、PDO、SDO等干貨內容,同時也介紹
    的頭像 發表于 07-31 17:51 ?416次閱讀
    虹科<b class='flag-5'>CANopen</b>設備開發方案

    一個CANopen的應用樣例(上)

    在基本的運行CANopen框架的演示項目中,除了一個已經運行CANopenNode組件程序的CANopen節點,還需要一臺運行PCAN-View軟件的PC機和USB-CAN轉換器PEAK-CAN
    的頭像 發表于 06-23 15:57 ?1676次閱讀
    一個<b class='flag-5'>CANopen</b>的應用樣例(上)

    芯片測試設備有哪些?看完這篇知道了

    芯片測試設備是用于檢測芯片性能的工具和設備。這些設備可以幫助工程師、科學家和制造商檢測和分析芯片的特定屬性,以確保它們符合規格和標準。以下是一些常見的芯片測試設備: 邏輯分析儀(Logic Analyzer):用于捕捉數字信號并將其顯示為波形圖形式,以便分析和調試數字電路。 示波器(Oscilloscope):用于測量和分析模擬信號,并將其顯示為波形圖形式。 穩壓電源(Stabilized Power Supply):用于提供恒定的電壓和電流輸出,以進行可靠的芯片測試。 特定應用芯片測試設備(Application Specific Integrated Circuit Test Equipment,簡稱ASIC測試設備):用于測試特定類型的芯片,例如模數轉換器或數字信號處理器。 半導體參數分析儀(Semiconductor Parameter Analyzer):用于檢測半導體器件的電學性質,包括電阻、電容和電流等。 時鐘測試設備(Clock Testing Equipment):用于測試芯片的時鐘頻率和穩定性。 7.芯片測試座百度上的定義是ic測試座(測試插座)是對ic器件的電性能及電氣連接進行測試來檢查生產制造缺陷及元器件不良的一種標準測試設備。實際上,芯片測試座,又稱IC socket,其實定義沒有那么復雜,它只是為了滿足某種芯片某種測試需求的內聯器(interposer)。它是一個IC和PCB之間的靜態連接器,它會讓芯片的更換測試更為方便,不用一直焊接和取下芯片,這樣的話,就不會損傷芯片和PCB,從而達到快速高效的測試。 以上是一些常見的芯片測試設備,當然還有其他不同種類的設備。根據不同的芯片類型和測試需求,工程師和制造商可以選擇不同類型的設備進行測試和分析。
    發表于 06-17 15:01

    MPC5642A微控制器是否支持CANOpen?

    MPC5642A 微控制器是否支持 CANOpen? 我正在使用 MPC5642A 微控制器,這個微控制器有 CANbus 接口。我想用這個微控制器與一個帶有 CANopen 接口的傳感器通信,我該怎么做,能幫忙嗎?MPC56
    發表于 06-09 06:29
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>