针对工业机器人,我们一般会关注两个方面:运动性能:直接决定了机器人是否能够用于特定的工艺,比如精度和速度。通信方式:直接决定了机器人能否集成到系统中,以及支持的控制复杂度。通常,机器人支持的通信方式有:
1.普通IO:
a)Signal
b)Group signal
2.总线:
a)Profinet
b)Profibus
c)DeviceNet
d)EthernetIP等
3.网络:
a)Socket
b)PC SDK
c)RWS(robot web service)
d)OPC
e)RMQ(robot message queue)
4.其他:confidential
普通IO
本地IO模块,是机器人控制柜上*常见的模块之一,或者说是默认必备的模块。*常见的有8输入和8输出,或者16输入和16输出;以模拟量的0V和24V,作为数字控制中的和1。在小型系统中,用来快速地连接电磁阀以及传感器,实现夹具等控制,是再方便不过的了。在较复杂的IO应用中,可以使用cross-function将数个IO信号通过固定的逻辑关系组合在一起,通过一个IO信号来控制。用类似伪代码的方式举例:set do_1 = set do_2 & reset do_3。
此外,ABB的机器人控制柜,其本地IO的参考电平可以从外面接入,以便满足客户整个控制系统等电平的要求。在较少的情况下,可以将数个单独的IO信号合并为一个group(组),用于传输较为复杂的信号,比如数字,这种情况就类似于二进制数。比如4个IO组合在一起为0100(如二进制数),就相当于表示4(十进制数)。其实这种用法并不推荐,一方面,IO数量有限,能够传递的信息的数量和复杂度都受到很大的限制;这时候就推荐使用总线以获得较多的IO信号,当然*优的方式是使用后面提到的基于网络(非总线的TCP/IP)的方式。
总线
工业总线,从系统的角度,是用于不同工业设备之间通信的可靠接口,比如机器人和PLC的通信;从控制方式的角度,是作为普通IO的扩展。是否使用总线,以及使用何种总线,一般取决于系统中除机器人系统之外的设备能够支持的通信方式。辟如电气控制系统中的PLC支持profinet,而且PLC和机器人系统有控制系统的交互,则机器人也一般会选配profinet通信功能。总线的配置方式各有不同,使用方式基本类似普通IO。
网络
Socket
非常好用的通信方式,能够以字符串的形式发送各种数据,甚至可以一次将各种数据以特定的形式打包后发送。比如让机器人1在工位2抓取后在工位3位置放下,就可以表示为:“robot1;pickPosition2;placePosition3”。信息的具体格式,可以自定义,从而具有极强的柔性。
Socket是基于TCP/IP的通信方式,底层都会有握手信号确定信息的完整。需要注意的是:
1.Socket通信的连接状态,只有在通信时才能真正判断;因此,在某些对系统实时状态监控要求较高的情况下,可能需要单独建立“心跳”机制;
2.ABB机器人系统所支持的*大socket字符串长度为1024byte;虽然系统只支持不超过80个byte的字符串,我们仍可以使用自定义字符数组或者rawdata等方式实现更大的socket通信长度。
PC SDK
ABB提供对其机器人的远程通信和控制的控制接口,PC SDK就是其中一种方式。通过在高级编程语言中(只支持面向对象,如C#)调用其dll,就可以获取其丰富的功能(机器人端要求配备了pc interface选项):
1.数据控制:
a)变量读写;
b)变量订阅(变量的值改变时,触发特定的操作);
2.程序控制:
a)改变程序指针;
b)上传或删除程序模块;
c)控制程序的执行和停止等;
3.机器人信息读取:
a)网络上的控制器发现;
b)读取机器人控制参数;
c)读取机器人位置等信息;
4.Log读取及订阅;
5.备份等一般操作;
RMQ
这是ABB机器人一种比较特殊的通信方式,用于机器人不同task之间(类似于高级语言的多线程)的通信,也可以用于机器人和PC的通信。可以选择中断模式和同步模式。中断模式下,当信息发送后,接收信息的一方会立即(*近的可中断点)进入中断,并在中断中立即对信息进行处理,从而保证实现*快的实时性。同步模式下,接收方只在执行读取指令时,才会对信息进行处理。
特别要提到的是,当和PC通信时,要求PC端使用PC SDK。
使用RMQ的优缺点都很明显,优点是中断模式,能够以*快的速度相应信息,并且信息的格式不定,甚至可以支持自定义的结构体;缺点是使用起来较为复杂,因此不常用。
RWS
其所能提供的功能,与PC SDK类似,只是实现方式不一样。其基于HTTP的特点,使得不受编程语言的影响,能够实现跨平台应用。比如通过IE浏览器,就可以读取机器人的信息:
其中具体的信息,可以通过XML的形式来表示:进一步,在HTTP协议里面,可以通过四个表示操作方式的动词:GET、POST、PUT、DELETE来实现对应的四种基本操作:
GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源。
OPC
所谓OPC,就是OLE for Process Control,即用于过程控制的OLE,是一个工业标准。所谓OLE,就是Object linking and Embedding,对象连接与嵌入,是在客户应用程序间传输和共享信息的一组综合标准。
ABB机器人支持OPC的前提,就是系统配置了pc interface的选项,同时通过ABB IRC5 OPCConfiguration工具进行相应的配置。
使用OPC可以:
1.读取机器人状态;
2.读写并定义机器人程序数据(可以单独甚至是批量操作);