恭喜,你发布的帖子
发布于 2021-02-02 14:15:40
21楼
对方不想保持200个Socket通信线程,不想借助第三方平台,这么做可以。
但如果只是简单UDP,肯定丢数据。TCP都丢包、粘包、拆包。
所以需要对方提供自定义的通信协议嵌入UDP的数据段。也要三次握手。超时、重复、校验都要有。就是模仿TCP。TCP是面向流的,需要分片。UDP不用分片,省了很多事,否则太麻烦没法玩了。
数据有一个变化,都可以整块发送,就是字节数组。DB块变量排列都要约定好,读写区域分开。
每个PLC的变量信息写进Excel,上位机直接载入内存做为参照表。接受到的字节数组,按照这个表,拆解成很多单个不同类型的变量。
写的时候也是整块写
目前是没有校验 没有第三次握手,相当于 数据发过去了 我不管他收没收到;对于定时发的数据他一次没收到没关系,下次我还会发,对实时性要求不高;对于查询上传的数据,一次查询没收到,再查询一次就行了,这个要求不高。SCADA发给我的也是,我没收到就不动作,没达到他想要的功能,他可以再发一次。
目前做的就是定时发送 没做单个数据变则发。
请填写推广理由:
分享
只看
楼主