彦控
方案对比 2026.05.18 · 6 min read

运动平台通信协议的两个层 — 客户接入层 vs 内部伺服层

为什么客户不在 EtherCAT 和 UDP 之间选 — 协议层级科普

彦控技术中心
运动控制工程

一个常被问错的问题

“我们买六自由度平台,控制器选 EtherCAT 还是 UDP?CANopen 行不行?Modbus 不便宜吗?”

这是几乎所有客户在选型阶段都会问的一组问题。

但这个问题本身有歧义 — 因为它把两层不同的协议混在了一起。这就像问”我家装修选海底光缆还是 Wi-Fi 路由器”——前者是骨干网,后者才是你能用的接入方式。

下面拆开讲。


运动平台的两层协议

                  ┌─────────────────────────────┐
                  │   你的上位机 / 仿真 / Web    │
                  └────────────┬────────────────┘

        【第 1 层 · 客户接入层 · 应用层协议】
                  TCP / UDP / WebSocket / HTTP

                  ┌────────────▼────────────────┐
                  │       彦控控制器             │
                  └────────────┬────────────────┘

        【第 2 层 · 内部伺服层 · 现场总线】
              EtherCAT / CANopen / Modbus(工程实现)

                  ┌────────────▼────────────────┐
                  │       6 支伺服电缸           │
                  └─────────────────────────────┘
协议谁用客户能选吗
第 1 层 · 客户接入层TCP / UDP / WebSocket / HTTP客户上位机、仿真平台、Web 工具✅ 可选
第 2 层 · 内部伺服层EtherCAT / CANopen / Modbus控制器与伺服电缸之间(厂商工程师)❌ 不可选(也无需选)

关键点:客户写代码时永远只接触第 1 层。下层走什么总线是厂商工程实现选择,客户不可见也不需要管。


第 1 层 · 客户接入层(这才是你要选的)

协议适合场景客户感知差异
UDPPC 上位机 / 仿真 / Unity / ROS / VR / HIL实时低延迟,丢一包下一包覆盖;适合高频位姿流
TCP命令响应式集成 / 文件传输可靠送达,一问一答
WebSocket浏览器上位机 / Web 调试工具双向实时,零安装即用
HTTPSCADA / MES / 脚本自动化RESTful 风格,与企业系统天然兼容

怎么选:

  1. 运动控制连续推流 → UDP(首选)
  2. 命令-响应一来一回 → TCP
  3. 浏览器现场调试 → WebSocket
  4. 接 MES / 自动化脚本 → HTTP

90% 客户场景一个 UDP 就够了。复杂集成会混用多个。

重点:以上 4 个协议全部支持任意语言任意平台 — Windows / macOS / Linux / 嵌入式 RTOS,C++ / Python / Matlab / LabVIEW / JS / Go / Rust … 都能集成。


第 2 层 · 内部伺服层(彦控替你做的选择)

控制器需要驱动 6 支伺服电缸做亚毫米级同步运动,对总线的要求是确定性的硬实时。这一层彦控选择了工业事实标准:

总线用途工程意义
EtherCAT主流方案 — 微秒级同步、几十节点轻松扩展6 轴同步精度的硬保障
CANopen兼容老款 CAN 总线伺服兼容性
Modbus兼容部分国产伺服兼容性

为什么客户不需要管:

  • 上位机发的命令是”位姿 (x, y, z, α, β, γ)” — 6 个数字
  • 控制器内部把位姿翻译成 6 支缸的目标长度
  • 然后用 EtherCAT 把 6 路目标推给伺服

整个过程客户看不到 EtherCAT 的存在。你的代码里永远只有 UDP / TCP / WebSocket / HTTP


那为什么客户会问 EtherCAT?

通常是这两种情况:

  1. 过去用过其他厂商,对方把 EtherCAT 暴露给客户做”运动指令直接下发” — 这是个反模式(让客户处理实时总线相当于让客户做工程师的活)
  2. 听说 EtherCAT 实时性好 — 但实时性好的是控制器与伺服之间的链路,与客户 UDP / TCP 链路无关

彦控的设计:复杂留在内部,简单交给客户。


实际选型决策树

按以下顺序判断:

  1. 接入对象是 PC / 仿真软件 / ROS 节点? → UDP
  2. 要在浏览器里调试? → WebSocket
  3. 要做命令响应式自动化? → TCP / HTTP
  4. 要接厂内 MES / SCADA? → HTTP / Modbus(看现有系统支持哪个)

不需要在 EtherCAT 和 UDP 之间选。它们不在同一层。


进一步阅读

  • 开放通信协议产品页 → /platforms/sw-protocol
  • 下载 UDP 通信使用手册 PDF → 完整命令字段 + 错误码 + 示例代码
  • SDK & 二次开发 → /platforms/sw-sdk — C / Python / Matlab / LabVIEW

把这些原理用到你的项目

提供应用场景、负载、运动幅度,工程师 1-3 个工作日给出选型方案