news 2026/8/22 21:08:38

EtherCAT PDO 映射概述:从“是什么”到“怎么配”,一次讲透

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
EtherCAT PDO 映射概述:从“是什么”到“怎么配”,一次讲透

很多人第一次接触 EtherCAT,会有一种困惑:
主站明明在“周期性收发过程数据”,但从站内部那么多变量,它到底是怎么知道要收哪些、发哪些?这些数据又是怎么摆进一帧 EtherCAT 报文里的?
答案就藏在三个关键词里:对象字典(OD)、PDO、映射(Mapping)。
你可以把 EtherCAT(CoE 模式)理解成:

  • 从站内部有一本“数据目录”(OD),每个数据都有地址(Index/SubIndex)
  • 主站周期要用的数据,先“挑选出来”组成 PDO
  • “挑选与排队”,就叫 PDO Mapping(PDO 映射)

1. 先建立直觉:PDO 映射到底在做什么?

1.1 两条“数据通道”:Mailbox vs Process Data

在 EtherCAT 里,从站数据交互常见分两类:

  • Mailbox(邮箱通讯):像“写邮件” 用于参数配置、诊断、非实时数据(例如 SDO 读写对象字典)
  • Process Data(过程数据):像“流水线传送带” 用于实时周期数据(IO、控制字、目标值、传感器采样等)
    PDO 就是过程数据的“承载方式”。
    它的目标很明确:把周期性要传的变量打包成一段紧凑的字节流,每个周期都按同样的布局收发。
    一句话直觉:
    PDO 映射 = “选哪些变量 + 按什么顺序 + 每个变量占多少位”

2. 对象字典 OD:一切映射的“变量来源”

在 CoE(CANopen over EtherCAT)里,从站内部变量统一挂在 对象字典(Object Dictionary, OD) 上。
每个对象由:

  • Index:16 位(如 0x7000)
  • SubIndex:8 位(如 0x7000:01)
  • 数据类型/位宽:如 UINT16、UINT32、BOOL 等

你可以把 OD 想象成一个“地址化的变量表”,主站通过 SDO 可以读写它;而 PDO 映射就是从 OD 里“挑变量装箱”。

3. PDO 相关对象:0x1600、0x1A00、0x1C12、0x1C13 是什么关系?

3.1 RxPDO 与 TxPDO:方向先别搞反

RxPDO(Receive PDO):主站 → 从站(从站“接收”)
通常是控制命令、输出量(比如 DO、目标电流/亮度)

TxPDO(Transmit PDO):从站 → 主站(从站“发送”)
通常是状态量、输入量(比如 DI、采样值、状态字)

3.2 0x1600 / 0x1A00:映射表本体(Mapping Object)

0x1600 ~ 0x17FF:RxPDO Mapping 对象

0x1A00 ~ 0x1BFF:TxPDO Mapping 对象

每个映射对象(比如 0x1600)本质是一个 RECORD:

SubIndex 0(0x1600:00):映射条目数(entry count)

SubIndex 1…n(0x1600:01…n):每一条映射内容(每条通常用 32bit 表示)

32bit 映射条目长什么样?

经典格式(也最常用)是:

映射条目=(Index<<16)|(SubIndex<<8)|(BitLength)

举例:把 0x7000:01 的 UINT16 映射进去

Index = 0x7000

SubIndex = 0x01

BitLength = 16 (0x10)

那么条目值就是:

0x70000110=>0x70000110

再比如 0x7000:02 的 UINT16:

0x70000210=>0x70000210

3.3 0x1C12 / 0x1C13:把“映射表”挂到 SyncManager 上

你可能会问:
“我定义了很多个映射对象(0x1600、0x1601…),到底哪个会生效?谁来决定主站周期数据用哪一套映射?”
答案是:SM Assignment(同步管理器分配对象)

  • 0x1C12:SyncManager 2 Assignment(通常用于 RxPDO)
  • 0x1C13:SyncManager 3 Assignment(通常用于 TxPDO)

它们的结构也类似:

  • SubIndex 0:挂载数量(用了几个映射对象)
  • SubIndex 1…n:分别写入映射对象的 Index(如 0x1600、0x1601…)

你可以把它理解成“插排”:

  • 0x1600/0x1A00 是“插头”(具体映射内容)
  • 0x1C12/0x1C13 是“插排”(决定插哪些插头生效)

