恭喜,你发布的帖子
发布于 2020-06-07 12:58:19
61楼
真是精彩啊,粗略看了看,不否认Zane版的Modbus轮询的优秀,但是也更应该吐槽西门子的问题。。。
通讯故障出现偶尔卡死并不是一个两个人遇到了,我相信Zane版最开始也遇到过此类问题。
我们轮询写一些各类的“补丁”程序很大一部分就是希望如何去修补通讯卡死的问题,避免通讯卡死的产生。
但反过来是否能够想过为何西门子不去解决卡死的根本原因?就算出现了卡死,为何就没有什么办法让通讯重置,让通讯重新恢复正常?
其实基础的库或者基础的程序就应该必须考虑各种使用情况的稳定性,尽量避免错误的产生。如果基础的程序都有各种坑必须要编程人员想方设法去避免落坑那么此基础程序是否该去反思修正?
从Modbus轮询到ModbusTCP的轮询应用其实都存在着一定应用隐患问题,当然西门子可以说Modbus轮询卡死是你程序不好,你EMC没做好,你的现场设备的问题。。西门子也可以说ModbusTCP本来就不是给你轮询使用的等等冠冕堂皇的结论,但西门子是否有没有反思去修正相关的程序块从而保证程序的稳定性,抗干扰性以及应用的普遍性呢?
最近在做1500冗余的项目,1500冗余互相间的通讯问题也一直让人困扰,有些问题的产生就不明白西门子的开发人员是怎么想的。。我会抽时间写一个简单的1500冗余通讯可能遇到的坑,好让大家去跳过这些坑。
从纯技术角度,在之前的帖子里我分析了通信死机的主要原因,请参考。
我的的策略是没有采取任何的措施,效果也是最好的,不知道你是否测试过我的程序?
请填写推广理由:
分享
只看
楼主