课程中心
HOME
课程中心
正文内容
plc编程sr大法 0615 「万泉河」PLC程序中SR逻辑的本质
发布时间 : 2025-03-14
作者 : 小编
访问数量 : 23
扫码分享至微信

0615 「万泉河」PLC程序中SR逻辑的本质

0615 【万泉河】PLC程序中SR逻辑的本质

看到题目, 很多读者可能不久前刚刚看过我的文章,关于启保停的本质,这里的答案脱口而出, 启保停啊!

你万老师还有没有的玩, 一个话题翻来覆去炒冷饭, 有意思吗?

嗯,有。

写上一篇关于启保停的本质的文章, 本意是针对刚毕业的年轻后生的, 把行业里的一个上古时代的名词解释给年轻人听,让他们了解了之后不再困惑,从此可以放开手脚用全新的思维逻辑方法来做PLC程序。

然而没想到,文章发布,却惹恼了一大批原本搞继电器逻辑的行业前辈。有一些前辈会想, 我搞了大半辈子继电器逻辑了,接过的启保停控制柜的线都可以绕地球小半圈了, 用得着你来告诉我启保停的本质?

所以, 确实是我错了。 我语序颠倒了。

就好比自行车发展发展进化成了摩托车, 电动自行车, 我说什么自行车的本质是摩托车,这是不对的,不可以说祖宗的本质是孙子,而应该倒过来说孙子的本质是祖宗, 电动自行车的本质是自行车,然后可能就不会那么惹前辈们生那么大的气了。

前几天,我发起的关于启保停与SR逻辑能否互相替换的投票:

https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1765618&b_id=50&s_id=0&pno=1

yanxiao老师的回复中有截图,把SMART 200的SR逻辑转换成STL, 都给发上来了。 说实话,我以前做程序也都是只用LAD, 即便有偶尔转换到STL,也只是出于编辑功能的用处。从来没有正眼好好看过。 这次看了截图,就被惊呆了, 转换之后虽然多了一些复杂的堆栈处理的指令,但本质上看得出, 那就是启保停啊!

即,SMART 200的SR逻辑在STL格式下,就是用的启保停,而未使用S或者R指令。 我甚至还以为它在STL下连S 和R指令都没有呢。然而事实上是有的。

S指令优先的SR:

以STL显示:

我把其中的每一句指令功能都研读搞懂之后,再以梯形图方式表达出来, 是这样:

这是妥妥的启保停啊!只要I0.1不导通, Q0.0就长时间自保持。

然后更有意思的是复位优先的SR逻辑:

转换后:

语法稍微复杂一些了, 换用LAD再抄写出来, 是这样:

这里我只是原样抄写, 实际在LAD中编译是不通过的,因为前面直通不符合语法。需要分到2个NW才可以。 当然可以加个SM0.0, 而到PORTAL中这样写也没有问题。

注意,这其中的两个线圈(外形上的),是有先后顺序的,你不可以简单把他们拼起来做成3行的OR逻辑。

而如果要拼,可以横着拼接为:

这里面两个I0.1有些重复,完全可以去掉前面的一个而逻辑结果不影响:

就变回成为最标准最原始的启保停逻辑了。

而在我们拼接之前,它其实是两段启保停逻辑。证明, 你即便对同一个Q点(或者M点)连续做多次的启保停控制, 也不存在双线圈语法错误。 而其实西门子原本早就在这么做了。 早在30年前,甚至可能在S7-200还未被西门子收购的时候。

用启保停开关逻辑来搭出来SR逻辑, 这是远古时代的事。那时候PLC还刚刚诞生, 继电逻辑还没完全断奶。

而等到TIA PORTAL面世, 一切语言都是以SCL为基础了, STL被彻底抛弃, 甚至LAD都是基于SCL了,对于一个SR逻辑功能,在SCL中会是如何写的呢?

有两种写法:

第一种是严格照抄的启保停的逻辑:

Q0.0 := (Q0.0 OR I0.0 ) AND NOT I0.1;

这种一口气写成的程序, 信息密度太大, 读起来有一种喘不过气的压迫感。 这里还是最简单的逻辑条件。

而第二种方式以IF 语句写成的则简单清晰多了:

IF I0.0 THEN

Q0.0 := TRUE;

END_IF;

IF I0.1 THEN

Q0.0 :=FALSE;

END_IF;

后一种方法,还有一个特点, 对系统的调用环境要求宽松多了。

前一种逻辑依赖于OB1的循环, 需要每个周期都扫描运行到,然后才能根据信号的变化及时计算得到新的结果。

而后一种方法,甚至可以只在I0.0 和I0.1变化的时候调用执行一次,其余时间, 程序不被调用,也可以,程序的运行结果都不受影响。

所以,不仅仅IF THEN语句带有高级语言的特性,这里甚至隐隐约约都带有基于事件的编程方法了。这一点, 在面向对象的高级语言编程中,经常遇到。 而对于大学课堂学过高级语言,自带高级语言属性的毕业生,来从事工控行业就简单多了。

所以,今天的题目, SR逻辑的本质,其实有两个答案。 向左看, 本质是启保停, 向右看, 本质是IF THEN。

所以,SR是继电器逻辑与计算机语言编程的交集、最大公约数、分水岭。

画个图表示:

PLC从继电器逻辑诞生, 然而在诞生之日起就不断在成长进化,我们现在回过头看它啥时候具备了乌鸡变凤凰的特质了呢?

大概是从具备了SR逻辑的时候。

当然,后来还进化出了函数, 功能块等各种接近于计算机的功能,以及支持面向对象的各种特征方法之后,加之以内存和工作存储区越来越大, CPU计算能力越来越高,才逐渐可以认为就是一台计算机了。

