添加错误显示控件

ztdaq提供的函数,大都有错误返回功能,可以在程序中添加错误显示控件来判断程序运行中的故障点,下面的动图展示了如何增加错误显示控件:

035giferror

最终前面板和程序框图的结果如下所示:

036complete

此时这个程序只是创建和删除了设备,点击运行按钮后可以看到界面只是闪烁一下,如果将路径修改成错误的,再点击运行,由于程序找不到正确的配置文件,则会报告错误:

037errorrun

如果将路径修改正确,再点击运行按钮,则错误输出会显示正确:

038rightrun

至此,我们完成了一个没什么用处的LabVIEW程序,在后续文章中将会不断添加代码,最终写出一个本文开头的数据采集卡采集程序。

设置自动连接

接下来我们添加自动连接子vi,首先在程序框图界面点击右键,单击选择VI:

01needconnect1

选择“test\ztdaq\GENERAL”目录下的“ZTDaq_NeedConnect.vi”,如下图所示:

02needconnect2

把鼠标移到子“ZTDaq_NeedConnect” VI图标上后,子VI上将会出现连线接口,如下图所示:

03needconnect3

上图注明了各个接口的名称,把鼠标移到接口位置,也会显示出接口名称。在显示出使能连接接口时单击右键,选择创建常量

04needconnect4

此时可以看到下图所示的样子,表示使能连接接口的输入参数是1。

05needconnect

此时“ZTDaq_NeedConnect.vi”子VI孤零零的在边上,要想让它参与到程序流程中,需要将它插入到“ZTDaq_Create”“ZTDaq_Delete”两个子VI中,首先将这两个VI间的连接线断开:将鼠标移到其中一根线上,当鼠标变成指针时单击,会选中这根线,选中后的线如下图所示:

06needconnect

选中后右键删除连线分支,或者按DEL键,都可以删除。将两根线都删除后,分别将ZTDaq_Create的设备句柄连接到ZTDaq_NeedConnect的设备句柄,将ZTDaq_NeedConnect的设备句柄出连接到ZTDaq_Delete的设备句柄。同样将错误输出连接好,最终如下图所示:

07needconnect

此时可以看到线很混乱,Labview有一个自动整理的工具,此时点击一下,就会将这混乱的图形排列整齐:

08needconnect

至此,自动连接函数完成,此函数运行后只要程序处于运行状态,程序就会自动判断下位机连接状态,在连接成功前反复连接设备,直至成功。

检测设备连接是否成功

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

首先放置一个while循环:

01choosewhile

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

02placeexit

放置完毕后如下图所示:

03exitbutton

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

04adjexitbtn

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

05insertwhile

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

06createerrvar

然后将错误输出变量拖动到while循环中并且连线:

06errvar

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

007error

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

008add1fun

然后放置显示控件:

009add1out

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

010contimesvar

将局部变量变成输出:

011toread

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

012add1con

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

013wait

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

014wait

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

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