恭喜,你发布的帖子
发布于 2020-06-07 16:39:11
32楼
STL实在弄不出来,搞了个SCL的,我贴出来希望大神门给个建议。
FOR #i := 0 TO #max DO
IF #Alarm[#i] AND NOT #Alarm_buf[#i] THEN
#beep := 1;
EXIT;
END_IF;
END_FOR; // 判断是否有新的报警产生,产生新报警就置位蜂鸣器,并结束循环
#Num := 0;
FOR #j := 0 TO #max DO
IF #Alarm[#j] THEN
#Num := #Num + 1;
END_IF;
#Alarm_buf[#j] := #Alarm[#j];
END_FOR; // 判断数组里面报警的数量并把新的报警数组赋值给旧的报警数组
IF #Num <> 0 THEN
#lamp := 1;
ELSE
#lamp := 0;
END_IF; // 报警个数不为0就点亮报警灯
IF (#Ack AND NOT #temp1) OR (NOT #lamp) THEN
#beep := 0;
END_IF; //报警消声,当报警全部离开报警灯灭,蜂鸣器也停止
#temp1 := #Ack;
每次进论坛都以为有人点评了,原来我是提供场地给其他人讨论其他事情的。
你的程序有两次循环,虽然第一个循环不一定遍历,但是也用不着两次呀。
还有消声和灭灯逻辑有问题呀,不能报警消失就自动灭灯嘛,那要确认干什么?
请填写推广理由:
分享
只看
楼主