0612 【万泉河】浅议PLC程序中SR和RS逻辑的区别

0610 【万泉河】S7-1200 PLC中实现WINCC报警

0527 【万泉河】PLC程序中启保停的本质

【万泉河】面向企业的PLC系统设计编程标准化培训

图解WANQ-Y1更改WIFI网络

一位新加入三菱标准化的学员

0503 【万泉河】王者归来:完美报表谢幕后又要回来了。

0428 【万泉河】PLC编程:谈虎色变双线圈

0426 【万泉河】论PLC程序的可移植性(上):关于移植的定义

0417 【万泉河】三菱标准化程序打印版

0416 【万泉河】PLC标准化编程烟台方法的本质是颠覆

《PLC标准化编程原理与方法》已出版发行, 各大网上书店有售。

MCGS-OPC UA初体验

0407 【万泉河】汽车行业标准SICAR本质上是对自动化工程师的羞辱

0402 【万泉河】论工控行业中工艺的重要性

0407 SICAR程序获取方式

PLC编程,置位优先SR和复位优先RS到底该怎么选

学习PLC都知道CPU的是从上至下逐级、循环扫描的,也就不存在两条指令同时执行。

所以线圈格式的置位、复位指令有优先级。SR 触发器与 RS 触发器的置位输入和复位输入在同一条指令里,置位和复位输入谁在指令输入端的下面谁后执行。

置位优先触发器SR

功能: 置位双稳态触发器,置位优先。

逻辑关系: Q1=(NOT RESET AND Q1) OR SET1

PS:SET1为置位信号,RESET 为复位信号。

解析: 当 SET1 为“1”时,不论 RESET 是否为“1”,Q1 输出都为“1”;

当 SET1 为“0”

时,如果 Q1 输出为“1”,一旦 RESET 为“1”,Q1 输出立刻复位为“0”。如果 Q1 输出为

“0”,不论 RESET 为“1”或者“0”,Q1 输出保持为“0”。

时序图&状态表

示例: 某系统需要一个停机信号,并要求系统出现故障后要求马上停机,控制设备停机的

输出信号为 bStopMachine,如该变量被置位“1”,让需要让系统安全停机。否则可以正常运行。

设备的运行信号为 bRun,当系统中如出现任一故障 bError 会被置位“1”。

因为 bError 的优先权高于 bRun,故 bError 需要对应置位优先,

只有当没有故障时,bRun为 ON才有意义。

复位优先触发器RS

功能: 复位双稳态触发器,复位优先。

逻辑关系: Q1=NOT RESET1 AND (Q1 OR SET)

PS:SET 为置位信号,RESET1 为复位信号。

解析: 当 RESET1 为“1”时,不论 SET 是否为“1”,Q1 输出都为“0”;

当 RESET1 为“0”时,如果 Q1 输出为“0”,一旦 SET 为“1”,Q1 输出立刻置位为“1”。如果 Q1 输出为“1”,不论 SET为“1”或者“0”,Q1输出保持为“1”。

时序图&状态表

编者旨在与各位工控同学一起学习交流,欢迎关注转发留言收藏

相关问答

西门子plcsr指令讲解?

西门子PLC的PLCSR指令是用于设置或复位PLC的控制寄存器的指令。这个指令的作用是通过设置或复位控制寄存器来实现对PLC的控制。具体来说,PLCSR指令可以用来设...

plc程序SR和RS是什么意思?

功能不同。SR指令:复位优先型触发器。它有两个输入S和R,一个输出Q。现用0和1分别表示信号的高低电平RS指令:RS触发器和SR触发器和大体一致,但当S=1,R=1时...

sr20plc编程步骤?

编程SR20PLC的步骤如下:1.准备工作:确保SR20PLC已经正确安装和连接,并且具有适当的电源供应。2.安装编程软件:在个人电脑上安装SR20PLC的编程软件,例如SR2...

西门子plc中sr触发器有什么用?

1.SR触发器这个指令是复位优先型触发器。它有两个输入S和R,一个输出Q。我们用0和1表示信号的高低电平。下面是程序中出现的几种情况:(1)S=0,R=0时,Q保持...

西门子plc型号sr和cr区别?

西门子PLC型号中的SR和CR代表不同的系列和版本。SR系列是西门子S7-200系列中的一部分,其中的PLC可以分为三个不同的类型:SR22、SR33和SR42。这些型号主要用于...

cpusr60plc怎么接线?

cpusr60plc是松下Panasonic推出的一种PLC型号,在接线方面可参照以下步骤:1.接好电源:CPUSR60PLC一般需要24V直流电源,将正负极导线连接到PLC的电源端子即可...

西门子200smart继电器输出的CPUSR类型的怎么脉冲输出?

继电器输出的开关频率很低,正常的开关切换是没有问题的。如果需要脉冲输出还是用晶体管输出的plc吧继电器输出的开关频率很低,正常的开关切换是没有问题的。...

srer是什么指令?

RST是Reset的缩写,这是个复位指令,用于复位位软元件的状态到off状态,复位定时器与计数器和数据寄存器到0的状态。扩展资料PLC的常见基本指令:1、...RST是R...

西门子中rs指令模块是什么意思?

西门子PLCSR和RS触发器以西门子PLCS7-300系列为例,编程软件为STEP7V5.5SP2,其中的指令SR触发器和RS触发器的说明如下:1.SR触发器这个指令是复位优先型触发器...

sr触发器的三种功能?

SR触发器(Set-ResetFlip-Flop)是一种常用的触发器,用于存储和传输二进制数据。它具有以下三种功能:1.存储功能(LatchFunction):SR触发器可以将输入的数...

 张梓涵  伦永亮 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部