青岛做网站多少钱,城市建设投资公司 网站,wordpress增加下载文件,自媒体135app下载事情是这样的#xff0c;有一台设备是modbus-tcp协议#xff0c;手工操作测量#xff0c;自动发送测量结果#xff0c;就这#xff0c;没别的了。 开始看起来挺简单#xff0c;连接上去就等着收数据嘛#xff0c;多简单#xff01;后来发现麻烦得很啊#xff0c;关键的… 事情是这样的有一台设备是modbus-tcp协议手工操作测量自动发送测量结果就这没别的了。 开始看起来挺简单连接上去就等着收数据嘛多简单后来发现麻烦得很啊关键的麻烦就是TCP连接断开是无法知晓的TCP的keep-alive机制非常慢要以小时计所以设备如果断电关掉DTU程序是我写的是无法及时发现的只会傻等而设备再次打开后程序不会发现于是客户反应没有数据。由于没有设备验证以上也只是我的猜测。 但是不管怎么样此类问题还是要有个通用的防范机制的。 首先可以把问题分为两类或者说两个思路
用交互解决。因为这种设备其实不会离开人工操作独立运行不按下按钮就不会测量所以DTU独立运行的模式根本就是错的只要通过界面操作手动连接或重连就不会发生问题了。这个思路没什么问题但是实际实施有问题因为整个系统是别人设计的展开说就不是技术问题了。纯技术解决。想办法自动发现连接断开比如自动重连以确认设备正常。由于手头没有设备不知道设备有没有特别限制比如某些设备只允许一个连接第二个连接直接拒绝只能先从通用角度考虑。 然后分别分析一下具体做法。 交互方式比较容易就是支持用户发一个指令来重新连接只要前端肯配合实现是很容易的。前端不配合的话我可以写个单独的客户端就一个大大的按钮“重新连接”好像不太好意思哦。 纯技术考虑的就是这么几个点
超时无数据自动断开重连。超时时间不好控制因为测量是人工触发间隔可能会很久很久但是又可能刚好是断开重连的时候出结果这样就会错过数据。原有连接不断开尝试一个新连接。这就与设备特性有关了设备会不会只支持一个连接这种设备确实有第二个连接会不会破坏第一个连接猜的会不会导致数据丢失差不多吧先写写看再测测看。 这里是结束