基于Ether CAT的机器人教学实验平台设计

2021-06-24 04:05何岭松
实验室研究与探索 2021年5期
关键词:状态机应用层主站

郑 林, 何岭松, 陈 驰

(华中科技大学机械科学与工程学院,武汉 430074)

0 引 言

机器人教学是工科类实验教学中重要的组成部分[1]。在传统的机器人教学中,多采用工业机器人作为实验教学的对象,例如采用ABB机器人作为机器人实验教学的工具[2-3]。这些工业机器人价格一般较为昂贵,因此存在实验资源有限的问题,并且学习、试错成本较高。此外,这些工业机器人实验平台虽然提供完整的控制解决方案,但是想熟练地掌握需要付出大量时间,增加学生工作量,另外不同的工业机器人操作会存在较大的差异,这也会给学生造成一定的困扰,因此,这些方案会降低机器人实验教学的效果[4]。通过引入开放式的实验平台,使得学生能够参与到机器人实验控制系统的搭建中,提高机器人教学实验中学生的参与度与成就感,能够大幅提高实验教学的效率。

为了使机器人实验平台具有更好的灵活性和可扩展性,采用基于EtherCAT的机器人控制系统解决方案[5-6]。EtherCAT是基于标准以太网的实时工业以太网技术,可使用PC实现主站功能,从而构建基于PC的控制系统[7]。在基于PC的控制系统中,可以将过程控制、批量控制以及运动控制等合为一体,有利于整个控制系统的高度集成。在降低硬件使用成本的同时,PC上的软件开发可移植性好、软件升级简单,从而使得控制系统的设计、调试和维护更加的方便简单[8]。目前基于PC的运动控制系统有倍福公司的TwinCAT3、西门子公司的SIMOTION等,在这些系统中,将传统的PLC控制功能采用软PLC的方式实现,用户开发的PLC程序运行在虚拟PLC之上[9-11]。这些基于PC的解决方案已经广泛应用于工业控制领域,但是对于机器人实验教学来说,这些系统过于庞大,对于专业知识和编程能力具有较高的要求,而且软件价格较为昂贵,因此对于机器人实验教学来说有必要开发一个操作简单、低成本的实验平台。

1 实验平台整体架构设计

EtherCAT是一种基于以太网的现场总线技术,采用主从模式介质访问控制(MAC),主站发送标准以太网数据帧给各个从站设备;而从站从数据帧中提取输出数据并将输入数据插入到数据帧中。EtherCAT主站使用标准以太网接口卡;而从站使用专用的EtherCAT从站控制器ESC,在主从站之间使用标准的以太网物理层器件进行连接。为实现控制的实时性和主从站之间的同步性,通过ESC实现硬实时,可获得小于100μs的数据刷新周期;分布时钟使所有EtherCAT设备使用相同的系统时间,从而控制各个设备任务的同步执行[12-13]。

基于EtherCAT的机器人教学实验平台整体架构设计如图1所示。图中EtherCAT总线通信协议作为系统的基础,将PC主站和各个从站设备连接起来,从而构建一个网络化的实验平台。机器人运动控制主站实现主要的控制功能,包括G代码指令解析、机器人运动学求解及运动规划等功能。另外,可重构装配模块可以将多个机器人及其他辅助设备(如传送带、传感器等)按实验需求进行装配,实现多机器人的运动控制。机器人运动控制从站实现具体的控制任务,接收主站发送的控制指令并转换成脉冲信号并通过驱动器驱动电机动作,从而完成实际机器人的运动控制。

图1 实验平台整体架构设计

2 机器人运动控制从站实现方案

2.1 从站硬件设计方案

从站采用微处理器+ASIC(特殊应用集成电路)的架构,其中微处理器采用STM32F407,ASIC采用LAN9252作为ESC。STM32F407实现EtherCAT应用层协议栈,与电动机驱动器、传感器等外设直接相连,而ESC实现数据链路层和物理层的功能,作为从站的通信接口。

从站硬件功能模块如图2所示。STM32微处理器和LAN9252之间采用SPI串行通信方式,实现过程数据的交换。LAN9252使用I2C总线与E2PROM通信,用于存储从站配置信息。从站使用到LAN9252的两个MII接口,内置PHY芯片,可以实现线性的拓扑结构。STM32F407通过PWM驱动机器人的关节电动机动作,从站中共有6路PWM输出,可以同时驱动6个步进轴运动,满足大部分情况下的机器人实验控制需求。此外,从站还有基本的I/O输入输出功能,可以用于连接传感器和驱动电磁阀动作等,而USB调试接口、A/D接口可分别实现调试和数据采集的功能。

图2 从站硬件功能模块

2.2 从站运动控制实现方案

