概述
利用 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 接口是两线制 (半双工模式),故数据读写必须是连续控制的。 同理,在这两种操作 (这里指读和写) 之间也可以改变要寻址的从站地址,因此,主站和多个从站之间的数据交换是可以实现的。
图. 01
多个 CM 1241 RS485 通讯模块之间可以使用 PROFIBUS 电缆相互连接。 最多可以将 31 个MODBUS 从站使用 PROFIBUS 电缆连接到主站。使用 STEP 7 (TIA Portal) 配置组态,使用交换机 CSM 1277可以将程序下载至控制器。
MB_COMM_LOAD
MODBUS 通讯中,双方 (主站和从站) 都应该调用配置 MB_COMM_LOAD 指令。
图. 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 主站。
图. 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 从站。
图. 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。
通过指令的输入和输出功能或访问相关背景数据块进行参数转换。
范例项目
在主站项目中,交替的读写从站寄存器是通过一个时序标志完成的。
图. 05
- 初始化:调用 MB_COMM_LOAD 指令。.
- 步骤 1:调用 MB_Master,将需要发送的数据填写到 DATA_PTR,并执行使能(REQ = 1),(MODE = 1) 将数据写入从站。
- MB_MASTER指令返回正在执行 (BUSY),转至步骤 2完成。
- MB_MASTER指令返回是肯定的结果 (DONE),转至步骤 3完成。
- 复位 MB_MASTER 指令的执行 (REQ = 0)。
- 步骤 3:读取从站数据,需要将通讯参数 (MODE = 0) 传输到 MB_MASTER。
- 步骤 4 的执行和转换,与步骤 1 一样。
- MB_MASTER成功反馈 (DONE) 后,从 DATA_PTR 读取的数据必须保存 (copied)。
功能的执行 (这是读取从站存储的数据) 如下图所示。
图. 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或更高。下载项目文件 (主站和从站) 至控制器。之后就可以在监控状态表中查看数据。
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