zoukankan      html  css  js  c++  java
  • 小草手把手教你 LabVIEW 串口仪器控制——初识VISA串口

    有些人,学习一样东西时候,喜欢现成的例子。很多人学习一门技术,都喜欢现成的例子开始,比如学单片机的啊,最开始都是修改的例子吧,学语言的也是。最开始都是模仿。

    这个年头看书上的理论知识太浪费时间了。所以啊,很少人买个手机还去看手机说明书,或者买个电脑,看电脑说明书一样。

    事实上,学习 LabVIEW 的人有福了。因为例子很多,而且到处都是,应接不暇,还是免费的……

    我的观点是:LabVIEW 自带的范例写的很好。大家看看范例,就很方便大家学习和理解了。不要去找很多相关的资料,又不是写论文需要达到多少文献。

    关键句子:看 LabVIEW 自带的例子。

    本手把手系列,属于启蒙级的,对串口有了解的,可以略过。

    如果你对 LabVIEW 的串口使用不明白。那你就看例子吧。以后你会发现很多类似的例子教学。
    打开的范例操作如下图所示。
    <ignore_js_op> 

    找到“硬件输入输出”→“串口”,里面有好多范例,自己找个吧。其实都差不多。当然,你也可以左边的选项,搜索里面搜“VISA”,也可以得到这些范例。

    现在双击打开某个范例“基本串行写入和读取”。
    <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>
  • 相关阅读:
    Azure HPC Pack Cluster添加辅助节点
    Azure HPC Pack 辅助节点模板配置
    Azure HPC Pack配置管理系列(PART6)
    Windows HPC Pack 2012 R2配置
    Azure HPC Pack 节点提升成域控制器
    Azure HPC Pack VM 节点创建和配置
    Azure HPC Pack 部署必要条件准备
    Azure HPC Pack 基础拓扑概述
    Azure VM 性能计数器配置
    Maven私仓配置
  • 原文地址:https://www.cnblogs.com/mrchige/p/6238025.html
Copyright © 2011-2022 走看看