微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 测试测量 > Labview > 小草手把手教你 LabVIEW 串口仪器控制——初识VISA串口

小草手把手教你 LabVIEW 串口仪器控制——初识VISA串口

时间:10-02 整理:3721RD 点击:

有些人,学习一样东西时候,喜欢现成的例子。很多人学习一门技术,都喜欢现成的例子开始,比如学单片机的啊,最开始都是修改的例子吧,学语言的也是。最开始都是模仿。
这个年头看书上的理论知识太浪费时间了。所以啊,很少人买个手机还去看手机说明书,或者买个电脑,看电脑说明书一样。
事实上,学习 LabVIEW 的人有福了。因为例子很多,而且到处都是,应接不暇,还是免费的……
我的观点是:LabVIEW 自带的范例写的很好。大家看看范例,就很方便大家学习和理解了。不要去找很多相关的资料,又不是写论文需要达到多少文献。
关键句子:看 LabVIEW 自带的例子。
本手把手系列,属于启蒙级的,对串口有了解的,可以略过。
如果你对 LabVIEW 的串口使用不明白。那你就看例子吧。以后你会发现很多类似的例子教学。
打开的范例操作如下图所示。


找到“硬件输入输出”→“串口”,里面有好多范例,自己找个吧。其实都差不多。当然,你也可以左边的选项,搜索里面搜“VISA”,也可以得到这些范例。
现在双击打开某个范例“基本串行写入和读取”。




打开了范例之后,我们来研究下它的情况,如下图。


我们看下程序面板,结构很简单。
如果看过我的手把手系列前面的内容,就会发现,就是我之前说的 4 个函数。
①配置串口
②写数据到串口 的 VISA 写入,从串口读数据 的 VISA 读取
③关闭串口


用 VISA 函数,最常用的,就这几个。我写了这么多串口程序,基本也就用了这几个,其他的,自己看着办。


如果我们要连续读串口后者连续写串口 ,那就要记得 加循环了。记得循环的位置,配置 VISA 的后面,跟关闭 VISA 的前面。这个道理很简单,
Example:
你要把一个屋子的东西,都搬到门外,那你只需要打开一次门,然后把东西搬完了,再关闭门。对吧?你不用进门一次,开一次门,搬出去了,关门,然后进门,再开门,出门再关门。很累的吧。
还有,结尾一定要关闭 VISA。不关闭 VISA,你的串口的控制权,一直没被释放,你的串口就工作不正常了。
对 VISA 串口的理解,可以用打电话解释。就拿打电话来说吧。
①,首先,拨对方号码,号码肯定要配置正确吧,不正确肯定达不到对方的, VISA 配置串口相当于你给对方拨电话。
②,其次,给对方说要说的话,这个相当于 VISA 串口写。你说话,当然也也听对方说
话,那就是 VISA 串口读
③,通话结束,要挂电话,挂电话相当于 关闭 VISA.
下面示意图:
拨电话→VISA 串口配置
讲电话→VISA 读写(这里就是各种命令啦。)
挂电话→VISA 关闭
有空记得看 VISA 的四个函数的说明。其实串口很容易。难点在于你读到数据,怎么转化成自己需要的数据。而且保证数据无误。
深入分析:
首先,进行仪器通信前,注意配置你的仪器通讯方式。
正常情况下,连接好你的仪器(这个看说明书,有的是 232 接口,有的是 485 接口,232接口的,直接连接电脑的 COM 口就可以了,如果是 485 的,电脑都不自带,需要买个485转换器)连接好仪器后,有些仪器,需要设置远程方式。
例如:keithley2000 的万用表,需要按如下方式设置为 232 接口。


设置好了之后,就可以用进行串口通信了。
前面给大家看了个最基本的NI自带的例子,不过这个例子,单次运行只能运行一次,
问:如何让它持续的读写直到按下停止键?
答:前面提示过,要加循环,在 VISA 串口配置和 VISA 关闭中间加。为什么要这样呢?前面已经回答了。
示例图如下:


为了方便大家观看,我把While循环框颜色调整成红色。(估计会有人问怎么调节颜色,这个用工具栏颜色笔。再不懂自己看书吧。这个不是本文内容)
自己记得这么加,然后单击 工具栏的 “运行一次”按钮,就会一直在读写状态了。记得循环框的问题。
但是,你这样,生成 EXE 程序后,打开 EXE 就运行了,会报错,因为你不能自己改变串口参数再运行。一般程序都是运行程序后,设定串口参数,比如 COM 口,波特率等,如果仅仅按照上图所示,是无法在程序中设定的。
问:如果我想先运行 LabVIEW 程序,然后在线改变串口配置参数,然后再进行读写串口,我改怎么做?
答:这个需要考虑程序结构问题。
下面细讲。如果你要运行 LabVIEW 后,改变 COM 口参数等,然后打开串口操作读写等,你需要考虑你的程序逻辑结构。可能逻辑已经有了,就是你所谓的想要的操作。那么怎么实现就是编程问题了。
最简单的实现方式,是上图的结构,外面在套一个循环。



