Modbus TCP通讯(PLC/机器人)

[复制链接]
查看31153 | 回复0 | 2024-3-22 20:44:12 | 显示全部楼层 |阅读模式
Chensercan分享的第26篇文章

由于大环境的影响,最近很多工程师都关注于Modbus TCP通讯。

对于FANUC机器人Modbus TCP通讯,之前有分享过通过HMI功能PLC可以通过Modbus TCP对机器人地址进行读写。

今天分享的内容是:通过Modbus TCP Connection(R800)功能进行PLC与FANUC机器人之间的通讯。

需要指出的是,在两者设置通讯时,机器人侧通常只能用于做服务器,PLC作为客户端(主站)。

1

在FANUC机器人侧,需要加装Modbus TCP通讯软件。

加装完成后,在IO选项中会出现Modbus TCP选项。



在Modbus TCP中设置通讯字节长度。



示例中的输入输出为4words。

设置完成之后,需要到设置选项中,设置IP地址。



示例中的端口#1 IP地址为:192.168.1.100

其中需要注意的是,Modbus TCP默认通讯端口号为502,无需进行手动修改。

2

在PLC侧,需要确认PLC支持Modbus TCP通讯功能。

下图以SIEMENS S7 1200为例进行说明。



在进行设置时,需要通过客户端进行IP和端口号设置。

需要确保PLC的IP和机器人保持同一网段,同时端口号一致。

在这一过程中,需要保证通讯的字节长度与机器人设置的相同。

否则通讯无法连通。

tips:可通过机器人主机通讯界面的ping指令对PLC进行测试。

3

连通之后,需要对PLC和机器人侧的IO进行映射匹配。

通常机器人侧安装完成Modbus TCP之后,IO会自动分配相应字节长度的IO点位。

图示的DI/DO从201-264分配给Modbus TCP(机架号96)通讯。





如果是手动分配的IO点位,记得冷启动之后才能生效。

4

在PLC侧,需要分配与机器人相匹配的字节长度。

需要通过MB_CLIENT指令进行发送相应指令进行连接和传输数据。



在通讯过程中,我们需要了解该款PLC相对应的Modbus功能码和相对应的地址位。

不同型号的PLC会略有不同,具体需要参考该款PLC的帮助文档。

图示是SIEMENS S7-1200的功能码和地址说明。



而机器人侧支持的Modbus功能码有:



因此,我们需要使用两边都支持的功能码去实现Modbus TCP通讯功能。

5

在SIEMENS的一些PLC中Modbus功能码是不能直接输入的,而是通MB_MODE和MB_DATA_ADDR的组合去确认Modbus功能码。

如下图示例,如果我们需要读输出位DO【201】的内容,此时我们有两种写法:MB_MODE=0,MB_DATA_ADDR=1或MB_MODE=101,MB_DATA_ADDR=00000。



找到PLC端的读写映射地址与机器人IO的关系在Modbus TCP中较为重要。



END

以上是今天分享的内容,欢迎大家转载和收藏!

在实际操作中碰到问题,也可以后台私信我哦。


您点的每个赞,我都认真当成了喜欢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则