Skip to content
🤖 AI 助手 / 自动化工具:先读 《AI 助手先读》 《Agent 开发指引》 《生成前信息采集清单》;机器可读入口 /llms.txt;技能包(SKILL)直链:SKILL.md

总线 ​

概述 ​

本控制器支持多种工业现场总线协议,包括 EtherCAT、CANopen 等。通过总线可以实现与伺服驱动器、IO 模块、传感器等从站设备的高速实时通信。

支持的总线类型 ​

总线类型说明典型用途
EtherCAT基于以太网的实时总线伺服控制、高速 IO
CANopen基于 CAN 的现场总线传感器、编码器、分布式 IO

总线架构 ​

text
┌─────────────┐
│   控制器     │  (主站)
└──────┬──────┘
       │ EtherCAT / CAN bus
       │
  ┌────┴────┬─────────┬──────────┐
  │         │         │          │
┌─┴──┐   ┌──┴──┐   ┌──┴──┐   ┌──┴──┐
│伺服│   │伺服 │   │ IO │   │交换 │
│ 1  │   │ 2   │   │模块 │   │ 机  │
└────┘   └─────┘   └─────┘   └─────┘

EtherCAT 主站功能 ​

功能说明
从站扫描自动识别总线上的从站设备
ENI 配置通过 EtherCAT 网络信息文件配置从站
DC 时钟同步分布式时钟同步,实现各从站精确同步
PDO 映射过程数据对象映射,定义实时数据交换内容
从站状态管理监控从站运行状态,支持在线/离线检测

EtherCAT 总线配置 ​

ENI 文件管理 ​

ENI(EtherCAT Network Information)文件是 EtherCAT 总线配置的核心文件,描述了总线上所有从站的型号、数量、排列顺序及 PDO 映射信息。ENI 文件通常由专用配置工具生成(如 INEXBOT EC-Config),导入控制器后生效。


0x7010 上位机查询 ENI 文件列表 ​

命令字: 0x7010

请求参数:

参数名类型说明
numInt获取 ENI 文件数目,范围[1,10]
1-获取当前使用的 ENI 文件,10-获取所有 ENI 文件

请求示例:

json
{
  "num": 10
}

0x7011 控制器回复上位机 ENI 文件列表 ​

命令字: 0x7011

响应参数:

参数名类型说明
ENIfilelistString[]控制器 ENI 文件列表
ENIfilenumIntENI 文件数目
absolutepathString控制器中 ENI 文件所在文件夹

响应示例:

json
{
  "ENIfilelist": [
    "INEXBOT-IO-R4-1.xml",
    "DST_X503-1.json",
    "DST_X503-1.xml",
    "KunWeiTech_FT_Sensors-1.xml",
    "P140000107-1.0.1.1-ECXML-1.xml"
  ],
  "ENIfilenum": 5,
  "absolutepath": "eni/"
}

0x7012 上位机查询 ENI 参数 ​

命令字: 0x7012

请求参数:(无)

json
{}

0x7013 控制器回复上位机 ENI 参数 ​

命令字: 0x7013

响应参数:

参数名类型说明
ENINameString当前使用的 ENI 文件名称
isHaveENIIntENI 文件识别结果,范围[-1,1]
-1-无 ENI 文件,0-未识别到对应 ENI,1-识别到 ENI 文件

响应示例:

json
{
  "ENIName": "eni-RC-6-mecat-1-1000.xml",
  "isHaveENI": 1
}

0x7014 上位机设置当前使用的 ENI 文件 ​

命令字: 0x7014

请求参数:

参数名类型说明
ENINameString要激活的 ENI 文件名

请求示例:

json
{
  "ENIName": "eni-RC-6-mecat-1-1000.xml"
}

⚠️ 切换 ENI 文件后,控制器需要重新初始化 EtherCAT 总线。切换前请确认机器人处于安全状态。


从站管理 ​

0x7020 上位机查询从站列表 ​

命令字: 0x7020

请求参数:(无)

json
{}

0x7021 控制器回复上位机从站列表 ​

命令字: 0x7021

响应参数:

参数名类型说明
IONumInt[]IO 从站列表(0-非 IO 从站,非0-IO 从站索引)
servoNumInt[]伺服从站列表(0-非伺服从站,非0-伺服索引)
switchNumInt[]交换机序列数组,按 EtherCAT 从站拓扑顺序排列;0-不是交换机,非0-是交换机且数值为交换机序号
slaveTypeString[]从站中文名称列表
slaveTypeEnglishString[]从站英文名称列表

响应示例:

json
{
  "IONum": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
  "servoNum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],
  "switchNum": [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
  "slaveType": ["交换机", "禾川X3E", "禾川X3E", "禾川X3E", "禾川X3E", "禾川X3E", "禾川X3E", "禾川X3E", "禾川X3E", "禾川X3E", "禾川X3E", "禾川X3E", "禾川X3E", "禾川X3E", "禾川X3E"],
  "slaveTypeEnglish": ["switch", "hcfa_x3e", "hcfa_x3e", "hcfa_x3e", "hcfa_x3e", "hcfa_x3e", "hcfa_x3e", "hcfa_x3e", "hcfa_x3e", "hcfa_x3e", "hcfa_x3e", "hcfa_x3e", "hcfa_x3e", "hcfa_x3e", "hcfa_x3e"]
}

从站列表按总线拓扑顺序排列(从站 0 为离主站最近的设备),servoNum、IONum、switchNum 分别表示该位置的从站类型和编号。例如,switchNum 为 [1, 0, ...] 表示第一个 EtherCAT 从站是编号为 1 的交换机,其余位置不是交换机。


0x7022 上位机请求控制器切换系统 ​

命令字: 0x7022

请求参数:(无)

json
{}

切换系统用于在多个 ENI 配置方案之间切换,切换后控制器重新初始化总线。


常见问题 ​

总线故障排查 ​

现象可能原因解决方案
从站离线网线松动或断开检查 EtherCAT 网线连接
从站离线从站设备断电检查从站电源
从站不在 OP 状态ENI 文件与实际从站不匹配确认 ENI 文件与硬件配置一致
从站不在 OP 状态从站固件版本不兼容升级从站固件或更新 ESI 文件
总线初始化失败ENI 文件损坏重新导入有效的 ENI 文件
DC 同步失败从站不支持 DC在配置工具中禁用该从站的 DC 功能
总线周期超时从站数量过多减少不必要的从站,或增大周期时间
通讯错误累积电磁干扰检查屏蔽和接地

维护建议 ​

  • 定期检查从站在线状态(0x7023),监控 txErrors/rxErrors 计数
  • 总线运行中勿插拔网线或从站设备
  • 更换从站设备后需确认 ENI 配置匹配
  • 保持 ENI 文件与硬件配置同步更新