level 9
M0-M7对应Y0-Y7七个灯。如果我按135顺序按键,那么他就按135顺序闪烁,不能有多个灯一起亮的情况。12345就12345顺序。如果一个按钮都没按,所有灯都不亮。每个灯的闪烁时间可以自由更改,例如136,我第一个灯设置的时间为0.6,那么他就亮0.6S然后往下循环,第二个灯设置6S。那么那个灯就亮六秒。第三个灯设置一秒他就亮一秒,然后不断的循环,如果途中某个灯亮的时间很久,我选择关闭此灯,那么他将直接熄灭,下一个灯将点亮。总之能随时增加灯或者减少灯。中途增加,那么循环中就会自己增加。
2019年09月23日 05点09分
1
level 7
他的意思就是按123,突然加个4。然后程序里面也会加个4,变成1234。是这个意思吧?
2019年09月23日 09点09分
3
level 9
如果要按你的输入顺序来亮灯的话,是不是得有一个中间插入和删除的功能?如果有插入和删除的功能,你必有一个现行点的选择,现行点的延时,所以我认为你是简单的开关某个点而已,代码如下,
CASE step1 OF
0 : (*初始化 & 等待启动*)
step2 := 0;
temptime := 0;
ZRST( TRUE , Y0 , Y7 );
IF start THEN
step1 := step1+1;
END_IF
;
1:(*点亮输出*)
输出[step2] := 条件[step2];
IF 条件[step2] THEN
INC( M8013 , temptime );
IF temptime >= stime[step2] THEN
输出[step2] := FALSE;
step1 := step1+1;
END_IF;
ELSE
输出[step2] := FALSE;
step1 := step1+1;
END_IF;
;
2:(*复位计时器 & 程序指针+1 & 判断指针大小*)
temptime := 0;
step2 := step2+1;
IF NOT (stoping) THEN
IF step2 <= 7 THEN
step1 := 1;
ELSE
step2 := 0;
step1 := 1;
END_IF;
ELSE
start := FALSE;
stoping := FALSE;
step2 := 0;
END_IF
;
END_CASE ;
2019年09月24日 01点09分
12