例程将给大家介绍西门子S7-200SMART如何使用 Modbus 主站指令对 Modbus 从站的四个保持寄存器执行读写操作。
程序控制要求
当I0.0接通的时候,程序将从 VW100 开始的四个字写入 Modbus 从站从地址 40001 开始的保持寄存器。
PLC读取 Modbus 从站从 40010 到 40013 的四个保持寄存器,并将数据存入PLC中从 VW200 开始的 V 存储器中。数据交互地址如下:
西门子PLC进行MODBUS通信主要使用单个主站及 MBUS_CTRL 和 MBUS_MSG 指令。
MBUS_CTRL:程序调用 MBUS_CTRL指令来初始化、监视或禁用 Modbus 通信。
MBUS_MSG:程序调用 MBUS_MSG指令,启动对 Modbus 从站的请求并处理响应。
程序编程及说明
程序段1
通过在每次扫描时调用 MBUS_CTRL 来初始化和监视 Modbus 主站。Modbus 主站设为 9600 波特,无奇偶校验。从站设备允许在 1000 毫秒(1 秒)内进行响应。
程序段2
第一次扫描时,复位用于两条 MBUS_MSG 指令的启用标记(M2.0 和 M2.1)。
程序段3
当 I0.0 从关闭变为接通时,设置第一条 MBUS_MSG 指令的启用标志 (M2.0)。
程序段4
当第一个启用标志 (M2.0) 接通时,调用 MBUS_MSG 指令。只需为启用该指令的第一次扫描设置 First 参数。
该指令会对从站 2 的 4 个保持寄存器执行写入 (RW = 1) 操作。从PLC中的 VB100-VB107(4 个字)获取写数据,然后写入到 Modbus 从站中的地址 40001 - 40004。
程序段5
第一条 MBUS_MSG 指令完成后(“完成”(Done) 位从 0 变为 1),会清除第一条 MBUS_MSG 指令的启用标志,然后设置第二条 MBUS_MSG 指令的启用标志。
如果错误 (MB1) 不为零,则置位 Q0.1 显示错误。
程序段6
第二个启用标志 (M2.1) 接通时,调用第二条 MBUS_MSG 指令。只需为启用该指令的第一次扫描设置 First 参数。
该指令会对从站 2 的 4 个保持寄存器执行读取 (RW = 0) 操作。数据从 Modbus 从站中的地址 40010 - 40013 读取,并复制到PLC中的 VB200 - VB207(4 个字)。
程序段7
第二条 MBUS_MSG 指令完成(“完成”(Done) 位从 0 变为 1)后,清除第二条 MBUS_MSG 指令的启用标志。
如果错误 (MB1) 不为零,则置位 Q0.2 显示错误。
以上,即为西门子PLC进行modbus通信的使用示例。