【发布时间】:2019-11-20 03:20:27
【问题描述】:
在每秒执行的程序循环中,我有 4 个if 条件与名为ValveActive(从1 变为4)的变量相关联。
每个if 条件为真5 分钟。在每个if 条件中,我需要在定义的时间内将布尔值PortSet 设置为true,然后将其设置为false。我希望打开布尔值的过程在循环重复时不重复。布尔值表示打开继电器然后将其关闭,我希望在每个唯一 ValveActivestate 的持续时间内只发生一次。
Start of loop
If ValveActive=1
PortSet(9,1) 'Activate port
'Do something
Delay (1,25,mSec)
PortSet(9,0) 'Deactivate port
ElseIf ValveActive=2
PortSet(9,1)
'Do something
Delay (1,25,mSec)
PortSet(9,0)
ElseIf ValveActive=3
PortSet(9,1)
'Do something
Delay (1,25,mSec)
PortSet(9,0)
Else
PortSet(9,1)
'Do something
Delay (1,25,mSec)
PortSet(9,0)
EndIf
Loop
我尝试将循环外的布尔值设置为 false,然后在循环内将其设置为 true,但这不适用于多个 if 条件。我怎样才能做到这一点?
【问题讨论】:
标签: loops if-statement boolean state-machine