如何在LabVIEW中实现更优雅的阵列图示与指定循环LED亮灯逻辑
LabVIEW循环亮灯需求的优雅实现方案
参考示意图:
核心实现思路
摒弃逐阶段硬编码为LED赋值False的方案,采用预定义亮灯序列+状态机的通用逻辑实现,不管循环到多少阶段都无需额外改写控制逻辑。
具体实现步骤
- 先将前面板所有LED控件打包为一维数组,为每个LED分配唯一索引,例如:0=站点A、1=w、2=w2、3=站点B、4=w3、5=w4、6=站点C、7=w5、8=站点D、9=站点E
- 按照要求的亮灯顺序,预定义索引序列常量:
[0,1,2,3,2,4,5,6,5,7,8,7,5,4,9,4,2,1,0],序列长度为19,刚好走完一轮回到起始点站点A - 程序循环中添加移位寄存器存储循环计数,每次循环计数加1后对序列长度取模,用得到的下标读取预定义序列,拿到当前需要点亮的LED索引
- 遍历LED数组,仅将索引匹配的LED赋值为True,其余所有LED统一赋值为False,直接输出到前面板控件即可
可选优化方案
- 若需要调整单个LED的点亮时长,可将预定义序列改为二维数组,每个元素同时存储LED索引和对应停留时长,每次循环按指定时长等待即可
- 后续若要修改亮灯逻辑,仅需调整预定义的序列数组,无需修改后续控制逻辑,扩展性极强
内容的提问来源于stack exchange,提问作者DavisDeepwater
相关产品推荐
相关产品推荐

