北北sty
ARRAY[0-15] 其中2个bit 或者以上为1, 输出一个报警信号,使用SCL ,我使用FOR循环 然后累加的方式,做出来不太好使 ,有明白的给与指导。。。。
友情提示:打赏的积分将从您的工控网积分账号扣除
卖艺不卖萌
// 检查位数组中有多少个位为 1
FOR I := 0 TO 15 DO
IF Array[I] THEN
Count := Count + 1;
END_IF;
END_FOR;
// 如果有 2 个或更多的位为 1,则触发报警
Alarm := (Count >= 2);
回复本条
发表回复
北北sty楼主
谢谢
2024-08-20 09:37:45回复
jeffleaf
Count := 0;//加上这句,不然计数在扫描周期一直上涨
2024-08-20 09:37:53回复
Q458751110
习惯把Count := 0;放最前面
2024-08-20 09:38:03回复
被风吹起的落叶
最笨的方法,用ARRAY[0-15] 绝对地址"DXD >2 AND DXD<>4 AND DXD<>8,16,32,64,128,256,......32768.",不用费心思,还没有bug。
程序不光为了完成功能,还得考虑维护。
2024-08-02 15:29:03回复
回复 @卖艺不卖萌: 总共14个值,一眼看尽,不需要维护。
2024-08-03 08:03:45回复
嗯一开始用的这种
2024-08-20 09:38:16回复