LabVIEW上位机与串口通信
渊源
大一的时候,学校开了门公共选修课,叫LabVIEW编程,当时的我当然还不知道LabVIEW是啥东东,但还是选了。上课的老师是机械学院的一个副教授。他给我们展示了好几个用LabVIEW做的项目。譬如油箱监控上位机等,已经不太记得了。
后来随着学习单片机、ARM等的串口操作。有时候一个美丽的上位机(尤其是能显示波形的上位机)在项目中给用户展示非常的实用。过了这么多年,尽管以前也用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

推断类型过程非常easy,使用switch结构即可了(LabVIEW中就是条件结构同一时候实现了if和switch),编程时就是注意必须设置默认分支即可!

文件保存我使用了数据表,由于它确实简单,这里的亮点是添加了按时间保存的功能,相当于将时间字符串添加到文件名称中。这样便于后期对採集的数据进行查找,不至于混乱。

波形回放就是将存储在数据表中的程序又一次显示一遍。比較简单!
到如今为止,完整的程序请到https://github.com/xiahouzuoxin/zxSerial下载!
仅供研究使用,谢谢!
LabVIEW上位机与串口通信的更多相关文章
- 10-ESP8266 SDK开发基础入门篇--上位机通过串口控制ESP8266灯亮灭
https://www.cnblogs.com/yangfengwu/p/11087618.html 其实这一节就是对上三节的综合测试 https://www.cnblogs.com/yangfeng ...
- VC++编写简单串口上位机程序
VC++编写简单串口上位机程序 转载: http://blog.sina.com.cn/s/articlelist_1809084904_0_1.html VC++编写简单串口上位机程序 串口通信 ...
- labview与单片机串口通信
labview与单片机串口通信 VISA是虚拟仪器软件体系结构的缩写(即Virtual Instruments Software Architecture),实质上是一个I/O口软件库及其规范的总 ...
- 9-ESP8266 SDK开发基础入门篇--编写串口上位机软件
https://www.cnblogs.com/yangfengwu/p/11087613.html 页面修改成这样子 现在看串口发送数据 点击点亮 发送0xaa 0x55 0 ...
- 嵌入式02 STM32 实验07 串口通信
STM32串口通信(F1系列包含3个USART和2个UART) 一.单片机与PC机串行通信研究目的和意义: 单片机自诞生以来以其性能稳定,价格低廉.功能强大.在智能仪器.工业装备以及日用电子消费产品中 ...
- CC2530串口通信
任何USART双向通信至少需要两个脚:接收数据输入(RX)和发送数据输出(TX). RX:接收数据串行输入.通过采样技术来区别数据和噪音,从而恢复数据. TX :发送数据输出.当发送器被禁止时,输出引 ...
- 基于FPGA的红外遥控解码与PC串口通信
基于FPGA的红外遥控解码与PC串口通信 zouxy09@qq.com http://blog.csdn.net/zouxy09 这是我的<电子设计EDA>的课程设计作业(呵呵,这个月都拿 ...
- [python] 3 、基于串口通信的嵌入式设备上位机自动测试程序框架(简陋框架)
星期一, 20. 八月 2018 01:53上午 - beautifulzzzz 1.前言 做类似zigbee.ble mesh...无线网络节点性能测试的时候,手动操作然后看表象往往很难找出真正的原 ...
- C#做一个简单的进行串口通信的上位机
C#做一个简单的进行串口通信的上位机 1.上位机与下位机 上位机相当于一个软件系统,可以用于接收数据.控制数据.即可以对接收到的数据直接发送操控命令来操作数据.上位机可以接收下位机的信号.下位机是 ...
随机推荐
- Delphi下让窗口不显示在任务栏的另类方法
刚才看到了这篇东西<使窗口不在任务栏上显示(利用ITaskbarList接口)>,作者用ITaskList接口实现了隐藏窗口在任务栏按钮的功能,想起我好多年以前做的程序也有这样的功能,但是 ...
- java多态--算法实现就是多态
算法:是实现集合接口的对象里的方法执行的一些有用的计算,例如:搜索和排序. 这些算法被称为多态,那是因为相同的方法可以在相似的接口上有着不同的实现. 集合接口 集合框架定义了一些接口.本节提供了每个接 ...
- Unite 2017 | 从《闹闹天宫》看MOBA游戏里的网络同步技术
http://mp.weixin.qq.com/s/0v0EU79Q6rFafrh8ptlmhw 在Unite 2017 Shanghai案例分享专场,来自蓝港互动<闹闹天宫>项目组的主程 ...
- Java POI 3.17写入、导入EXCEL性能测试
我们先测试一下写入 50000 条 程序源码: 写入的excel文件信息 再看一下文件的结构 我们再次测试一下导入数据库的性能(用移动的网络上传至电信服务器): 在导入的过程中也可以中止导入行为: 上 ...
- java7 NIO2 watching service API
java7 NIO2新增了文件系统的相关事件处理API,为目录,文件新增修改删除等事件添加事件处理. package reyo.sdk.utils.file; import java.io.IOExc ...
- Android手机提示“未安装应用程序”
用eclipse调试应用时,遇到了这个问题,网上给出的解决方案倒是挺多,但似乎一个都没奏效,而且我手机也重启了,还是有问题,郁闷ing- 然后看到一篇文章指出,可能不是签名和SD的卡问题,而是我们 ...
- 实用ExtJS教程100例-003:进度条对话框Ext.MessageBox.progress
在上一篇内容中我们介绍了三种常用的MessageBox提示框,在这篇文章中,我们将演示如何在对话框中使用进度条. 进度条对话框 我们可以使用下面的代码来在MessageBox中显示一个进度条: Ext ...
- Linux 安全信息查看
终端登录情况 last ssh登录情况 cat /var/log/secure | grep -i "accepted password" 定时任务 cat /var/log/cr ...
- 让Orchard支持多个Layout
默认Orchard只有一个Layout,有的时候,我们的站点往往需要多个母版页.那么,如果要让Orchard支持多个Layout,以下是一种解决方案. 一:创建LayoutFilter using S ...
- .Net Core配置文件读取整理
一 .配置文件说明 1.配置,主要是 指在程序中使用的一些特殊参数,并且大多数 仅在程序启动的之后指定不需要修改. 2.在以前.Net项目中配置文件主要指app.config或web.config,但 ...