各位老师好,我刚学习plc,在看书的时候看见的这个程序,我把ROL-B换成SHL-B或把T37换成T33以后在在线试机的时候就不正常了,具体是:把ROL-B换成SHL-B:只能从q0.0到q0.7循环一次,把T37换成T33:就根本就不能循环点亮Q0.0-Q0.7, 请高手帮我解释一下为什么会这样!先谢谢了!
答: 1、ROL-B 为循环左移指令,而SHL-B 为左移指令。故原用ROL-B(循环左移)指令编程编程,运行时当左移7此后,其 QB0=1000_0000,再循环左移 1 位,其QB0=0000_0001,即QB0最高位的“1”移到QB0的最低位,故程序会循环执行的。而用SHL-B (左移指令)代替ROL-B(循环左移)指令,运行时,当左移7次后,其 QB0=1000_0000,再左移 1 位,其QB0=0000_0000,即最高位的“1”移出、使QB0=0,故程序只能执行一次。 2、T33的分辨率为10mS, 而T37的分辨率为100mS, T37定时5实为500mS=0.5S,即左移间隔0.5S,人眼可以看到移动变化,而T33定时5实为50mS=0.05S,即左移间隔0.05S,移动间隔太短,人眼看不到移动变化。
T33设置5000,不是不行,而是定时时间太长(其定时为50秒):每左移一次QB0需等50秒后,QB0才可进行下一次左移,由于左移间隔时间太长,你没有用几分钟的时间进行观察它,是不会看到QB0左移的。正确的设置应为:T33的PT应设置50,其左移间隔才为0.5秒,即与用T37设置5时是一样的。 |