工控智汇

工控智汇

S7-1200 Modbus TCP 通信

admin 172 112

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数值,使双方的参数一致。

结束!!!