S7-1200如何与14台KUKA机器人进行MODBUS TCP通信

时间:2020-08-10点击次数:349

无论是KUKA还是ABB,亦或是其他品牌的机器人,他们与PLC通信的方式大多都是采用PROFINET IO形式,不需要编程,而且通信也是实时的,但需要机器人配置PROFINET网卡,这无疑增加了机器人的采购成本,其实,机器人默认支持MODBUS TCP通信的,PLC也是,我们完全可以通过MODBUS TCP 简单的编程实现与机器人的通信。

S7-1200中具有14个MODBUS TCP通信资源,也就是说可以同时与14台机器人进行通信,一般情况下,机器人作为服务器,PLC作为客户端。

我们以PLC做客户端,与14台作为服务器的机器人进行通信,说明如何编程。

采用MODBUS TCP通信,只需要编程,不需要任何的组态,直接写程序就行。

首先从指令集中调用MB_CLIENT指令,这是客户端指令,MB_SERVER是服务器指令。

程序段1是PLC写数据到1号机器人。

MB_MODE=0是读,MB_MODE=1是写。

MB_DATA_ADDR是1号机器人的数据区地址,这里用的保持性寄存器地址,注意机器人的保持性寄存器地址一定要加上40001之后,才是MB_DATA_ADDR正确的数值。

MB_DATA_LEN是数据的长度,单位是WORD。如果MB_DATA_ADDR不是保持性寄存器地址,则MB_DATA_LEN的单位是BIT。

MB_DATA_PTR是数据区,也就是说把PLC中哪里的数据写入到1号机器人,即源数据。

CONNECT是连接参数,很关键,在这里填写机器人的IP地址和端口号。

CONNECT的参数如下图所示。

RemoteAddress就是机器人的IP地址。

RemotePort就是机器人的端口号。

如果ActiveEstablished=1,即PLC做客户端,如果ActiveEstablished=0,即PLC做服务器。

1号机器人的ID要和2号机器人的ID不一样,一个机器人一个独立的ID,数值随便填写即可。

Interfaceld直接填写64即可。

程序段2用来读1号机器人数据到PLC中。

CONNECT填写的变量和程序段1中的要一样,因为是同一个机器人,如果是其他机器人,就要不一样了。

MB_DATA_PTR即把机器人中的数据读取后放到PLC的哪些数据中。

同一台机器人之间的读写要轮询,同一台机器人的读写不能同时发生,不同机器人之间的读写可以同时发生,如同时读1号、2号、3号等机器人的数据是可以的,但不能对某一台机器人同时读或写。

然后按照上面的方法,编程剩下的13台机器人就可以了。


http://shtxjd.cn.b2b168.com

上一篇:V90的固件升级

产品推荐