STEP7V13SP1软件版本中的ModbusTCP库指令目前最新的版本已升至,该版本的使用需要具备以下两个条件:
1.软件版本:STEP7V13SP1及其以上
2.固件版本:S7-1200CPU的固件版本

图1.版本指令块
S7-1200ModbusTCP实验环境
下面以两台S7-1200之间进行ModbusTCP通信为例,详细阐述客户端与服务器侧如何编程及通信的过程。表格列出了具体的实验环境:
操作系统WIN7SP1专业版64位
编程软件
STEP7ProfessionalV13SP1Update5
系统硬件
1.
2.
3.CSM12776GK7277-1aa10-0aa0
表1.ModbusTCP通信的实验环境
CPU类型IP地址端口号硬件标识符
客户端
服务器
表2.ModbusTCP通信双方的基本配置
硬件标识符是在“设备组态”中,双击PROFINET接口,然后在“属性”中的“硬件标识符”中查看。

图2.S7-1200设备的PROFINET接口硬件标识符
S7-1200ModbusTCP客户端编程
S7-1200客户端侧需要调用MB_CLIENT指令块,该指令块主要完成客户机和服务器的TCP连接、发送命令消息、接收响应以及控制服务器断开的工作任务。

图3.ModbusTCP客户端侧指令块
该功能块各个引脚定义如下:

REQ与服务器之间的通信请求,上升沿有效。DISCONNECT通过该参数,可以控制与
表4.MB_CLIENT各引脚定义说明
2.CONNECT引脚的指针类型
第一步,先创建一个新的全局数据块DB2:

图4.创建全局数据块

图5.创建MB_CLIENT中的TCP连接结构的数据类型
各个引脚定义说明如下:
InterfaceId硬件标识符。ID连接ID,取值范围1~4095
ConnectionType连接类型。TCP连接默认为:16FF,等于十进制255)。如下图11所示:

图11.MB_Unit_ID
例如,当S7-1200做客户端与电脑上的ModbusTCP调试软件Modsim通信时,会遇到如上“无法建立连接”的问题。
这时,修改调试软件Modsim中DeviceId为255,使之等于MB_Unit_ID的值,即可建立联系。如下图12所示:

图12.DeviceId
注意:如果ModbusTCP服务器无法更改DeviceId的值,则修改S7-1200项目中MB_Unit_ID数值,使双方的参数一致。
结束!!!免责声明:本文章如果文章侵权,请联系我们处理,本站仅提供信息存储空间服务如因作品内容、版权和其他问题请于本站联系