4. 把四类对象串起来

OD 变量区(比如0x70000x6000...) │ │(挑选变量、规定顺序和位宽) ▼ PDO Mapping 对象 Rx:0x1600~0x17FFTx:0x1A00~0x1BFF│ │(把哪些映射对象“挂载启用”) ▼ SM Assignment 对象0x1C12(SM2)->选择 RxPDO 映射(0x1600/0x1601/…)0x1C13(SM3)->选择 TxPDO 映射(0x1A00/0x1A01/…) │ │(最终对应到 ESC 的 Process RAM 布局) ▼ 过程数据(Process Data)在 EtherCAT 帧中按固定布局周期交换

5.实战

假设你的从站对象字典有:

  • 0x7000:01 UINT16 OUT_STATE
  • 0x7000:02 UINT16 DA_VALUE

你希望主站每周期下发 4 字节:

  • 前 2 字节 OUT_STATE
  • 后 2 字节 DA_VALUE

5.1 配置 0x1600(RxPDO Mapping)

写条目:

  • 0x1600:01 = 0x70000110
  • 0x1600:02 = 0x70000210

5.2 配置 0x1C12(SM2 Assignment)

挂载映射对象:
0x1C12:01 = 0x1600

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/22 20:50:45

Clawdbot+Qwen3:32B GPU算力优化:量化部署(AWQ/GGUF)与推理加速

ClawdbotQwen3:32B GPU算力优化&#xff1a;量化部署&#xff08;AWQ/GGUF&#xff09;与推理加速 1. 为什么需要为Qwen3:32B做GPU算力优化&#xff1f; 你可能已经试过直接跑Qwen3:32B——那个参数量高达320亿的中文大模型。它确实聪明&#xff0c;写报告、编代码、聊专业话…

作者头像 李华
网站建设 2026/8/21 18:01:58

语音项目交付加速器:CAM++标准化测试流程

语音项目交付加速器&#xff1a;CAM标准化测试流程 在语音识别项目落地过程中&#xff0c;最让人头疼的往往不是模型本身&#xff0c;而是验证环节反复卡点、结果难以复现、交付周期一拖再拖。你是否也经历过&#xff1a;客户临时要求加测10个新说话人&#xff0c;团队连夜改脚…

作者头像 李华
网站建设 2026/8/21 18:02:06

科哥出品CAM++系统使用全记录,语音识别原来这么简单

科哥出品CAM系统使用全记录&#xff0c;语音识别原来这么简单 你有没有试过&#xff0c;在一堆语音文件里手动找某个人的声音&#xff1f;或者想确认一段录音是不是某个熟人说的&#xff1f;以前这事儿得靠耳朵反复听、靠经验判断&#xff0c;费时又容易出错。直到我遇到科哥开…

作者头像 李华
网站建设 2026/8/21 18:02:11

ms-swift实战应用:快速搭建Qwen2.5中文对话系统

ms-swift实战应用&#xff1a;快速搭建Qwen2.5中文对话系统 在大模型落地实践中&#xff0c;一个常被忽视的痛点是&#xff1a;明明有好模型&#xff0c;却卡在部署和微调环节。你可能试过手动改LoRA配置、反复调试vLLM参数、为不同模型重写推理脚本&#xff0c;最后发现——真…

作者头像 李华
网站建设 2026/8/21 18:02:37

SiameseUIE实战:中文客服对话信息抽取全流程解析

SiameseUIE实战&#xff1a;中文客服对话信息抽取全流程解析 还在为客服对话中海量非结构化文本难以提炼关键信息而头疼&#xff1f;一句“订单没收到”背后可能隐藏着用户ID、订单号、物流单号、投诉时间等多个关键要素——传统正则和规则引擎维护成本高、泛化能力差&#xf…

作者头像 李华
网站建设 2026/8/21 18:02:11

DeerFlow用户界面指南:红框按钮功能与操作路径说明

DeerFlow用户界面指南&#xff1a;红框按钮功能与操作路径说明 1. DeerFlow是什么&#xff1a;你的个人深度研究助理 DeerFlow不是另一个聊天窗口&#xff0c;而是一个能真正帮你“挖得更深”的研究伙伴。它不满足于简单回答问题&#xff0c;而是主动调用搜索引擎、运行Pytho…

作者头像 李华