德敏哲CANopen位移传感器通讯配置范例详解

CANopen位移传感器通讯配置,说到底就是四步:上电收报文反推 node-id、发一条广播启动指令、按模式取 PDO 数据、再按字节规则解析出位置。德敏哲19系列在现场用得很多,第一次接的人多半会被"单磁块还是两磁块""同步还是异步"绕晕,其实把顺序理清楚就不难。下面按厂家的通讯范例,把每一步的报文和判据都摆出来。

CANopen位移传感器通讯配置第一步:上电用EMCY反查node-id
传感器一上电,会主动发一条 EMCY 报文,它的 cob-id 是 0xFF。用 0xFF 减去 0x80,得到的就是这台传感器的 node-id,也就是 0x7F(十进制 127)。0x7F 正是很多19系列的出厂默认 node-id,所以第一次接上不清楚地址时,靠这条报文就能反推出来。
为什么非得先确认 node-id?因为后面拼报文 ID 全靠它。CANopen 里跟具体节点相关的报文,cob-id 都是"功能码 + node-id"凑出来的,地址错了,主控发出去的指令就没有节点应答,现象就是一条回包都收不到。
启动所有节点:一条广播指令搞定
CANopen 设备上电后不是马上开始上报数据,要等主控发一条启动指令。广播启动所有节点:cob-id 用 0x000,数据两字节 0x01 0x00——第一个字节 0x01 表示启动节点,第二个字节 0x00 表示所有节点。
只想启动某一台,把第二个字节换成具体 node-id 就行。比如 0x01 0x7F,就只启动 0x7F 那一台。传感器收到这条指令后进入启动状态,之后才开始按模式回传数据。
PDO报文长什么样:7字节,位移走低位在前
位置数据走 PDO。PDO1 的 cob-id 是 0x1FF,一共 7 个字节:前 4 字节是位移,接着 2 字节是速度,最后 1 字节固定 0x00,是保留位。
数据是低位在前(LSB first)的,解析时要把字节顺序倒过来。举个例子:收到的位移字节是 0x03 0x83 0x00 0x00,倒过来拼成 0x00008303,十进制 33539;如果这台传感器的分辨率是零点零几毫米一级的,那么 33539 乘上分辨率,位置大约在 167 毫米。
两磁块的情况下,磁块一走 0x1FF,磁块二走 0x2FF,两个 cob-id 错开,各自带一个位置和一个速度。两个磁块代表两个独立的测量点,这也是19系列能一台顶两点的原因。
同步与异步:区别就一条,节拍谁掌握
同步模式下,启动指令只发一次。之后主控每个周期发一条 SYNC 报文(cob-id 0x080,不带数据),传感器收到 SYNC 才回一个 PDO。节拍完全由主控掌握,取数时刻和你的控制周期严格对齐。
异步模式更省事:传感器按设定的时间间隔自己往外发 PDO,不用等 SYNC。单磁块时 cob-id 还是 0x1FF,两磁块时磁块二用 0x2FF。适合不需要严格同步、只想定期拿到位置的场合。
四种模式怎么选
| 模式 | 适用场合 | 报文行为 |
|---|---|---|
| 单磁块·同步 | 一个测点,要求主控统一节拍 | SYNC 触发,回一条 0x1FF |
| 单磁块·异步 | 一个测点,想按固定频率上报 | 定时发 0x1FF,不发 SYNC |
| 两磁块·同步 | 两个独立测点,统一节拍 | SYNC 触发,回 0x1FF 与 0x2FF |
| 两磁块·异步 | 两个测点,各自定期上报 | 定时发 0x1FF 与 0x2FF |
选的时候先问自己一句:取数时刻要不要和控制周期对齐?要,就选同步;不要,异步更简单。再看测点数量,一个磁块还是两个磁块。
现场排障:收不到数据先查这四处
一条也收不到。先靠 EMCY 反查 node-id,确认地址没设错;再看总线两端 120Ω 终端电阻装了没有,缺终端电阻在 500kbps 这类较高波特率下最容易丢报文。
同步模式一直没数据。原因基本是主控没按周期发 SYNC。处理:确认 SYNC 是周期性发出的,而不是只在初始化时发了一次。
两磁块只收到一个 PDO。多半是模式没设成两磁块,或者 0x2FF 被总线上别的对象占了。处理:核对模式配置,再看 cob-id 有没有冲突。
解析出来的位移差得离谱。原因几乎都是字节顺序。处理:把收到的 4 字节倒过来再拼成整数,最后乘分辨率。
上电到取数的完整顺序
把上面的活儿串起来,现场就四步:一是上电,接收 EMCY,算出 node-id;二是发 0x000 + 0x01 0x00 广播启动;三是确认选同步还是异步——同步就周期发 0x080,异步就等传感器自己发;四是收到 PDO 后按 7 字节结构解析,4 字节位移倒序拼整数,乘分辨率换算成毫米。
波特率、终端电阻和节点保护这些参数,各系列出厂值不完全一样,具体以厂家样本和随机说明为准,别凭记忆照搬别的型号。
常见问题
问:收到启动指令后一直没数据?
答:先确认 node-id 对不对,用 EMCY 反查一次;同步模式别忘了周期性发 SYNC,异步模式则检查传感器是否已在定时上报。
问:两磁块只收到一个 PDO?
答:确认磁块二走的是 0x2FF,且两个磁块的 cob-id 没有冲突;只看到 0x1FF,多半是模式没设成两磁块。
问:解析出来的位移差很多?
答:十有八九是字节顺序。位移是 LSB first,要把收到的 4 字节倒过来拼成整数,再乘分辨率。
问:同步和异步能现场改吗?
答:可以通过 SDO 改写相关对象参数来切换,改完建议断电重启再验证一次。具体对象索引和写法以该系列说明为准。
问:一台总线能挂几台传感器?
答:取决于 node-id 范围和波特率。地址要一台一台错开,波特率越高、总线越短能挂的节点越多,具体按现场总长度和线材算。
19系列CANopen位移传感器通讯配置与现场排障,易测电气位移传感器工程师欢迎您的咨询。
推荐文章
- 磁致伸缩位移传感器原理:扭转波是怎么被听出来的[2026-09-29]
- 注塑机顶针电子尺震动问题与现场加固办法[2026-09-24]
- CANopen位移传感器事件计时器SDO配置详解[2026-09-24]
- 位移传感器接口从模拟量走向总线-产线升级内容要点详解[2026-09-24]
- 磁致伸缩液位计工作原理:脉冲怎么变成液位[2026-09-22]

