喻建军 李辰 吴凡 刘耿聪
摘 要:本文简要介绍了ABB工业机器人与LabVIEW之间进行数据交互的解决方案。ABB机器人与LabVIEW通过socket建立通信,读取机器人坐标数据。以此为人机交互提供一个更便捷、更高效的新思路。
关键词:工业机器人 LabVIEW socket(TCP/IP)
1 前言
随着“中国制造2025”概念的提出,中国制造业将会大步伐的向着信息化、智能化精密化迈进,中国工业也会伴随着发生巨大的变革。越来越多的高新技术科技成果被应用到产品的生产制造中。而作为工业自动化代表的机器人在制造业中所占比重不断增加,正加速取代人工操作、生产。而为了能够更高效的发挥机器人的智能化、精准化程度高的特点,建立一套可靠性良好、传输速率高的数据通信模式势在必行(如图1)。
2 工业机器人主流通信方式简介
在国际上,工业机器人技术日趋成熟,已经成为一种标准设备而得到工业界广泛应用,从而也形成了一批在国际上较有影响力的、著名的工业机器人公司,诸如:ABB , FANUC、Yaskawa、KUKA等。这些主流工业机器人公司为了提成产品的场景适用性,经济性,也正在大力拓展其可用于二次开发的工业数据通信模式,例如: Modbus RTU、Profibus、socket、Profinet等。
目前尤其是基于TCP/IP协议的通信方式正逐步被工业数据通信领域所接纳。各个机器人、外围仪表设备之间可以灵活的组网,且每一个网络节点都有唯一的IP地址和通信端口,数据收发带有校验机制,数据传输准确、稳定、可靠。
简单比对一下目前工业机器人主流通信模式优缺点,如表1:
有鉴于上述各种通信方式性能、效费等比较,在数据交换量不太大的情况下使用socket套字节通信方式(基于TCP/IP协议)可行性最高。
3 ABB工业机器人Socket(TCP/IP)数据发送
对于工业机器人的应用场景而言,与配套仪表、设备之间数据传输的稳定性、准确性、高效性显得尤为重要。下面我们就以ABB工业机器人的socket(基于TCP/IP协议)通信为例,介绍如何将机器人TCP坐标数据向外发送。
首先,ABB工业机器人系统软件中需要配置616-1 PC interface模块,这是在工业机器人与其外围仪表、设备间建立socket通信的基础。
以机器人为server,上位机为client为例,如图2所示步骤建立上位机与机器人之间的通信。需要注意的是使用socket一定按照“建立”、“绑定”、“监听”、“接收”以及“关闭”等套字节指令的位置顺序,且编写在“while”循环外。而循环内则主要进行server与client端进行数据交互,例如发送坐标数据。
将读取到的X、Y、Z轴的坐标数据分别转换为字符串,并连接在一起打包发送。需要注意两点:1.坐标数据转化为字符串时,需要统一小数点后位数,便于统计字符总数量。
2.构成的整条字符串中建议用特殊符号间隔,便于LabVIEW识别区分各个轴的坐标。
ABB机器人(server)端建立socket通信及坐标发送可以参考源代码1。
在实际的工程项目实施时需要注意以下两点:
如果想在ABB機器人向上位机发送三轴坐标的同时执行其他运动指令,首先需要ABB工业机器人系统软件中配置623-1 multitasking(多任务)模块,其次需要使用multitasking新建一个“任务模块T2”,并配置成Normal类型,如图3所示。再将通信程序代码(源代码1)移植到T2任务模块中。在多任务情况下,一般将数据通信放在后台运行(T2模块),而进行人运动程序则放在前台运行(T_ROB1),因为在后台运行的程序不能执行运动指令,如果执行,系统会报错。
如果想以上位机为server、机器人为client尝试建立二者之间的通信,建议直接使用实体ABB机器人。当使用虚拟机器人时,其IP地址虽然一般默认为“127.0.0.1”,但是其通信端口会随机跳变,无法实现二者之间的连接绑定。而实体机器人则不存在该问题,其通信端口是固定的,不会任意改变。
4 使用LabVIEW读取socket套节字数据
上位机PC端使用LabVIEW接收读取ABB机器人发送的坐标数据。使用Labview进行socket“套接字”(ABB机器人的socket通信本质就是TCP/IP)通信时,需要监听机器人(server)的IP地址和通信端口。
以虚拟的ABB机器人为例,默认的IP地址为127.0.0.1,通信端口为8001。在LabVIEW中建立程序框图的步骤,如图4所示。由此可以实现上位机每100ms读取一次ABB机器人的坐标值,并显示在人机交互界面中。也可以根据实际应用场景的需求,灵活的调整机器人套接字循环发送间隔时间和上位机接收读取周期,以期达到最佳效果。
读取坐标的程序框图如图4所示。需要注意的有3点:
1.设定读取的字符串长度需要大于机器人发出的总字符串长度(最多80个字节)。
2.使用LabVIEW中“TCP协议”里 “TCP读取”模块读取的字符串数据,进行识别的时候正好可以借助机器人发出的坐标字符串中的特殊字符进行解码。利用字符串中的“匹配模式”模块即可灵活便捷的分离出X、Y、Z三轴坐标。
3.程序框图中的while循环的间隔时间建议为机器人发送数据循环间隔时间的2倍。
5 结束语
随着工业通信领域技术的飞速发展,越来越多的通信方式会被应用到工业机器人领域,以便于更大程度的提高生产、协作效率。而基于工业以太网的通信协议正在飞速的发展和应用于工业制造生产、检测监控行业。希望仅借此文能为工业机器人领域的二次开发提供更多可供选择的思路和通信方式。
参考文献:
[1]叶晖. 工业机器人实操与应用技巧. 北京: 机械工业出版社2010.10.
[2]陈瞭.ABB工业机器人二次开发与应用 北京:电子工业出版社2021.4.
[3]陈树学. Labview宝典(第2版) 北京: 电子工业出版社2017.9.