小草手把手教你 LabVIEW 串口仪器控制——初识VISA串口
这个年头看书上的理论知识太浪费时间了。所以啊,很少人买个手机还去看手机说明书,或者买个电脑,看电脑说明书一样。
事实上,学习 LabVIEW 的人有福了。因为例子很多,而且到处都是,应接不暇,还是免费的……
我的观点是:LabVIEW 自带的范例写的很好。大家看看范例,就很方便大家学习和理解了。不要去找很多相关的资料,又不是写论文需要达到多少文献。
关键句子:看 LabVIEW 自带的例子。
本手把手系列,属于启蒙级的,对串口有了解的,可以略过。
如果你对 LabVIEW 的串口使用不明白。那你就看例子吧。以后你会发现很多类似的例子教学。
打开的范例操作如下图所示。
<ignore_js_op>
现在双击打开某个范例“基本串行写入和读取”。
<ignore_js_op>
<ignore_js_op>
打开了范例之后,我们来研究下它的情况,如下图。
<ignore_js_op>
我们看下程序面板,结构很简单。
如果看过我的手把手系列前面的内容,就会发现,就是我之前说的 4 个函数。
①配置串口
②写数据到串口 的 VISA 写入,从串口读数据 的 VISA 读取
③关闭串口
<ignore_js_op>
用 VISA 函数,最常用的,就这几个。我写了这么多串口程序,基本也就用了这几个,其他的,自己看着办。
<ignore_js_op>
如果我们要连续读串口后者连续写串口 ,那就要记得 加循环了。记得循环的位置,配置 VISA 的后面,跟关闭 VISA 的前面。这个道理很简单,
Example:
你要把一个屋子的东西,都搬到门外,那你只需要打开一次门,然后把东西搬完了,再关闭门。对吧?你不用进门一次,开一次门,搬出去了,关门,然后进门,再开门,出门再关门。。。。。很累的吧。。。。
还有,结尾一定要关闭 VISA。不关闭 VISA,你的串口的控制权,一直没被释放,你的串口就工作不正常了。
对 VISA 串口的理解,可以用打电话解释。就拿打电话来说吧。
①,首先,拨对方号码,号码肯定要配置正确吧,不正确肯定达不到对方的, VISA 配置串口相当于你给对方拨电话。
②,其次,给对方说要说的话,这个相当于 VISA 串口写。你说话,当然也也听对方说
话,那就是 VISA 串口读。
③,通话结束,要挂电话,挂电话相当于 关闭 VISA.
下面示意图:
拨电话→VISA 串口配置
讲电话→VISA 读写(这里就是各种命令啦。)
挂电话→VISA 关闭
有空记得看 VISA 的四个函数的说明。其实串口很容易。难点在于你读到数据,怎么转化成自己需要的数据。而且保证数据无误。
深入分析:
首先,进行仪器通信前,注意配置你的仪器通讯方式。
正常情况下,连接好你的仪器(这个看说明书,有的是 232 接口,有的是 485 接口,232接口的,直接连接电脑的 COM 口就可以了,如果是 485 的,电脑都不自带,需要买个485转换器)连接好仪器后,有些仪器,需要设置远程方式。
例如:keithley2000 的万用表,需要按如下方式设置为 232 接口。
<ignore_js_op>
设置好了之后,就可以用进行串口通信了。
前面给大家看了个最基本的NI自带的例子,不过这个例子,单次运行只能运行一次,
问:如何让它持续的读写直到按下停止键?
答:前面提示过,要加循环,在 VISA 串口配置和 VISA 关闭中间加。为什么要这样呢?前面已经回答了。
示例图如下:
<ignore_js_op>
为了方便大家观看,我把While循环框颜色调整成红色。(估计会有人问怎么调节颜色,这个用工具栏颜色笔。再不懂自己看书吧。这个不是本文内容)
自己记得这么加,然后单击 工具栏的 “运行一次”按钮,就会一直在读写状态了。记得循环框的问题。
但是,你这样,生成 EXE 程序后,打开 EXE 就运行了,会报错,因为你不能自己改变串口参数再运行。一般程序都是运行程序后,设定串口参数,比如 COM 口,波特率等,如果仅仅按照上图所示,是无法在程序中设定的。
问:如果我想先运行 LabVIEW 程序,然后在线改变串口配置参数,然后再进行读写串口,我改怎么做?
答:这个需要考虑程序结构问题。
下面细讲。如果你要运行 LabVIEW 后,改变 COM 口参数等,然后打开串口操作读写等,你需要考虑你的程序逻辑结构。可能逻辑已经有了,就是你所谓的想要的操作。那么怎么实现就是编程问题了。
最简单的实现方式,是上图的结构,外面在套一个循环。
<ignore_js_op>
记得,画圈的3 个按钮的机械动作,都是释放时候触发,按钮有三个机械动作。这个很每本书都会讲,或者自己百度相关知识。
怎么设置见下图所示。
<ignore_js_op>
如果你觉得打开串口跟关闭串口用2 个按钮比较不好看。那你可以只用一个按钮,用它的两个状态表示”打开串口”和”关闭串口”。具体需要改动的看下图我画圈的地方。
下面解释下结构:
利用了用一个局部变量(或者自己使用 “属性节点”→“值”)。
当前面打开串口为真时,进入串口程序,然后运行一次配置后,进入读写 VISA 串口循环,程序就一直在这个读写状态。由于打开串口为真,后面用一个布尔的“非”操作,这样,WHILE 循环的条件就为假,就一直进行 WHILE 循环,当你再次点击“打开串口”时候,打开串口这个控件值就为“假”,经过“非”操作,WHILE 循环条件值为真,退出循环。
<ignore_js_op>
这个例子很容易吧。
差不多就是一个简单的 LabVIEW 串口助手程序了。当然你也可以用事件结构,可能一般初学者对事件结构都不是很了解。
注意:记住如果是用局部变量,请更改按钮的机械动作。否则会出现以下错误。
<ignore_js_op>
提示:触发动作与局部变量不兼容,这个时候,你要改为如下动作。看我红框部分。
<ignore_js_op>
小草手把手教你 LabVIEW 串口仪器控制——初识VISA串口的更多相关文章
- 小草手把手教你LabVIEW串口仪器控制—安装使用仪器现有驱动
声明:很多仪器是没有驱动的.所以,具体问题具体分析.另外声明:所谓的驱动,也就是封装好的底层的串口通信程序,也是程序而已,只不过别人帮你做成了子 VI,让自己容易用.所以:不要弄混淆了概念.国外的很多 ...
- 小草手把手教你 LabVIEW 串口仪器控制——VISA 串口配置
建议大家按我发帖子的顺序来看,方便大家理解.请不要跳跃式的阅读.很多人现在看书,都跳跃式的看,选择性的看,导致有些细节的部分没有掌握到,然后又因为某个细节耽误很多时间.以上只是个人建议,高手可以略过本 ...
- 手把手教你 LabVIEW 串口仪器控制——VISA 驱动下载安装篇
仪器控制,核心在于 VISA 函数..有些仪器可能不需要 VISA,有自己的 DLL 什么的,我就管不着. 正常情况下,大家安装的 LabVIEW,都是不带 VISA 驱动 ...
- 微信小程序——手把手教你写一个微信小程序
前言 微信小程序年前的跳一跳确实是火了一把,然后呢一直没有时间去实践项目,一直想搞但是工作上不需要所以,嗯嗯嗯嗯嗯emmmmm..... 需求 小程序语音识别,全景图片观看,登录授权,获取个人基本信息 ...
- 小姐姐手把手教你JS数组中的对象去重
有时候数据库中的数据重复的,我们另一个需求需要数据的唯一性 那么这时候就用到这个方法了 我还是以截图的方式发粗来 不然太丑了 见谅 console.log(map)打印出来的结果已经帮我们把需要的 ...
- 手把手教你玩微信小程序跳一跳
最近微信小程序火的半边天都红了,虽然不会写,但是至少也可以仿照网上大神开发外挂吧!下面手把手教妹纸们(汉纸们请自觉的眼观耳听)怎么愉快的在微信小游戏中获得高分. 废话不多说,咱们这就发车了!呸!咱们这 ...
- 手把手教你开发BLE数据透传应用程序
如何开发BLE数据透传应用程序?什么是BLE service和characteristic?如何开发自己的service和characteristic?如何区分ATT和GATT?有没有什么工具可以对B ...
- 手把手教Linux驱动1-模块化编程,玩转module
大家好,从本篇起,一口君将手把手教大家如何来学习Linux驱动,预计会有20篇关于驱动初级部分知识点.本专题会一直更新,有任何疑问,可以留言或者加我微信. 一.什么是模块化编程? Linux的开发者, ...
- 手把手教从零开始在GitHub上使用Hexo搭建博客教程(四)-使用Travis自动部署Hexo(2)
前言 前面一篇文章介绍了Travis自动部署Hexo的常规使用教程,也是个人比较推荐的方法. 前文最后也提到了在Windows系统中可能会有一些小问题,为了在Windows系统中也可以实现使用Trav ...
随机推荐
- Splay树简单操作
前几天刚刚自学了一下splay,发现思路真简单实现起来好麻烦 先贴一下头文件 # include <stdio.h> # include <stdlib.h> # includ ...
- LightOJ1336 Sigma Function
题意 求和运算是一种有趣的操作,它来源于古希腊字母σ,现在我们来求一个数字的所有因子之和.例如σ(24)=1+2+3+4+6+8+12+24=60.对于小的数字求和是非常的简单,但是对于大数字求和就比 ...
- app图标icon大全
http://tool.58pic.com/tubiaobao/index.php?m=Index&a=ui&p=2 很有用,下载没用,直接右键吧.
- 使用glide进行包管理
glide是golang的一款包管理工具,就像Java下的Maven(当然Maven的定位不只是包管理工具).今天试用了一下,记录一下使用过程和遇到的一些坑. 环境 Windows 7,Goland, ...
- CSS个别属性
*{ scrollbar-3dlight-color:#fff; // 3d亮色阴影边框(threedlightshadow)的外观颜色 scrollbar-highlight-color:#fff; ...
- PAT乙级-1063. 计算谱半径(20)
在数学中,矩阵的"谱半径"是指其特征值的模集合的上确界.换言之,对于给定的n个复数空间的特征值{a1+b1i, ..., an+bni},它们的模为实部与虚部的平方和的开方,而&q ...
- 常见排序算法及Java实现
先上个总图↓: ①.直接插入排序 插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法.它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并 ...
- C语言与C++语言之间关系
很多时候我们对于C和C++的区别不是很清楚,以至于弄混的情况并不少见.那C语言和C++语言到底是怎么回事呢? 首先,我们来看下百度百科对语言和C++语言描述,相对而说也还算是比较权威的. C语言 C语 ...
- Win 及 Linux 查找mac地址的方法
1. Windows系统中 - 调出cmd命令行 - 运行Getmac命令.命令行中输入: getmac /v /fo list 并按下回车键 - 查找物理地址.这是MAC地址的另一种描述方式.因为在 ...
- CentOS 7主机名的弯弯绕绕
在CentOS 6中,修改主机名方式很简单,临时修改主机名使用hostname命令,永久修改主机名直接写进文件/etc/sysconfig/network中即可. 但在CentOS 7中,主机名就没那 ...