Labview 串口接收字节拼接

概述

在使用Laview串口接收下位机传送的数据时,接收的数据长度往往不止1一个字节,同时单个字节所能表示的数据范围有限(0~255或-127至127),因此通常会用两个或两个以上的字节表示一个数据。例如23位绝对值编码器返回的位置量就需要3个字节表示。下面便以此为例简述Labiew在接收到多字节数据时如何进行处理。

处理流程

在这里我们设定数据是先接收高位字节数据,后接收低字节数据,则流程如下:

  1. 接收最高位字节,右移16位;
  2. 接收中间字节,右移8位;
  3. 接收最低位字节
  4. 将1~3步骤中的结果进行或运算,即得到所需数据

C语言实现

c语言实现该功能非常简单,一个语句就能搞定:

data =(byte2<<16)|(byte1<<8)|byte0;

Labview实现

在Labview中,通常是以字符串的形式从下位机接收到数据,因此需要将字符串转成字节数组,然后再进行相应的移位操作,注意在移位前首先得将字节数组转成所需长度数据格式(此处为32位无符号整形),否则移位后仅保留低8位,数据丢失。具体实现如下:
在这里插入图片描述
经过以上步骤就能将字符串格式的数据转换为所需数据格式,建议保存为子Vi以便调用。

LabVIEW可以通过串口模块进行串口通信。以下是LabVIEW串口接收的基本步骤: 1. 打开串口:使用VISA串口工具打开串口,配置串口的波特率、数据位、校验位、停止位等参数。 2. 配置数据格式:根据串口发送数据的格式,配置LabVIEW串口模块的数据格式。 3. 创建接收程序:使用循环结构创建一个接收程序,循环中使用VISA串口工具的VISA Read函数读取串口数据,读取到的数据存储在一个缓冲区中。 4. 解析数据:根据串口发送数据的格式,对缓冲区中的数据进行解析,提取出需要的信息。 5. 显示数据:将解析出来的数据显示在LabVIEW界面上。 下面是一个简单的LabVIEW串口接收程序的示例: 1. 打开串口: ![image-20211119090347953](https://raw.githubusercontent.com/linlin8806/PicGo/main/imgs/20211119090403.png) 2. 配置数据格式: ![image-20211119090621448](https://raw.githubusercontent.com/linlin8806/PicGo/main/imgs/20211119090623.png) 3. 创建接收程序: ![image-20211119090806932](https://raw.githubusercontent.com/linlin8806/PicGo/main/imgs/20211119090809.png) 4. 解析数据: 使用符串处理函数对读取到的符串进行分割,提取需要的信息。 ![image-20211119091036869](https://raw.githubusercontent.com/linlin8806/PicGo/main/imgs/20211119091038.png) 5. 显示数据: 将解析出来的数据显示在LabVIEW界面上。 ![image-20211119091210367](https://raw.githubusercontent.com/linlin8806/PicGo/main/imgs/20211119091212.png)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值