9月15日,入职思灵机器人有限公司的一名毕业生从德国慕尼黑回国,休假之余,来老校区和我坐坐,在聊到如何丰富课堂内容的环节,他建议多开展一些机器人通讯方面的实训内容。思来想去,那先从ABB机器人和西门子1500系列PLC的Socket通讯浅显的搞一下。
条件有限,无实PLC,无实ABB机器人,只好借助3个软件:博途V18,PLCSIMAdvanced5.0,RobotStudio6.08。
一、创建ABB机器人系统并完成Socket通讯程序编写。
1、选择相应的机器人型号,新建机器人控制柜解决方案。
2、修改机器人系统选项,增加616-1 PC-InterFace及623-1Multitasking选项,重新启动控制器。前者用于socket通信,后者用于创建后台多任务功能。
3、创建机器人网络,用于和PLC通讯。
注意:LAN口既可以做服务器,也可以做客户端,但是WAN只能做客户端。
4、创建后台多任务,用于Socket数据实时扫描。
注意:程序需要修改则选择normal模式, static、semistatic指静态和半静态,不能修改程序。
5、在多任务中编写机器人socket通讯程序。
注意:其中rec_from_plc和send_to_plc为btye类型为数组,容量和plc端保持一致。
二、打开博途软件,配置并编写PLC程序。
1、添加1500PLC,勾选允许来自对象的Put/Get,启动时钟存储器。
2、创建数据块,并创建接收和发送数据数组,容量为50和机器人侧保持一致。
3、编写main(OB1)程序,调用TSEND_C及TRCVC_C。
4、打开Advancd5.0,创建实例,将PLC程序下载。
5、plc在线监控,运行机器人socket程序。
注意:这里有个细节,查看status状态可以判断通信情况。并且,先监控plc,再运行机器人程序,若机器人程序卡在socketconnect这一行,说明服务器没开通,可以查看是否禁用了Siemens PLCSIM Virtual Ethernet Adapter网卡。
三、发送数据验证效果。
1、编写机器人程序,发送数据至PLC端,监控PLC接收到的数据。(16进制的)
2、PLC发送数据至机器人端,机器人接收数据。(16进制的FF为255)
通信成功,待实机继续验证,优化整改!
————————————
一句话:远水解不了近渴!!! |