记得,画圈的3 个按钮的机械动作,都是释放时候触发,按钮有三个机械动作。这个很每本书都会讲,或者自己百度相关知识。
怎么设置见下图所示。



如果你觉得打开串口跟关闭串口用2 个按钮比较不好看。那你可以只用一个按钮,用它的两个状态表示”打开串口”和”关闭串口”。具体需要改动的看下图我画圈的地方。
下面解释下结构:
利用了用一个局部变量(或者自己使用 “属性节点”→“值”)。
当前面打开串口为真时,进入串口程序,然后运行一次配置后,进入读写 VISA 串口循环,程序就一直在这个读写状态。由于打开串口为真,后面用一个布尔的“非”操作,这样,WHILE 循环的条件就为假,就一直进行 WHILE 循环,当你再次点击“打开串口”时候,打开串口这个控件值就为“假”,经过“非”操作,WHILE 循环条件值为真,退出循环。


这个例子很容易吧。
差不多就是一个简单的 LabVIEW 串口助手程序了。当然你也可以用事件结构,可能一般初学者对事件结构都不是很了解。
注意:记住如果是用局部变量,请更改按钮的机械动作。否则会出现以下错误。



提示:触发动作与局部变量不兼容,这个时候,你要改为如下动作。看我红框部分。



编写:浅浅的小草

论坛账号:happyarrow


推荐阅读:

小草手把手教你LabVIEW串口仪器控制—安装使用仪器现有驱动
小草手把手教你 LabVIEW 串口仪器控制——VISA 驱动下载安装篇


学习了,小编辛苦了,谢谢

小编,我想问个问题:
如一个while循环外面还套有一个while循环,那么先改变的是外面while循环条件的布尔值,程序不会卡住或可以停止运行吗?

最近一直在研究串口

谢谢大神,因为你的存在所以我才改行做labview了,虽然现在还是在学习,但是有动力

恩恩,学习了,特别是局部变量机械动作的那里

如果里面的while循环没停止,改变外面while值的没用,他会一直在里面的while循环吧,

东西挺好,最近正在看这方面的知识

小编好样的  真不错

说的非常到位啊

写的很多一定很好               

很详细的解释,谢谢分享!

谢谢分享,好好看一下

关键是接收的时候的格式转换,要转换成自己想要的格式。

要是讲点非NI的采集卡就好了

最近也在学串口啊

学习了,小编辛苦了,谢谢

学习了,感谢小编

谢谢小编分享,好人

谢谢小编分享~~~~~~~~~~~~~~~~~~·

老师,您好。我想问下,我试着用你上面那个串口程序,为什么不管我写入1234567890还是1111111111,它都读出1073676294,而且前面板中的读出字符串都不显示

学习了,小编辛苦了,谢谢

学习了,很好的资料,谢谢分享!希望更多labview资料可以分享

小草写的好好啊谢谢小编

小编,我想问一下,这个范例主要是往一个串口发信息,然后同时从这个串口接收信息吗?我的电脑没有串口,但是我下载了一对虚拟串口,然后在运行范例的时候一直在VISA读的那个位置弹出错误窗口,“完成操作前已过期”,并且信息也一直没有接收到,这个是什么原因?

小编,您好,我使用keithley 2002和KUSB 488B与电脑连接,试了好多次,老是读数报错。我想得到你的帮助,我的QQ:1009629513,谢谢!

小编大好人啊!写的太精彩了,为你鼓掌!1

好贴  讲的很详细  谢谢小编

为何我打开官方的那个VISA读写范例,运行完之后无法读取出缓冲区的内容(但没有报错),只是前面板读取字符串没有显示而已。

很详细的解释,谢谢分享!

好东西呀,赞一个!

小编,我看串口都是手动写字符串,能不能读取表格中的数据写入串口啊?

小编太棒了!多谢多谢!解决我问题了,点赞!

谢谢小编分享,好人

为什么   我的 查找范例都是英文的,看着好不方便

小编好厉害,我要努力学习

小编辛苦,费心了!

好好学习,谢谢分享

我想问下,问啥我采集的数据是不稳定的

这个正在学习这块

多学习学习

非常好

学习一下学习一下学习一下学习一下

谢谢小编的分享

小草的教材,好多啊…………

小编,你好!我想问一下,你这边的串口是COM1,如果你的USB接口改变了,怎么样做到自适应呢?就是你不用在程序里去更改USB的接口,然后程序会自动更改接口这种方式。

谢谢小编分享,顶一下

66666666666666666666666

学习了

很棒

你好小编,能否附上源代码,看图看不清楚有些设置。比如隧道上的节点设置。谢谢。

讲的太好了

小编很有耐心,很详细,谢谢分享

谢谢大神!正在学习串口知识

小编666666666666

小编辛苦了,学到了很多

小编辛苦了

谢谢分享

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top