小白同学一直不明白变量存储区V和位存储区M的区别,今天特意查了手册才算有点收获。手册是这样说明的:以下是引用内容
变量存储区:V
可以用V存储器存储程序执行过程中控制逻辑操作的中间结果,也可以用它来保存与工序或任务相
关的其它数据。并且可以按位、字节、字或双字来存取V存储区中的数据。
位存储区:M
可以用位存储区作为控制继电器来存储中间操作状态和控制信息。并且可以按位、字节、字或双字来
存取位存储区。
原来V一般用了存储逻辑结果,而且是中间结果。M主要作为控制继电器来用,也是用来存储中间结果,而且并不局限于位,字节、字、双字都可以的。这样V和M确实没有太大的区别呀,只是编程时大家都按照大众的约定来用。
V对应的英文是变量,M对应的英文是中间。
从字面含义就能区分使用范围了。
V 区更大,常常作为字、双字使用,表示整数、实数等。
M区较小,常常作为位使用,作为plc内部的中间继电器,表示内部的线圈和触点。
西门子s7-200左右移位问题
各位老师好,我刚学习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时是一样的。
(责任编辑:admin) |