汇川运动控制基础 协议简介
Master(主站):图左上角的矩形框,通常是你的 AC802 PLC(或 PC/工控机上的 EtherCAT 主站软件)。它是唯一主动发帧的设备。通过 RJ45 网口发出 EtherCAT 数据帧(箭头 → EtherCAT®)。主站使用(配置工具,如 InoProShop 中的 EtherCAT Master 配置界面)来规划整个网络。EtherCAT数据帧流动方向:从 Master → 第一
IEC61131

EtherCAT网络拓扑

这张图是 EtherCAT 网络拓扑的经典示意图(来自 EtherCAT 官方或相关技术手册),它展示了 EtherCAT 系统从主站(Master)到从站(Slave)的整体结构、数据流动方式、配置文件角色,以及从站内部的关键硬件组件。非常适合理解 AC802(EtherCAT 主站)如何连接伺服驱动器(如 SV660N 等从站)。
我按图从左到右、从上到下逐步讲解,结合 InoProShop + AC802 的实际使用场景,帮助你记忆和应用。
1. 整体架构概述(图最上方)
-
Master
(主站):图左上角的矩形框,通常是你的 AC802 PLC(或 PC/工控机上的 EtherCAT 主站软件)。
-
它是唯一主动发帧的设备。
-
通过 RJ45 网口发出 EtherCAT 数据帧(箭头 → EtherCAT®)。
-
-
主站使用 EtherCAT Configuration Tool(配置工具,如 InoProShop 中的 EtherCAT Master 配置界面)来规划整个网络。
EtherCAT
数据帧流动方向:从 Master → 第一个 Slave → 下一个 Slave → … → 最后一个 Slave 检测到开放端口后
自动折返
(形成逻辑环,即使物理是线型)。
-
这就是 EtherCAT 的“飞过式”(on-the-fly)处理:帧经过每个从站时,硬件瞬间读写数据,几乎无延迟。
2. 主站侧配置文件(左边部分)
-
ESI File
(EtherCAT Slave Information,.xml 文件):
-
黄色标注的 .xml 文件,从厂商(如汇川)官网或驱动器光盘下载。
-
内容:描述单个从站的所有信息,包括支持的 PDO(过程数据对象)、SDO(服务数据对象)、同步模式、厂商 ID、产品代码、对象字典等。
-
作用:InoProShop 用它来“认识”从站(导入 ESI 后才能扫描/配置)。
-
-
ENI File
(EtherCAT Network Information,.xml 文件):
-
也是 .xml,但由配置工具生成(不是厂商提供)。
-
内容:整个网络的完整描述,包括拓扑结构、所有从站顺序、PDO 映射、初始化命令(SDO 写值)、周期时间等。
-
作用:AC802 上电时加载 ENI 文件来初始化网络(InoProShop 下载项目时会自动包含或生成 ENI)。
-
-
EtherCAT Configuration Tool
(配置工具):
-
图中显示电脑图标 + 箭头指向 ENI。
-
在你这里就是 InoProShop:扫描网络 → 导入 ESI → 配置 PDO/Sync → 生成/导出 ENI → 下载到 AC802。
-
记忆点:ESI 是“从站身份证”(厂商提供),ENI 是“全家福 + 行程表”(工具生成,主站用)。
3. 从站(Slave)内部结构(图中央大框)
从站(如伺服驱动器)内部硬件设计标准化,几乎所有 EtherCAT 从站都长这样:
-
RJ45 接口
:两个(IN 和 OUT),支持 daisy-chain(菊花链)连接。
-
IN:接收来自上游(Master 或上一个 Slave)的数据帧。
-
OUT:转发到下游 Slave。
-
-
Transformer(变压器):两个,电气隔离和信号耦合,保护 PHY。
-
PHY(Physical Layer,物理层芯片):两个,处理 100BASE-TX 以太网信号(RJ45 到数字信号的转换)。
-
ESC
(EtherCAT Slave Controller,以太网从站控制器):
-
核心芯片(ASIC/FPGA/集成在 MCU 中),EtherCAT 的“大脑”。
-
功能:硬件级“飞过式”处理帧:
-
读主站发给自己的输出数据(e.g., 目标位置、使能)。
-
写输入数据(e.g., 实际位置、报警)。
-
转发帧给下一个从站(延迟只有纳秒级)。
-
-
支持分布式时钟(DC)同步。
-
-
SII
(Slave Information Interface,从站信息接口):
-
存放在 EEPROM(非易失性存储)中。
-
内容:基本从站信息(厂商 ID、产品代码、PDO 默认映射等),上电时 ESC 自动加载。
-
相当于从站的“小型身份证”,主站启动时先读 SII,如果需要详细配置再用 ESI。
-
-
Slave CPU
(从站处理器):
-
可选(简单 IO 模块可能没有,伺服驱动器有)。
-
处理应用逻辑(如伺服控制算法、故障处理)。
-
与 ESC 通过 DPRAM(双端口 RAM)或 SPI 等接口交换数据。
-
-
object backup
(对象备份,EEPROM):
-
存放 CoE(CANopen over EtherCAT)对象字典的持久化参数(如限位、滤波、单位等)。
-
用户通过 SDO 修改后可保存到 EEPROM,避免掉电丢失。
-
记忆点:从站硬件路径:RJ45 IN → Transformer → PHY → ESC(核心) → Slave CPU → 应用 → 输出 RJ45 OUT。ESC 是“快递员”,Slave CPU 是“收件人”。
4. 网络连接方式(图右边虚线)
-
主站 → 第一个 Slave(单线)。
-
Slave 之间:OUT → IN 菊花链(线型拓扑,最常见)。
-
支持环型(最后一个 Slave 的 OUT 连回主站的第二个端口,实现冗余)。
-
支持树型/星型(需带分支的从站或 Hub)。
-
AC802 支持双端口环网冗余(InoProShop 配置中启用 Ring)。
5. 实际在 InoProShop + AC802 中的对应操作
-
下载 ESI(从汇川官网或驱动器手册获取 SV660N 的 ESI.xml)。
-
InoProShop → 设备树 → 添加 EtherCAT Master → 导入 ESI。
-
扫描网络(在线)或离线配置拓扑。
-
配置 PDO 映射(位置模式常用:Controlword + Target Pos → Statusword + Actual Pos)。
-
Build → 生成 ENI(自动) → 下载到 AC802。
-
上电后:AC802 读 ENI → 初始化所有从站 → 进入 Op 状态 → 可调用 MC_Power 等 PLCopen 块。
CanOpen
CANopen(也写成 CANopen)是一个基于 CAN 总线(Controller Area Network)的高层通信协议和设备配置文件规范,由国际组织 CiA(CAN in Automation,CAN 自动化组织)维护和标准化。它主要用于工业自动化、运动控制、机器人、医疗设备、汽车等领域,帮助不同厂商的设备(如伺服驱动器、传感器、IO 模块)实现互操作性(plug-and-play),减少自定义开发工作。
用汇川 AC802 + InoProShop 时,CANopen 非常重要——因为 EtherCAT 网络中常用 CoE(CANopen over EtherCAT),这让 CANopen 的设备配置文件(如 CiA 402 驱动器 profile)直接运行在 EtherCAT 上,实现高精度运动控制。
下面我用新手友好的方式,从基础到应用,一步步给你讲解。
1. CANopen 是什么?为什么需要它?
-
底层:CAN 总线(ISO 11898),一种可靠的差分总线,抗干扰强,支持多主节点(仲裁机制),但 CAN 本身只定义物理层和数据链路层(帧格式、仲裁、错误检测),没有标准化应用层。
-
CANopen 作用
:在 CAN 上加一层“标准化应用协议”,定义了:
-
如何配置设备。
-
如何交换数据。
-
设备的行为模型(状态机、对象字典)。
-
标准化“设备类型”(如伺服驱动器、IO 模块)。
-
-
核心价值:厂商无关性!一台 CiA 402 兼容的伺服驱动器,不管是汇川、倍福、KEB、Technosoft 的,都可以用同一套代码控制(通过标准化对象如 Controlword、Target Position)。
2. CANopen 的核心概念(6 大关键点)
-
对象字典(Object Dictionary, OD)
:
-
每个 CANopen 设备都有一个“数据库”(像 Windows 的注册表),存储所有可配置/可读写的参数。
-
用 索引 + 子索引 地址(如 6040h:00 是 Controlword,6064h:00 是实际位置)。
-
分为几段:
-
通信参数(1000h–1FFFh):节点 ID、波特率、心跳等。
-
制造商特定(2000h–5FFFh):厂商自定义。
-
标准化设备 profile(如 CiA 402 的 6000h–9FFFh):伺服控制相关。
-
-
-
通信服务(Communication Services)
:
-
SDO(Service Data Object)
:配置/参数读写,像“客户端-服务器”模式。
-
主站(你的 AC802)用 SDO 写参数(如设置加速度、限位)。
-
慢速、非实时(用于初始化、调试)。
-
-
PDO(Process Data Object)
:实时过程数据交换,像“生产者-消费者”模式。
-
周期性发送(同步 PDO)或事件触发(异步 PDO)。
-
实时数据:目标位置、实际位置、速度、扭矩、状态字等。
-
PDO 映射:你可以自定义哪些对象打包进 PDO(e.g., 位置 + 速度一起发)。
-
-
-
通信模型
:
-
Master/Slave:主站(PLC)控制从站(驱动器)。
-
Producer/Consumer:PDO 的发送者(生产者)和接收者(消费者)。
-
Client/Server:SDO 的读写。
-
-
设备状态机(Device State Machine)
:
-
Initialization → Pre-operational → Operational → Stopped。
-
主站通过 NMT(Network Management)命令切换状态。
-
Operational 状态下才能发 PDO 实时运动。
-
-
设备配置文件(Device Profiles)
:
-
CiA 301:CANopen 核心规范(通信层)。
-
CiA 402
(DS402):驱动器和运动控制 profile(最常用!)。
-
定义了伺服驱动器的标准化控制方式:状态字(Statusword)、控制字(Controlword)、操作模式(Operation Mode,如位置模式 CSP、速度模式 CSV、扭矩模式 CST)。
-
PLCopen 运动控制块(如 MC_MoveAbsolute)底层就是基于 CiA 402 的这些对象。
-
-
-
配置文件
:
-
EDS/ESI(.xml 或 .eds):设备描述文件,InoProShop 用它认识从站。
-
DCF:设备配置快照(具体参数值)。
-
3. CANopen over EtherCAT(CoE)——你最关心的部分
在 AC802 项目中,你基本不用纯 CANopen(AC802 不支持原生 CANopen 主站),而是用 CoE(CANopen over EtherCAT):
-
EtherCAT 承载 CANopen 协议(ETG.6010 标准)。
-
好处:保留 CANopen 的对象字典、SDO、PDO、CiA 402 profile,但用 EtherCAT 的高速、确定性传输(周期 <1ms,同步精度 <100ns)。
-
在 InoProShop 中:
-
添加 EtherCAT 主站 → 导入伺服的 ESI.xml(包含 CoE 支持)。
-
PDO 映射:直接映射 CiA 402 对象(如 6040h Controlword、6064h Actual Position)。
-
SDO:InoProShop 支持在线读写对象字典(调试参数)。
-
PLCopen 块(如 MC_Power、MC_MoveAbsolute)底层调用 CoE 的 CiA 402 控制字/状态字。
-
简单说:CoE = “用 EtherCAT 的速度跑 CANopen 的逻辑”,完美结合了两者的优点。
4. 在 InoProShop + AC802 中的实际应用
-
配置:扫描 EtherCAT 从站(SV660N 等支持 CoE 的驱动器)→ 自动识别 CiA 402 profile。
-
编程:不用手动写 Controlword 切换(如从 Switch On → Operation Enabled),PLCopen 块自动处理。 示例:MC_Power(Axis := Axis1, Enable := TRUE) → 底层写 Controlword 实现上电。
-
调试:在线查看对象字典(双击从站 → CoE → Object Dictionary),读 6041h Statusword 判断轴状态。
-
常见模式
(CiA 402):
-
CSP(Cyclic Synchronous Position):位置模式,最常用,PLC 每周期发目标位置。
-
CSV:速度模式。
-
CST:扭矩模式。
-
CAN Protocol Explained | Controller Area Network

