8个不带自锁按钮,点亮8个指示灯,采用SCL语言写了个循环程序,但是测试时无法实现目的:按钮的功能是按一次点亮一盏灯,再按一次灯熄灭。修改了半天发现没有找出问题出在哪里,还请群友们帮忙看看,欢迎指正,不胜感激!
FOR #k := 0 TO 7 BY 1 DO
#a := PEEK_BOOL(area := 16#83, dbNumber := 0, byteOffset := ((#k+1080) / 8), bitOffset := ((#k+1080) MOD 8));//模拟按钮操作
#b := PEEK_BOOL(area := 16#83, dbNumber := 0, byteOffset := ((#k+1088) / 8), bitOffset := ((#k+1088) MOD 8));//读取中间状态
"R_TRIG_DB"(CLK := #a, Q => #m);//判断上升沿
#b:= (#b XOR #m);//进行逻辑运算
POKE_BOOL(area := 16#83,
dbNumber := 0,
byteOffset := ((#k+1088) / 8),
bitOffset := ((#k+1088) MOD 8),
value := #b);//中间状态保存
IF #b THEN
POKE_BOOL(area := 16#82,dbNumber := 0,byteOffset := (#k / 8),bitOffset := (#k MOD 8),value := 1); //点亮指示灯
END_IF;
END_FOR;