仪器社区

PLC编程问题?有关SFTLP的。

lixin2019 2013-07-13
看不懂的是连续左移指令部分,为什么后面输出分别是M10 M21 M32,左移指令是怎么输出的
评论
全部评论
5我来自霸都
首先解释一下SFTL命令。
SFTL X1 M10 K2 K1
X1是输入信号,M10是存储信号的diyi位,K2是指存储信号区域的大小,这里K2代表2个位,也就是M10,M11,Z后的K1代表每次移动的位数。
当X0按下时,X1的状态送入M10,当X0再次按下时,X1的状态送入M10,原先M10的状态送入M11。
再来看看M20那段,于是一样的道理,只不过因为是K3,所以存储区域是M20,M21,M22组成。后面的M30那段也类似。

现在讲讲工作过程:(假设X1在X0diyi次按下前为On,其余时间段为Off。)
X0diyi次按下,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输出了。

如果画个二进制图,会很容易理解
diyi次
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只能在X10diyi次按下前为On,且5次后能够再次为On,如果不是这种情况,将出现运行时的混乱。
16 0 2017-12-16 0条评论 回复
chipin98
这就是PLC程序信号同机械状态同步传递的做法 ,很好明白啊,
6 0 2013-07-14 0条评论 回复
您可能感兴趣的社区主题
加载中...
发布 评论