国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

【睿擎派】EtherCAT總線之IO模塊讀寫

RT-Thread官方賬號 ? 2025-12-31 19:07 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群



上一篇文章《【睿擎派】CANOpen總線之IO模塊讀寫(DS401協議)》我寫了關于睿擎派上CANOpen的IO模塊通信,為什么先寫CANOpen?說來也有挺意思,是因為在睿擎派上對接EtherCAT的IO模塊,花費了很久時間,也沒有多少進展,所以轉頭去研究了基于CANOpen對接IO模塊,因為二者是有非常大的淵源的。


一、EtherCAT和CANOpen的異同



1980年代CAN總線誕生,1996年CANOpen協議發布,2003年EtherCAT技術發布。EtherCAT 和 CANopen 的核心關系是:CANopen 是協議規范(側重應用層),EtherCAT 是總線技術(側重物理層 / 傳輸層)—— 兩者均源于 CAN 總線生態,EtherCAT 復用了 CANopen 的核心應用層規范,同時在底層傳輸上實現了質的突破,最終形成 “上層兼容、底層獨立” 的技術互補格局。


EtherCAT完全復用 CANopen 的對象字典結構(索引范圍、尋址方式),僅在 0x1C00~0x1C3F 等區間擴展了 Sync Manager、DC 同步等專屬索引。完全保留 PDO/SDO 的功能定義,僅改變了底層傳輸方式。


CANopen 的 PDO 通過 COB-ID 映射到 CAN 幀,EtherCAT 的 PDO 通過 Sync Manager(同步管理器)綁定到以太網幀;CANopen 的 SDO 通過 CAN 幀分片傳輸,EtherCAT 的 SDO 通過郵箱通道(SM0/SM1)實現低延遲傳輸;


CANopen通過 EDS(Electronic Data Sheet)文件描述設備的對象字典、PDO 映射等配置,主站通過 EDS 識別設備;


EtherCAT通過 ESI(EtherCAT Slave Information)文件擴展 EDS 規范,新增了 Sync Manager、DC 同步、FMMU 等 EtherCAT 專屬配置,同時兼容 EDS 的核心內容;


此外比較關鍵的差異就是CAN總線最大速率1Mbps,ms級抖動,而EtherCAT最大可以1Gbps速率,us級抖動。這其中的原因除了速率上的差異外,傳輸機制上有很大的差別,CANOpen是幀逐節點轉發,需等待節點處理后再傳遞,而幀 “并行處理”,所有節點同時讀取幀中自身數據(如下面的動圖比較形象的展現了EtherCAT的傳輸原理)。


df4faed4-e638-11f0-8ce9-92fbcf53809c.gif

CANOpen主要運用在低速設備(傳感器、執行器)、低成本場景,而EtherCAT多用在高速 IO、多軸伺服、實時控制場景,比如機器臂,具身智能等設備上。


二、睿擎派對接雷賽EM32DX-E4-V30模塊



我從RC-Pi-3506的SDK1.5.0版本開始進行IO模塊對接,經過SDK1.7.0版本,最后在SDK1.7.2版本上在RTT郭老師的協助下調試成功,SDK1.7.2和SDK1.7.0關于EtherCAT的接口調用差異還是蠻大的,所以本篇內容以SDK1.7.2版本為準。


在真正對接之前,除了硬件模塊外,還需要硬件手冊和ESI文件(文后附相關文件下載鏈接)。

df621f2e-e638-11f0-8ce9-92fbcf53809c.jpg


我們以BSP 1.7.2版本的示例工程06_bus_ethercat_master_2motor_1io為基礎進行開發調試。

df722d74-e638-11f0-8ce9-92fbcf53809c.png


本代碼的官方說明的鏈接如下:

https://www.rt-thread.com/ruiching/document/site/rc3506/q7dq3ksb/#%E7%A4%BA%E4%BE%8B%E8%BF%90%E8%A1%8C


原示例支持2個伺服器+1個IO模塊,為了簡化,我們睿擎派只連接一個IO模塊(如下圖)。

df7d6220-e638-11f0-8ce9-92fbcf53809c.png

所以ethercat_2motor_1io.c文件的第16行代碼我們把電機的數量調整為0。

define MOTOR_NUM 0 //2


(1)配置PDO



最關鍵的部分是修改IO模塊的PDO定義,由于官方示例中所用的IO模塊(SG-ELC)和我們的型號規格不同,所以需要修改這部分配置。


查閱《EM32DX-E4 模塊用戶手冊 V3.1》 第20頁 5.2.1小結(如下圖)

