如何使用 STEP 7 (TIA Portal) 为 SIMATIC S7-1200 建立 MODBUS-RTU 通讯?

概述
利用 CM 1241 RS485 和 CM 1241 RS232 通讯模块,SIMATIC S7-1200 可以实现点对点的通讯。 每个 SIMATIC S7-1200 控制器最多可以添加三个通讯模板 (+ 一个 RS485 通信板)。 利用集成在 STEP 7 (TIA Portal)中的 MODBUS 库文件,可以定义每个通讯模块为 MODBUS 主站或 MODBUS 从站。如果选择 MODBUS主站,可以通讯的对象

  • 使用 CM 1241 RS232 通讯模块只能与一个从站通讯 (由于物理限制)。
  • 允许最多与 32 个从站的相继地通讯使用 (通过 CM 或 CB 1241 RS485)。

通过一个由 STEP 7 (TIA Portal) V11 创建的范例去介绍如何使用 CM 1241 RS485 通讯模块与多个从站进行通讯。

说明
提供一个 MODBUS 主站和一个 MODBUS 从站间的通讯例程。通讯可以交替进行读写,将数据写入从站寄存器 (MODBUS 功能码为 16) 和读取从站寄存器的数值 (MODBUS 功能码为 03)。 因为 RS485 接口是两线制 (半双工模式),故数据读写必须是连续控制的。 同理,在这两种操作 (这里指读和写) 之间也可以改变要寻址的从站地址,因此,主站和多个从站之间的数据交换是可以实现的。

如何使用 STEP 7 (TIA Portal) 为 SIMATIC S7-1200 建立 MODBUS-RTU 通讯?
图. 01

多个 CM 1241 RS485 通讯模块之间可以使用 PROFIBUS 电缆相互连接。 最多可以将 31 个MODBUS 从站使用 PROFIBUS 电缆连接到主站。使用 STEP 7 (TIA Portal) 配置组态,使用交换机 CSM 1277可以将程序下载至控制器。

MB_COMM_LOAD
MODBUS 通讯中,双方 (主站和从站) 都应该调用配置 MB_COMM_LOAD 指令。

如何使用 STEP 7 (TIA Portal) 为 SIMATIC S7-1200 建立 MODBUS-RTU 通讯?
图. 02

MB_COMM_LOAD 指令可以完成如下功能:选择通讯模块、设定通讯参数、设置与主站或从站的连接参数。必须在第一个程序执行周期中调用 MB_COMM_LOAD 指令 (可以使用硬件设置中的系统标志位 M1.0 来实现或在启动 OB 100 中调用)。在硬件组态中插入通讯模块后,可以在 PORT 参数中选择通讯模块的符号名。 通信参数波特率 (传输速率) 和奇偶校验方式在所有节点中必须设定相同。STEP 7 (TIA Portal)设备视图中关于 RS485 的端口特性的设置与此不相干。MB_DB 参数用于填写主站或从站指令的背景数据块,因此也就说明了通讯模块 (PORT 参数指定的) 是 MODBUS 主站还是从站。

MB_MASTER
使用 MB_MASTER 指令可以定义 MB_COMM_LOAD 指令中选定的通讯模块为 MODBUS 主站。

如何使用 STEP 7 (TIA Portal) 为 SIMATIC S7-1200 建立 MODBUS-RTU 通讯?
图. 03

MB_MASTER 指令可以用来选择要寻址的 MODBUS 从站的地址、功能码和设定本地的数据存储区。下表解释了具体参数。

参数 描述
REQ 使能通信。
MB_ADDR MODBUS-RTU 站地址。
MODE 选择传输方向("0" = 读, "1" = 写或附加的诊断功能)。
DATA_ADDR 指定 MODBUS 的起始地址。
DATA_LEN 指定 MODBUS 数据长度。
DATA_PTR 定义了主站发送和接收的本地数据区。DATA_PTR 参数必须是全局数据块,禁用“仅符号访问”选项。

"MB_MASTER" 必须循环周期调用(例如:OB1)

