关于modbus rtu通讯调试过程的那些事5
查找CB1241 RS485组态Modbusrtu从站报警28672#
组态一个测试项目,cpu S7-1214C DC/DC/DC 版本V4.2,图示:

选取必要的cpu属性状态位,图示:系统和时钟存储器。

添加CB1241 RS485信号板到cpu插槽,图示:

等待时间改为20000ms。
创建通讯指令必要的数据块DB1,并填写必要的数据,图示:

创建从站数据存储区,并填写测试用的2个REAL数据,图示:

新创建的2个数据块均取消优化访问,用绝对地址访问,并分别编译DB1和DB2。
打开OB1,创建3个网络段,图示:
1) 给MODE = 4,图示:

2) Modbus rtu初始化指令,图示:

3) Modbus rtu slave从站指令,图示:

具体填写各通讯指令管脚有顺序关系。
编译无错误后,将项目完整下载到cpu中,图示:

此处注意选择与实际连接的通讯驱动,我电脑以太网口破了,用一个USB转以太网转换器下载的。
在线看初始化指令的error及slave指令的error方便有错误报警,图示:

2个指令同时报警28672#,没有查找过这个报警信息含义,从原理上分析应该是Modbus rtu通讯初始化指令没有使能REQ管脚引起的,给M10.0使能为1,软件重启报警依旧,图示:

Slave指令报警也同样存在。
断电重启,让M1.0标志位生校,看2个通讯指令的error,报警依旧,启动串口调试软件,发送主站读取从站DB2的数据,能够被读取到,图示:

再次给cpu断电重启,看初始化及slave指令的error报警值,图示:

启动百度AI咨询报警信息,图示:

看AI信息,主要是判断为与主站连接和通讯连接正确性错误,这些因为我前面测试能够接收到从站数据,基本判断没有连接错误的。如果说是固件版本问题,我插入的信号板CB1241 RS485的版本是V1.0的。同样的硬件连接,如果我仅仅替换调用MODBUS指令就没有报警,由此说明外部硬件连接也是没有问题了的,主要问题还是在软件编辑层面,之前,我曾经有过一次编译没有报警的组态应用先例,但是,没有如这次在现场调试多次出现的报警情况,也不会发现这个组态问题,返回设备组态,也没有组态报警信息提示,图示:

再次打开原来调用Modbus rtu没有报警的程序比对,还是没有查找到报警问题的所在,将此项目再次下载,初始化指令及slave指令没有报警,error = 16#7000#,图示:

串口调试软件能够顺利读取到从站数据。
翻来覆去的查找设备组态及可能程序层面的问题,始终没有查找到问题的所在,查找再次进入死胡同了。
与正常没有报警的程序反复比对,只剩下通讯指令的管脚,有报警的我自定义数据块DB2写的,没有报警的通讯指令我是用M区写的,莫非是,已经做到这步了,用M区试试,图示:

2个通讯指令的error错误同时消失,测试通讯指令应用正常,串口调试软件能够读取S7-1214C的从站数据,图示:

S7-1214C添加CB1241 RS485信号板,通讯指令报警的28672#报警查找结束。
仅用此文,对在实际应用过程中出现这个报警的同行告知,手册中并没有这个报警信息的详细说明。