中山市恺特自动化科技有限公司
HighTechAutoManu.Ltd

S7-1200与S7-1200之间的Modbus TCP通讯

作者:麦永科 来源:中山市恺特自动化科技有限公司 时间:2018-12-28 分类:技术支持

本文章为中山市恺特自动化科技有限公司所有。未经同意不得转载,抄袭。侵权必究。

S7-1200系列是一款可编程逻辑控制器,可以控制各种自动化应用。该系列PLC设计紧凑、成本低廉且具有功能强大的指令,具有很高的性价比。并且组态和编程均在博途软件进行,符合西门子PLC未来的发展趋势。在很多应用案例中,时常需要多个1200PLC控制器来完成项目的功能,PLC之间的信息交互可通过通讯方式实现,比如S7通讯、ModbusTcp等。通过通讯方式,有信息交互量大、维护方便、可扩展性强等优点。本文以同一个项目中1200之间的ModbusTcp通讯伪为例(CPU固定版本4.1及以上)。


一、 配置客户端和服务器的IP地址和组态联网
客户端配置:组态子网PN/IE_1,IP地址为192.168.0.215

服务器配置:子网选择PN/IE_1,IP地址设为192.168.0.217




二、 客户机程序的建立

客户机程序使用的是功能块MB_CLIENT通讯块。路径为:右边指令菜单---通信---其他MB_CLIENT。将该模块拖放到主程序OB1中。此时需分配一个数据块比如DB2。DB2路径为程序块--系统块--程序资源--DB2。

可利用信息DB2数据块中Connected管脚触发功能块MB_CLIENT的REQ管脚第一次通讯循环。

本功能块是将客户机M100.0开始的8个字,写入服务器40001开始的八个地址中。


DB块信息表如下:


功能块各管脚功能如下图所示:



其中通讯结构需重点注意,该类型需建立全局DB块,用来定义该变量类型,数据类型为TCON_IP_v4。(需手动输入,自带列表找不到该类型)。


各管脚定义如下:

其中,Interfaceld为PLC硬件标识符,默认为64或65。

ID号范围1-4096,客户机和服务器需保持一致。

ActiveEstablished管脚在客户机设置为1,服务器设置为0。

IP地址主站设置为0即可。

本地端口号LocalPort为0。

远程端口号RemotePort设置为502(一般默认)。

具体设置如上图所示。



三、 服务器程序的建立

服务器端使用的功能块MB_SERVER。路径为:右边指令菜单---通信---其他MB_SERVER。将该模块拖放到主程序OB1中。此时需分配一个数据块比如DB2。程序如下图所示:



各管脚定义说明如下所示:

其中MB_HOLD_REG与客户机数据交互的范围,设置的范围需大于等于客户机的读取和写入的范围。

connect管脚的建立跟客户机一致,具体的参数设置如下:




四、 完整参考程序如下:

客户机:


服务器程序: