Labview UDP协议高速通信问题

2019-07-17 10:09发布

本帖最后由 niezidong 于 2015-9-9 13:48 编辑

labview使用千兆以太网进行UDP通信时,当下位机以40bps的速度上传数据,上位机该如何实现才能保证数据不丢失。另:labview使用UDP通信时是否有类似于串口的缓冲区设置,通过每次读取的数据多些来弥补读取速度?还是UDP每次的数据最多就是1454的长度?


已解决以上问题。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
lzb8174
1楼-- · 2019-07-18 09:50
首先,顺序结构里面不要用两个while循环。因为这两个while循环的循环速度你完全不知道谁在影响谁,也是不可控制的~~其次,while循环一般要加一定的延时,否则它会以你cpu的最大循环速度运行。运行期间出现的问题你完全不知道,丢包也不可避免了。你这样的编程问题很大,建议不要用顺序结构,用状态机比较好~~你可以尝试改变自己的程序~~祝好~~
niezidong
2楼-- · 2019-07-18 12:02
lzb8174 发表于 2015-3-18 16:33
首先,顺序结构里面不要用两个while循环。因为这两个while循环的循环速度你完全不知道谁在影响谁,也是不可 ...

谢谢指导。
第一,根据数据流的概念,只有在第一个循环退出后,第二个循环才开始运行,应该不存在影响问题;
第二循环没有加延时是因为就是想以最快的速度运行。
第三,最重要的一点是,这个问题的关键之处不在于这个几秒钟写的测试程序结构和其他,而在与UDP通讯机制和labview中自带的UDP协议函数的使用方法。
      此问题的解决方法可以借助第三方工具WinPcap,对其进行二次开发打包成dll,在使用LabVIEW调用。参考《基于LabVIEW的以太网数据监听与通信》。
已完成的dll及使用方法见附件。

packet_sniffer_project.zip 下载积分: 积分 -1 分

162.24 KB, 下载次数: 444, 下载积分: 积分 -1 分

dgzyplc
3楼-- · 2019-07-18 16:32
niezidong 发表于 2015-3-18 11:05
附件为当前使用的测试程序。是否还有其他设置?

UDP是通信协议,硬件上只要有网口就可以了
dgzyplc
4楼-- · 2019-07-18 17:59
 精彩回答 2  元偷偷看……
lvyhecheng
5楼-- · 2019-07-18 20:13
用自带的UDP读取,写队列也是偶尔丢包,不论入不入队列,总会有几次丢包,我试了好多次了。
niezidong
6楼-- · 2019-07-18 22:21
lvyhecheng 发表于 2015-7-19 23:16
用自带的UDP读取,写队列也是偶尔丢包,不论入不入队列,总会有几次丢包,我试了好多次了。

如果通信速率过快,UDP通信是可能丢包的

一周热门 更多>