在工业自动化领域,各类通信协议广泛应用,其中MODBUS通信因具备公开、免费、通用等优势而使用最为广泛。然而,在现场调试过程中,常会遇到通信异常或无法建立连接的问题。此时,借助调试工具可快速定位故障原因。此外,初学者也可利用调试工具在无额外硬件投入的情况下学习MODBUS通信原理。
本文以西门子S7-200 SMART PLC作为MODBUS主站,结合调试软件模拟从站进行通信测试,详细演示配置与数据交互过程。
通信任务如图1所示。
图1:数据交互示意图
硬件准备
所需设备包括:RS485转USB转换器1个、RS485公头1个、电缆线2根、PC电脑1台、S7-200 SMART PLC 1台及通信网线1根。CPU本体串口引脚定义如图2和图3所示。
图2:USB转串口硬件
图3:串口引脚说明
通信指令说明
S7-200 SMART PLC内置MODBUS通信库指令,可根据端口调用相应功能块。本例使用两条主站指令:
图4为主站初始化指令,用于设置通信参数;图5为数据读写指令,实现与从站的数据交换。
图4:主站初始化指令
图5:主站数据读写指令
实施步骤
1. 编程配置主站
在STEP 7-Micro/WIN SMART软件中调用MODBUS主站库指令完成编程,程序结构如图6和图7所示。
图6:主站数据读写程序
图7:主站数据读写程序
2. 分配库存储区
通信程序需占用286个V存储区用于内部运算,应在CPU中预先分配,如图8所示。
图8:分配库存储器
3. 硬件连接与端口识别
将RS485转USB模块的USB端接入电脑,RS485公头连接PLC串口。连接完成后,在设备管理器中查看对应COM端口号,如图9所示。
图9:端口号查看
4. 调试软件设置
打开Modsim32调试软件,在“连接设置”中选择与图9一致的COM端口(示例为COM6),如图10所示。随后弹出协议参数设置窗口,如图11所示,需确保波特率、数据位、停止位、校验方式等参数与PLC主站初始化设置完全一致。
图10:连接设置
图11:设置通信参数
5. 数据交互测试
在Modsim32软件中新建设备,Device ID设为2,模拟地址为2的从站。
第一组:寄存器读取
主站读取从站40001(对应VW300-VW308)起始的5个字,存入主站VW200开始的地址。在调试软件中写入数据后,PLC监控显示VW200-VW208值同步更新,如图12所示。
图12:数据交换
第二组:线圈写入
主站将I0.0起始的8个位状态写入从站Q0.0。当强制I0.2和I0.4为ON时,从站Q0.0中第3和第5位变为1,如图13所示。
图13:数据交换
第三组:字节读取
主站读取从站QB6的值并存入VB210。当在调试软件中置位Q6.0和Q6.1时,PLC侧VB210显示值为3,如图14所示。
图14:数据交换
第四组:模拟量输入读取
主站读取从站AIW18的值并存入VW212。在调试软件中将AIW18设为457,PLC侧VW212同步显示457,如图15所示。
图15:数据交换

