PLC数据采集机制
今天上午,在“找答案”栏目,看到一个提问,其中心思想是关于程序的扫描、采集工作机制。我看了问题,具有一定的代表性,于是,根据提问的程序,简约了一下程序段,来做一次分析验证,图示:

程序非常简单,在传送指令网络段前和后,我分别写了2个简单的输出,并通过强制的手段使Q0.4~Q0.7输出 = 1(实际的硬件是一致的,4个输出指示灯是亮的)。但是,传送到VW102变量地址中,且且只是V102.6 ~ V102.7 = 1,是什么原因?同样的强制输出,为什么只能是传送指令后面的程序段有效,而传送指令前面的网络段无效呢?
我对此的理解是:当我将4个输出变量地址强制了的那个周期,网络3,因为此时M0.0 = 0,所以,把本来已经强制输出为1的状态值,由于M0.0 = 0,相当于把原来的输出1状态,由0值覆盖掉了,而网络5的强制输出,同样也是M0.1 = 0的状态,当程序采集到网络4时,仍然有输出?实际上理解这个问题非常简单,程序是自左而右,自上而下的扫描采集的,当网络4在执行传送指令时,网络5的M0.1 = 0还没有机会把0值覆盖到强制值中。
验证我上述理论的只要把M0.0 = 1,就可以得到结果,图示:

能够使能V102.4 ~ V102.5 = 1,是因为此时,M0.0 = 1使能了2个输出,就是把M0.0 = 1的状态值分别写入到Q0.4 ~ Q0.5中。
此程序具有一定的代表性,以此简单的程序来说明PLC程序的扫描、采集和运算过程。