网站地图
原理与结构
原理与结构
您的位置: 首页 >> 原理与结构 >> 德敏哲CANopen位移传感器通讯配置范例详解

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

发布时间:2026-09-24
德敏哲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系列能一台顶两点的原因。

PDO 报文:7 字节 位移 4B 速度 2B 0x00 LSB first 低速时多为 0 保留位 cob-id = 0x1FF(磁块一);两磁块时磁块二用 0x2FF 同步模式 主控发 SYNC(0x080) 收到才回一个 PDO 异步模式 传感器按设定间隔自己发 不用等 SYNC
图:PDO 七字节结构(位移4+速度2+保留1),同步靠 SYNC 触发、异步自己定时上报

同步与异步:区别就一条,节拍谁掌握

同步模式下,启动指令只发一次。之后主控每个周期发一条 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 字节倒过来再拼成整数,最后乘分辨率。

接线上的老经验:CAN_H 和 CAN_L 必须是双绞,屏蔽层单端接地,别跟变频器动力线同槽。我们碰到过一台传感器数据偶尔整帧错乱,查了两天,最后发现是 0.5 米的一段信号线和伺服动力线绑在一起走。分开走线之后,误码直接消失。

上电到取数的完整顺序

把上面的活儿串起来,现场就四步:一是上电,接收 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位移传感器通讯配置与现场排障,易测电气位移传感器工程师欢迎您的咨询。

版权所有:深圳市易测电气有限公司 备案号:粤ICP备19052563号 网安粤公网安备 44030602003587号 技术支持:星海互联