懒猫答疑 | FANUC工业机器人以太网通信
问题缘由
老师,在了解了FANUC工业机器人的外围设备接口之后,如果我还想对工业机器人进行二次开发,除使用I/O通信方式外,还有没有什么其他的方式呢?
懒猫答疑
当然有!I/O通信方式是最为简单的一种机器人与外围设备通信的方式,很多视觉系统都是基于I/O方式通信实现的,但工业中还有很多网络通信协议,其中以太网通信就是常见的一种。在之前的课程中已经讲解了FANUC工业机器人以太网的设置,并且也实现了基于Simulation的监控,同时各位同学也掌握了KAREL程序下文件的读写方式,而这些就是以太网通信的实现基础,接下来只需要了解几个函数,就可以开始以太网的SOCKET通信了。
解决思路与方法
Step One:安装软件包
安装UserSocket Msg(R648)软件包,光有KAREL不行,一定要安装这个软件包,否则是无法实现SOCKET通信的。
Step Two:检查通信
MSG_PING(string, integer)
在程序中测试是否可以连接服务器时可使用MSG_PING函数,该内建函数用于检测与远程主机是否可网络通信,使用该函数后,工业机器人以太网通信端口将发送ping数据包并等待返回,若无返回,则表示无法连接对方设备。
该函数有两个形参,第一个形参是字符串参数,用于设置所连接的对象主机,第二个参数是整型参数,返回当前函数的执行状态,若不为0则代表有错误发生。
Step Three:建立TCP隧道
MSG_CONNECT(string, integer)
该函数就是用于建立TCP通信隧道,对于服务器标签和客户端标签其执行方式是不一样的,若该函数用于主机标签通信,则只有当有客户端连接上时才会有返回值,否则一直等待。若用于客户端标签通信,则只要对方服务器允许连接则输出返回值,程序继续执行。
Step Four:文件读写
与其他所有高级语言实现SOCKET通信方式一样,建立连接之后就是对文件进行读写,此处可以参考之前我们课程中关于日志读写的部分,但是需要注意是以交互方式打开文件,否则通信是无法成功的。
Step Five:关闭隧道
MSG_ DISCO (string, integer)
该函数用于关闭TCP通信隧道。在尝试任何连接前,建议先用MSG_DISCO内建函数尝试关闭标签可能已建立的通信隧道,也就是说无论是否之前已经建立了连接,当你需要连接的时候都需要先调用这个函数。同时当需关闭或丢失通信连接时都需要关闭通信隧道,以避免内存泄露,也就是说一旦建立其通信隧道,则只要机器人系统不重启,则已经建立的连接就会一直保持,无论当前运行的是TP还是其他的PC程序。
更多相关内容,请查阅本课程配套教材~