要通过S7-200 SMART PLC的MODBUS RTU通讯直接控制输出点(Q点),需在从站配置中将输出点映射到MODBUS保持寄存器或线圈地址,主站通过写指令(功能码05/06/15/16)直接修改寄存器值以驱动输出。以下是具体实现步骤和关键注意事项:
- 硬件与通讯配置
通讯接口:确保S7-200 SMART的RS485端口(或扩展CM01信号板)与主站设备(如触摸屏、变频器等)正确连接,波特率、校验位等参数需一致。
MODBUS地址分配:
输出点映射:在PLC程序中,将需要控制的输出点(如Q0.0、Q0.1等)与MODBUS的保持寄存器(40001起始)或线圈地址(00001起始)关联。例如:
寄存器地址 40001 对应 Q0.0,40002 对应 Q0.1,依此类推。
或使用线圈地址 00001 对应 Q0.0(需根据从站配置支持)。
- PLC从站程序配置
启用MODBUS从站库:
在STEP 7-Micro/WIN SMART中,调用 MBUS_INIT 初始化指令,设置从站地址、波特率、校验方式等参数。
调用 MBUS_SLAVE 指令启用从站功能,并分配库存储区(如VB0起始的256字节)。
输出点控制逻辑:
在PLC程序中,通过MOV指令将MODBUS寄存器的值直接写入输出点。例如:
ladder
LD M0.0 // 触发条件(如MBUS_SLAVE完成标志)
MOV MB100, QW0 // 将保持寄存器40101(MB100)的值写入输出字QW0(Q0.0-Q0.7)
或针对单个位:
ladder
LD M0.0
A MB100.0 // 检查寄存器40101的第0位
= Q0.0 // 控制输出点Q0.0 - 主站MODBUS指令
写单个线圈(功能码05):
主站发送指令,将目标地址(如00001)的线圈值置1或0,直接控制Q0.0的通断。
写单个寄存器(功能码06):
主站写入保持寄存器(如40001)的值,PLC程序将该值映射到输出点(如MOV指令)。
写多个寄存器(功能码16):
批量控制多个输出点,提高效率。 - 关键注意事项
地址偏移:
MODBUS地址从1开始,而S7-200 SMART的V存储区从0开始。例如,寄存器40001对应VW0。
数据类型匹配:
确保主站写入的数据类型(如位、字节、字)与PLC程序中的读取方式一致。
实时性:
MODBUS通讯周期可能影响输出响应速度,必要时优化扫描周期或使用中断。
错误处理:
检查MBUS_SLAVE的错误代码(如超时、CRC校验失败),确保通讯稳定。
- 示例程序逻辑
ladder
// 主站写入保持寄存器40001(VW0)的值为16#0001
// PLC程序:
LD M0.0 // 通讯完成标志
MOV VW0, QW0 // 将VW0的值写入输出字QW0
效果:当主站将40001的值设为1时,Q0.0输出;设为2时,Q0.1输出,依此类推。 - 调试与验证
监控工具:
使用STEP 7-Micro/WIN SMART的状态图表监控V存储区和输出点状态。
使用MODBUS调试助手(如ModScan32)模拟主站,验证读写操作。
故障排查:
检查通讯参数(波特率、校验位)是否一致。
确认从站地址无冲突。确保库存储区未被其他程序占用。
总结
硬件连接:确保 PLC 和主站设备之间的通信端口连接正确。
PLC 配置:在 STEP 7 - Micro/WIN SMART 软件中配置 PLC 的 Modbus RTU 从站参数。
PLC 编程:编写 Modbus RTU 通信程序,对输出点进行控制。
主站控制:主站设备通过 Modbus RTU 协议向 PLC 发送控制命令。
按照上述步骤操作,你就能通过 Modbus RTU 协议直接控制 S7 - 200 SMART PLC 的输出点输出。