利用 CM 1241 RS485 和 CM 1241 RS232 通讯模块,SIMATIC S7-1200 可以实现点对点的通讯。每个 SIMATIC S7-1200 控制器最多可以添加三个通讯模板。利用集成在 STEP 7 (TIA Portal) 中的 MODBUS 库文件,可以定义每个通讯模块为 MODBUS 主站或 MODBUS 从站。如果选择 MODBUS 主站,可以通讯的对象使用 CM 1241 RS232 通讯模块只能与一个从站通讯 (由于物理限制)。 使用 CM 1241 RS485 通讯模块允许最多与 32 个从站的相继地通讯。 ......
概述
利用 CM 1241 RS485 和 CM 1241 RS232 通讯模块,SIMATIC S7-1200 可以实现点对点的通讯。 每个 SIMATIC S7-1200
使用 CM 1241 RS232
通讯模块只能与一个从站通讯 (由于物理限制)。
允许最多与 32 个从站的相继地通讯使用 (通过 CM 或 CB 1241 RS485)。
通过一个由
说明
提供一个 MODBUS 主站和一个 MODBUS 从站间的通讯例程。通讯可以交替进行读写,将数据写入从站寄存器 (MODBUS 功能码为 16) 和读取从站寄存器的数值 (MODBUS 功能码为 03)。 因为 RS485 接口是两线制 (半双工模式),故数据读写必须是连续控制的。 同理,在这两种操作 (这里指读和写) 之间也可以改变要寻址的从站地址,因此,主站和多个从站之间的数据交换是可以实现的。
图. 01
多个 CM 1241 RS485 通讯模块之间可以使用 PROFIBUS 电缆相互连接。 最多可以将 31 个
MB_COMM_LOAD
MODBUS 通讯中,双方 (主站和从站) 都应该调用配置 MB_COMM_LOAD 指令。
图. 02
MB_COMM_LOAD 指令可以完成如下功能:选择通讯模块、设定通讯参数、设置与主站或从站的连接参数。必须在第一个程序执行周期中调用 MB_COMM_LOAD 指令 (可以使用硬件设置中的系统标志位 M1.0 来实现或在启动 OB 100 中调用)。在硬件组态中插入通讯模块后,可以在 PORT 参数中选择通讯模块的符号名。 通信参数波特率 (传输速率) 和奇偶校验方式在所有节点中必须设定相同。STEP 7 (TIA Portal)
MB_MASTER
使用 MB_MASTER 指令可以定义 MB_COMM_LOAD 指令中选定的通讯模块为 MODBUS 主站。
图. 03
MB_MASTER 指令可以用来选择要寻址的 MODBUS 从站的地址、功能码和设定本地的数据存储区。下表解释了具体参数。
参数 | 描述 |
REQ | 使能通信。 |
MB_ADDR | MODBUS-RTU 站地址。 |
MODE | 选择传输方向 |
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
如果出现错误, (ERROR) 状态被存储在 ERROR_STATUS 标签处。 有关状态的评估可通过 F1
下载
压缩文件包 "47756141_S7-1200_MB-RTU_V11-SP2-Upd5.zip" 包含范例 "47756141_S7-1200_MB-RTU_V11-SP2-Upd5.ap11" 用于实现主站和从站间的数据交换。将
楼主最近还看过