CANopen通信超时是欧姆龙NJ系列PLC与伺服驱动器联机调试中最为棘手的故障之一。该故障通常表现为PLC报错“通信超时”或“节点找不到”,导致伺服轴无法使能或无法接收运动指令。节点ID(Node ID)冲突或配置错误是引发此类故障的核心原因。本指南将提供一套从硬件底层到软件配置的完整排查流程,帮助快速定位并解决节点ID问题。
一、 故障诊断流程总览
当系统出现通信超时时,盲目修改参数往往适得其反。请按照以下逻辑路径进行初步判断,确定故障源头是否位于节点ID。
二、 硬件层面的节点ID确认
在打开软件之前,必须先确认伺服驱动器实际的物理节点ID。欧姆龙伺服驱动器(如NX、1S系列)通常通过前面板的数位管或拨码开关设定ID。
1. 查看驱动器显示面板
观察 伺服驱动器面板上的两位七段数码管显示。在通电初期或通过切换模式,数码管会显示当前的节点ID。
- 按下 驱动器面板上的
MODE键,切换参数查看模式。 - 调节 数据旋钮,查找到参数
Un00C(节点ID监视参数)或类似监视参数。 - 记录 数码管显示的数值。例如显示
01代表节点ID为1,显示10代表节点ID为10。
2. 检查拨码开关(针对支持型号)
部分型号支持物理拨码开关设定ID。
- 断开 驱动器电源。
- 观察 驱动器侧面或底部的黑色微型拨码开关。
- 核对 拨码位置对应的二进制数值。通常
ON为1,OFF为0。若开关1-4位分别对应 $2^0, 2^1, 2^2, 2^3$,则ID计算公式为:
$$ID = \sum_{i=1}^{4} S_i \times 2^{i-1}$$
其中 $S_i$ 为第 $i$ 位开关的状态(1为ON,0为OFF)。
3. 排查ID冲突
在多轴系统中,ID冲突是常见低级错误。
- 列出 系统中所有伺服驱动器的预设ID清单。
- 逐一 检查各驱动器,确保没有两个驱动器被设置为相同的ID(例如两个驱动器都设为
Node 1)。 - 确认 ID号在有效范围内(通常为
1到127)。
三、 PLC软件配置核对
确认硬件ID无误后,需检查NJ系列PLC中的Sysmac Studio配置是否与之匹配。
1. 打开项目配置
- 启动 Sysmac Studio软件。
- 打开 对应的工程项目文件。
- 展开 左侧项目树中的 “Configurations and Setup” -> “CPU/Unit Setup” -> “Built-in CANopen Port”。
2. 核对节点列表
在CANopen网络配置界面中,重点检查以下参数的一致性。
| 检查项目 | 驱动器侧 (硬件) | PLC侧 (软件) | 判定结果 |
|---|---|---|---|
| 节点ID (Node ID) | 面板显示数值 (如 3) |
网络配置列表中的索引号 | 必须完全一致 |
| 波特率 | 驱动器参数 Un002 等 |
网络设置中的 Baudrate |
必须完全一致 |
| 通信协议 | CANopen | CANopen | 必须匹配 |
注意:如果PLC侧配置的节点ID与驱动器物理ID不一致,PLC发送的心跳请求(Node Guarding)将无法得到响应,从而触发超时报警。
3. 修改并同步配置
若发现ID不匹配:
- 双击 Sysmac Studio中该节点的ID设置栏。
- 输入 正确的节点ID数值(必须与硬件一致)。
- 点击 工具栏上的 “Compare with Master” 或直接执行 “Synchronize to Master”。
- 确认 变更后的配置已写入PLC。
四、 使用SDO进行通信测试
如果软硬件ID看似一致但依然超时,需要通过SDO(Service Data Object)读写测试来验证链路是否真正连通。
1. 建立连接监控
- 切换 Sysmac Studio至 “Online” 模式。
- 导航 至 “CANopen Monitor” 功能窗口。
2. 发送测试指令
尝试读取驱动器的标准对象字典,例如读取对象 0x1000(设备类型)。
- 选择 SDO传输模式。
- 输入 目标节点ID(例如
1)。 - 输入 索引
0x1000,子索引0x00。 - 点击 “Read” 按钮。
结果判定:
- 成功:返回一串十六进制数值(如
0x00010192),说明通信链路正常,ID配置正确。此时超时故障可能源于PDO映射错误或心跳超时时间设置过短。 - 失败:软件提示 “SDO Abort” 或 “Timeout”,说明物理链路不通或波特率不匹配。
五、 深度排查:波特率与终端电阻
节点ID正确但通信仍超时,往往是因为信号质量问题。
1. 波特率一致性验证
CANopen通信要求全网波特率严格一致。驱动器内部参数通常设有波特率设定项。
- 查阅 驱动器手册,找到波特率设置参数(欧姆龙伺服通常为
Un002或类似参数)。 - 确认 参数值含义。例如:
0:125 kbps1:250 kbps2:500 kbps3:1 Mbps
- 比对 PLC侧的波特率设置。若驱动器设为
250 kbps而PLC设为500 kbps,虽然物理ID正确,但完全无法通信。
2. 终端电阻检查
CANopen网络两端必须接入终端电阻(通常为 $120\Omega$),以消除信号反射。
- 断电 整个控制系统。
- 使用 万用表电阻档测量CAN_H与CAN_L之间的阻值。
- 计算 总线电阻。若网络有2个终端电阻,并联后的测量值应约为 $60\Omega$。
$$R_{total} = \frac{R_{terminal}}{N} = \frac{120\Omega}{2} = 60\Omega$$ - 判断:若阻值为无穷大,说明线路断路或未接终端电阻;若阻值趋近于0,说明线路短路。这些物理故障均会导致通信超时。
六、 常见故障代码解析
在排查过程中,NJ系列PLC可能会给出具体的错误代码,以下是关于节点ID相关的典型代码解析。
| 错误代码 | 故障描述 | 节点ID相关原因分析 | 解决措施 |
|---|---|---|---|
0x08000000 |
通信端口错误 | 电缆未连接或接线错误 | 检查 物理线缆接头 |
0x08000200 |
节点守护错误 | 节点ID冲突,或指定节点未上电 | 核对 节点ID唯一性 |
0x08002000 |
SDO通信超时 | 目标节点ID不存在或波特率不匹配 | 确认 ID与波特率设置 |
0x08010000 |
CAN总线关闭 | 总线干扰严重或终端电阻缺失 | 加装 终端电阻 |
七、 终极验证步骤
完成上述所有检查与修改后,执行以下标准验证流程确保故障彻底消除。
- 保存 Sysmac Studio中的所有修改。
- 断电 重启PLC与伺服驱动器(冷启动可清除残留的故障寄存器状态)。
- 观察 PLC指示灯。RUN灯常亮,ERR灯熄灭。
- 监控 Sysmac Studio中的 “Axis Status”。状态应显示为 “Ready” 或 “Operation Enabled”。
- 执行 点动测试。按下 “Jog” 按钮,观察伺服电机是否按指令转动。
通过物理ID核对、软件配置匹配、波特率对齐以及终端电阻测量,绝大多数CANopen通信超时故障均可迎刃而解。

暂无评论,快来抢沙发吧!