以下讲的这件事你可能不会相信(与西门子产品无关,希望斑竹勿删,嘎嘎),但是是我的亲身经历:
某电厂一期工程由两台机组组成,我负责这两台机组的两套辅机系统中的某种辅机的程控系统调试。由于两台机组辅机设备完全一致,所以我把1号机组的辅机PLC程序做完,调试成功后,1号机组就整机运行了,运行后一切正常;后来调2号机组的时候,我就把1号机组的程序未经任何修改传入了2号的PLC中,一件灵异的事情出现了:PLC程序中采集
modbus从站部分的程序只发送1、2、5从站的采集指令,不向其他从站发指令(串口监视软件和PLC编程软件都可以看到没有向其他从站发指令)。在用这个程序在线1号机组PLC(可以直接在线,说明程序和硬件配置与CPU中的完全一致),发现1号机组PLC采集
modbus从站正常。这是为什么呢?
于是我做了以下几个实验:
1、首先用MODSCAN软件单通每一个
modbus从站,测试结果是
modbus从站都是正常的。
2、把2号机组PLC采集不上来的
modbus从站换到1号机组PLC,1号PLC可以采集它,再次证明
modbus从站没有问题。
3、查通讯线,正常。
4、为了解除对PLC程序的质疑,我从1号机组的PLC中上传了程序,下载进2号机组的PLC中,但还是只采集1、2、5号从站。(1号机组的这种辅机系统运行正常,而且已经运行N长时间)
5、怀疑PLC CPU卡机,所以断掉PLC电源,重新启动,缺陷现象还是一样存在着。
6、最后没招了,修改通讯程序的状态寄存器,修改后问题解决。
从上述实验上看,是由于程序缺陷造成了设备缺陷。但是采集
modbus从站这块的程序所用的寄存器在别处都没有用过(软件中可查),并且同样的程序1号机已经运行了N长时间了(值得一提的是,程序中没有定时器和计数器的累积),要是程序问题的话,1号机组早就暴露出来了;而2号机组PLC却是一上来就出现了这个问题。
灵异!
聪明的你,知道是为什么吗?