摘要
- 协作臂主控系统:北京高帆自研机械臂,提供机械臂硬件和控制算法。无锡分公司开发B/S架构的主控系统,面向用户。
技术选型
- 编程语言:C++,JS
- 平台:Ubuntu18.04
- 构建工具:CMake
硬件选型
- 机械臂本体:
- 泰克关节模组
技术重点
EtherCAT (Ethernet for control automation technoloy)
EtherCAT的核心是 主站(master)和从站(slave)之间的高速数据交换,采用主从架构。
EtherCAT采用以太网帧进行通信,但与标准以太网不同,EtherCAT具有以下特点
- **主站(Master)**负责发送和处理EtherCAT数据包,不需要专用芯片,可由普通网卡或专用控制器实现
- **从站(Slave)**设备按照帧数据处理规则响应主站请求,通常使用EtherCAT专用芯片,例如ET1100
- 循环拓扑方式,支持菊花链,环形,树形等,数据帧沿单向传输
- 帧穿透机制:数据包在传输时直接在从站设备间传递,无需存储转发。
EtherCAT通讯采用主站主动轮询方式
- 主站发送EtherCAT帧
- 主站生成数据帧,包含多个过程数据对象(PDO)
- 帧内携带多个从站的数据请求/指令
- 从站解析和处理帧
- 帧经过从站时,从站在数据帧上直接读写相关数据区域,而不是接收整个帧再处理
- 这极大提升了通信效率,避免了传统以太网的存储转发延迟
- 主站接收并解析返回数据
- 当帧经过所有从站后,数据会返回给主站,主站读取修改后的数据。
- 主站发送EtherCAT帧
EtherCAT工作模式,主要有4种工作模式
- 自由运行模式(Free Run Mode)
- 主站不停发送数据,不依赖同步时钟
- 适用于简单IO控制,不需要高精度同步
- 同步管理模式(SM Sync Mode)
- 通过同步管理器(Sync Manager)控制数据交换
- 适用于离散IO,但同步性较低
- 分布式时钟模式(DC Mode)
- 采用从站时钟同步机制,主站下发时间戳,从站调整本地时钟
- 适用于高精度运动控制,同步精度可达到纳秒级
- 周期同步模式(Cyclic Sync Mode)
- 类似DC模式,但主站以固定周期发送数据
- 适用于实时性要求高的应用(例如伺服驱动)
- 自由运行模式(Free Run Mode)
EtherCAT从站的4种状态由AL状态机(Application Layer State Machine)控制,状态包括
- 初始化(Init)
- 预操作(Pre-Operational, Pre-Op)
- 安全操作(Safe-Operational, Safe-Op)
- 操作(Operational, OP)
EtherCAT主站(Master)通过AL控制寄存器控制从站的状态转换。
使用同步周期模式,周期为1ms,启动一个实时线程,负责从主站下发PDO数据到六个从站,经过每个从站时,根据pdo的配置读取并写入数据。
依次松闸原因
- 每个从站硬件处理速度不同,现象是靠近底座的从站先松闸,依次从下往上松闸。从站设备的电源是按层次从下到上串行连接,依次接通,底部设备较早上电,可能较早进入初始化状态。
- 传输路径存在延迟
解决方案
- 在确保所有从站都处于Safe-Op状态,再发送切换到OP状态的指令数据。
Xenomai
- Xenomai是一个基于Linux的高性能实时操作系统(RTOS)扩展框架,用于实现任务调度和响应。
- 由于Xenomai提供的实时性能,开发者可以在Xenomai上编写实时任务并使用IGH提供的EtherCAT驱动程序或其他协议栈来进行工业设备的控制。
- Xenomai可以处理实时数据采集,运动控制等任务,而EtherCAT协议可以通过IGH的实现负责设备之间的实时数据通信。
- Xenomai提供了必要的实时任务调度,而IGH提供了工业协议栈,两者结合可以让开发者实现一个高效,低延迟的实时工业控制系统。