本文章为中山市恺特自动化科技有限公司所有。未经同意不得转载,抄袭。侵权必究。
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管脚的建立跟客户机一致,具体的参数设置如下:
四、 完整参考程序如下:
客户机:
服务器程序: