三菱FN2N plc 1加到100

为什么FOR K1也能算到5050,但是稍微慢一点,而K100就会秒亮。
我试了下,把FOR循环去掉也能实现,这是为什么,触点比较指令就自带循环了?

1:FOR K100 就FOR 和 NEXT 之间的指令执行100次后再执行NEXT后面的程序,这是在一个扫描周期内累加完成,所以很快。
FOR K1 就FOR 和 NEXT 之间的指令执行1次后疚执行NEXT后面的程序,这是在一个扫描周期内只累加了一次,累加完成需要100个扫描周期,所以慢。
2:至于你说把FOR去掉也能实现是因为你的D0<101的比较指令也是限制了你只累加到100就会停止。

此程序可优化1:去掉FOR NEXT指令功能也可实现但是慢,2:可以改为FOR K100,然后把D0<101的比较指令去掉也可,实现比较快,但是影响整个程序的扫描周期。追问

就是说执行完自加之后D0的结果送回去接着比较吗?

追答

程序是顺序执行的,每个扫描周期执行一次,自加完成后下一次扫描再比较

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-16
其实最简单的写法是
LD M8000
INC D0
LD= D0 K5050
OUT Y000

运行的结果是一样, D0都是在每个扫描周期内自动加1。
第2个回答  2013-12-16
因为你的触点比较指令是连续执行,即每个扫描周期执行一次.
相似回答