LabVIEW布尔值属性节点是变体的原因

简介: LabVIEW布尔值属性节点是变体的原因

LabVIEW布尔值属性节点是变体的原因


有一个布尔控件。当我建值或值(信号)属性节点时,它显示为variant(变体)类型。为什么是这样?


解决方案


这是因为试图从设为Latching(触发)机械动作的布尔控件创建属性节点。无法读取或写入通过触发机械动作设置的布尔值,因为可能会发生race condition(竞争状态)。当布尔值设置为触发机械动作时,这意味着在更改布尔值后,一旦VI读取其值,它将恢复为默认值。因此,根据VI或属性节点读取布尔值的时间,可能会错过值的更改。



请尝试将布尔控件的机械动作更改为Switching(转换)。这将允许同时使用Value和Value(Signaling)属性节点,设置为转换类机械动作时,会注意到现在属性节点将是布尔类型而不是变体类型,如下所示:


布尔属性节点


在仅按一次时,具有转换机械动作的布尔值不会恢复为默认值。


相关信息


尝试将布尔值分配给被引用为Control类型的前面板控件时,也会发生此行为,即使使用To More Specific Class函数将其类型转换为布尔值也是如此。这是因为控件参考没有被转换为具有特定机械动作的布尔值。


因为属性节点无法判断控件是否被键入为触发或转换布尔值,所以属性节点不确定提供的确切属性集/期望的确切类型的数据,并且默认强制传递给它的数据变体。




需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。附件中的资料这里无法上传,可去公司网站搜索下载。

相关文章
|
6月前
|
JavaScript 前端开发 Java
函数形状的定义方式在编程中可以有多种,具体取决于使用的编程语言和上下文。以下是几种常见的定义方式:
函数形状的定义方式在编程中可以有多种,具体取决于使用的编程语言和上下文。以下是几种常见的定义方式:
42 3
|
2月前
|
机器学习/深度学习 PyTorch 算法框架/工具
探索PyTorch:张量的类型转换,拼接操作,索引操作,形状操作
探索PyTorch:张量的类型转换,拼接操作,索引操作,形状操作
|
6月前
|
存储 程序员 Swift
Swift开发——存储属性与计算属性
Swift推荐使用结构体进行开发,结构体支持属性和方法,且作为值类型。结构体属性包括存储属性(如radius)和计算属性(如r),计算属性不存储值,类似方法。结构体用`struct`定义,命名遵循大驼峰规则。实例名遵循小驼峰规则。属性可在结构体中任意位置定义,静态属性用`static`。存储属性可为`lazy`实现懒加载。结构体实例通过`.`访问属性和方法,静态属性和方法用`结构体名.`访问。计算属性可读写,可通过`get`和`set`定义。程序段1展示了结构体Point和Circle的属性和方法,包括私有属性、只读计算属性、可读写计算属性及`mutating`方法。
42 0
Swift开发——存储属性与计算属性
|
5月前
|
JavaScript
交叉类型的主要用途是表示对象的合成
交叉类型的主要用途是表示对象的合成
32 0
|
7月前
|
Java Spring
LabVIEW中将枚举与条件结构一起使用
LabVIEW中将枚举与条件结构一起使用
78 2
|
7月前
|
C语言
LabVIEW局部变量和值属性节点之间的区别
LabVIEW局部变量和值属性节点之间的区别
139 0
|
7月前
|
JavaScript
函数形状的定义方式
函数形状的定义方式
90 0
|
7月前
|
JavaScript
函数形状有几种定义方式;操作符infer的作用
函数形状有几种定义方式;操作符infer的作用
49 3
|
人工智能
实例解释在lingo中使用集合模型
实例解释在lingo中使用集合模型
189 0
第4章 MATLAB编程基础——4.6 M文件中变量的检测与传递
第4章 MATLAB编程基础——4.6 M文件中变量的检测与传递