第一句的意思是当SM2闭合的时候,把立即数7送到D4000数据存储器中,这里MOV是传送指令,我没学过信捷,SM2有可能跟西门子的系统特殊寄存器类似,有可能是在PLC上电的第一扫描周期ON,这样的话,就是在PLC初次扫描时,把7赋给D4000。
第二行这里有个M0串了个SM13上升沿,SM13就类同于西门子的SM0.5,半秒ON,半秒OFF,如果没有上升沿,SM13和M0在ON时就会执行下面的程序,那半秒ON的时候可能执行不止一遍程序,这是不可取的,所以要加个上升沿,这样只能执行一次,要再次执行,得上SM13 OFF后,再ON,这样就能使程序执行周期变成1秒。
接下来看一下下面程序执行情况:
第一句:R就是复位,就是把Y0[D0]的值复位,变成OFF。这句怎么理解,方括号里表示的是偏移量,如果PLC一上电,数据区里的存储体值如果没有设置掉电保持的话,它的初始值为0,Y0[0]表示的就是Y0。
第二句:INC D0,就是把D0的值加1后再送回到D0去,就是自增1。
第三句判断和赋值,如果D0大于D4000的话,执行后面的赋值语句,也即传送指令,现在的D4000的值为7,所以如果D0加到7后又加了后变成8时,条件满足,就会把D0的值变为1,其实这里有错,应该是0才对,要不然,第一盏灯Y0就不会亮了。
第四句就是把对应的灯点亮,置位指令,Y0[D0],就是以Y0为基地址,以D0为偏移量,把对应的输出置为ON.如果现在使Y3 ON了,第四盏灯亮了,它是最后一条指令,然后又会从头执行上面所有的指令。
最先一条把7赋值给D4000的指令因为不是首次扫描,就不执行了。
如果SM13没OFF,所有指令不执行,只有等SM13 OFF后,又SM13 ON的第一扫描周期,第会执行下面的四条指令。那是过了一秒后的事了,因为D0的值保持上次执行时的值,所以把上次值位的,现在复位了,这样Y3 ON了一秒。
|