从0开始使用LabVIEW操作数据采集卡-检测设备连接是否成功和设置

检测设备连接是否成功

接下来我们将检测设备连接是否成功,这部分将会介绍while循环的使用,在While循环中调用子vi判断设备连接是否成功,界面上可以使用错误信息显示框来判断连接是否成功,每一秒连接一次,直到连接成功。

首先放置一个while循环:

在while循环中放置退出按钮:

放置完毕后如下图所示:

在停止按钮上左键双击,可以切换到前面板,将按钮挪到合适的位置:

按ctrl-e切换回程序框图,在循环框中"右键-选择VI"放置"ZTDaq_GetErrorCode"子VI,它位于"ztdaq\GENERAL"目录下,放置完毕后,断开"ZTDaq_NeedConnect"和"ZTDaq_Delete"之间的连线,将循环框中的"ZTDaq_GetErrorCode"插入其中,然后点击"整理程序框图"工具,最终如下图所示:

此时点击运行按钮,即使连接不成功,也不会报错,因为只有退出循环,执行完"ZTDaq_Delete"后才能够将错误输出显示出来,如果想在循环中显示错误,则需要创建一个错误输出的变量,如下图所示:

此时切换到前面板后点击运行按钮,在设备没有加电的情况下,可以看到错误输出显示错误:

此时界面是静态的,完全看不出来程序是在运行,为了增加提示性,我们加一个计数器显示,切换回程序框图,先在while框图中放置一个累加函数:

然后放置显示控件:

将控件名称改成连接次数,然后生成显示控件的局部变量:

将局部变量变成输出:

将局部变量的输出连接到"加1"函数的输入上,整理程序框图,如下图所示:

此时再运行程序,就会发现连接次数飞速的增加,此时系统资源占用率将会非常高,我们只需要在连接失败的时候1S连接一次就可以了,所以要插入一个等待函数:

然后在等待函数的输入上右键,创建常量,改成1000:

此时再运行,连接次数控件将会每秒增加一次

在后面的文章中,将会在连接成功后设置设备。

设置设备

接下来我们将设置设备,在这部分将介绍条件结构,比较运算符,以及数组,枚举,下拉列表等控件。

首先选中while循环,将其拉大,然后删除里面的设备句柄连线和错误输出连线,如下图所示:

插入条件结构,也就是Labiew的判断语句:

放置条件结构的时候可以用鼠标将其拉大,然后把错误输出连接到?(问号)上面,如下图所示:

将ZTDaq_GetErrorCode的设备句柄出通过条件结构中的错误框图连接到ZTDaq_Delete的设备句柄上,错误输出也连起来,如下图所示:

切换到无错误框图,顺次放下ZTDaq_AdGetChMaxCount,ZTDaq_AdSetBufferChRange,ZTDaq_AdSetRange,ZTDaq_SetDaqGroupFreq,ZTDaq_DaqStart,ZTDaq_GetDaqBytesCountPerS子vi,如下图所示:

由于ZTDaq_AdSetRange是需要每个通道单独设置的,放置一个for循环就可以使用一个子vi设置多个通道的范围了:

放置for循环的时候要注意把ZTDaq_AdSetRange框进去

下面按照标注详细讲解上图。

  1. 设备句柄连线

    在Labview中,程序流程是由连线控制的,设备句柄连线除了让每个子vi能够接收到设备句柄参数外,程序还会根据连线的顺序来执行。

  2. 循环隧道

    在设备句柄连线经过for循环的边框进入其内部时,会在边框上生成一个实心方块,它被称为循环隧道,代表了进入或者出去的连线是原始状态,不会将数组拆分或者组合成数组。

  3. 自动索引隧道

    在设备句柄连线从for循环的边框出去时,默认是生成自动索引隧道,它会将出去的连线按照循环次数自动生成数组,对于设备句柄连线,不需要生成数组,因此需要在上面右键点击,选择禁用索引

  4. for循环的N

    它是循环总数,代表了框图里面的内容执行几次,在本程序中使用AD最大通道数作为输入,表示设置所有的AD通道。可以看到连接到N上的线有一个红点,这是由于数值类型不同,它只是个提示,Labview会自动转换数据类型,并不会影响执行。AD最大通道数是在ZTDaq_AdGetChMaxCount子vi的输出,将AD最大通道数连接到N上后,在连线上右键-创建-显示控件就可以创建出AD最大通道数的显示。

  5. 循环计数

    它在for循环框图里面用i表示,从0开始,每次循环它自动+1,可以直接连接到ZTDaq_AdSetRange的通道号输入端。

  6. 采集范围枚举

    在ZTDaq_AdSetRange的采集范围上右键-创建-显示控件,则可以创建一个枚举控件,里面包含了所有可设置的范围,它在前面板中是这样的:

    在上面单击可以看到所有的索引项:

接下来将自动索引隧道变成循环隧道,连接ZTDaq_SetDaqGroupFreq的设备句柄,然后创建组频率和每秒字节数控件,再连上错误连线和设备句柄连线,此时设置部分就完成了。

现在显示有些乱,可以点击整理程序框图工具

整理完毕后程序框图横向比较大,浏览不便,下一节将会讲如何解决这个问题。

相关推荐
LabVIEW开发11 天前
LabVIEW气体污染无线监测
网络·labview·labview知识·labview功能·labview程序
LabVIEW开发11 天前
使用 LabVIEW 的调用库函数节点访问 DLL 函数
labview·labview知识·labview功能·labview程序
LabVIEW开发12 天前
LabVIEW 泵轮检测系统
labview·labview知识·labview功能·labview程序
LabVIEW开发12 天前
LabVIEW加载 STL 模型至 3D 场景 源码见附件
3d·labview·labview知识·labview功能·labview程序
LabVIEW开发16 天前
LabVIEW汽车发动机振动测试
汽车·labview
丨 丨22 天前
LabVIEW软件全面解析:图形化编程的工业级应用指南
labview
LabVIEW开发25 天前
LabVIEW 瀑布图与游标操作
labview·labview知识·labview功能·labview程序
LabVIEW开发1 个月前
LabVIEW 音频信号处理
labview·labview知识·labview功能·labview程序
LabVIEW开发1 个月前
LabVIEW 正弦波噪声滤波
labview·labview知识·labview功能·labview程序