怎样用labview编写上位机软件?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样用labview编写上位机软件?相关的知识,希望对你有一定的参考价值。
首先得明确需求确定程序结构,例如生产者消费者模型,状态机等。
编写功能模块,同时进行单元测试UUT.
联合调试。
最重要的是明确需求,你得知道客户想要个什么东西~ 参考技术A 明确功能,然后设定程序框架,然后各个子模块功能划分,各子模块代码实现,然后集成,我觉得是这样子的…… 参考技术B 我一般是先做好前面板,然后根据项目需要来写后面板程序,一般是一个功能模块一个进程,具体怎么写还看你的项目要求
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编写上位机软件?的主要内容,如果未能解决你的问题,请参考以下文章
FPGA 控制W5300(TCP/IP协议)进行数据传输,上位机软件用LABVIEW,W5300怎么与LABVIEW进行数据传输!!
我要用C#写一个陀螺仪上位机,想在窗体里放一个3D的飞机,陀螺仪动的时候飞机跟着动,实现3D动态的效果。
Labview中怎样实现用多个按键分别控制执行多个不同的操作?
想用c#编写上位机,是否要学wpf的编程?有没有好的教材推荐?