PLC编程问题?有关SFTLP的。

看不懂的是连续左移指令部分,为什么后面输出分别是M10 M21 M32,左移指令是怎么输出的

首先解释一下SFTL命令。
SFTL X1 M10 K2 K1
X1是输入信号,M10是存储信号的第一位,K2是指存储信号区域的大小,这里K2代表2个位,也就是M10,M11,最后的K1代表每次移动的位数。
当X0按下时,X1的状态送入M10,当X0再次按下时,X1的状态送入M10,原先M10的状态送入M11。
再来看看M20那段,于是一样的道理,只不过因为是K3,所以存储区域是M20,M21,M22组成。后面的M30那段也类似。

现在讲讲工作过程:(假设X1在X0第一次按下前为On,其余时间段为Off。)
X0第一次按下,X1的状态送入M10,M20,M30,由于M10被触发,所以Y1输出了。
X0第二次按下,X1的状态再次分别送入M10,M20,M30,原先上述寄存器的数据被分别送入M11,M21,M31,那么M11,M21,M31都为On,但是只有Y2输出了。
同理,第三次按下后,M11,M21,M31的数据分别丢弃,M22,M32,Y3输出了。

如果画个二进制图,会很容易理解
第一次
M10,M11 : 1 0
M20,M21,M22: 1 0 0
M30,M31,M32,M33: 1 0 0 0
第二次
M10,M11 : 0 1
M20,M21,M22: 0 1 0
M30,M31,M32,M33: 0 1 0 0
第三次
M10,M11 : 0 0
M20,M21,M22: 0 0 1
M30,M31,M32,M33: 0 0 1 0
第四次
M10,M11 : 0 0
M20,M21,M22: 0 0 0
M30,M31,M32,M33: 0 0 0 1
第五次
M10,M11 : 0 0
M20,M21,M22: 0 0 0
M30,M31,M32,M33: 0 0 0 0

因此,这个程序能够正常完成旋转工作台的前提是:X1只能在X10第一次按下前为On,且5次后能够再次为On,如果不是这种情况,将出现运行时的混乱。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-14
这就是PLC程序信号同机械状态同步传递的做法 ,很好明白啊,
相似回答