FANUC socket server DEMO

黄杰, 2017-08-16
root[a]linuxsand.info

大概两三年前,我在调试 FANUC 机器人时,对于这个话题是耿耿于怀:尽管在当时公司并不需要在项目中用到该技术,但仍然是想要掌握它。但是谈何容易,FANUC 相关的技术资料是如此稀少。当时唯一的线索是《B-82974EN/02 Ethernet Function OPERATOR'S MANUAL》的第十章 SOCKET MESSAGING。

这期间,我渐渐不再使用 FANUC,甚至越来越多地把注意力从工业机器人方面移开,开始关心其它工控技术。


一个契机来了。在过去的几个月前,有业界朋友使用 FANUC 控制器的 Ethernet/IP 功能和 LabView,实现了在 PC 上读取控制器数据的功能。闲聊中,我重新提起了这个方法:使用 KAREL 语言编写 socket server 程序,运行在 FANUC 控制器上;在 PC 编写相应的 socket client(任意语言、平台),完成通讯。

但是……总是没有抽出时间去做这个事情,哪怕是一个简单的 DEMO。好在,这几天终于逼自己一把,利用出差间隙做了一个 DEMO 出来。

目前这个 DEMO 的不足之处,主要是说 KAREL socket server:

我不打算在此时此刻将源代码发出来,因为我对这个玩意儿有些私心,期待它能在稳定工作后,能够带来一些小小的经济收益,来补偿设计开发它所消耗的时间。


介绍一下这个 DEMO 包含的程序:

YouTube link here

播放优酷视频:

下图是需要加载到 FANUC 控制器的 ADD_R41.TPTEST_JSERV.TP


下图是 DEMO 运行时的截图。

FANUC 示教器分成 3 个区域:

最底下的黑色 console,是使用 Python 编写的、简单的 socket client,它不停在读取 R[41] 的值并刷新到当前行。

下图是当天更新过的,可灵活查询不同寄存器的值,同时发生连接中断时,服务端能自动恢复。