外貿(mào)網(wǎng)站有哪些平臺西安商城網(wǎng)站開發(fā)
鶴壁市浩天電氣有限公司
2026/01/24 05:21:01
外貿(mào)網(wǎng)站有哪些平臺,西安商城網(wǎng)站開發(fā),nas怎么做網(wǎng)站服務器,品牌推廣方案ppt在上一篇文章《【睿擎派】CANOpen總線之IO模塊讀寫(DS401協(xié)議)》我寫了關于睿擎派上CANOpen的IO模塊通信#xff0c;為什么先寫CANOpen#xff1f;說來也有挺意思#xff0c;是因為在睿擎派上對接EtherCAT的IO模塊#xff0c;花費了很久時間#xff0c;也沒有多少進展為什么先寫CANOpen說來也有挺意思是因為在睿擎派上對接EtherCAT的IO模塊花費了很久時間也沒有多少進展所以轉(zhuǎn)頭去研究了基于CANOpen對接IO模塊因為二者是有非常大的淵源的。一、EtherCAT和CANOpen的異同1980年代CAN總線誕生1996年CANOpen協(xié)議發(fā)布2003年EtherCAT技術(shù)發(fā)布。EtherCAT 和 CANopen 的核心關系是CANopen 是協(xié)議規(guī)范側(cè)重應用層EtherCAT 是總線技術(shù)側(cè)重物理層 / 傳輸層—— 兩者均源于 CAN 總線生態(tài)EtherCAT 復用了 CANopen 的核心應用層規(guī)范同時在底層傳輸上實現(xiàn)了質(zhì)的突破最終形成 “上層兼容、底層獨立” 的技術(shù)互補格局。EtherCAT完全復用 CANopen 的對象字典結(jié)構(gòu)索引范圍、尋址方式僅在 0x1C00~0x1C3F 等區(qū)間擴展了 Sync Manager、DC 同步等專屬索引。完全保留 PDO/SDO 的功能定義僅改變了底層傳輸方式。CANopen 的 PDO 通過 COB-ID 映射到 CAN 幀EtherCAT 的 PDO 通過 Sync Manager同步管理器綁定到以太網(wǎng)幀CANopen 的 SDO 通過 CAN 幀分片傳輸EtherCAT 的 SDO 通過郵箱通道SM0/SM1實現(xiàn)低延遲傳輸CANopen通過 EDSElectronic Data Sheet文件描述設備的對象字典、PDO 映射等配置主站通過 EDS 識別設備EtherCAT通過 ESIEtherCAT Slave Information文件擴展 EDS 規(guī)范新增了 Sync Manager、DC 同步、FMMU 等 EtherCAT 專屬配置同時兼容 EDS 的核心內(nèi)容此外比較關鍵的差異就是CAN總線最大速率1Mbpsms級抖動而EtherCAT最大可以1Gbps速率us級抖動。這其中的原因除了速率上的差異外傳輸機制上有很大的差別CANOpen是幀逐節(jié)點轉(zhuǎn)發(fā)需等待節(jié)點處理后再傳遞而幀 “并行處理”所有節(jié)點同時讀取幀中自身數(shù)據(jù)如下面的動圖比較形象的展現(xiàn)了EtherCAT的傳輸原理。CANOpen主要運用在低速設備傳感器、執(zhí)行器、低成本場景而EtherCAT多用在高速 IO、多軸伺服、實時控制場景比如機器臂具身智能等設備上。二、睿擎派對接雷賽EM32DX-E4-V30模塊我從RC-Pi-3506的SDK1.5.0版本開始進行IO模塊對接經(jīng)過SDK1.7.0版本最后在SDK1.7.2版本上在RTT郭老師的協(xié)助下調(diào)試成功SDK1.7.2和SDK1.7.0關于EtherCAT的接口調(diào)用差異還是蠻大的所以本篇內(nèi)容以SDK1.7.2版本為準。在真正對接之前除了硬件模塊外還需要硬件手冊和ESI文件文后附相關文件下載鏈接。我們以BSP 1.7.2版本的示例工程06_bus_ethercat_master_2motor_1io為基礎進行開發(fā)調(diào)試。本代碼的官方說明的鏈接如下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模塊如下圖。所以ethercat_2motor_1io.c文件的第16行代碼我們把電機的數(shù)量調(diào)整為0。#defineMOTOR_NUM 0//21配置PDO最關鍵的部分是修改IO模塊的PDO定義由于官方示例中所用的IO模塊SG-ELC和我們的型號規(guī)格不同所以需要修改這部分配置。查閱《EM32DX-E4 模塊用戶手冊 V3.1》 第20頁 5.2.1小結(jié)如下圖對應IO模塊16路開關量輸入所以對應的pdo定義的代碼如下staticec_pdo_entry_info_teio_input_pdo_entries[] {{ 0x6000, 0x01, 16 },};0x6000是索引地址0x01是子索引地址16表示16bit同樣我們查閱第22頁5.2.3小結(jié)如下圖對應IO模塊的16路開關量輸出所以對應的pdo定義代碼如下staticec_pdo_entry_info_teio_output_pdo_entries[] {{ 0x7000, 0x01, 16 },};0x7000是索引地址0x01是子索引地址16表示16bitec_pdo_entry_info_t是定義單個PDO條目的核心屬性類型其結(jié)構(gòu)體的定義如下typedefstruct{uint16_tindex;/** PDO entry index. */uint8_tsubindex;/** PDO entrysubindex. */uint8_tbit_length;/** Size of the PDO entry in bit. */}ec_pdo_entry_info_t;index – DO主索引 對象字典對應條目主索引地址subindex- DO子索引bit_length – 對應的位數(shù)我們再看5.2.1和5.2.3的說明TxPDO0的索引地址為0x1A00RxPDO0的索引地址為0x1600。我們需要配置eio_pdos 對象數(shù)組其結(jié)構(gòu)體定義為ec_pdo_info_t 原型如下typedefstruct{uint16_tindex;uint32_tn_entries;ec_pdo_entry_info_tconst*entries;}ec_pdo_info_t;index – PDO索引本身也是對象字典的一部分TxPDO是 從站à主站數(shù)據(jù)上傳RxPDO是主站à從站指令下發(fā)。n_entries – 對應條目的數(shù)量entries 條目數(shù)組指針。所以eio_pdos 對象數(shù)組的定義代碼如下ec_pdo_info_teio_pdos[] {{ 0x1600, 1, eio_output_pdo_entries },{ 0x1a00, 1, eio_input_pdo_entries },};接下來我們定義同步管理器相關內(nèi)容。我們先看ec_sync_info_t結(jié)構(gòu)體定義。typedefstruct{uint8_tindex;/** Sync manager index. */ec_direction_tdir/** Sync manager direction. */uint32_tn_pdos;/** Number of PDOs inapdos. */ec_pdo_info_tconst*pdos;/** Array with PDOs to assign. Thismust contain at leastan_pdos PDOs. */ec_watchdog_mode_twatchdog_mode;/**Watchdogmode. */}ec_sync_info_t;index – 同步管理器的硬件索引 0 – 15常見的是SM0-SM3對應SDO非實時操作SM0索引 0- 主站→IO 模塊系統(tǒng)配置入發(fā)送SDO報文配置對象字典接受CoE管理指令、SM1索引 1- IO 模塊→主站系統(tǒng)響應出SDO響應報文回傳診斷信息發(fā)送從站狀態(tài)切換碼。對應PDO實時操作SM2索引 2- 主站→IO 模塊輸出SM3索引 3- IO 模塊→主站輸入dir – SM的傳輸方向 EC_DIR_OUTPUT主站輸出→從站輸入RxPDO如 DO 控制EC_DIR_INPUT從站輸出→主站輸入TxPDO如 DI 采集。n_pdos – SM要綁定的PDO數(shù)量pdos數(shù)組中的PDO個數(shù)watchdog_mode -- 看門狗模式枚舉類型- EC_WD_DISABLE禁用看門狗- EC_WD_ON啟用看門狗主站心跳超時后從站進入安全狀態(tài)如 DO 歸零綜上所以eio_syncs的數(shù)組定義如下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},};也就是官方代碼右邊被左邊的代碼代替。2配置DC這部分相關的內(nèi)容需要查詢ESI文件也就是因為DC配置有誤設備總進入不到OP模式的主要原因。EM32DX-E4.xml文件里支持兩種產(chǎn)品型號一種是EM32DX-E4-V30一種是EM32DX-E4EM32DX-E4是支持DC同步的配置如下圖所示而EM32DX-E4-V30對應的ESI描述如下通過讀取設備數(shù)據(jù)字典的信息我們知道當前這款EM32DX-E4模塊其實是EM32DX-E4-V30。它是不支持DC的。相關DC配置必須為0才可以。另外查手冊或者回讀數(shù)據(jù)字典我們都可以知道廠商ID為0x00004321這個地方需要替換一下。此外進入OP模式后電機操作的代碼注釋掉就可以了這里不做詳述了。三、運行調(diào)試編譯代碼然后部署。最后在遠程操作終端我們輸入ect_csp_io,進行EtherCAT總線初始化及相關的配置。然后再輸入motor_run命令就可以看到開關量輸出燈像走馬燈一樣運轉(zhuǎn)了。附1內(nèi)置調(diào)試命令附2雷賽EM32DX-E4說明書和ESI文件https://download.csdn.net/download/yefanqiu/92462286