网站地图
故障与维护
故障与维护
您的位置: 首页 >> 故障与维护 >> 德敏哲194系列CANopen位移传感器节点ID设置

德敏哲194系列CANopen位移传感器节点ID设置

发布时间:2026-09-08
德敏哲194系列CANopen位移传感器节点ID设置

CANopen位移传感器节点ID设置,说白了就是给每支传感器发两条 SDO:一条把新节点号写进对象字典 0x300B,另一条存到 EEPROM 里、掉电不丢。多支传感器挂同一根总线,地址必须各不相同,这一步躲不开。下面拿德敏哲 194 系列做范例,把"从出厂默认 0x7F 改成 0x7E"的四条报文、cob-id 怎么算、现场最容易踩的两个坑一次讲透。

磁致伸缩位移传感器
图:位移传感器现场应用实拍(易测电气)

CANopen位移传感器节点ID设置要写两个对象

CANopen 里节点地址由对象字典管着,改地址不是拨个拨码开关就完事,要走 SDO 服务写对象。整件事分两步走,缺一步都不算改完。

第一步,向索引 0x300B、子索引 0x00 写新节点号。第二步,向索引 0x1010、子索引 0x01 写"保存"指令,把刚才的改动从易失内存落到 EEPROM。只做第一步不做第二步,掉电就回到老地址,这是新手最常翻的车。

保存指令的数据是四个字节:0x73 0x61 0x76 0x65,对应 ASCII 里的 s、a、v、e,也就是英文 "save"。填错一个字节,传感器一律不理你。

报文怎么发:从 0x7F 改到 0x7E 的四条

序号发送者cob-iddlcdata说明
1控制器0x67F(=0x600+原 node-id)82F 0B 30 00 7E 00 00 00向节点 0x7F 写新 ID 0x7E
2传感器0x5FE(=0x580+新 node-id)860 0B 30 00 00 00 00 00应答,ID 已改为 0x7E
3控制器0x67E(=0x600+新 node-id)82F 10 10 01 73 61 76 65向节点 0x7E 发 SDO,存 EEPROM
4传感器0x5FE860 10 10 01 00 00 00 00应答,存储完成

逐条读一遍就明白了:第 1 条是写值请求,命令字 2F 表示写一个 16 位对象,后面 0B 30(小端)就是索引 0x300B,子索引 00;第 2 条命令字 60,是写成功的应答。第 3 条命令字还是 2F,只是索引换成 10 10、子索引 01,数据位填 save 的 ASCII;第 4 条回 60,说明已经落盘。

四条走完,这台传感器重启后地址就固定在 0x7E。以后给它发任何报文,都得按 0x7E 来算。

cob-id 是怎么算出来的

node-id = 0x7E 控制器发 SDO 0x600 + 0x7E = 0x67E 节点回 SDO 0x580 + 0x7E = 0x5FE 节点发 EMCY 0x80 + 0x7E = 0xFE ← 发给它 ← 它回你 ← 倒推地址
图:三条 cob-id 公式都是"基址 + node-id",基址分别是 0x600、0x580、0x80

三条公式记住就够用了:

  • 控制器发 SDO 给节点:cob-id = 0x600 + node-id。给 0x7F 发就是 0x67F,给 0x7E 发就是 0x67E。
  • 节点回 SDO:cob-id = 0x580 + node-id。0x7E 回的报文就是 0x5FE。
  • 节点发 EMCY 紧急报文:cob-id = 0x80 + node-id。这条用来倒推当前地址。

注意上面表格里第 3 条报文的 cob-id 是 0x67E,不是 0x67F。因为第 1 条发完,传感器的地址已经变成 0x7E 了,后面所有发给它的报文都得按新地址算。这一步算错,存 EEPROM 那条根本没人应答。

不知道当前地址怎么办

把传感器断电再上电,它上电时会主动发一条 EMCY 报文。抓到这条报文,拿它的 cob-id 减掉 0x80,剩下的就是当前 node-id。用总线分析仪或者主站软件的报文窗口都能看到,不用拆表。

要是连 EMCY 都抓不到,还有两条退路:一是查订货记录,出厂地址一般写在标签或随货单据上,出厂默认是 0x7F;二是确认总线上没有别的节点占着 0x7F 时,直接用默认地址发第 1 条。动手之前先断电确认现场没有设备占着目标地址,地址一撞,整条总线一起乱。

现场两个坑:现象、原因、处理

第一个,存不进去。现象是第 1、2 条报文收得到,第 3 条发出去没有任何回应,重新上电地址又变回 0x7F。原因是存 EEPROM 那条的 cob-id 还在用旧地址 0x67F 算。处理办法很简单:把第 3、4 条的 cob-id 改成 0x67E 重发,立刻就有应答。

第二个,地址撞车。现象是新表接上总线后,原来那台好好的传感器也开始报错,主站上两个节点读数互相打架。原因是新表默认 0x7F 没改就上了线,而总线上本来就有一台 0x7F。处理办法是把新表单独接出来(一根短线加 USB-CAN 卡就够),改完地址存好再并入总线,逐台上线,别一次全挂上去。

改地址有三个动作顺序不能乱:先确认目标地址没被占,再发写值 SDO,最后发存 EEPROM 的 SDO 并读到应答。少任何一步,现场表现都是"改过了但不生效"。批量设置时一台一台上、上一台记一笔,比事后翻车再回头查快得多。194 系列的对象索引和报文格式以厂家样本为准。

改完怎么复核

三条核对动作,花不了五分钟:

  • 断电再上电,用主站扫描或抓 EMCY,确认报出来的地址就是新地址,而不是"应该改了"。
  • 发一条读 SDO 读回 0x300B,看值是不是 0x7E,用报文确认,别凭印象。
  • 把 PDO 通讯跑一遍,确认位移数据能正常上来。光地址对、PDO 没配对,等于没改好。

常见问题

问:德敏哲 194 系列 CANopen 位移传感器,改 node-ID 要发几条 SDO?
答:两条。第一条把新节点号写进索引 0x300B、子索引 0x00;第二条落盘到 EEPROM,主索引 0x1010、子索引 0x01,数据位填 0x73 61 76 65。出厂默认 0x7F 改 0x7E 就这么两步。

问:CANopen 位移传感器不知道当前 node-ID,怎么查出来?
答:把它断电再上电,传感器会发一条 EMCY 报文,拿这条报文的 cob-id 减掉 0x80,剩下的就是当前 node-id。先把地址确认清楚再动手改,比在现场盲试快得多。

问:改完 194 系列 CANopen 地址,存 EEPROM 那条为什么发不进去?
答:多半是 cob-id 还用旧地址算的。新 ID 生效以后,存 EEPROM 这条报文必须按新 node-id 来算,也就是 0x600 加新 ID,比如 0x67E;仍旧用 0x67F 发,传感器根本不认。

问:多台德敏哲 CANopen 位移传感器挂一根总线,改 ID 前先做什么?
答:先确认总线上没有别的设备占了目标地址,地址一撞通讯就是一片乱,还很难一眼看出是谁撞谁。改完存进 EEPROM、读到应答,上电复核一遍地址,再收工。

CANopen位移传感器节点ID设置与多台组网问题,易测电气位移传感器工程师欢迎您的咨询。

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