主站和从站之间以周期性和非周期性的事件进行信息交互。EtherCAT从站可以运行在自由运行模式和同步运行模式,在自由运行模式下,由微处理器进行主动查询;而在同步运行模式下,数据交换以中断的方式进行,微处理器响应中断来进行数据交互,具有更高的实时性。本方案中从站设备运行在同步运行模式下从而保证系统的实时性。从站运动控制工作流程如图3所示。

图3 从站运动控制工作流程

从站运动控制包括从站初始化、过程数据交互和邮箱数据交互。在初始化过程中,需要配置ESC和STM32的相关中断寄存器并启动过程数据看门狗定时器,STM32获取ESC芯片DPRAM容量和SM通道数目,将EtherCAT状态机设置为Init状态。当从站进入DC同步运行模式时,通过外部中断的方式响应主站的控制请求。EtherCAT数据帧到达从站,过程数据被写入到接收缓冲区,由ESC的IRQ引脚触发STM32外部中断进入中断服务程序,获取机器人各个电机轴的控制指令并转换为PWM脉冲信号输出,通过驱动器驱动机器人关节轴动作。而当SYN0同步事件发生时,STM32获取电动机、传感器信号、A/D等从站状态数据写入SM3存储管理区发送给主站。从站非周期性事件主要为邮箱通信,用于状态机切换,在STM32主循环中,通过ECAT_Main()函数判断是否发生状态转换请求,若发生则通过调用AL_ControlInd()函数进行状态机处理。

3 机器人运动控制主站实现方案

EtherCAT采用一主多从的通信模型,主站承担系统主要的运动控制和逻辑控制任务。在本方案中,机器人运动控制主站使用SOEM开源主站库实现EtherCAT主站通信功能,并向应用层提供通信接口,而在应用层实现G代码解析、机器人运动学正反解以及多机器人协作等控制功能,提高系统的通用性和可扩展性。本方案中机器人运动控制主站架构如图4所示。

图4 机器人运动控制主站架构

3.1 Ether CAT主站通信接口实现方案

EtherCAT主站可由任意集成了标准以太网接口的设备实现,在本方案中,主站软件运行在Windows平台上,并移植开源主站软件SOEM实现EtherCAT主站协议栈,完成EtherCAT基本通信功能,并向软件应用层提供服务接口以实现EtherCAT状态机切换和过程数据通信及邮箱通信的功能[14]。EtherCAT主站通信运行流程如图5所示,整个运行流程包括3个主要部分,分别为主站初始化、EtherCAT状态机循环和PLC周期性事件循环。

图5 EtherCAT主站通信运行流程

在EtherCAT主站通信运行过程中,主站初始化是对EtherCAT协议栈、网卡设备等进行初始化,并通过顺序寻址的方式配置从站设备的相关信息,进行从站设备的地址映射,使得在同步运行模式下可以对从站设备进行逻辑寻址。EtherCAT状态机负责协调主站和从站应用程序在初始化和运行时的状态关系,从初始化状态向运行状态转换时,需按照“初始化→预运行→安全运行→运行”的顺序进行,所有状态改变都由主站发起。EtherCAT状态机循环运行在一个单独的后台线程中,当主站发起状态转换请求时,由这个线程维护状态机并按照请求进行状态的切换。PLC周期循环采用固定时间周期交换PDO过程数据,将主站控制指令发送给从站设备,并读取从站状态数据。

在机器人运动控制过程中,由主站软件应用层程序完成对指令解析、机器人运动求解,然后根据从站过程数据定义计算得到相应的指令值,并将指令值传递给EtherCAT主站,主站通过周期性过程数据通信发送给从站设备,从而完成机器人的控制任务,同时主站接收从站的返回数据并反馈给应用层。EtherCAT主站与应用层程序交互设计如图6所示。其中指令数据结构体为从站设备输入输出变量的地址映射,应用层程序和主站程序通过共享地址的方式进行相互访问。

图6 EtherCAT主站与应用层程序交互设计

3.2 机器人运动控制实现方案

机器人运动控制在主站软件的应用层实现,承担机器人主要的控制逻辑,其实现原理如图7所示。为了实现对机器人的有效控制,需要对机器人进行运动学求解,机器人运动学求解包括正向求解和逆向求解两个过程,也就是建立机器人关节空间和笛卡尔空间之间的映射关系[15]。为实现机器人的可编程运动控制,采用G代码指令作为机器人的控制指令,G代码应用于数控系统中,通过解析G代码指令,可以实现快速定位、直线运动、圆弧运动等运动功能[16]。在本系统中,使用G代码作为控制指令,可以对机器人实现通用化的运动控制。

图7 机器人运动控制实现原理

使用G代码控制机器人的流程如图8所示。用户以文本的形式将G代码进行输入,并将指令传递到解析模块,生成G代码指令队列,机器人对队列中的G代码指令进行逐行解析并进行运动学插补得到一系列的运动指令加入运动队列中。在机器人运行期间,获取运动指令,进行运动学反解运算,计算出机器人的关节运动数据,通过EtherCAT主站提供的交互接口,传递给主站程序,EtherCAT主站和从站设备进行周期性的数据交互,将运动数据发送给控制从站,驱动机器人关节进行运动。

