这个年头看书上的理论知识太浪费时间了。所以啊,很少人买个手机还去看手机说明书,或者买个电脑,看电脑说明书一样。
事实上,学习 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 ...
随机推荐
-
EF CodeFirst EntityTypeConfiguration 自关联映射配置
实体示例代码: public class Message { public Message() { } public int ID { get; private set; } public strin ...
-
Eclipse中的checkstyle插件
一.Checkstyle工具 Checkstyle是一款检查Java程序源代码样式的工具,它可以有效的帮助我们检视代码以便更好的遵循代码编写标准. 官方地址:http://checkstyle.sou ...
-
sublime text 3 license 2016.05
补充:2016.05 最近经过测试,3个注册码在新版3103的sublime上已经不可用了. 现补充两枚新版的license key: -– BEGIN LICENSE -– Michael Barn ...
-
Hostapd
Hostapd 一.基本概念 hostapd is an application used to setup your wireless interface as an access-point (m ...
-
代码创建FlexibleSpaceBarButton(弹性空白)
//1.创建toolbar左边的按钮,调用initWithTitle方法进行初始化 // UIBarButtonItem *extend = [[UIBarButtonItemalloc]initWi ...
-
MFC 遍历FTP服务器目录相关
CInternetSession* pSession; pSession = new CInternetSession; //构造新的连接 CFtpConnection* pFtpCon; pFtp ...
-
Java学习笔记之Scanner报错java.util.NoSuchElementException
转载自:IT学习者-螃蟹 一个方法A使用了Scanner,在里面把它关闭了.然后又在方法B里调用方法A之后就不能再用Scanner了Scanner in = new Scanner(System.in ...
-
js 防止重复点击
1.添加flag 适用于ajax 表单提交,提交之前flag = false , 提及中,true ,提交后false 2.事件重复点击: <script> var throttle = ...
-
博弈论入门之nim游戏
更好的阅读体验点这里 nim游戏 nim游戏 有两个顶尖聪明的人在玩游戏,游戏规则是这样的: 有\(n\)堆石子,两个人可以从任意一堆石子中拿任意多个石子(不能不拿),没法拿的人失败.问谁会胜利 ni ...
-
立足中国,走向世界(Made in China, Go to World)
FineUI一路走来已经历经 9 年的风风雨雨,拥有国内最为广泛的捐赠群体(1500多位),和众多企业客户的青睐(200多家). 今天,我们很高兴的宣布:FineUI英文版上线了! FineUI英文版 ...