怎样理解西门子PLC置位和复位指令?

R


说一点我个人的看法吧:

置位和复位指令是PLC中最常见也最常用的PLC指令,基本的含义就是置位为1,复位为0。通常置位指令和复位指令是成对出现的,这样一个布尔变量也就是位变量,就有了被写为1和被恢复为0状态的2个触发指令;并且在实际使用中使用置位和复位指令中,也经常配合边沿指令使用。--当然,并非一定要求成对使用和配合边沿指令使用,需要结合实际情况!

因为你也没有说哪个系列的PLC,因此我就用西门子200PLC来说明一下置为和复位指令,先看一段程序:

这段程序是为了答题随意写的程序,不够严谨,但是可以说明问题。程序网络1,输入点I0.0接通一次就会使得M0.0被置位为1,在网络2中M0.0就一直接通,导致Q0.0一直接通,如果Q0.0是驱动一个指示灯,那么指示灯会常亮一段时间。I0.0接通一次M0.0就一直为1了,但是I0.0每次接通的时候都会使得VB0这个字节值自增1。

到网络3处,VB0的值=30时就会使得M0.0复位为0,Q0.0驱动的指示灯也会熄灭!同时因为复位指令还复位了V0.0开始的8个位,这样也就实现了VB0被复位为0。--可能一些初学的小伙伴对这个复位指令下边写8有点不理解,因为V0.0-V0.7就是8个位,当8个位都为0的时候,这个VB0字节就肯定为0了。

就着这里的8,来研究一这个8的位置处,最大值是多少?最大值是255。也就是说如果我这里写255的话,那么就是复位V0.0-V31.6。有怀疑的小伙伴们可以自己做试验去验证一下!

从这个程序可以看到,SET置为指令就会使被置为的点置为为1,其节点也会接通。在被置位后,如果没有被RESET复位,那么这个点就一直是为1状态一直接通的。用上升沿这样的指令是为了保证VB0=30那一次扫描中就能立马将复位指令之行一次!在某些时候,如果不用边沿指令,那么你的点可能是多个扫描周期都置位为1了/或者多次被复位为0,会让程序看上去有点不正常,所以边沿指令尽量多加,当然这只是个人建议!

还可以看到,我上边用的SET M0.0,后边就用RESET M0.0,在实际使用中最多的就是对一个点置为了,就不要忘记对其复位,尽量保证他们成组出现,对程序以及理解程序都有好处!

还需要多说的是在西门子200PLC中RESET指令,除了置位/复位M0.0,V0.0这样的变量之外还可以对C计数器和T定时器的线圈值起到清零的作用,就像把0 MOVE 给它们一样。--注意,我这里说的只是RESET复位指令!

最后,还有一点就是SET指令也是可以一次性置位255个位变量的,比如吧V0.0开始到V31.6全部都置位为1。


就说这么多了,希望对你有点帮助,还有问题敬请关注+留言,谢谢!


控制研究控


置位就是相当于就是把这个线圈一直接通,复位就是把这个线圈断开。在置位接通的状态下,不管你是不是接通信号,都是一直接通,直到给他一个复位信号才会解除这个状态!


棽荞


很高兴回答你的问题,西门子有置位复位这么个块用于处理有些需要不间断有信号或者无信号的输出点。

当是SR触发器时,是置位优先选择,意思及时,当S出前段条件都满足时,触发器块所表示的这个输出点有输出。当R处次时也有信号时,也就是SR两个信号都有时,块的输出点以S前满足的条件为准及为有输出为1,当S前段无信号,R无信号,块仍保持输出。当S无信号。R有信号,则块输出以R处为准,处于复位状态及为0,无输出。

当是RS触发器时。以R和S都有信号的时候。以R处信号优先,复位。及块输出为0,无输出,RS触发器就是R位为1,时以R优先,此时块输出为0,R无信号,则以S信号为准。S有信号,块有输出,S无信号,块无输出。




科技电气篇


置位就是对位寄存器进行写1操作。

复位就是对位寄存器进行写0操作。


目瞪狗呆3亿元粉


西门子PLC的置位指令 SET 是将位元件置1 有输出 复位指令REST 是将位元件置0 无输出


美好心情2020


从名字就可以理解呀多读几遍


分享到:


相關文章: