跳到主要内容

CANopen (机械设备 / 运动控制)

CANopen 是构建在 CAN 总线之上的上层协议 (CiA 301),常用于运动控制器、伺服、机器人关节、计量仪表、车辆辅助系统等需要精密 / 确定性通信的场合。

本网关通过通用集成引擎支持 CANopen 读取。

PlantPulse 无法直接接入 CAN 总线

PlantPulse Edge 的硬件不带 CAN 控制器。要与 CANopen 从站通信,必须使用 CAN ↔ Ethernet 网关

推荐硬件备注
Anybus Communicator CAN可转换为 EtherNet/IP、Modbus TCP、PROFINET 等
Ixxat CAN@net NT基于 TCP socket 的 raw / CANopen 路由
HMS Networks Ewon Cosy / Flexy + CAN extension远程站点集成
Kvaser Ethercan开发 / 调试用

相当多的集成现场会将 CAN 转换为 Modbus TCP / EtherNet/IP 映射,然后在 PlantPulse 中按 Modbus TCP / EtherNet/IP 注册,这样更为简单。本页面适用于网关直接以 CANopen 形式暴露数据的情况。


注册表单输入项

输入栏填写内容示例
IP 地址CAN ↔ Ethernet 网关的 IP192.168.30.40
端口网关暴露的 TCP 端口(因厂商而异,例 19227)
Node ID (node-id)CANopen 节点号 (1~127)5
响应超时响应等待时间 (ms)2000
Node ID 是关键

CANopen 在同一总线上挂接多个从站,各自以 Node ID 区分。请为每个从站分别注册独立连接。


CANopen 基本概念 (简要梳理)

术语含义
Object Dictionary (OD)以树形结构整理设备全部数据项的表格。通过索引 (16-bit) + 子索引 (8-bit) 访问
SDO (Service Data Object)点对点读写。PlantPulse 使用的模式。速度慢但可访问任意项
PDO (Process Data Object)周期性 / 事件触发的 push。多数情况下由网关接收并缓存
NMT (Network Management)节点状态机 (Boot-up → Pre-operational → Operational → Stopped)
EDS / DCF定义 OD 的文本文件,由厂商提供

OD 索引分为标准区 (0x1000~0x1FFF)、厂商自定义区 (0x2000~) 和标准设备profile 区 (0x6000~)。


标签的 PLC 地址表示法

<index>:<subindex> 格式输入 OD 坐标。十六进制或十进制均可。

表示含义
0x1000:0Device Type
0x1018:1Identity → Vendor ID
0x1018:2Identity → Product Code
0x6000:01(DS-401 数字量输入 profile) Digital Input 1
0x6041:0(DS-402 运动控制 profile) Statusword
0x6064:0(DS-402) Position Actual Value
0x6077:0(DS-402) Torque Actual Value

坐标可在设备的 EDS 文件或手册的 OD 表中确认。也可以使用免费工具 CANopen Magic / CANeds / CANopenNode 直接扫描从站。


数据类型匹配

OD 中的值数据类型类型辅助项
BOOLEANBoolean(留空)
INTEGER8 / UNSIGNED8IntegerB
INTEGER16 / UNSIGNED16Integer(留空)
INTEGER32 / UNSIGNED32IntegerDW
REAL32FloatREAL
VISIBLE_STRINGStringSTR[N]

直接参照 EDS 文件的 DataType 列进行匹配即可。


常见问题与解决

现象可能原因解决方法
“No reply / SDO timeout”节点处于 Pre-operational 或 Stopped 状态通过 NMT 切换到 Operational (网关 / 主站设置)
仅部分节点无响应Node ID 冲突、缺少终端电阻CAN 线两端接 120Ω 终端电阻,排查 ID 重复
数值波动不稳bit-rate 不一致使从站与网关的波特率一致 (125k / 250k / 500k / 1M)
通信正常但含义不明使用了厂商自定义 OD 区 (0x2000~)查阅厂商手册 / EDS 中的项目说明
“Heartbeat lost”未配置主站将网关设为主站,或启用 sync producer

后续步骤

  • 高级 — REST API 中的 CANopen 示例
  • 大型现场迁移到 PROFINET / EtherCAT 的案例很多 — 若为新建项目,值得评估。