ABB喷涂机器人系统架构及软件体系的探究
大家好!本期我们来探讨一下ABB喷涂机器人系统架构及软件体系。我曾经和ABB的现场工程师、系统集成商,还有一些原来做普通工业机器人的同事聊过,很多人都觉得喷涂机器人比较复杂,难学。算是个事实吧,普通工业机器人可能在控制柜里配置了一些基本的模块如:主计算机,轴计算机,驱动,安全板,继电器之外,再配置一些IO模块,Sensor,Gripper之类的,然后在MainTask里写好程序,上循环运行,基本上也可以操作运行了。
而针对喷涂机器人在硬件方面就多出许多,比如控制柜里的PIB,MIB,SIB等,并且电路板中有各种FPGA的逻辑与集成工艺系统(IPS)又有接口。在软件方面,除了拥有“RobWare Base”之外,还预安装了“PaintWare”,另外,还有IPS的部分来控制各种工艺设备来调节空气压力,流量,高压等。然后呢,各种配置,各种逻辑,各种接口,常容易把人搞得晕头转向。
所以本篇文章旨在帮助初学喷涂机器人系统及想深入了解其系统的同学。首先我们先从下面的一张图说起:
喷涂机器人控制的核心的部分在于主计算机和PIB板(Process Interface Board),对于主计算机,它的底层是安装了VxWorks操作系统,这个大家都不陌生,一个高效的实时性操作系统,常用于实时性要求较高的工业控制系统。在此基础之上,用户可以自由安装“RobotWare”。
对于喷涂应用来说,安装到主计算机的软件主要包含两部分:BaseWare和PaintWare,BaseWare是所有ABB机器人通用的,其中包含了机器人运动控制、I/O接口和系统参数等。“PaintWare”中定义了PLC命令(利用PLC发送特定指令来控制机器人),工作队列控制,换色控制等,还有部分隐藏的用C语言编写的底层指令。
在这里有几点说明:
1. 喷涂机器人系统是一个典型的多任务系统(MultiTask),具体如下:
T_ROB1:运动任务(Motion Task)控制机器人运动轨迹。
CmdTask: SEMISTATIC Task,背景任务,开机自动启动,主要负责接收/发送喷涂机器人的PLC命令
MCTASK1: SEMISTATIC Task,背景任务,开机自动启动,换色控制。
MCTASK2:同上,换色子任务。
MCTASK3:同上,换色子任务。
2. 喷涂机器人与 PLC的接口命令处理:
当PLC发送给机器人命令时,在Vxworks系统底层有个任务分配器,判断指令由Rapid的例行程序执行还是由底层C程序执行。
3. 接口
接口分为内部接口和外部接口:
内部接口:指各任务之间存在接口信号,比如运动任务(T_Rob1)与换色任务(MCTASK1)之间有个同步信号,用于确保机器人完成换色流程后执行运动轨迹。
外部接口:PLC通过EIO接口可以与机器人通讯发送/接收命令;示教器和GUI可以通过RobAPI2与机器人通讯。RobAPI2就是web service,之前有几篇文章也写过。
说完了主计算机,接下来说说PIB板(Process Interface Board)的系统。PIB板(ProcessInterface Board)的底层安装了Linux操作系统,IPS软件相当于在Linux操作系统上开发的一个基于数字PID的过程控制的应用程序,可以简单这么理解。IPS主要有什么用呢?总结一下,主要有以下功能:
· 刷子控制
· 换色控制
· 输送链控制
· 流量调节控制
· 空气压力控制
· 高压控制
那么,有一个问题,喷涂机器人是如何保证运动控制部分和工艺控制的同步?在主计算机运行的仿形程序中设置的刷子(SetBrush指令)如何传递到PIB去设置各个工艺参数?
换色程序开始时如何将Rapid程序中设置的IO信号来打开/关闭某个阀组?
要解释以上问题,必须先知道一个专业名词叫“ICI”,全称“IPS CommunicationInterface”,这是一种基于UDP的高效实时数据传输协议,用于主计算机与PIB之间的数据传输和IPS节点之间的通讯传输。举个例子,当系统中一个阀组信号被激活,通过ICI接口,PIB配置的阀组设备的设定值置1,同时PIB配置的阀组设备映射到了阀组驱动设备VCBI的数字输出端口digout1,当该端口被激活后,阀组被打开,高压空气释放,换色阀上的某个2位2通阀打开。
下图为喷涂机器人数据传输模型: