第三节 位逻辑指令(一):常开触点、常闭触点、线圈输出、置位/复位指令(SR/RS)

好,咱们今天正式开始啃位逻辑指令这块硬骨头。说实话,这是PLC编程的基石,就像学武术要先练马步一样。你把这几个指令玩明白了,后面那些复杂逻辑才能信手拈来。

一、常开触点与常闭触点——最基础的“开关”

先说说常开触点。说白了,就是“平时断开,按下才通”。在梯形图里,它用两个竖线表示:—| |—。当它前面的条件为真(比如按钮被按下),它就闭合,电流才能流过去。

常闭触点正好相反,是“平时通着,按下才断”。符号是—|/|—。我刚开始学的时候,老是把这两个搞混。后来有个老工程师跟我说了句话,我记到现在:“你想想急停按钮,平时它得是通的,机器才能转。按下去断开了,机器才停。这就是常闭。”

嗯,这里要注意:在西门子S7-1200/1500里,常开触点的地址是I0.0这样的输入点,常闭触点也是同样的地址,只是逻辑取反。别以为常闭触点要换个地址,不是的。

核心记忆点:

  • 常开触点:条件满足时闭合(导通)
  • 常闭触点:条件满足时断开(不导通)
  • 两者可以互相转换——把常开触点取反就是常闭的逻辑效果

二、线圈输出——把结果写出去

线圈输出,符号是个括号—( )—。它的作用很简单:把逻辑运算的结果赋值给一个变量。比如你前面串了一堆触点,最后电流流到线圈,线圈对应的位就变成1,否则就是0。

我在项目里遇到过一个问题:有人把同一个线圈在程序里用了两次。你想想看,PLC扫描是从上往下执行的,后面那次赋值会把前面的覆盖掉。结果就是输出时好时坏,查了半天才发现是双线圈问题。所以记住:同一个线圈,在程序里只出现一次

我的习惯:给每个输出点单独用一个网络,前面把条件写清楚。这样排查故障时,一眼就能看到这个输出是怎么来的。

三、置位/复位指令(SR/RS)——带记忆的开关

线圈输出有个缺点:它没有记忆功能。条件没了,输出就跟着没了。但很多时候我们需要“按一下启动,机器一直转,直到按停止才停”。这时候就要用置位和复位指令了。

置位指令—(S)—:当它前面的条件为真时,把对应的位设为1,并且保持住。就算条件变回0,它还是1。

复位指令—(R)—:当它前面的条件为真时,把对应的位设为0,同样保持住。

这里有个容易踩的坑:SR和RS的区别。SR是“置位优先”,RS是“复位优先”。什么意思呢?如果置位和复位条件同时为真,SR指令会输出1,RS指令会输出0。

我曾经踩过的坑:有次做一台风机控制,启动和停止按钮同时被卡住了。我用的是SR指令,结果风机一直转,停不下来。后来改成RS指令,同时按下时优先停止,安全多了。所以安全相关的逻辑,我建议用RS(复位优先)。

四、知识体系结构图

下面这张图,把今天讲的几个指令的关系理清楚了。你保存下来,写程序时对照着看。

位逻辑指令知识体系 触点类 输出类 置位/复位类 常开触点 —| |— 常闭触点 —|/|— 线圈输出 —( )— 置位指令 —(S)— 复位指令 —(R)— 触点特性 • 常开:条件真则导通 • 常闭:条件假则导通 • 本质是读取输入/中间变量的状态 输出与置位/复位对比 • 线圈输出:无记忆,条件消失则复位 • 置位/复位:有记忆,保持状态 • SR置位优先,RS复位优先 应用场景建议 启停控制用RS(安全优先) | 报警记忆用SR(保持报警) | 中间逻辑用线圈输出

五、实战示例:风机启停控制

咱们拿一个最简单的风机控制来练练手。要求:按下启动按钮,风机转;按下停止按钮,风机停。就这么简单。

用线圈输出的写法:

网络1:风机启动
  启动按钮(I0.0)    停止按钮(I0.1)     风机输出(Q0.0)
——| |——————|/|—————————————( )——

用置位复位的写法:

网络1:风机启动(置位)
  启动按钮(I0.0)     风机输出(Q0.0)
——| |——————————————(S)——

网络2:风机停止(复位)
  停止按钮(I0.1)     风机输出(Q0.0)
——| |——————————————(R)——

两种写法都能实现功能。区别在哪?线圈输出的写法,如果启动按钮松开了,风机就停了——除非你加自锁。而置位复位写法,按一下启动,风机一直转,直到按停止。我个人习惯用置位复位做启停控制,逻辑更清晰,不容易出问题。

一个小技巧:如果你用线圈输出做自锁,记得把输出点本身的常开触点并联到启动按钮上。这样启动按钮松开后,电流还能通过自己的触点维持导通。这就是“自锁”的由来。

六、常见错误避坑

错误类型 现象 原因 解决方法
双线圈 输出时好时坏 同一个线圈在多个网络中被赋值 每个线圈只使用一次
SR/RS混淆 同时触发时逻辑错误 不清楚置位优先和复位优先的区别 安全逻辑用RS,报警逻辑用SR
常开常闭搞反 按钮按下没反应 把常闭当常开用了 对照硬件接线图检查
忘记自锁 手一松就停 线圈输出没加自锁触点 并联输出点的常开触点

好了,今天的内容就到这。这几个指令看着简单,但真到了现场,各种奇奇怪怪的问题都出在这些基础指令上。你回去把风机启停的两种写法都试一遍,感受一下区别。下次咱们接着聊定时器指令。


专注资料整理