CANOpen over EtherCAT CoE 协议在驱动端额,除了要用到EtherCAT协议外,还要用到CANopen协议。EtherCAT协议设计时使用了OSI 七层模型中的三层,即应用层,数据链路层和物理层。CANopen协议时应用层协议,是EtherCAT在应用层使用的邮箱协议。
InoProshop中的SDO 和PDO
在 CANopen(CiA 301 规范)以及 CoE(CANopen over EtherCAT) 中,SDO 和 PDO 是两大核心通信对象(Communication Objects)。它们都用于访问/传输对象字典(Object Dictionary, OD) 中的数据,但用途、实时性、传输方式完全不同。
简单一句话区分:
-
PDO:实时过程数据,高速、周期性、低开销,像“流水线上的零件”(运动控制的核心)。
-
SDO:非实时配置/诊断,请求-响应式,像“工具箱里的扳手”(初始化、参数修改、调试用)。
下面详细对比和讲解,结合你在 AC802 项目中的实际使用。
1. 基本对比表
| 项目 | PDO (Process Data Object) | SDO (Service Data Object) |
|---|---|---|
| 中文名 | 过程数据对象 | 服务数据对象 |
| 主要作用 | 实时传输过程数据(如位置、速度、扭矩、状态字) | 配置参数、读写对象字典、诊断、初始化 |
| 实时性 | 高(周期性或事件触发,<1ms 周期) | 低(非周期,毫秒级延迟可接受) |
| 传输方式 | 广播/生产者-消费者模式(无确认) | 客户端-服务器模式(请求-响应,有确认) |
| 数据长度 | 原生 CANopen:≤8 字节 CoE(EtherCAT):可更大(甚至整个对象字典) | 可分段传输大块数据(>8 字节) |
| 优先级 | 高(功能码低,仲裁优先) | 低(功能码高) |
| 触发方式 | 同步(SYNC 消息触发)、异步(事件/定时)、轮询 | 主站主动发起(读/写请求) |
| 在 CoE 中的实现 | Buffer 模式(直接映射到过程数据 RAM) | Mailbox 模式(邮箱通信,非实时) |
| 典型对象 | 位置(6064h)、速度、Controlword(6040h)、Statusword(6041h) | 所有配置参数(如加速度 6083h、限位、滤波) |
| AC802/InoProShop 使用 | PLCopen MC_ 块底层依赖(如 MC_MoveAbsolute 发目标位置) | 配置轴参数、在线调试(双击从站 → CoE → Object Dictionary) |
2. PDO 详细说明(重点!你的运动控制天天用)
-
作用:传输实时、频繁变化的过程数据。伺服驱动器每周期把实际位置/速度/报警发给主站,主站每周期把目标位置/使能发给驱动器。
-
类型
:
-
RxPDO(Receive PDO):主站 → 从站(e.g., 目标位置、Controlword)。
-
TxPDO(Transmit PDO):从站 → 主站(e.g., 实际位置、Statusword)。
-
-
映射
:你可以自定义哪些对象字典项打包进 PDO(e.g., 一个 PDO 包含位置 + 速度 + 状态字)。
-
原生 CANopen:每个 PDO ≤8 字节。
-
CoE(EtherCAT):突破 8 字节限制,一个报文可含多个 PDO。
-
-
传输类型
(很重要!对象 1800h/1A00h 子索引):
-
0:异步(事件触发,如位置变化超过阈值)。
-
1~240:同步(收到 SYNC 消息后发送)。
-
254/255:异步 + 轮询。
-
在运动控制中常用 同步类型 1(周期同步)。
-
-
在你的项目中
:
-
InoProShop 配置 PDO 映射(双击 EtherCAT 从站 → PDO Assignment / PDO Mapping)。
-
PLCopen 块(如 MC_MoveAbsolute)底层自动写 RxPDO 的目标位置(607Ah),读 TxPDO 的实际位置(6064h)。
-
周期:AC802 EtherCAT 周期 1ms 内,PDO 实时刷新。
-
3. SDO 详细说明
-
作用
:
读写对象字典
中的任意项(除 PDO 本身外)。用于:
-
初始化:设置加速度(6083h)、减速度、限位、滤波器。
-
诊断:读厂商特定错误、温度、报警历史。
-
参数保存:写完后保存到 EEPROM。
-
-
类型
:
-
上传(Upload):主站读从站对象(e.g., 读实际位置)。
-
下载(Download):主站写从站对象(e.g., 写加速度)。
-
支持分段传输(大参数如曲线数据)。
-
-
协议:主站发请求,从站响应(有确认机制,失败会重试或报错)。
-
在 CoE 中的特点
:
-
通过 Mailbox(邮箱)通道传输,非实时。
-
主站(AC802)可在任意时候发起(在线调试时最常用)。
-
-
在你的项目中
:
-
InoProShop:在线模式下,双击从站 → CoE → Object Dictionary → 直接读写(如改 6083h 加速度,看效果)。
-
代码中:用 MC_WriteParameter / MC_ReadParameter 块访问(底层发 SDO)。
-
调试神器:轴报警时,先用 SDO 读 1001h(错误寄存器)或厂商特定对象查原因。
-
4. 简单记忆口诀(超适合你背)
-
PDO:Process(过程)→ 实时运动数据 → 高速、自动、周期刷。
-
SDO:Service(服务)→ 配置+诊断 → 手动、请求、慢速改。
-
运动控制 80% 时间用 PDO(PLCopen 块自动管)。
-
初始化/调试/改参数 100% 用 SDO(InoProShop 界面或代码手动发)。
5. 实际示例(结合 CiA 402 伺服)
-
PDO 示例
(位置模式 CSP):
-
RxPDO 映射:6040h (Controlword) + 607Ah (Target Position)。
-
TxPDO 映射:6041h (Statusword) + 6064h (Actual Position)。
-
每 1ms 周期,主站发新目标位置,从站回实际位置 → 轴平滑运动。
-
-
SDO 示例
(初始化):
-
主站 SDO 写 6083h:00 = 10000(加速度 10000 用户单位/s²)。
-
写 6084h:00 = 10000(减速度)。
-
写 6060h:00 = 8(选择 CSP 位置模式)。
-
这些在项目启动时或 HMI 上改参数时用。
-
运动控制基础:CiA 402简介 了解CiA_402哔哩哔哩bilibili
CIA402
CiA 402 讲解(CANopen Device Profile for Drives and Motion Control)
CiA 402(也叫 DS402 或 CiA® 402)是你每天都会碰到的东西。它是 CANopen 生态里最重要、最常用的驱动器 profile,专门为伺服驱动器、变频器、步进电机等“Power Drive System (PDS)”定义标准化行为。
简单说:CiA 402 让不同厂商的伺服(如汇川 SV660N、倍福、安川、KEB 等)用同一套命令和响应来控制(上电、使能、定位、回零、速度模式等),极大提高了兼容性和软件复用性。在你的项目中,EtherCAT + CoE(CANopen over EtherCAT) 就是用 CiA 402 来实现 PLCopen 运动控制块的底层逻辑。
1. CiA 402 的核心内容(4 大支柱)
CiA 402 基于 CiA 301(CANopen 通信层),扩展了驱动器专属功能。主要包括:
-
有限状态自动机(Finite State Automaton, FSA):驱动器的状态机(最核心!)。
-
操作模式(Modes of Operation):定义如何运动(位置、速度、扭矩等)。
-
关键对象(Mandatory Objects):Controlword、Statusword、目标/实际值等。
-
PDO/SDO 映射:实时数据和配置参数。
2. CiA 402 状态机(FSA)——你最常调试的部分
CiA 402 用一个状态机控制驱动器电源和运动权限。主站(AC802)通过写 Controlword (0x6040) 来切换状态,从站通过 Statusword (0x6041) 反馈当前状态。
常见状态(8 个主要状态):

