LabVIEW在TCPIP和UDP中的应用

这篇具有很好参考价值的文章主要介绍了LabVIEW在TCPIP和UDP中的应用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

LabVIEW在TCPIP和UDP中的应用

网际协议(IP)、用户数据报协议(UDP)和传输控制协议(TCP)是网络通信的基本工具。TCP/IP这一名称来自于两个最著名的互联网协议集——传输控制协议和网际协议。

通过TCP/IP可实现单个网络内部或互相连通的网络间的通信。各个网络在地理距离上可以相距遥远。TCP/IP将数据在网络间或因特网上的计算机间传递。多数计算机普遍具有TCP/IP,因而信息能在各种系统上传输。

LabVIEW和TCP/IP

TCP/IP可用于所有平台上的LabVIEW。LabVIEW的TCP和UDP VI及函数可用于创建客户端VI和服务器VI。

IP

IP用于执行计算机间数据传输的低层服务。IP将数据打包为所谓的数据报。每个数据报包含了数据及一个指明源地址和目的地址的报头。IP决定了数据报在网络或因特网上传输的正确路径并将数据发送到指定的目的地址。

IP无法保证数据传输的成功。事实上,如果一个数据报在传输中被复制,IP便可能不止一次地传输该数据报。程序的传输多使用TCP或UDP协议而极少使用IP。

UDP

UDP用于执行计算机各进程间简单、低层的通信。将数据报发送到目的计算机或端口即完成了进程间的通信。端口是发送数据的出入口。IP用于处理计算机到计算机的数据传输。当数据报到达目的计算机后,UDP将数据报移动到其目的端口。如目的端口未打开,UDP将放弃该数据报。UDP与IP有相同的传输问题。

对传输可靠性要求不高的程序可使用UDP。例如,程序可能十分频繁地传输有信息价值数据,以至于遗失少量数据段也不成问题。

在LabVIEW中使用UDP

UDP不是基于连接的协议,如TCP,因此无须在发送或接收数据前先建立与目的地址的连接。但是,需要在发送每个数据报前指定数据的目的地址。操作系统不报告传输错误。

使用打开UDP函数,在端口上打开一个UDP套接字。可同时打开的UDP端口数量取决于操作系统。“打开UDP”函数用于返回唯一指定UDP套接字的网络连接句柄。该连接句柄可在以后的VI调用中引用这个套接字。

写入UDP函数用于将数据发送到一个目的地址,读取UDP函数用于读取该数据。每个写操作需要一个目的地址和端口。每个读操作包含一个源地址和端口。UDP会保留为发送命令而指定的数据报的字节数。

UDP数据报大小根据操作环境各有不同,但最大为65535字节。NI推荐使用UDP发送小于等于1 KB的数据报,从而尽量避免在传输中拆分和重组底层IP数据包,否则将大大增加数据包丢失的可能性。

当端口上所有的通信完毕,可使用关闭UDP函数以释放系统资源。

LabVIEW在TCPIP和UDP中的应用

UDP多点传送(Multicast)

UDP函数通过广播与单个客户端(单点传送)或子网上的所有计算机进行通信。如需与多个特定的计算机通信,则必须配置UDP函数,使其在一组客户端之间循环。LabVIEW向每个客户端发送一份数据,同时需维护一组对接受数据感兴趣的客户端,这样便造成了双倍的网络报文量。

多点传送用于网上单个发送方与多个客户端之间的通信,无须发送方维护一组客户端或向每个客户端发送多份数据。如要从一个多点传送的发送方接收数据广播,所有的客户端须加入一个多点传送组。但发送方无须为发送数据而加入这个组。发送方指定一个已定义多点传送组的多电传送IP地址。多点传送IP地址的范围是224.0.0.0到239.255.255.255。如客户机要加入一个多点传送组,客户机即订阅了该组的多点传送IP地址。一旦接受多点传送组的传送地址,客户端便会收到发送至该多电传送IP地址的数据。

