基于Python和Web Service实现喷涂机器人工作队列实时监控(续集)
声明:本媒体部分图片、文章来源于网络,
版权归原作者所有,如有侵权,请与我联系删除。
声明:本媒体部分图片、文章来源于网络,
版权归原作者所有,如有侵权,请与我联系删除。
上一期关于Web service的基础知识相信大家已经了解。不少读者提了个问题,这个程序有什么用?好的,下面先说下它的作用。对于ABB喷涂机器人而言,现场主要查看工作队列是借助示教器和HMI(Robview5或FlexUI)。示教器常跟随控制柜一起受到安装位置的限制,查看起来不方便。而用比如RobView5软件对系统,网络等有一定要求,并且也无法记录对工作队列的变化记录。并且当我们需要对故障诊断时,需要更高的灵活性。
小编这次写的程序只有十几KB,但能满足灵活性和耗用内存小的特点。先预览一下吧。双击程序可以看到如下界面,
小编这次写的程序只有十几KB,但能满足灵活性和耗用内存小的特点。先预览一下吧。双击程序可以看到如下界面,
当没有任务时,上面显示Size是0。下面我们用GUI软件插入一个任务,程序号4,物料号1,看一下有什么变化?
数量变为1,program_index显示4,material_index显示1。而且显示出来的不再是那些杂乱无章的响应信息。
这一过程是如何实现的呢?
在写程序前,先要导入相应的库文件,
其次,要知道Rob Web service中关于队列的资源,即“rw/paint/queue”。
第三,要如何做到实时更新。这就要利用Rob Web service中的订阅功能,其原理是建立一个Session让其始终保持连接并利用Web Socket 的Callback功能将收到的字节传输回去。
在这里就牵涉到两个知识点,一是如何订阅,首先需要知道URL,就是http://{IP}/sub
部分代码如下:
关于callback功能,部分代码如下,
需要注明协议是“robapi2_sub
第四是如何将收到的信息格式化成我们想要的显示?也就是我们只想知道跟工作队列有关的。这就需要用到XML库中的ElementTree方法,部分代码如下,
好的,今天就讲这么多了。关于Rob Web Service的应用有太多太多,在今后小编也会分享一些技巧。