用LabView搭建udp通信收发模型教程(NI实时仿真)
前言
Internet 协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,User Datagram Protocol)。UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。RFC 768 描述了 UDP。 Internet 的传输层有两个主要协议,互为补充。无连接的是 UDP,它除了给应用程序发送数据包功能并允许它们在所需的层次上架构自己的协议之外,几乎没有做什么特别的事情。面向连接的是 TCP,该协议几乎做了所有的事情。

一、LabView通信模型搭建
1.1LabView需要使用的模块
①打开UDP (函数) 所属选板:UDP VI和函数 打开端口或服务名称的UDP套接字。
UDP关闭函数可用于关闭套接字。通过打开UDP多点传送VI而非该函数,打开可对UDP多点套接字读取、写入、读取并写入数据的连接。通过写入UDP数据函数向NI服务定位器问询与服务名称注册的端口号。
 写入UDP数据 (函数) 所属选板:UDP VI和函数 使数据写入远程UDP套接字
 关闭UDP (函数) 所属选板:UDP VI和函数 关闭UDP套接字。  格式化写入字符串 (函数) 所属选板:字符串函数 使字符串路径、枚举型、时间标识、布尔或数值数据格式化为文本。 使用“格式化写入字符串”函数转换数值为字符串。通过格式化写入文件函数,使数据格式化为文本,并将文本写入文件。  扫描字符串 (函数) 所属选板:字符串函数 扫描输入字符串,然后依据格式字符串进行转换。
明确知道输入的格式时,可使用该函数。输入可以是字符串路径、枚举型、时间标识或数值。另外,可使用扫描文件函数,在文件中扫描文本。连线板可显示该多态函数的默认数据类型。

索引数组 (函数) 所属选板:数组函数 返回n维数组在索引位置的元素或子数组。
连线数组到该函数时,函数可自动调整大小,在n维数组中显示各个维度的索引输入。也可通过调整节点大小,添加元素或子数组。连线板可显示该多态函数的默认数据类型。
 创建数组 (函数) 所属选板:数组函数 连接多个数组或向N维数组添加元素。 也可使用替换数组子集函数,修改现有数组。 连线板可显示该多态函数的默认数据类型。

字符串至IP地址转换 (函数) 所属选板:TCP VI和函数 使字符串转换为IP地址或IP地址数组。 
1.2LabView模型的程序框图

1.2.1 udp发送模块
 需要注意的点: 激活数组:还有一个数组的设置,先在前面板拉一个数组,再拉一个数值显示控件/数值输入控件。再把控件放入数组里面。起初控件里面是暗色的,这是说明控件是未激活状态。然后把未激活里的填写数字,这样控件是变亮了。 输出数据是一个数组模块(控制部件): 需要注意的是在NI模型中,如果LabView中数组模块需要显示在NI面板上,需要在前面板选中数组,然后在上面选中编辑,选择**“所选值设置位默认值”(英文版:Make Selected Values Default)。在前面板右上角选择一个方块,然后选中输入模块。输出模块同理。  上面是发送模块,打开udp通信模块,左边引入的是本机发送端口的设定,8002就是本例设定的本机发送端口。然后写入UDP数据中左绿线是连接打开udp通信模块**,粉线连接的是需要发送的数据(字符串类型)。左蓝线是接收主机的端口,右蓝线是接收主机的IP地址,这里需要一个 “str ip”模块,隶属于TCP 模块。最后连接“关闭udp模块”。
1.2.2 udp接收模块
 接收模块是根据接收模块逆向思维建立的一个模型。打开udp模块的左边蓝色线连接的是本机接收的一个端口号设定。
二、Veristand模型导入和交互(下回分解)
|