如需在LabVIEW中进行多点传送,可用打开UDP多点传送VI打开能够进行读、写和UDP数据读、写的连接。需指定写数据的停留时间(TTL)、读数据的多点传送地址和读写数据的多点传送端口号。TTL默认值为1,即LabVIEW仅将数据发送至本地子网。路由器收到一个多点传送数据报后,将数据报的TTL值递减。如TTL大于1,路由器将数据报转发给其他路由器。以下表格为指定不同TTL参数后,多点传送数据报所发生的相应动作。

0     数据报停留在主机上。

1     数据报已发送到本地子网上接受同一IP地址的所有客户端。集线器/中继器和桥接器/交换机转发数据报。如TTL为1则路由器不转发数据报。

>1   数据报已发送且由路由器经TTL-1层转发。

请参考以下运用UDP多点传送的实例VI。

TCP

TCP能进行可靠的网络传输,可按顺序传输数据而毫无错误、遗失或重复。TCP会不断地传输数据报直至收到接收响应为止。

在LabVIEW中使用TCP

TCP是基于连接的协议,这意味着各传输点必须在数据传输前创建连接。数据传输在客户端和服务器之间进行。TCP允许多个同步连接。

注: 可在一个端口上创建最多1024个TCP连接。

可通过等待入局的连接或寻找具有指定地址的连接来创建连接。在创建TCP连接时,须指明其地址及该地址的端口。一个地址上不同的端口表示该地址上的不同服务。

通过打开TCP连接函数可主动创建一个具有特定地址和端口的连接。如连接成功,该函数将返回唯一识别该连接的网络连接句柄。这个连接句柄可在此后的VI调用中引用该连接。

以下方法用于等待一个入局的连接:

通过TCP侦听VI创建一个侦听器并等待一个位于指定端口已被接受的TCP连接。如连接成功,VI将返回一个连接句柄、连接地址以及远程TCP客户端的端口。

通过创建TCP侦听器函数创建一个侦听器,用“等待TCP侦听器”函数侦听和接受新连接。等待TCP侦听器函数返回连接至函数的侦听器ID。在结束等待新连接后,用关闭TCP连接函数关闭侦听器。侦听器无法进行读写操作。

上述做法的优点在于以“关闭TCP连接”函数取消侦听操作。在侦听连接时无须使用超时,而在另一个条件为真时侦听被取消。可随时关闭TCP侦听VI。

连接创建完毕后,可通过读取TCP数据函数及写入TCP数据函数对远程程序进行数据读写。

通过“关闭TCP连接”函数关闭与远程程序的连接。当连接关闭而仍有未读数据时,这些数据将遗失。可通过更高层次的协议来指明何时关闭连接。

TCP和UDP的选择

TCP是保证可靠数据传输的最佳协议。UDP协议无需创建连接且性能更优,但无法保证可靠的数据传输。

超时和错误

设计网络应用程序时,应仔细考虑故障发生时的情形。例如,服务器崩溃时客户端应如何处理。

解决方法之一是确保每个客户端VI具有超时设定。如一段时间后出现操作无效,客户端应继续执行。继续执行时,客户端可尝试重新建立连接或报告错误。如有必要,客户端VI可关闭程序。

需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目问题,可联系我们。

 文章来源地址https://www.toymoban.com/news/detail-418354.html

