在使用LabVIEW编程时,经常会使用到条件结构,有一些输出控件,不满足条件时,则使用默认值:
满足条件时使用确定值
不满足条件时使用默认值
那么在使用LabVIEW调用Halcon算子时,同样会面临这样的情况。满足条件时,调用相应的算子,返回的是Halcon的元组输出。而不满足条件时,则不调用Halcon算子。当然,这时的输出控件可以直接放在条件结构的里面,这样在不满足条件时,就不会输出。但是,如果必须要将输出控件放在条件结构外面时,则不满足条件时,也必须要使用一个默认值。但是这个时候,就不能将Halcon的元组输出控件使用.NET引用的默认值,而必须要创建一个新的引用:
.NET引用使用LabVIEW默认值
.NET引用创建一个新的值作为默认值
上面的两种情况,如果直接在.NET引用中使用LabVIEW的默认值,则会报错:
条件T时,使用.NET的默认值时运行报错
当使用.NET引用的LabVIEW默认值时,执行时报错,提示键不能为空。这里如果在元组输出引用中加探针可以知道,引用输出的实际是上0000的空值:
空引用
而当条件为F时,则创建了一个新的.NET引用,这个引用则是有效的,只不过元组的类型空,没有给该元组赋值罢了:
条件为假时可正常执行元组类型是EMTPY空类型
因此在使用LabVIEW调用Halcon算子时,如果遇到这种条件结构外包含输出的,而某些条件结构中,又没有相应的输出变量无法赋值时,不要使用LabVIEW的默认值,必须要新建一个引用才可以正常运行。