Modbus TCP续集

本文介绍了S7-1200 CPU V4.1及更高版本中的Modbus TCP功能扩展,包括两种Modbus TCP指令版本的选择、使用要求和注意事项。详细阐述了MB_CLIENT和MB_SERVER指令的参数、功能、连接管理和错误处理,强调了在同一程序中不能混合使用不同版本指令的重要性,并提供了多个服务器连接的配置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

S7-1200 CPU V4.1 版与 STEP 7 V13 SP1 一起,扩展了 Modbus TCP

的功能,可使用增强型 T 块指令。 出于这个原因,S7-1200 支持两组 PtP 指令:

  • 早期ModbusTCP 指令: 这些 Modbus RTU 指令存在于 S7-1200 的 V4.0版本之前。
  • ModbusTCP指令: 这些 Modbus TCP 指令提供了早期指令的全部功能。

 

选择Modbus TCP 指令的版本

在 STEP 7 中可使用两个版本的 Modbus TCP 指令:

  • 版本0 最初在 STEP 7 Basic/Professional V13 中提供。
  • 版本1 在 STEP 7 Basic/Professional V13 SP1 中提供。 可以从兼容性和移植便利性方面考虑,选择将相应的指令版本插入用户程序中。

不要在同一 CPU 程序中同时使用 3.0 和 3.1 指令版本。 用户程序的 Modbus TCP 指令必须具有相同的主版本号(1.x、2.y 或 V.z)。 主版本组内的各个指令可具有不同的次版本号 (1.x)。

单击指令树任务卡上的图标可启用指令树的标题和列。

要更改 Modbus TCP指令的版本,请从下拉列表中选择相应版本。 可以选择一组指令或分别选择各个指令。

使用指令树将 Modbus TCP 指令放入程序时,将在项目树中创建新的 FB 实例。 在项目树的“PLC_x > 程序块 > 系统块 > 程序资源”(PLC_x > Program blocks > System blocks > Program resources) 下可看到新的 FB 实例。

要确认程序中 Modbus TCP 指令的版本,必须检查项目树的属性而不是程序编辑器中显示的框的属性。 选择项目树的 Modbus TCP FB 实例,单击右键,选择“属性”(Properties),然后选择“信息”(Information) 页查看 Modbus TCP 指令的版本号。

Modbus TCP 指令 

MB_CLIENT(作为 Modbus TCP 客户端使用 PROFINET 进行通信)指令 

表格 13- 53 MB_CLIENT 指令

表格 13- 54 参数的数据类型

说明

CPU 固件版本要求

本手册中所述的 Modbus TCP 指令要求固件版本为 V4.1 或更高版本。

REQ 参数

FALSE = 无 Modbus 通信请求

TRUE = 请求与 Modbus TCP 服务器通信

如果 MB_CLIENT 的实例没有激活且参数 DISCONNECT=0,当 REQ=1

时,将启动一个新的 Modbus 请求。 如果尚未建立连接,则建立一个新的连接。

如果在当前请求完成前 DISCONNECT=0 且 REQ=1,从而再次执行 MB_CLIENT 的同一个实例,则不会进行后续 Modbus 传送。 但是,一旦完成当前请求,如果通过 REQ=1 执行 MB_CLIENT,可处理新的请求。

完成当前 MB_CLIENT 通信请求后,DONE 位将在一个周期内保持为 TRUE。 DONE位可用作定时门,对多个 MB_CLIENT 请求进行排序。

说明

MB_CLIENT   处理期间输入数据的一致性

Modbus 客户端启动 Modbus 操作后,将在内部保存所有输入状态,然后在每次后续调用时进行比较。 比较用于确定此特定调用是否是活动客户端请求的发起者。 可使用一个公用背景数据块执行多个 MB_CLIENT 调用。

在主动处理 MB_CLIENT 操作期间应不改变输入,这一点很重要。 若不遵循此规则,MB_CLIENT 无法确定活动实例。

MB_MODE  MB_DATA_ADDR 参数用于选择 Modbus 通信功能

MB_CLIENT 指令使用 MB_MODE 输入而非功能代码。MB_DATA_ADDR 分配远程数据的起始 Modbus 地址。

MB_MODE 和 MB_DATA_ADDR 一起确定实际 Modbus 消息中使用的功能代码。 下表列出了参数 MB_MODE、MB_DATA_ADDR 和 Modbus 功能之间的对应关系。

表格 13- 55 Modbus 功能

说明

MB_DATA_PTR 分配一个缓冲区来存储从 Modbus TCP 服务器读取或写入到该服务器的数据 数据缓冲区可定位于标准全局 DB 或 M 存储区地址中。

对于 M 存储器中的缓冲区,使用 Any 指针格式。 具体格式为 P#“位地址” “数据类型”“长度”,例如 P#M1000.0 WORD 500。

MB_DATA_PTR   参数指定一个通信缓冲区

  • MB_CLIENT通信功能:

–  从 Modbus 服务器地址(00001 到 09999)读写 1 位数据

–  从 Modbus 服务器地址(10001 到 19999)读取 1 位

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值