CANopen 多磁块读取配置

多磁环(多磁块)测量的 CANopen 配置,核心只有一条约束:标准 CAN 数据帧负载最大 8 字节,位置值为 INT32 占 4 字节,因此单个 TPDO 最多承载两个磁环的位置值。三个及以上磁环必须启用多个 TPDO 分批上报,并处理好磁环序号与 PDO 字节偏移的对应关系。测量原理见 一根波导丝读两个位置:多磁环测量原理,产品与接线见 194 CANopen 系列

CANopen 多磁块读取配置
CANopen 多磁块读取配置

多磁环在对象字典中的表示

按 CiA DSP 406 行规,位置值对象位于 0x6000 区。单磁环型号只有一个位置值条目;多磁环型号则以同一索引下的多个子索引(或行规规定的多组对象)分别表示第 1、第 2、第 N 个磁环的绝对位置,数据类型同样是 INT32。

这里有一个必须先确认的语义问题:磁环序号是按物理排列顺序编号的,通常自传感器固定端(电子头侧)向外依次递增。也就是说,序号对应的是"距离电子头第几近",而不是"哪一块磁环"。若运行中两块磁环发生了越位(本不应发生,但机构设计不当时可能出现),读数会发生序号互换,控制器会误判为两个轴瞬间跳位。机械设计上必须保证磁环的相对顺序不可逆转

另一个前提是相邻磁环最小间距为 78mm:间距 ≥78mm 时,两路扭转波回波在时间轴上可清晰区分,各通道读数互不影响;一旦<78mm,回波重叠,传感器无法分离,会表现为位置跳变、丢失一个位置值或该通道直接报无位置。这是结构性下限,不是可以靠调参数绕过的余量,机械布置阶段就要按它排布并留出安装误差裕量。磁环本身的选型要求见 永磁体(磁环)怎么选

PDO 映射:8 字节是硬边界

磁环数量位置数据总量所需 TPDO 数配置要点
1 个4 字节1 个(余 4 字节可放状态字)默认映射通常已可用
2 个8 字节1 个(占满)需确认字节偏移顺序,状态字另行安排
3 个12 字节2 个第 2 个 TPDO 需手工启用并映射
4 个16 字节2 个两帧各装两个位置值,建议同 SYNC 触发
N 个4N 字节⌈N/2⌉ 个总线负载随之上升,需重新核算周期

配置动作通过 SDO 完成:进入 PDO 映射参数,先将映射条目数清零(禁用映射),再逐条写入要映射的对象索引/子索引与位长,最后写回条目数使映射生效。这个"先清零再写入"的顺序是 CANopen 规范要求,跳过第一步会导致写入被拒绝——现场表现为"映射改不动"。PDO 与 SDO 的分工见 CANopen 入门:对象字典与 PDO/SDO 分工

同步触发:多磁环必须解决的时刻一致性

当多个位置值分散在两帧以上的 TPDO 中时,若采用事件触发或各自定时发送,主站收到的两帧可能来自不同的采样时刻。对于同步压制、双缸平行度控制这类应用,两个位置值的时间错位会直接转化为控制误差。

解决办法是把所有相关 TPDO 的传输类型设为 SYNC 同步触发:主站周期发出 SYNC 报文,从站在收到后统一采样并依次发出各帧。这样各位置值来自同一采样时刻,帧间的发送先后仅是传输排队,不影响数据一致性。

还要注意一个物理下限:磁致伸缩的一次测量需要等待扭转波从磁环传回电子头,量程越长,单次测量耗时越久,更新率随量程变化(较短量程约 0.5 ms 量级,超长量程可达数毫秒)。SYNC 周期不应短于传感器更新率,否则连续两次读到同一数值,控制器会误判位置停滞。更新率与控制周期的匹配方法见 响应时间/刷新率怎么和控制周期匹配

总线负载核算与常见问题

多磁环意味着每个 SYNC 周期要多发若干帧。核算方式很直接:单节点每周期帧数 × 节点数 × 周期频率,与所选波特率下的可用帧率相比。当负载偏高时的处理优先级依次为:延长 SYNC 周期 → 提高波特率(受线长约束)→ 拆分网段。波特率与线长的关系见 CANopen 节点地址与波特率配置实战

现象可能原因处理
只读到第一个磁环位置第 2 个 TPDO 未启用或未映射用 SDO 检查映射条目数与有效位
某磁环位置值恒为固定值该磁环缺失、越出量程或与相邻磁环间距<78mm实测相邻磁环间距,确认不小于 78mm
两个位置值偶发互换磁环物理顺序发生越位检查机构限位,保证顺序不可逆
两轴同步始终有固定偏差PDO 非同步触发,采样时刻不一致改为 SYNC 触发,统一采样
加磁环后错误帧上升总线负载超出波特率承载延长 SYNC 周期或重新核算网段

整体接线与调试规范见 总线实操指南,多轴系统的容量评估见 多轴同步选型:一根总线带多少轴才稳,产品参数见 194 CANopen 系列详解

工程师实操小贴士

  • 磁环不得与测杆直接接触,两者之间须保持设计间隙(PDF 原文:The ring magnet should not touch with the sensor rod)。
  • 磁环固定请使用非磁性材料制作的螺钉、垫片等零件,避免导磁件干扰测量(原文:Mount the magnet with the non-magnetic material for entrainment, screws, spacers, etc.)。
  • 磁环紧定推荐使用 M6 内六角紧定螺钉——该螺钉不随传感器附送,需自行准备(原文:Setscrew M6 with internal hexagon, Not Included)。

常见问题

Q:一个 TPDO 能装几个磁环的位置值?

最多两个。标准 CAN 数据帧负载上限为 8 字节,位置值以 INT32 表示占 4 字节,因此单帧最多两个位置值。三个及以上磁环必须启用多个 TPDO,所需数量为磁环数除以 2 向上取整。

Q:多磁环的磁环序号是怎么定义的?

按物理排列顺序编号,通常自传感器固定端(电子头侧)向外依次递增。序号对应的是距电子头的远近,因此机械设计必须保证磁环相对顺序不可逆转,否则运行中越位会造成读数整组错位。

Q:改 PDO 映射为什么写不进去?

CANopen 规范要求先把映射条目数写 0 以禁用映射,再逐条写入映射项,最后写回条目数使其生效。跳过第一步直接写映射项会被从站拒绝,现场表现为映射改不动。

Q:多磁环为什么必须用 SYNC 同步触发?

位置值分散在两帧以上时,若采用事件或定时触发,各帧可能来自不同采样时刻,同步压制、双缸平行度控制会因此产生固定偏差。SYNC 触发使从站在收到同步报文后统一采样,各值时刻一致。

Q:某个磁环位置值一直不变是什么原因?

常见于该磁环缺失、越出有效量程,或与相邻磁环间距过近导致两路回波在时间轴上重叠无法分离。需核对磁环实际位置与该型号的最小间距要求,具体数值以选型资料为准。

← 返回行业动态