0%

协作臂主控系统

摘要

  • 协作臂主控系统:北京高帆自研机械臂,提供机械臂硬件和控制算法。无锡分公司开发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工作模式,主要有4种工作模式

    • 自由运行模式(Free Run Mode)
      • 主站不停发送数据,不依赖同步时钟
      • 适用于简单IO控制,不需要高精度同步
    • 同步管理模式(SM Sync Mode)
      • 通过同步管理器(Sync Manager)控制数据交换
      • 适用于离散IO,但同步性较低
    • 分布式时钟模式(DC Mode)
      • 采用从站时钟同步机制,主站下发时间戳,从站调整本地时钟
      • 适用于高精度运动控制,同步精度可达到纳秒级
    • 周期同步模式(Cyclic Sync Mode)
      • 类似DC模式,但主站以固定周期发送数据
      • 适用于实时性要求高的应用(例如伺服驱动)
  • 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提供了工业协议栈,两者结合可以让开发者实现一个高效,低延迟的实时工业控制系统。

EtherCAT从站状态转换流程

软件架构图

协作臂主控系统--软件架构图

感谢老板支持!敬礼(^^ゞ