MB_SLAVE
使用 MB_SLAVE 指令可以定义 MB_COMM_LOAD 指令中选定的通讯模块为 MODBUS 从站。

如何使用 STEP 7 (TIA Portal) 为 SIMATIC S7-1200 建立 MODBUS-RTU 通讯?
图. 04

MB_SLAVE 指令定义 MODBUS-RTU 站地址,并指定本地数据存储区作为对应的保持寄存器数据传送。

参数 描述
MB_ADDR MODBUS-RTU 站地址。
MB_HOLD_REG 从站的保持寄存器。MB_HOLD_REG 必须是全局数据块,禁用“仅符号访问”选项。

当进行多寄存器 (字) 传输时,在MB_HOLD_REG 中定义数组、结构或覆盖主站 (DATA_ADDR 和 DATA_PTR) PLC 数据类型的参数符号名。数组、结构或PLC数据类型的第一个字对应的MODBUS保持寄存器起始地址 40001。

通过指令的输入和输出功能或访问相关背景数据块进行参数转换。

范例项目
在主站项目中,交替的读写从站寄存器是通过一个时序标志完成的。

如何使用 STEP 7 (TIA Portal) 为 SIMATIC S7-1200 建立 MODBUS-RTU 通讯?
图. 05

  1. 初始化:调用 MB_COMM_LOAD 指令。.
  2. 步骤 1:调用 MB_Master,将需要发送的数据填写到 DATA_PTR,并执行使能(REQ = 1),(MODE = 1) 将数据写入从站。
    • MB_MASTER指令返回正在执行 (BUSY),转至步骤 2完成。
    • MB_MASTER指令返回是肯定的结果 (DONE),转至步骤 3完成。
    • 复位 MB_MASTER 指令的执行 (REQ = 0)。
  3. 步骤 3:读取从站数据,需要将通讯参数 (MODE = 0) 传输到 MB_MASTER。
  • 步骤 4 的执行和转换,与步骤 1 一样。
  • MB_MASTER成功反馈 (DONE) 后,从 DATA_PTR 读取的数据必须保存 (copied)。

功能的执行 (这是读取从站存储的数据) 如下图所示。

如何使用 STEP 7 (TIA Portal) 为 SIMATIC S7-1200 建立 MODBUS-RTU 通讯?
图. 06

通过修改 MB_ADDR 参数 (参见网络7) 可以访问不同的从站地址。

如果出现错误, (ERROR) 状态被存储在 ERROR_STATUS 标签处。有关状态的评估可通过 F1打开 TIA Portal 在线帮助查看详细信息。

下载
压缩文件包 "47756141_S7-1200_MB-RTU_V11-SP2-Upd5.zip" 包含范例 "47756141_S7-1200_MB-RTU_V11-SP2-Upd5.ap11" 用于实现主站和从站间的数据交换。将 "47756141_S7-1200_MB-RTU_V11-SP2-Upd5.zip" 解压,使用 STEP 7 (TIA Portal) V11+SP2+Update5或更高版本打开范例项目 "47756141_S7-1200_MB-RTU_V11-SP2-Upd5.ap11",CPU的版本为V2.2或更高。下载项目文件 (主站和从站) 至控制器。之后就可以在监控状态表中查看数据。

如何使用 STEP 7 (TIA Portal) 为 SIMATIC S7-1200 建立 MODBUS-RTU 通讯?Registrierung notwendig 47756141_s7-1200_mb-rtu_v11-sp2-upd5.zip (1,5 MB)

详细信息
更多关于 MODBUS 库文件的操作信息可以参考 SIMATIC S7 S7-1200 可编程序控制器系统手册 (文档编号: 36932465)。
更新 MODBUS-RTU 库指令可以参考 (条目 ID 59421832)。.

S7-1500 and ET 200SP 的 MODBUS-RTU 通讯应用请参考 (条目号68202723)

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc324442.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日
下一篇 2021年4月12日

相关推荐

发表回复

登录后才能评论