LabVIEW串口接收实例

 

此处通信协议为:帧头+数据1+数据2+数据3+数据4+帧尾;

VISA模块搭建:

注:

1.通过节点判断接收数据大于0

 2.通过while循环来存储剩余未识别的接收数据

3.在通过字符串合并将字符串链接起来

4.最好把Resd.vi放在if判断里面

帧头帧尾识别:

1.通过数组搜索来判断是否找到帧头

2.如果找到就加9查询帧尾,都正确则终止循环

3.输出帧头加一

数据分析

1.将数据从数组里提捡出来,分拣为八位的数据

2.将八位数转为十六位数,通过移位。

3,将高八位加上低八位,合成十六位数据

 

附件内容分享的是基于LabVIEW上位机与串口通信,通过LabVIEW上位机显示波形,在分享其实现的源码同时,分享一段LabVIEW上位机与串口通信工作原理。 基于LabVIEW串口波形上位机界面展示: 定义通信格式及功能 因为数据不算复杂,所以定义简单下位机格式:(0xAA) 类型字节 数据低8位 数据高8位 保留字节1 保留字节2 校验字节 如果要传送的数据比较多/复杂,则可以参考ModuleBus协议! 主要功能包括: 对中的类型字节进行解析,并多通道显示在示波器上 偏差校正(这个一般人可能都没有做,造成数据丢失,而我这只要串口传输的数据没错,就能无错漏的解析每一) 实时显示读取的每个字节/双字节/4字节 信号保存,保存文件名自动按时间命名,适合查阅 信号回放 对信号进行解析,用指示灯显示 程序关键点展示: 上面虽然简单,但却是功能的最主要部分,包括查找和错处理的程序。错发送的情况是:比如从串口中独到的并不是从开始而是中间开始,如 0x12(数据) 0x00 0x00 0x00 0xAA() 0x00 其前面一可能是这样:... 0xAA() 0x01(类型) 0x01(数据) 这样,按查找的方法,数据0x12就会丢失,实际数据按理应该是0x02*256+0x01,错处理就是将上一尾部不足一的部分加到下一中,这样下一就变成了:0xAA() 0x01(类型) 0x01(数据) 0x12(数据) 0x00 0x00 0x00 0xAA() 0x00 判断类型过程很简单,使用switch结构就行了(LabVIEW中就是条件结构同时实现了if和switch),编程时就是注意必须设置默认分支就行! 文件保存我使用了数据表,因为它确实简单,这里的亮点是增加了按时间保存的功能,相当于将时间字符串加入到文件名中,这样便于后期对采集的数据进行查找,不至于混乱。 波形回放就是将存储在数据表中的程序重新显示一遍,比较简单!
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值