检测设备连接是否成功
接下来我们将检测设备连接是否成功,这部分将会介绍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框进去

下面按照标注详细讲解上图。
-
设备句柄连线
在Labview中,程序流程是由连线控制的,设备句柄连线除了让每个子vi能够接收到设备句柄参数外,程序还会根据连线的顺序来执行。
-
循环隧道
在设备句柄连线经过for循环的边框进入其内部时,会在边框上生成一个实心方块,它被称为循环隧道,代表了进入或者出去的连线是原始状态,不会将数组拆分或者组合成数组。
-
自动索引隧道
在设备句柄连线从for循环的边框出去时,默认是生成自动索引隧道,它会将出去的连线按照循环次数自动生成数组,对于设备句柄连线,不需要生成数组,因此需要在上面右键点击,选择禁用索引
-
for循环的N
它是循环总数,代表了框图里面的内容执行几次,在本程序中使用AD最大通道数作为输入,表示设置所有的AD通道。可以看到连接到N上的线有一个红点,这是由于数值类型不同,它只是个提示,Labview会自动转换数据类型,并不会影响执行。AD最大通道数是在ZTDaq_AdGetChMaxCount子vi的输出,将AD最大通道数连接到N上后,在连线上右键-创建-显示控件就可以创建出AD最大通道数的显示。
-
循环计数
它在for循环框图里面用i表示,从0开始,每次循环它自动+1,可以直接连接到ZTDaq_AdSetRange的通道号输入端。
-
采集范围枚举
在ZTDaq_AdSetRange的采集范围上右键-创建-显示控件,则可以创建一个枚举控件,里面包含了所有可设置的范围,它在前面板中是这样的:
在上面单击可以看到所有的索引项:
接下来将自动索引隧道变成循环隧道,连接ZTDaq_SetDaqGroupFreq的设备句柄,然后创建组频率和每秒字节数控件,再连上错误连线和设备句柄连线,此时设置部分就完成了。

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

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