回 春,蔡 博
(1.中汽研汽车检验中心(武汉)有限公司,湖北 武汉 430056;2.中国汽车技术研究中心有限公司,天津 300300)
随着智能制造的快速推进,工业机器人已广泛应用于各行各业中,极大地推动了智能制造的发展进程[1]。工业机器人除了驱动装置及其本体,最重要的组成部分就是其自身的控制系统,其主要负责对机器人进行运动学的计算、运动规划与插补等,是机器人系统中的核心与难点。当前工业机器人的控制策略主要是:通过PLC与机器人通信,再由上位机与PLC进行OPC通讯以获得对机器人的控制权。随着智能制造的发展、工业机器人的控制方式也有了进一步的改变,现场总线技术的使用使机器人与上位机的通讯只通过一根总线电缆就可以进行,即集成了遵循某种通信协议通信接口的现场设备都可以连接在通信电缆上,而不仅仅是简单的I/O启停控制,这使得控制结构变得更加简单,极大地减少了安装和维护费用[2,3],解决了工业机器人控制过程中普通I/O通讯普遍存在的接线繁多、需要通过继电器进行信号转换及数据通讯越多越复杂的问题。
基于此,本文针对工控机上位机系统与机器人之间的实时通讯等问题,搭建一套基于Profibus通讯、采用Labview编写上位机程序、与ABB机器人进行通讯的交互系统,实现ABB机器人系统的多任务并行控制,该系统可实时读取ABB机器人的位置坐标,同时实现位置、速度在线可调控制等功能。
基于Profibus通讯的上位机与机器人交互系统结构如图1所示。本系统主要包括ABB机器人、控制柜、工控机系统、NI公司的PCI-DP PROFI II通讯板卡以及通讯线缆等。以工控机作为上位机,采用Labview编写上位机程序,通过Profibus通讯板卡与ABB机器人进行通讯,获得机器人的控制权。
如图1所示,工控机通过Profibus通讯板卡与ABB机器人上自带的Profibus端口连接,在上位机Labview软件中进行程序编写,通过读取ABB机器人的坐标值、输入输出信号等参数,控制机器人的伺服上电、程序启动/停止、位置移动、速度改变等动作。
图1 基于Profibus通讯的上位机与机器人交互系统结构
Profibus网络技术可以支持多种不同的通信协议,包括DP通信协议、FDL通信协议、S7通信协议、PA通信协议以及FMS通信协议。每种通信协议功能不同,使用范围与特点也不同。其通信技术主要有两种,即DP通信和FDL通信。DP通信协议在现场总线通信中使用的范围最广,相同条件下,DP通信协议的功能最强大[4]。Profibus-DP采用RS-485传输技术,全部设备均与总线连接,每个分段上最多可接32个站(主站或从站),传输速率为9.6 kb/s~12 Mb/s,是一种优化的、数据传输速度快的、价格低的通信总线,是为自动控制系统与分散I/O设备级之间通信而设计的,总线周期一般小于10 ms[5]。
本设计以工控机为上位机Profibus通讯主站,ABB机器人为从站,主要实现功能:上位机可实时获取机器人坐标值及当前状态,并可通过程序控制机器人上电、启动、暂停等动作。在配置通讯地址时可将控制信号分成两类处理,如表1所示。
表1 通讯控制信号分类
在硬件配置过程中非常关键的一步就是需要Profibus-DP总线所挂接设备的GSD文件,上位机采用通讯板卡时需要首先打开GSD配置文件[6,7]进行网络组态配置,然后下载至Profibus板卡中,在网络组态中根据需求的字节数配置从站的通讯输入地址和输出地址。考虑扩展和备用需求,尽量多配置通讯地址,参数设置应结合实际的项目需求进行。上位机通讯配置如图2所示。
图2 上位机通讯配置
在Profibus-DP现场总线网络中,主站可以与多个从站进行通信,通过设置从站地址,主站就可以自动访问从站,在Profibus-DP网络中每个从站都要设定唯一的地址号[8]。在上位机端配置好通讯地址后,相对应地在机器人端按照主站分配的地址进行通讯设置,将从站连接到主站。
在有些使用场合下,DI/DO是为了满足特殊应用,如Motor ON、Start、E-Stop等机器人本身系统自带的功能。首先在机器人控制面板—配置—I/O System-Signal中为每个DI/DO编辑易于记忆的名称、映射的地址等参数,然后在映射地址后的【控制面板—配置—System Input—添加】中将这些信号与机器人系统变量进行关联,这样就完成了机器人各系统变量、信号、名称、地址之间的一一对应。
GI/GO组信号一般是对应编程所需要的数据,不需要在相关参数设置中与系统变量关联,在后续的程序编辑中会进行处理。配置好的信号如图3所示。
图3 机器人通讯配置
在完成通讯信号地址分配、添加、映射、绑定系统变量以及硬件配置连接后,即需要分别对上位机与机器人进行程序编写,为系统增加可执行性。
在软件系统中,最重要的就是上位机Labview与机器人之间通信程序的编写。上位机采用Labview软件进行程序编写,通讯时利用DP-Master Express.vi进行信号传输设置。SetOutPutData端口为上位机控制机器人端口信号指令,信号类型为U8数组,可将控制信号集成为数组后再转换为U8类型数字,并与速度、最大运动距离一起创建数组后接入此端口。InPutData端口为从机器人端得到的反馈数据,信号类型同样为U8数组,将获取到的数据按照高低位字节换算后得到X、Y、Z坐标值,同样的控制反馈信号从数组中索引出来后先从U8类型数字转换为布尔数组,再从布尔数组中即可索引到所需要的控制反馈信号。
设计的动作主要有以下操作:机器人上电、下电,程序运行、停止,手动操作、自动操作,机器人手动前进、后退,确定原点,自动前进、后退等。上位机程序编写如图4所示。
图4 上位机通讯程序编写
在很多现场情况下,机器人需要实时监听上位机发出的通讯命令,以方便及时响应对应的操作。为了达到实时通讯的目的,机器人实行多任务运行的控制策略[9,10],通过后台来实现此程序与正常执行程序的并行操作,同时不同程序的优先级可以自主设置。
在本次机器人程序编写中,采用多任务运行的控制策略,主程序T_ROB1执行机器人自身运行的动作指令,后台程序Task2执行坐标数据转换,并将值赋给相应的通讯地址,使得机器人能够实时响应相应的指令,ABB机器人通讯程序如图5所示。
图5 ABB机器人通讯程序
完成机器人通讯系统硬件搭建与控制程序编写后,按照要求进行硬件连接与软件调试,硬件部分包括NI的Profibus通讯板卡(型号为PCI-DP PROFI II)、上位机(工控机)、电控柜、控制线缆等。手动界面如图6所示,该界面上的“向前”和“向后”表示机器人沿当前姿态的六轴法兰方向前进和后退,规定了前进、后退的速度与最大距离,并读取机器人当前的X、Y、Z坐标。
图6 手动界面
机器人坐标数据赋值给上位机显示,并与机器人示教器坐标数据进行对比,如表2所示。
表2 机器人坐标位置 mm
从表2中可知,试验数据与机器人示教坐标数据基本一致,X、Y、Z三个方向上的误差都非常小,都在5 mm以内,空间上机器人的位置坐标误差仅为4.18 mm。以上试验数据说明,基于Profibus-DP通讯的上位机与ABB机器人交互系统控制效果良好,极大简化了对机器人的通讯控制以及现场电控布线等操作。
通过Profibus通讯的方式实现了上位机与单台机器人的信息交互系统,可以正常读取机器人坐标位置信息,控制机器人前进、后退、启动、停止等操作,可以省掉中间的PLC二次通讯控制或I/O通讯的接线、继电器转换信号等操作。本文研究为我们以后更简单化地控制机器人提供了一个方法,也为扩展控制多台机器人的策略提供了一个思路。