关于modbus rtu通讯调试过程的那些事6
串口调试软件与S7-200SMART从站数据测试
测试硬件:
用串口调试软件sscom5,1版本,与西门子S7-200 SMART SR30 + CM01组成的测试单元,CM01与电脑连接的RS485转USB绿联成品转换电缆。
1) 新建测试项目,在“系统块”中新建SR30,在SB插槽中插入CM01(prot1)通讯模块,其中,RS485转USB绿联转换电缆的A连接CM01扩展板的Rx/B,B连接CM01扩展板的Rx/A,图示1:PLC硬件cpu组态及通讯板选择。

2) 根据西门子S7-200smart 官方手册资料,创建一个s7-200 smart从站,图示2:

根据官方手册帮助,填写各管脚实参。
3) 编译没有错误、保存后,下载到plc并run运行,图示3:

下载后,在线发现从站填写指令初始化和运行指令均出现报警,查找手册,5#、10#报警,图示4:

保持寄存器与modbus从站符号重叠。

4) 通过报警信息,很快找到此处的错误,不经意间用户自己埋下的,图示5:

5) 修改后,重新编译保存后下载,并在线监控,图示6:

报警消除。
6) 打开sscom 5.1串口调试软件,根据功能码3,在通讯数据发送区编辑05 03 00 00 00 01,读取V存储区,VW0的数据一个字,先前先在PLC侧给VW0写入16#1234的数据,用于测试通讯交互,图示7:

Sscom V5.1串口调试软件能够读取到s7-200 smart从站VW0的数据16#1234。
功能码3,读取从站寄存器数据测试正常。
7) 读取单个/多个线圈(离散量输出点)状态。 功能 1 返回任意个数输出点(Q)的 ON/OFF 状态,图示8:

使能Q0.0 = 1,用串口调试软件读取Q0.0的状态值为01,释放Q0.0 = 0,再次读取就是:
05 01 01 00 00 50 B8
05:5#从站
01:功能码1
01:读取Q区数据
00:
00:第0位的状态值
50:CRC校验
B8:CRC校验

再次使能Q0.0~Q0.3这4个位,看串口调试软件显示:05 01 01 00 0F 10 BC
0F:就是从站Q0.0 ~ Q0.3 = 1的状态值。

8) 功能码2:读取读取单个/多个触点(离散量输入点)状态。 功能 2 返回任意个数输入点(I)的 ON/OFF 状态。强制I0.0 = 1,看串口调试软件运行结果,图示9:

取消I0.0强制,串口图示软件运行结果:05 02 01 00 A0 B8,再次使能I0.0 ~ I0.3,看运行结果:

9) 功能码06:写从站V区数据。串口调试软件写05 06 00 00 00 01的16进制数据到从站,图示10: 
从站PLC侧的到V1.0 = 1的结果。如果需要将V0.0 = 1,串口调试软件:05 06 00 00 01 00
串口图示软件与s7-200 smart通讯是双向的,可以读也可以写,方便在modbus rtu及自由口通讯初级阶段时,对通讯规范及指令的认识非常有效,也可以减少没有必要的用户错误引起的困惑。