工控智汇

工控智汇

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

admin 110 140

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

真是印证了一个道理,越是简单的问题,争议越大。

没想到却一波一波的争议,各种质疑,非常不可理喻。

既然这样,那就再向下一点,下沉到最基本的SR/RS指令,来做个剖析。

PLC程序中通常有SR指令,RS指令,以及分开的单独的R和S指令。后者不提,只提前两者。

这两者有什么区别?

估计各位同行在学习PLC编程的第一天就遇到了。



编程手册上通常会教大家,RS指令,S指令在后面,S优先。而SR指令,R指令在后面,R优先。

然而“优先”这个关键词,估计那时候大家第一次听说,还有点烧脑。烧过之后,真的后面的编程设计工作反而没什么机会遇到,然而烧了这一回,很多人脑子中就形成了深刻的印象,也错以为是掌握了什么行业核心技能了。

指令的优先级,在编程中随处可见。比如数学运算符之间,都是有优先级的。


然而,在实际的工作中,通常很少有人会依赖于优先级进行编程。反而在一些编程规范中,会明确强调程序的易读性,禁止依靠优先级实现程序逻辑。

比如:


所以,一段别人写好的逻辑:


你没有必要从中读出还是优先级更高的潜台词,更没必要抬扛什么如果恰巧和同时发生,会有什么意外结果。并以此标榜自己发现了什么程序漏洞。因为很大的可能性是,实际现场中对这种偶然情形的发生根本不在乎。

因为,如果在乎,就应该直接在逻辑中体现,提醒编程者自己,也提醒后来的阅读者。


这时候,如果和同时发生,而逻辑上又确实有安全需求,不管后面使用的是SR还是RS,运行结果是一样的,都是以优先。


事实上,在SMART200和TIAPORTAL中,同样的梯形图符号SR和RS,优先级好像还是颠倒的。然而基于上述的规范,你根本没必要记忆和发现他们。

所以,结论是,对于一个规范程序的作者和阅读者,SR逻辑和RS逻辑没有区别。

茴香豆的四种写法,没有区别。随便用其中的一种即可。

忘了它们吧!