| 状态编号 | 英文名称 | 中文常见称呼 | Statusword 典型位组合 (bit 6,5,3,2,1,0) | 含义与典型行为 |
|---|---|---|---|---|
| 1 | Not Ready to Switch On | 未准备好上电 | 0 x 0 0 0 0 | 初始化中,驱动器未就绪(上电后短暂状态) |
| 2 | Switch On Disabled | 上电禁用 | 1 x 0 0 0 0 | 已初始化,但高压电源禁用(伺服 OFF,制动器抱紧) |
| 3 | Ready to Switch On | 准备好上电 | 0 1 0 0 0 1 | 准备好接收“Switch On”命令 |
| 4 | Switched On | 已上电 | 0 1 0 0 1 1 | 高压电源 ON,但运动禁用(伺服准备好,但未使能) |
| 5 | Operation Enabled | 操作使能 | 0 1 0 1 1 1 | 完全使能,可运动!(PLCopen 的 Standstill → Motion 状态在这里实现) |
| 6 | Quick Stop Active | 快速停止激活 | 0 0 0 1 1 1 | 快速停止中(MC_Stop 触发) |
| 7 | Fault Reaction Active | 故障反应激活 | 0 x 1 1 1 1 | 故障发生,正在执行反应动作(如减速停止) |
| 8 | Fault | 故障 | 0 x 1 0 0 0 | 严重故障,已停止(需 Fault Reset 复位) |
状态切换规则(简化记忆):
-
从 Switch On Disabled → Ready to Switch On:写 Controlword 的 “Shutdown” 命令(bit 0=0, bit1=1, bit2=1)。
-
从 Ready to Switch On → Switched On:写 “Switch On” 命令。
-
从 Switched On → Operation Enabled:写 “Enable Operation” 命令。
-
任何状态下故障 → Fault Reaction Active → Fault。
-
复位故障:写 Controlword bit7=1(Fault Reset)。
在 InoProShop 中的体现:
-
PLCopen 的 MC_Power 块底层就是自动写 Controlword 完成从 Switch On Disabled → Operation Enabled 的切换。
-
MC_Reset 对应 Fault Reset。
-
轴状态(Axis.nAxisState)中的 ErrorStop 往往对应 CiA 402 的 Fault。
3. 操作模式(Modes of Operation)——决定怎么动
通过写对象 0x6060 Modes of operation 选择模式,0x6061 Modes of operation display 读当前模式。
最常用模式(支持这些的驱动器几乎都兼容 PLCopen):
| 代码 | 模式名称 | 英文缩写 | 典型对象(目标值) | 适用场景(大族贝瑞常见) | PLCopen 对应块 |
|---|---|---|---|---|---|
| 1 | Profile Position Mode | pp | 0x607A Target Position | 点位定位、轨迹规划 | MC_MoveAbsolute / MC_MoveRelative |
| 3 | Profile Velocity Mode | pv | 0x60FF Target Velocity | 恒速运行 | MC_MoveVelocity |
| 4 | Profile Torque Mode | tq | 0x6071 Target Torque | 力/扭矩控制 | — |
| 6 | Homing Mode | hm | — | 回原点(限位、原点传感器、硬限位等) | MC_Home |
| 8 | Cyclic Synchronous Position Mode | csp | 0x607A Target Position | 每周期更新位置(最常用,平滑插补) | MC_MoveAbsolute (周期模式) |
| 9 | Cyclic Synchronous Velocity Mode | csv | 0x60FF Target Velocity | 每周期更新速度 | MC_MoveVelocity (周期) |
| 10 | Cyclic Synchronous Torque Mode | cst | 0x6071 Target Torque | 每周期 |
1. 核心概念:AXIS_REF_SM3 是“轴的基类”
-
AXIS_REF_SM3
:这是 CODESYS SoftMotion V3(SM3)中最基础的
轴引用功能块
(Function Block),类型名为
AXIS_REF_SM3
。
-
它像 C++ 中的
基类
(abstract base class),定义了所有轴共有的:
-
属性(Variables):如当前位置、速度、状态(wState)、使能标志(bRegulatorOn)、错误码等。
-
方法(Methods):如 BasicInit、SetCommunicationState、CheckSupportedCommunicationState 等(用于初始化、通信状态检查)。
-
输入/输出:支持 VAR_IN_OUT 接口(运动块如 MC_Power、MC_MoveAbsolute 会用 VAR_IN_OUT AXIS_REF_SM3 来读写轴数据)。
-
-
所有 SoftMotion 轴(不管虚拟轴、EtherCAT 轴、CANopen 轴)都是 AXIS_REF_SM3 的扩展实例(EXTENDS 或继承)。
-
-
为什么像类?因为你可以:
-
继承它创建自定义轴 FB(e.g., FUNCTION_BLOCK MyCustomAxis EXTENDS AXIS_REF_SM3)。
-
调用它的方法/访问属性,就像面向对象编程。
-
2. 继承链(图片中的箭头流程)——从通用到具体
图片展示了轴结构体的继承层次(从左到右越来越具体):
-
AXIS_REF_SM3(最底层基类) ↓(继承/扩展)
-
AXIS_REF_VIRTUAL_SM3
(虚拟轴实现)
-
用于仿真轴(无真实硬件),开发/测试时常用。 ↓
-
-
AXIS_REF_MAPPING_SM3
(映射轴)
-
处理 PDO 映射、参数映射的中间层。 ↓
-
-
AXIS_REF_ETC_BASE_SM3
(EtherCAT 轴基类)
-
EtherCAT 专用基类,处理 EtherCAT 通信(如 Mailbox、Process Data、DC 同步)。 ↓(分支)
-
左边:AXIS_REF_ETC_DS402_CS(CiA402 同步位置模式专用实现,常用于 csp/csv/cst 模式)
-
右边:AXIS_REF_ETC_SM3(通用 EtherCAT 实现,可能包括 pp/pv 等 profile 模式)
-
整体链条(简化版):
text
AXIS_REF_SM3 └─ AXIS_REF_VIRTUAL_SM3 (虚拟/仿真轴) └─ AXIS_REF_MAPPING_SM3 (映射层) └─ AXIS_REF_ETC_BASE_SM3 (EtherCAT 基类) ├─ AXIS_REF_ETC_DS402_CS (CiA402 同步模式,csp/csv/cst,最常用) └─ AXIS_REF_ETC_SM3 (其他 EtherCAT 模式,如 profile position/velocity)
-
箭头表示继承关系(EXTENDS),每个层都添加新方法、属性、特定于该层的逻辑。
-
最终你项目中用的轴(e.g., 在设备树添加的 “SoftMotion CiA402 Axis”)其实是这个链条的最末端实例(如 AXIS_REF_ETC_DS402_CS 的实例)。
更多推荐

所有评论(0)