LinxVIEW论坛-斯科道

 找回密码
 立即注册
查看: 3126|回复: 2

状态机与事件结构结合参考体悟

[复制链接]

527

主题

737

帖子

2515

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2515
发表于 2021-11-24 16:45:02 | 显示全部楼层 |阅读模式
如图所示,原文链接,给了诸多信息提示,这技巧确实不愧为LabVIEW冠军!

状态机与事件结构结合.png
回复

使用道具 举报

527

主题

737

帖子

2515

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2515
 楼主| 发表于 2021-11-24 17:11:14 | 显示全部楼层
本帖最后由 Scadao 于 2021-11-24 17:28 编辑

行业格言:
属性节点是同步的,强制进行线程切换,因此成本很高。

大量的属性节点只能在 UI 线程中运行。整个操作系统只有 1 个 UI 线程,因此可能有很多进程在争夺它。因此,您可能必须等待执行。此外,在 UI 线程中运行所有内容会限制/停止并行化。
LabVIEW冠军回言:

UI 是为用户服务的,而不是为数据服务的。在LabVIEW中,“线是变量”(简化)。


干净的程序设计很少使用局部变量。始终可以直接连接到终端,您只需要发挥创意,不要将它们隐藏在结构堆的深处。(我上面的例子没有!)。保持和更新移位寄存器中的重要值,并在顶层图循环上读写终端


写入终端或终端的局部变量只会更新传输缓冲区(非常有效!)并且 UI 线程偶尔会更新指标(您的眼睛看不到每秒一百万次更新,因为屏幕刷新率是慢得多,UI 线程不需要执行得比这更快)。如果使用相同的代码并通过值属性节点更新值,则每次写入都需要切换到 UI 线程,更新值,并切换回普通线程进行下一次迭代。这要贵几个数量级!(顺便说一句,您可以将终端切换到“右键单击...高级...同步显示”。然后写入终端将停止数据流,直到前面板更新,给您类似的性能影响与 value 属性一样,所以不要这样做!!)。 当然,在这个演示中,甚至不将终端放在循环中会更合理。


回复 支持 反对

使用道具 举报

527

主题

737

帖子

2515

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2515
 楼主| 发表于 2021-11-24 17:34:58 | 显示全部楼层
LabVIEW冠军再次优化楼上图——
状态机与事件结构结合2.png
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|SCADAO  

GMT+8, 2022-10-5 17:15 , Processed in 0.656910 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表