plc的工作原理就是循环扫描,程序从头到尾执行一次为一个周期,执行一个周期之后,再次扫描一次,如果有变化量,会在扫描周期结束后刷新程序结果。
除了一些特殊指令外(如立即指令),基本上所有的程序结果都不会再扫描周期中间改变输出。
就像你在转圈检东西,你刚转过的地方出现了一个东西,你又不能反转,那你怎么去检刚出现的?你只有继续转一圈之后才能检得到,而转的过程中你的东西(映像寄存器)没有变化,地上的东西(输入)已经变化了,只有你下一转检到地上的东西,你的东西才有变化。
这样说你明白不?
在程序执行阶段和输出阶段,输出映像寄存器与外界隔离,即使外部输入信号的状态发生了变化,输入影响寄存器的内容也不会随之改变。变化的状态只能到下一个扫描周期的输入采样阶段才被读入。
输入输出映像区都是一个周期只扫描一次的,本次扫过后如果发生变化只能下次扫描才能生效,除非你用读写外设指令PIW/PQW等直接操作