图8 G代码控制机器人流程图

3.3 多机器人协作实现方案

在复杂的机器人实验场景中,往往需要多台机器人相互协作共同完成实验任务。为实现灵活的机器人运动控制,可以根据不同实验场景进行机器人组态,本方案中采用组件化的方式,实现主站软件平台与机器人硬件之间的低耦合连接。机器人从站节点和主站应用层中组件之间的映射关系如图9所示。对于每一个接入系统的机器人节点,在主站软件中都分配一个机器人组件与之对应,组件和机器人从站之间的通过EtherCAT总线建立通信连接,因此对组件的操作可以最终反映到实际机器人之上。而EtherCAT协议层屏蔽了通信的细节实现过程,多机器人的协作可以在主站软件应用层实现,建立机器人组件之间的装配关系,使得机器人相互协作完成实验任务。

图9 机器人节点与组件映射关系

组件之间的装配关系由事件来进行定义,这些事件的来源包括系统开始运行事件、传感器事件、机器人运行到位事件、夹具开闭事件等。系统采用事件驱动的方式进行运作,机器人节点在特定的事件触发的前提下完成相应的动作,从而协调多个机器人按照逻辑顺序完成实验任务。组件之间的事件驱动模型如图10所示。组件提供事件发生端口和事件响应端口,连接组件端口形成事件驱动流,而端口绑定关系由主站软件进行管理,因此组件之间具有低耦合的特性,可以根据不同的实验场景进行灵活的装配,快速搭建实验控制系统。

图10 组件事件驱动模型

4 应用实例与验证

4.1 机器人教学实验平台控制系统搭建

机器人实验平台主站控制软件运行在PC端,其主要包含了EtherCAT主站配置、机器人控制组件管理及组件装配等功能,实验前需要进行相关的配置操作。

机器人教学实验平台基本实验流程如下:①将机器人等相关设备接入实验平台,并在主站软件中加载对应组件;②为机器人配置运动学模块,编制G代码实现相关运动控制;③根据实验运行逻辑,连接组件之间的事件端口;④扫描EtherCAT从站,将机器人控制从站与对应的组件建立连接,开始实验。

4.2 单机器人控制实验

为了验证机器人实验平台具有通用性和可扩展性,采用Dobot、SCARA、Delta 3种机器人进行实验,分别完成码垛、写字、激光雕刻等不同的实验任务。图11展示3种机器人完成实验任务的场景。

从图11可以看出,机器人实验平台能够适用于多种机器人及不同实验场景的控制需求,具有较高的通用性,说明机器人实验平台能够正确地服务于机器人实验教学,具有很好的灵活性。

图11 单机器人运动控制实验

4.3 小型生产线加工实验

在很多机器人实验场景中,需要实现多机器人实验设备相互配合完成某项具体任务,因此设计了如图12所示的小型生产线加工实验。在该生产线加工实验中,由3台Dobot机器人、2个传送带、1台铣床及相关的传感器组成,Dobot机器人完成物料的搬运、铣床加工的上料和下料过程及物料的摆放等工作,而传送带将物料运输到指定位置,铣床则负责具体的铣削加工工作。该实验中,多种机电运动设备相互协作,共同完成实验任务。

图12 小型生产线加工实验场景

从生产线加工实验中可以看出,本文所述的实验平台能够快速搭建控制系统,并对系统中的各个运动设备进行有效的控制,从而完成特定实验任务。机器人组件化和装配使得实验平台具有较高的可重构性和可扩展性,能够适应机器人实验的多样化。

5 结 语

基于EtherCAT技术实现了机器人教学实验平台,利用STM32和LAN9252开发EtherCAT从站,能够实现机器人的灵活接入;主站在SOEM基础上采用G代码编程的方式实现机器人的通用化控制,同时将实际机器人映射为主站中的组件,采用组件装配的方式实现多机器人的控制,使得实验平台具有很好的可扩展性。通过多个不同类型机器人的单独控制实验和生产线多机器人控制实验证明本文设计的实验平台具有操作简单、扩展性强的优点,对于机器人的实验教学具有一定的意义。

猜你喜欢
状态机应用层主站
基于S7-1200 PLC的DP总线通信技术在马里古伊那水电站泄洪冲沙孔门机上的应用
基于有限状态机的交会对接飞行任务规划方法
基于Spring StateMachine的有限状态机应用研究
基于分级保护的OA系统应用层访问控制研究
EtherCAT主站与主站通信协议的研究与实现*
多表远程集抄主站系统
县级配电自动化主站系统的设计
物联网技术在信息机房制冷系统中的应用
Current advances in neurotrauma research: diagnosis, neuroprotection, and neurorepair
基于反熔丝FPGA的有限状态机加固设计