step 1:检查连线是否已经连接到适当的端口。在某一条连线删三击鼠标,则选中了与此连线相接的所有连线,这样可以比较清楚的发现连线上是否存在问题。 step 2:使用菜单help/show context help来激活上下文帮助窗口,窗口内动态显示鼠标指向的函数或子程序的用法介绍和各端口的定义。这样可以对照当前的连接,检查连线是否正确。 step 3:检查某些函数或子程序端口的默认值,尤其但函数或子程序的端口类型是可选型的,在使用时如果不连接则使用默认值作为参数进行传递。比如布尔类型的输入端口默认值定为TRUE,程序当中没有进行连线,并按该端口的默认值为FALSE进行程序设计,这样就产生了错误的结果。 step 4:使用菜单Browse-Show VIHierarchy,通过查看程序的层次结构来发现是否有未连线的子程序。未连线的函数会使运行按钮变为“裂开的箭头”,因而很容易找到问题。但由于子程序不同,一般labview允许框图窗口中存在未连线的子程序并以并行处理机制来运行该子程序,除非子程序的某一输入端口被设置为必须连接的类型。 step 5:使用高亮运行方式,单步执行方式和断点等手段来检查程序是否按设计要求来运行。 step 6:使用探针工具来获取连线上的及时数,以此来检查函数或子程序的输出是否存在错误,尤其是那些执行I/O操作的函数。 step 7:检查从一个函数或子程序输出的数据是否为有意义的数据,在LabVIEW中有两种数据是没有意义的,一种是NaN(not a number),表示非数字,一般是由于无效的数据运算得到的,比如对一个负数进行开放运算就会产生NaN;另一种是Inf(infinity),表示无穷大,是由运算产生的浮点数,比如一个数被零除。 step 8:如果程序的运行速度比预期的要慢得多,需要检查某些子程序是否处于高亮运行状态,同时关闭子程序的前面板和框图窗口以调高系统的执行速度。 step 9:检查控件和指示器的数据是否溢出,LabVIEW不提供数据溢出警告。尤其是程序中可能存在浮点数到整型的转换或大的整型数到小的整型数的转换。比如把一个16位整型数接入到一个只能接受8位整型数的函数输入端口上。因为这种转换本身就存在数据丢失的潜在危险。 step10:但使用FOR循环的索引来产生数组时要格外慎重,当循环次数为0时将产生一个空数组,在这种情况下需要作特殊的处理,比如输出错误代码或使用有效的数据替代循环产生的空数组。 step11:仔细检查簇成员的顺序是否与目标端口一致,LabVIEW在编辑状态下检查类型和簇的大小是否匹配,但是不能检查出相同数据类型的成员是否匹配。 step12:检查是否有未连接的VI子程序,有时会出现因缩放程序结构而隐藏掉某些VI子程序的情况。
|