基于PLC的工业机器人控制系统关键技术研究
2018-05-08陆雪影
陆雪影
摘 要:文章主要从软件和硬件两个部分对基于PLC的工业机器人控制系统关键技术进行研究,硬件部分详细介绍了工业机器人与多个伺服驱动器通信的SERCOS高速传输总线,及其与外围I/O设备通信的CanOpen总线协议;软件部分在CoDeSys产品基础上,重点对G代码解码程序,以及进行工业机器人运动轨迹控制的插补程序结构进行研究。通过软硬件的结合,工业机器人控制程序可读取G代码存储的机器人运动控制程序,以及工业机器人硬件部分的准确、快速通信,满足工业机器人的应用需求。
关键词:工业机器人;控制系统;SERCOS;CanOpen;CoDeSys
中图分类号:TD40 文献标志码:A 文章编号:2095-2945(2018)12-0148-02
Abstract: In this paper, the key technology of industrial robot control system based on PLC is studied from two parts: software and hardware. In hardware part, the SERCOS high-speed transmission bus which communicates between industrial robot and several servo drivers is introduced in detail. The CanOpen bus protocol which communicates with the peripheral I/O equipment, the software part based on the CoDeSys product, with focus on the G code decoding program, as well as the interpolation program structure of the industrial robot motion trajectory control. Through the combination of software and hardware, the control program of industrial robot can read the motion control program stored in G code, and the hardware part of the industrial robot can communicate accurately and quickly, which can meet the application needs of industrial robot.
Keywords: industrial robot; control system; SERCOS; CanOpen; CoDeSys
工业机器人是一种机电一体化的高技术产品,在众多生产领域广泛应用,对于提高劳动生产力,改善工人作业条件,提高产品质量,提高经济效益等方面都起着不可替代的作用。运动控制是工业机器人最重要的构成部分,本文主要对基于PLC的工业机器人运动控制系统进行研究。
1 控制系统总体结构
工业机器人控制系统的主要包括硬件和软件两个部分。其中,硬件部分主要通过SERCOS总线驱动工业机器人电机,以及为总线传递控制信号,实现与外围I/O通信;软件部分主要通过PLC实现机器人控制程序的读取、语言的转换、逻辑和运动控制。控制系统的工作原理与流程如下:控制系统上电时加载机器人控制程序,通过语言解释程序,并通过PLC和CanOpen等现场总线接口,将CNC文件中的逻辑指令发送给I/O设备;同時,机器人语言解释程序将运动控制指令转换为标准G代码,并通过插补程序计算各电机的控制目标数据;最后,通过SERCOS高速运动控制总线,实现与各轴控制器之间的通信,控制工业机器人的各轴运动,实现工业机器人的精准控制。
2 控制系统硬件结构
2.1 SERCOS总线
与其他总线相比,SERCOS总线的数据传输速率高,具有极高的数据传输效率,和可设置控制参数以确保系统同步和精度等特点,这在实时性要求较高的工业机器人控制系统中具有非常大的优势。为此,本文所设计的工业机器人控制系统采用SERCOS总线。工业机器人控制系统的硬件系统利用SERCOS主卡作为主站与机器人运动执行部件之间的接口,为软件系统提供了一个通用化、开放性的控制平台,有助于实现控制系统主控功能的软件化。
2.2 CanOpen协议
CAN总线链路层采用CSMA/CD方式,在总线传输发生冲突时,采用“非破坏总线优先逐位仲裁”技术,以保证优先级高的信息能够优先通过总线传输,以保证工业机器人控制实时性。CanOpen基于CAL子协议,具有很好的模块性特性,具备很强的适应性,得到了广泛的应用。在CanOpen协议的应用层,设备之间通过交换通信对象实现通信,借助CanOpen良好的面向对象和分层设计思想,构建了一个清晰的通信模型。CanOpen应用层的所有对象(COB)可通过一个16位索引和一个8位子索引进行检索,由于CanOpen的性能稳定、功能强大、价格低廉和通用性好等原因,本文所研究的工业机器人控制系统采用CanOpen协议实现控制系统与外围I/O接口的通信。
3 控制系统软件结构
软件是工业机器人控制系统的核心内容之一,也是本文研究的重点内容。本文所研究的工业机器人控制系统使用基于IEC61131-3标准的CoDeSys系统进行PLC程序编写。CoDeSys包含了力矩控制模块、速度控制模块、电机位置控制模块、插补模块等几乎所有基本模块,同时也支持用户根据实际情况编写新的控制模块,其功能非常强大,应用也非常人性化。在集成Windows操作系统的工控机上安装CoDeSys软件,并通过工控机上的SERCOS主卡和CAN总线卡,实现PLC与其它接口之间的通信。首先使用AML和AUTOPASS等具有动作级编程语言全部动作功能的高级语言,开发机器人控制程序,然后通过代码解码,将高级语言编写的机器人控制程序,转换为可以直接进行伺服电机控制的数控程序(G代码);最后,通过插补,确定最终的伺服电机运动控制轨迹。
3.1 代码编译
代码编译是将使用高级机器人语言编写的机器人控制程序,转换为数控程序(G代码)的过程。其主要任务就是将用户所编写的机器人控制程序准确无误地转换成相应的G代码指令。其实现包括两个步骤的内容:第一步,通过一个数组,将机器人控制程序的指令、变量及其值分别保存起来;第二步,将每一跳机器人运动控制程序转换为G代码,并保存到数据存储器上。在CoDeSys中,使用ST实现代码编译过程,分别使用strComm、StrChar和fValue三个变量来存储指令名、变量名和变量值三个部分的内容。其数据结构定义如下所示。
typedef struct ROBOT_PARAM{
String strComm;
String strChar;
String fVvalue;
} ROBOT_PARAM;
机器人的语言指令设计如表1所示。
3.2 代码解码
机器人控制程序在加载前以G代码的形式保存在存储器上,机器人的插补程序无法直接读取文本形式的G代码,因此需要借助解码程序读取文本总的G代碼,将之转换为插补程序能识别的数据流,并传给插补程序。该模块的详细介绍如表2所示。
3.3 插补程序
插补程序的主要功能为机器人运动轨迹控制,机器人根据控制系统所给出的机器人行动轨迹目标位置,结合当前位置信息,实现机器人运动轨迹插补。在解码完成后,控制系统将完成解码的控制数据发送给插补程序,并根据从解码数据中获得的机器人运行位置信息,进而得到机器人运行到目标位置,各电机所需要转动的角度,进而将这些角度值和运行顺序发送给机器人电机,通过驱动电机的转动,来实现机器人的运行控制。机器人运行轨迹的插补,相当于逆向运动学分析。机器人运动插补程序的实现采用CoDeSys中的Interpolator模块,在使能端被激活后,Interpolator模块从g_CNCpoqPath中获取机器人的目标位置,进行插补计算,通过piSetPosition函数将初步结果从输出端口中输送出去。
参考文献:
[1]张倩,单忠德.基于PLC和PMC的经轴纱机器人控制系统研究与设计[J].制造业自动化,2017,12(25).
[2]宫小飞,陈富林,冯帅.基于ARM嵌入式机器人控制系统的研究与设计[J].机械与电子,2017,12(24).
[3]吴晓帆.基于PLC的焊接机器人自动控制系统设计[J].现代信息科技,2017,1(2).
[4]纪利琴,葛新生,苏巧平.基于PLC的双臂焊接机器人控制系统的设计[J].新乡学院学报,2017,9(11).