df8cc864-e638-11f0-8ce9-92fbcf53809c.png

對應IO模塊16路開關量輸入,所以對應的pdo定義的代碼如下:


static ec_pdo_entry_info_t eio_input_pdo_entries[] =

{

{ 0x6000, 0x01, 16 },

};

0x6000是索引地址

0x01 是子索引地址

16表示16bit

同樣,我們查閱第22頁5.2.3小結(如下圖)

df9ac57c-e638-11f0-8ce9-92fbcf53809c.png

對應IO模塊的16路開關量輸出,所以對應的pdo定義代碼如下:

staticec_pdo_entry_info_teio_output_pdo_entries[] ={{0x7000,0x01,16},};

0x7000是索引地址

0x01 是子索引地址

16表示16bit

ec_pdo_entry_info_t是定義單個PDO條目的核心屬性類型,其結構體的定義如下:

typedefstruct{uint16_tindex; / PDO entry index. */uint8_tsubindex; / PDO entry subindex. /uint8_tbit_length;/** Size of the PDO entry in bit. /} ec_pdo_entry_info_t;

index – DO主索引 (對象字典對應條目主索引地址)

subindex- DO子索引

bit_length – 對應的位數

我們再看5.2.1和5.2.3的說明,TxPDO0的索引地址為0x1A00,RxPDO0的索引地址為0x1600。

我們需要配置eio_pdos 對象數組,其結構體定義為ec_pdo_info_t ,原型如下:

typedefstruct{uint16_tindex;uint32_tn_entries;ec_pdo_entry_info_tconstentries;}ec_pdo_info_t;

index – PDO索引,本身也是對象字典的一部分,TxPDO是 從站à主站(數據上傳),RxPDO是主站à從站(指令下發)。

n_entries – 對應條目的數量

entries 條目數組指針。

所以eio_pdos 對象數組的定義代碼如下:

ec_pdo_info_teio_pdos[] = {{0x1600,1, eio_output_pdo_entries },{0x1a00,1, eio_input_pdo_entries },};

接下來我們定義同步管理器相關內容。我們先看ec_sync_info_t 結構體定義。

typedefstruct{uint8_tindex;/** Sync manager index. /ec_direction_t dir / Sync manager direction. */uint32_tn_pdos; / Number of PDOs in a pdos. /ec_pdo_info_tconstpdos; /< Array with PDOs to assign. Thismust contain at least \a n_pdos PDOs. */ec_watchdog_mode_t?watchdog_mode; / Watchdog mode. */}?ec_sync_info_t;

index – 同步管理器的硬件索引 0 – 15,常見的是SM0-SM3

對應SDO非實時操作

SM0(索引 0)- 主站→IO 模塊(系統配置入),發送SDO報文,配置對象字典,接受CoE管理指令、

SM1(索引 1)- IO 模塊→主站(系統響應出),SDO響應報文,回傳診斷信息,發送從站狀態切換碼。

對應PDO實時操作:

SM2(索引 2)- 主站→IO 模塊(輸出)

SM3(索引 3)- IO 模塊→主站(輸入)

dir – SM的傳輸方向 EC_DIR_OUTPUT:主站輸出→從站輸入(RxPDO,如 DO 控制),EC_DIR_INPUT:從站輸出→主站輸入(TxPDO,如 DI 采集)。

n_pdos – SM要綁定的PDO數量(pdos數組中的PDO個數)

watchdog_mode — 看門狗模式(枚舉類型):

EC_WD_DISABLE:禁用看門狗

EC_WD_ON:啟用看門狗(主站心跳超時后,從站進入安全狀態,如 DO 歸零)

綜上,所以eio_syncs的數組定義如下:

ec_sync_info_teio_syncs[] ={{2, EC_DIR_OUTPUT,1, &eio_pdos[0], EC_WD_DISABLE },{3, EC_DIR_INPUT,1, &eio_pdos[1], EC_WD_DISABLE },};

也就是官方代碼(右邊)被左邊的代碼代替。

dfa96ea6-e638-11f0-8ce9-92fbcf53809c.png

(2)配置DC

這部分相關的內容需要查詢ESI文件,也就是因為DC配置有誤,設備總進入不到OP模式的主要原因。


EM32DX-E4.xml文件里,支持兩種產品型號,一種是EM32DX-E4-V30,一種是EM32DX-E4,


EM32DX-E4是支持DC同步的,配置如下圖所示:

dfb6d65e-e638-11f0-8ce9-92fbcf53809c.jpg


