前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >[ S7-1200 ] Modbus TCP(V4.0) Server

[ S7-1200 ] Modbus TCP(V4.0) Server

作者头像
科控物联
发布2022-03-29 18:49:13
发布2022-03-29 18:49:13
2K0
举报
文章被收录于专栏:科控自动化科控自动化

S7-1200 Modbus TCP 通信指令块

STEP 7 V13 SP1 软件版本中的Modbus TCP库指令目前最新的版本已升至V4.0,该版本的使用需要具备以下两个条件:

1. 软件版本:STEP 7 V13 SP1及其以上

2. 固件版本:S7-1200 CPU 的固件版本V4.1

图1. Modbus TCP V4.0 版本指令块

S7-1200 Modbus TCP 实验环境

下面以两台S7-1200之间进行Modbus TCP 通信为例,详细阐述客户端与服务器侧如何编程及通信的过程。表格列出了具体的实验环境:

操作系统

WIN7 SP1 专业版 64位

编程软件

STEP 7 Professional V13 SP1 Update 5

系统硬件

1.CPU1215C 6ES7 215-1AG40-0XB0 V4.12.CPU1212C 6ES7 212-1AE40-0XB0 V4.13.CSM 1277 6GK7 277-1aa10-0aa0

表1. Modbus TCP 通信的实验环境

CPU类型

IP地址

端口号

硬件标识符

客户端

CPU 1212C

192.168.0.6

0

64

服务器

CPU 1215C

192.168.0.4

502

64

表2. Modbus TCP 通信双方的基本配置

硬件标识符是在“设备组态”中,双击 PROFINET 接口,然后在“属性”中的“硬件标识符”中查看。

图2. S7-1200设备的PROFINET接口硬件标识符

S7-1200 Modbus TCP 服务器编程

“MB_SERVER”指令将处理 Modbus TCP 客户端的连接请求、接收并处理 Modbus 请求并发送响应。

1. 在“ 程序块-> OB 1"中调用“MB_SERVER”指令块,然后会生成相应的背景DB块,点击确定,如图3所示。

图3. 调用MB_SERVER指令块

该功能块的各个引脚定义如下:

DISCONNET

为0代表被动建立与客户端的通信连接;为1代表终止连接。

MB_HOLD_REG

指向 Modbus 保持寄存器的指针。

CONNECT

指向连接描述结构的指针。TCON_IP_v4(S7-1200)

NDR

为0代表无数据;为1代表从 Modbus 客户端写入新的数据。

DR

为0代表无读取的数据;为1代表从 Modbus 客户端读取的数据

ERROR

错误位:0:无错误;1:出现错误,错误原因查看STATUS。

STATUS

指令的详细状态信息。

表3. MB_SERVER 各个引脚定义说明

2. CONNECT 引脚的指针类型

第一步,先创建一个新的全局数据块 DB2,如图4所示:

图4. 创建全局数据块

第二步,双击打开新生成的 DB2 数据块,定义变量名称为“ss",数据类型为“TCON_IP_v4”(可以将 TCON_IP_v4 拷贝到该对话框中),然后点击“回车”按键。该数据类型结构创建完毕。如图5所示:

图5. 创建 MB_SERVER 中的 TCP 连接结构的数据类型

各个引脚定义说明如下:

InterfaceId

硬件标识符。(设备组态中查询)

ID

连接ID,取值范围1~4095

Connection Type

连接类型。TCP连接默认为:16#0B

ActiveEstablished

建立连接。主动为1(客户端),被动为0(服务器)。

ADDR

服务器侧的IP地址

RemotePort

远程端口号

LocalPort

本地端口号

表4. TCON_IP_v4 数据结构的引脚定义

客户端侧的IP地址为192.168.0.6,端口号为0,所以 MB_SERVER 服务器侧该数据结构的各项值如图6所示。

图6. MB_SERVER 服务器侧的 CONNECT 数据结构定义

3. S7-1200 服务器侧 MB_SERVER 编程

调用MB_SERVER指令块,实现被客户端读取2个保持寄存器的值,如图7所示。

图7. MB_SERVER 服务器侧编程

注意:MB_HOLD_REG 指定的数据缓冲区可以设为 DB 块或 M 存储区地址。DB 块可以为优化的数据块,也可以为标准的数据块结构。

S7-1200 MODBUS TCP 通信调试

S7-1200 MODBUS TCP 服务器侧准备数据,用于客户端读访问,如图8所示。

图8. 服务器侧监控表

S7-1200 MODBUS TCP 客户端侧,给 MB_CLIENT 指令块中 REQ 引脚一个上升沿,监控数据读取成功。如图9所示。

图9. 客户端侧监控表

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 科控物联 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • S7-1200 Modbus TCP 通信指令块
  • S7-1200 Modbus TCP 实验环境
  • S7-1200 Modbus TCP 服务器编程
  • S7-1200 MODBUS TCP 通信调试
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档