ABB机器人的各种通信方式
一般介绍
针对工业机器人,我们一般会关注两个方面:
1、运动性能:直接决定了机器人是否能够用于特定的工艺, 比如精度和速度。
2、通信方式:直接决定了机器人能否集成到系统中,以及支持的控制复杂度。
通常,机器人支持的通信方式有:
普通IO:
a)iSignal
b)i Group signal
2总线:
a) Profinet
b)iProfibus
c)DeviceNet
d) EthernetIP等
3. 网络:
a) Socket
b) PC SDK
c)RWS(robot web service)
d)i OPC
e) RMQ(robot message queue)
4.i 其他:confidential
普通IO
本地IO模块,是机器人控制柜上常见的模块之一,或者说是默认必备的模块。常见的有8输入和8输出,或者16输入和16输出;以模拟量的0V和24V,作为数字控制中的0和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”。信息的具体格式,可以自定义,从而具有极强的柔性。
是基于TCP/IP的通信方式,底层都会有握手信号确定信息的完整。需要注意的是:
1. Socket通信的连接状态,只有在通信时才能真正判断;因此,在某些对系统实时状态监控要求较高的情况下,可能需要单独建立“心跳”机制;
2. ABB机器人系统所支持的大socket字符串长度为1024byte;虽然系统只支持不超过80个byte的字符串,我们仍可以使用自定义字符数组或者rawdata等方式实现更大的socket通信长度。
PC SDK
ABB提供对其机器人的远程通信和控制的控制接口,PC SDK就是其中一种方式。通过在高级编程语言中(只支持面向对象,如C#)调用其dll,就可以获取其丰富的功能(机器人端要求配备了pc interface选项):
1.数据控制:
a)i 变量读写;
b)变量订阅(变量的值改变时,触发特定的操作);
2. 程序控制:
a)改变程序指针;
b)i上传或删除程序模块;
c)控制程序的执行和停止等;
3.机器人信息读取:
a) 网络上的控制器发现;
b)读取机器人控制参数;
c) 读取机器人位置等信息;
4. Log读取及订阅;
5. 备份等一般操作;
RMQ
这是ABB机器人一种比较特殊的通信方式,用于机器人不同task之间(类似于高级语言的多线程)的通信,也可以用于机器人和PC的通信。可以选择中断模式和同步模式。
中断模式下,当信息发送后,接收信息的一方会立即(近的可中断点)进入中断,并在中断中立即对信息进行处理,从而保证实现快的实时性。
同步模式下,接收方只在执行读取指令时,才会对信息进行处理。
特别要提到的是,当和PC通信时,要求PC端使用PC SDK。
使用RMQ的优缺点都很明显,优点是中断模式,能够以快的速度相应信息,并且信息的格式不定,甚至可以支持自定义的结构体;缺点是使用起来较为复杂,因此不常用。
RWS
其所能提供的功能,与PC SDK类似,只是实现方式不一样。其基于HTTP的特点,使得不受编程语言的影响,能够实现跨平台应用。
进一步,在HTTP协议里面,可以通过四个表示操作方式的动词:GET、POST、PUT、DELETE来实现对应的四种基本操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源。
OPC
所谓OPC,就是OLE for Process Control,即用于过程控制的OLE,是一个工业标准。所谓OLE, 就是Object
ABB机器人支持OPC的前提,就是系统配置了pc interface的选项,同时通过ABB IRC5 OPCConfiguration工具进行相应的配置。
使用OPC可以:1. 读取机器人状态;
2.读写并定义机器人程序数据(可以单独甚至是批量操作);
总结
通信方式 |
要求 |
特点 |
本地IO |
本地IO模块 |
使用硬接线的方式传递每个信号;信号较多时,有整理线束的麻烦 |
总线 |
对应的总线模块;profinet slave除外,只需要使用控制柜自带的网口 |
稳定。不同总线的通信速率不一致,特定总线的通信速率等可以手动设置,也受到线缆长度和类型的影响。使用总线,控制上相当于获得了数量巨大的普通IO。 |
Socket |
PC interface选项 |
简单易用,有较高的柔性。如果仅仅是基于数据的通信,这就是*佳的方案。在有相机和PC通信的场合,有*广泛的应用。 |
PC SDK |
PC interface选项 |
功能全面,当除了数据通信之外还需要程序控制等操作时选择。免费。 |
RWS |
Robotware版本在6.0以上 |
涵盖PC SDK的几乎全部功能,基于HTTP能够跨平台使用。暂时不需要购买任何机器人选项,是未来ABB主推的技术之一,免费。随着Robotware版本的更新,会不断加入新的功能。 |
RMQ |
和PC通信时,要求PC interface选项 |
终端模式可以用于机器人task之间的实时响应。 |
OPC |
PC interface选项 |
当其他通信设备使用OPC技术的时候才考虑。 |
了解更多:ABB机器人