随着工业现场需求的日益变化,机器视觉在机器人集成项目中的应用越来越广泛。在视觉与机器人的配合中,要解决的问题有很多,比如视觉的内外参标定,视觉系统和机器人间的标定问题,视觉和机器人间的通讯等等。其中视觉和机器人间的通讯往往作为重难点存在,不同品牌视觉在和不同品牌机器人通讯时,可供选择的通讯方案比较多,比如串口通讯、现场总线通讯、以太网通讯等等,其中TCP/IP通讯是一种比较方便也容易使用的通讯方式。
那么,问题来了,如何实现ABB机器人和视觉系统间的TCP/IP通讯呢?首先我们先看下通讯效果,然后我们再来解开通讯背后的秘密。
ABB机器人实现TCP/IP通讯的前提是必须要有616-1 PC Interface选项功能,如下图是ABB官方对于PC Interface选项功能的介绍:
所以,当我们在真实机器人系统上想实现TCP/IP通讯要先检查下系统是否含此选项功能,参考如下界面:
TCP是因特网中的传输层协议,使用三次握手协议建立连接,过程比较复杂,实际使用中,我们可以用socket编程接口实现服务器与客户端间的通讯,关于TCP/IP与socket之间的关系大家可以查阅相关资料,下图是ABB机器人使用socket接口实现通信的过程。
下面我们在RobotStudio软件中模拟机器人实现此功能的过程(这里我们把机器人作为客户端client使用):
第一步,创建机器人系统,这里要注意参考图片把PC Interface选项加入。
第二步,新建程序模块及例行程序。
通讯相关指令在Communicate指令集下。
第三步,编写程序,具体程序如下:
SocketCreate socket_vision;
!创建套接字,用于连接远程计算机,这里注意,下面编程是把机器人作为客户端,远程计算机作为服务器的
SocketConnect socket_vision,“127.0.0.1”,5001;
!连接远程计算机,这里要写明远程计算机的IP地址和通讯双方共用的端口号。注意,在真实机器人系统上,远程计算机网口和机器人LAN口或WAN口间要用网线做好连接,并将计算机IP地址设置和机器人IP地址同一网段,此外,端口号不可随意设置,一般不会用0~1023之间的数字。这里为了和本机上TCP/IP测试工具间实现通讯,IP地址设为回送地址 “127.0.0.1”
SocketSend socket_vision\Str:="hello!";
!向远程计算机发送信息,发送内容可以为具体字符串,也可以是string型变量
SocketReceive socket_vision\Str:=string_vision;
!接收来自远程计算机发送过来的数据,存储在string_vision变量中,注意,string_vision存储类型必须为变量,数据类型为string
SocketClose socket_vision;
!关闭通讯
TPErase;
!擦除屏幕上的显示的文本信息
TPWrite string_vision;
!将string_vision的文本信息写入示教器屏幕,验证写入的信息和远程计算机发送的信息是否一致
第四步,测试通讯。
到此,我们就实现了ABB机器人和视觉系统间的通讯啦。