而EM32DX-E4-V30對應的ESI描述如下:

dfc60c3c-e638-11f0-8ce9-92fbcf53809c.jpg


通過讀取設備數據字典的信息,我們知道當前這款EM32DX-E4模塊其實是EM32DX-E4-V30。它是不支持DC的。

dfd4501c-e638-11f0-8ce9-92fbcf53809c.jpg

相關DC配置必須為0才可以。另外查手冊或者回讀數據字典,我們都可以知道廠商ID為0x00004321,這個地方需要替換一下。


此外進入OP模式后,電機操作的代碼注釋掉就可以了,這里不做詳述了。


三、運行調試


編譯代碼,然后部署。最后在遠程操作終端,我們輸入ect_csp_io,進行EtherCAT總線初始化及相關的配置。然后再輸入motor_run命令,就可以看到開關量輸出燈像走馬燈一樣運轉了。


dfe264e0-e638-11f0-8ce9-92fbcf53809c.jpg


dfed1124-e638-11f0-8ce9-92fbcf53809c.gif


附1:內置調試命令

dfff0014-e638-11f0-8ce9-92fbcf53809c.jpg



附2:雷賽EM32DX-E4說明書和ESI文件


https://download.csdn.net/download/yefanqiu/92462286

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

    關注

    59

    文章

    3066

    瀏覽量

    472730
  • 總線
    +關注

    關注

    10

    文章

    3040

    瀏覽量

    91656
  • ethercat
    +關注

    關注

    19

    文章

    1507

    瀏覽量

    45158
  • IO模塊
    +關注

    關注

    0

    文章

    177

    瀏覽量

    14432
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    10分鐘上手平臺GUI開發:第一個LVGL圖形應用

    ,在平臺上支持LVGL能夠更好地發揮其優勢,為開發者帶來更多便利。一環境搭建:5分鐘極速配置1.硬件準備開發板:
    的頭像 發表于 06-06 18:41 ?2781次閱讀
    10分鐘上手<b class='flag-5'>睿</b><b class='flag-5'>擎</b>平臺GUI開發:第一個LVGL圖形應用

    基于輕松玩轉CANopen電機控制

    在工業自動化領域,穩定高效的設備間通信是核心。CANopen協議憑借其可靠性,成為眾多工業設備(如伺服電機)的首選通信標準。今天,我們就來展示如何利用RT-Thread工業開發平臺,快速構建一個
    的頭像 發表于 07-19 09:04 ?5906次閱讀
    基于<b class='flag-5'>睿</b><b class='flag-5'>擎</b><b class='flag-5'>派</b>輕松玩轉CANopen電機控制

    基于輕松玩轉Modbus工業通信

    。今天,我們就帶來一篇實戰教程,教大家如何基于/工業平臺,分別作為ModbusRTU主機和ModbusTCP主機,讀取Modbus
    的頭像 發表于 07-23 17:05 ?3801次閱讀
    基于<b class='flag-5'>睿</b><b class='flag-5'>擎</b><b class='flag-5'>派</b>輕松玩轉Modbus工業通信

    EtherCAT多軸控制技術:如何實現低抖動高精度運動控制 | 深度解析

    在工業自動化領域,運動控制的精度和穩定性直接決定了生產效率和產品質量。近日,SDKV1.5.0版本重磅發布,其中EtherCAT多軸控制技術的升級尤為引人注目。今天,我們就來深入解析這項技術
    的頭像 發表于 10-15 18:39 ?6069次閱讀
    <b class='flag-5'>睿</b><b class='flag-5'>擎</b><b class='flag-5'>EtherCAT</b>多軸控制技術:如何實現低抖動高精度運動控制 | 深度解析

    文件系統指南:從開發到發布全流程實踐 | 技術解析

    在嵌入式系統開發中,文件系統扮演著至關重要的角色,它負責數據的持久化存儲、配置文件管理和資源訪問等核心功能。平臺提供了一套完整的文件系統解決方案,從開發階段的API調用到調試階段的文件操作,再到
    的頭像 發表于 11-05 18:13 ?8089次閱讀
    <b class='flag-5'>睿</b><b class='flag-5'>擎</b><b class='flag-5'>派</b>文件系統指南:從開發到發布全流程實踐 | 技術解析

    】CANOpen總線IO模塊讀寫(DS401協議)

    以瑞芯微RK3506為主控芯片,底層搭載RT-Thread操作系統,基于專為工業場景打造的工業平臺進行開發。該平臺是全棧自主可控的
    的頭像 發表于 12-24 18:01 ?7154次閱讀
    【<b class='flag-5'>睿</b><b class='flag-5'>擎</b><b class='flag-5'>派</b>】CANOpen<b class='flag-5'>總線</b><b class='flag-5'>之</b><b class='flag-5'>IO</b><b class='flag-5'>模塊</b><b class='flag-5'>讀寫</b>(DS401協議)

    3562快速上手體驗

    1引言隨著物聯網和工業自動化的快速發展,嵌入式開發板的需求日益增長。3562作為一款基于瑞芯微RK3562處理器的高性能開發板,憑借其強大的處理能力和豐富的外設接口,成為了嵌入式開發者的新選擇
    的頭像 發表于 03-04 21:19 ?294次閱讀
    <b class='flag-5'>睿</b><b class='flag-5'>擎</b><b class='flag-5'>派</b>3562快速上手體驗

    正運動技術運動控制器EtherCAT總線的基礎使用

    EtherCAT總線擴展模塊包含哪些?怎樣去使用正運動技術運動控制器EtherCAT總線
    發表于 09-27 08:34

    經濟型EtherCAT運動控制器:EtherCAT總線快速入門

    完成還需運行總線初始化程序才能與驅動器通訊,初始化模板程序參見下文。 注意: 使用EtherCAT總線擴展模塊時,也要執行總線初始化操作,再
    發表于 05-11 09:49

    EtherCAT總線IO模塊功能及安裝介紹

    XD系列插片式遠程IO模塊,成套系統主要由耦合器、各種功能IO模塊、電源輔助模塊以及終端模塊組成
    的頭像 發表于 07-14 09:14 ?2483次閱讀
    <b class='flag-5'>EtherCAT</b><b class='flag-5'>總線</b><b class='flag-5'>IO</b><b class='flag-5'>模塊</b>功能及安裝介紹

    平臺極簡開發重要實踐—— PinMux 配置工具 | 試用名單公示

    RT-Thread工業開發平臺是為工業場景設計的軟硬件一體化開發方案,全棧自主可控,賦能用戶聚焦核心業務創新,大幅提升開發效率。平臺以極簡化設計理念來指導產品開發。為降低開發門
    的頭像 發表于 06-11 17:05 ?1441次閱讀
    <b class='flag-5'>睿</b><b class='flag-5'>擎</b>平臺極簡開發重要實踐—— PinMux 配置工具 | <b class='flag-5'>睿</b><b class='flag-5'>擎</b><b class='flag-5'>派</b>試用名單公示

    RK3506J開發板開箱記錄、初步調試

    基于RK3506J開發,RK3506J是一款三核A7+M0的入門級工業MPU,由于其價位低,性能優異,近期收到熱捧,各家都出了很多RK3506J的開發板,賽德也出了一款,不過是
    的頭像 發表于 06-20 20:43 ?2315次閱讀
    <b class='flag-5'>睿</b><b class='flag-5'>擎</b><b class='flag-5'>派</b>RK3506J開發板開箱記錄、初步調試

    【MCU體驗、MPU性能】 RC3506 套件今日10點淘寶獨家開售!首批200套,搶完即止!| 產品動態

    工業開發平臺-RC-Pi3506套件今日在淘寶「賽德科技」店鋪正式發售!原價299元
    的頭像 發表于 07-04 09:04 ?1187次閱讀
    【MCU體驗、MPU性能】<b class='flag-5'>睿</b><b class='flag-5'>擎</b><b class='flag-5'>派</b> RC3506 套件今日10點淘寶獨家開售!首批200套,搶完即止!| 產品動態

    基于輕松玩轉EtherCAT主站,實現電機精確控制

    總線技術。本次實戰教程將基于平臺,演示實現:EtherCAT主站開發CSP模式伺服電機精準控制遠程
    的頭像 發表于 07-30 17:03 ?5169次閱讀
    基于<b class='flag-5'>睿</b><b class='flag-5'>擎</b><b class='flag-5'>派</b>輕松玩轉<b class='flag-5'>EtherCAT</b>主站,實現電機精確控制

    平臺v1.7.2版本正式發布|技術集結

    系統靈活性與性能●全面支持RuiChingStudio專業開發工具●預置豐富示例工程,加速開發進程RC3506EMMC版本硬件同步上架
    的頭像 發表于 12-17 18:10 ?561次閱讀
    <b class='flag-5'>睿</b><b class='flag-5'>擎</b>平臺v1.7.2版本正式發布|技術集結