今天看论坛,看了好多关于通讯的帖子,让我想起来前几年做过的一个项目经历给大家分享一下,顺便给刚入行的同行提个醒;
项目是这样的:
控制几台私服和几台变频调速启停......
刚拿到手的时候,想着怎么省事怎么来(因为接线也要我们自己接线),所以就采用了通讯的方式进行控制,客户对数据的实时性没有啥要求所以采用(modbus_rtu)方式通讯,想着变频私服两根线直接干到底。理论正常情况下是没有任何问题的(经常用485通讯也没出现啥问题),很快就完成了一批这样的设备。
问题来了,客户投产运行了不到三个月,出现电机不受控制(机械传动失控这算是非常严重的问题,严重到可能会出现人员伤亡),无法停止也无法启动,急停也不管用。最后客户断电重启电机的控制又恢复如初。事后客户联系我们,我们也已最快的速度赶到现场,可是重启后问题找不到了,打开电脑在线查看诊断缓冲器里面的记录,也没有发现可疑的记录;跟客户沟通后我又返回了公司(沟通如下:如在出现类似问题,先不要断电重启,找技术员和我们沟通拍照、录像,找到问题的根源);
回来后我左思右想,能导致这个问题出现有几个方面:
1、PLC死机或损坏(显然这个不成立);
2、程序问题(干了这么多了就没出现过,这一批几十台就这一台程序有问题?不成立);
3、通讯模块损坏(不成立);
4、通讯线断开(不成立);
5、私服变频损坏(不成立);
挨个这样分析后,不知道从哪里下手了。但不管怎样我始终坚信问题就出现在以上几点上;
又过了不到一个月,又一台设备出现这样的问题,结果导致客户现场的其它设备损伤,紧跟着罚单来了(哎!等着挨批吧)。
好在这一次客户现场的技术员及时联系到我,拍照、视频记录下来。打开照片PLC还在运行状态,紧接着打开视频,问题出现了485模块不工作了(发送接受灯一个都不闪),难道轮训掉了(不应该啊有看门狗呢?怎么就掉了呢?)满脑子疑惑。在现场技术员的配合下远程在线监控,在没有任何分析情况下急忙手动触发轮训,没反应(发送灯不亮!!!也不报错),到此为止问题总算是找到了(有一点我当时比较后悔,在模块死机时轮训在我手动触发前后有没有跑起来),485模块死机;
打开帮助挨个看分析怎么能避免发生这个问题,很可惜问题发生的原因没有找到(客户等着开机生产,耽误时间又会有新的罚单),但终于有解决的办法了(提醒刚入行的兄弟们,要多看帮助);在模块由于未知原因导致死机,《可重新初始化端口,激活死机端口》,激活后触发轮训问题就是这样解决的,(硬件增加硬急停防止出现类似故障电机无法停止)到现在为止现场的几十台设备在未发生过类似的故障;
事后总结:
1、为什么当时没有考虑“硬急停”这是设计最基本的常识;
2、为什么不考虑在通讯中断的情况下,执行机构的工作情况;
3、为什么只单存的考虑设备理想状态下的运行情况;
4、模块死机主机诊断缓冲器为什么没有记录,检测不到?还是认为不重要?