LabVIEW布尔值属性节点是变体的原因 点击:225 | 回复:0



fjczd

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:552帖 | 36回
  • 年度积分:703
  • 历史总积分:1294
  • 注册:2008年8月14日
发表于:2023-04-14 19:20:58
楼主

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

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

解决方案

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

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

布尔属性节点

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

相关信息

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

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

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




楼主最近还看过


热门招聘
相关主题

官方公众号

智造工程师