到了这里,关于LabVIEW在TCPIP和UDP中的应用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【labview】UDP通讯实例API

    UDP全称为User Datagram Protocol,即用户数据包协议 是OSI(Open System Interconnection,开放式系统互联)参考模型中无连接的传输层协议 适用于端口分别在同一设备的多个应用程序。(后面的实例是PC端采用UDP与某电源控制器的通信) 传输时只发送不应答(所以需要自己做何时接收数

    2024年02月09日
    浏览(29)
  • Labview实现vi间数据传递的方法汇总 ---子VI、队列、全局变量及UDP/TCP协议传输

    本文汇总一下不同VI之间数据传递的方式,使大家明确数据传递的几种类型并灵活使用。 本文程序均上传至云端,读者可自行下载学习。 基于目前大家所学到的基础知识,在Labview中简单来说数据类型基本包括 数值、字符串、数组、簇、布尔量、引用、路径、枚举量、波形图

    2024年04月10日
    浏览(55)
  • 【LabVIEW FPGA入门】FPGA中的数学运算

            数值控件选板上的大部分数学函数都支持整数或定点数据类型,但是需要请注意,避免使用乘法、除法、倒数、平方根等函数,此类函数比较占用FPGA资源,且如果使用的是定点数据或单精度浮点数据仅适用于FPGA终端。 支持的数据类型: 8位有符号和无符号整数数值

    2024年01月18日
    浏览(44)
  • LabVIEW应用开发——VI模块化

            我们在写C语言的时候,一些模块化的功能或者多次调用的功能,我们一般会用一个函数封装起来,方便使用并且让代码看起来更加的简洁。这种函数一般都会包含这几个概念, 输入参数 、 输出参数 和 返回值 。而LabVIEW的VI就可以当作是一个函数, 输入参数 就是

    2024年02月07日
    浏览(51)
  • YOLOv6在LabVIEW中的推理部署(含源码)

    YOLOv6 是美团视觉智能部研发的一款目标检测框架,致力于工业应用。如何使用python进行该模型的部署,官网已经介绍的很清楚了,但是对于如何在LabVIEW中实现该模型的部署,笔者目前还没有看到相关介绍文章,所以笔者在实现YOLOv6 ONNX 在LabVIEW中的部署推理后,决定和各位读

    2024年02月16日
    浏览(35)
  • 【AUTOSAR】【以太网】TCPIP

    目录 一、概述 二、约束和假设 三、依赖模块 3.1 EthIf 3.2 EthSM 3.3 SoAd 3.4 Ke

    2024年02月05日
    浏览(46)
  • LabVIEW使用图像处理检测显微图像中的白血病

    LabVIEW使用图像处理检测显微图像中的白血病 人体最重要的部分是血液,因为它使人活着。它执行许多重要功能,例如转移氧气,二氧化碳,矿物质等。血液量不足会极大地影响新陈代谢,如果不及早治疗,这可能是非常危险的。常见的血液疾病之一是白血病。白血病是儿童

    2024年02月13日
    浏览(53)
  • LabVIEW FPGA利用响应式数字电子板快速开发空间应用程序

    LabVIEW FPGA利用响应式数字电子板快速开发空间应用程序 与传统的基于文本的语言相比,LabVIEW的编程和设计已被证明可以缩短开发时间。各种研究表明,生产率的提高在3到10倍之间。LabVIEW通过图形语言、集成开发环境和多个编译器的组合来实现这一点。 图形编程和设计对于

    2024年02月13日
    浏览(46)
  • 多线程在编程中的重要性有什么?并以LabVIEW为例进行说明

    多线程在编程中的重要性体现在以下几个方面: 并行处理: 多线程允许程序同时执行多个任务,这在现代多核心处理器上尤其重要。通过并行处理,可以显著提高程序的执行效率和响应速度。 资源利用最大化: 通过多线程,可以更有效地使用计算机的CPU资源。在一个线程等

    2024年01月20日
    浏览(42)
  • 百度飞桨PP-YOLOE ONNX 在LabVIEW中的部署推理(含源码)

    目录 前言 一、什么是PP-YOLO 二、环境搭建 1、部署本项目时所用环境 2、LabVIEW工具包下载及安装 三、模型的获取与转化 1、安装paddle 2、安装依赖的库 3、安装pycocotools 4、导出onnx模型 (1)导出推理模型 (2) 安装paddle2onnx (3) 转换成onnx格式 四、在LabVIEW实现PP-YOLOE的部署推

    2024年02月16日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包