发表于:2022/6/13 10:10:48
#0楼
0612 【万泉河】浅议PLC程序中SR和RS逻辑的区别
真是印证了一个道理, 越是简单的问题,争议越大。
这段时间连着写了几篇文章, 关于双线圈, 关于启保停等等,都是很基础的概念问题。 原本也没觉得有什么亮点。 也只是在一些直播视频讲座时灵机一动想到的,都是顺便一提, 提完了听众都听懂了。 然而觉得有必要写下来,给初学者有做启发和帮助。
没想到却一波一波的争议,各种质疑,非常不可理喻。
既然这样,那就再向下一点,下沉到最基本的SR/RS指令,来做个剖析。
PLC程序中通常有SR指令, RS指令, 以及分开的单独的R和S指令。后者不提,只提前两者。
这两者有什么区别?
估计各位同行在学习PLC编程的第一天就遇到了。
编程手册上通常会教大家, RS指令, S指令在后面, S优先。 而SR指令, R指令在后面, R优先。
然而“优先”这个关键词, 估计那时候大家第一次听说, 还有点烧脑。 烧过之后,真的后面的编程设计工作反而没什么机会遇到,然而烧了这一回, 很多人脑子中就形成了深刻的印象,也错以为是掌握了什么行业核心技能了。
指令的优先级,在编程中随处可见。 比如数学运算符之间,都是有优先级的。
然而,在实际的工作中, 通常很少有人会依赖于优先级进行编程。 反而在一些编程规范中, 会明确强调程序的易读性,禁止依靠优先级实现程序逻辑。
比如:
所以,一段别人写好的逻辑:
你没有必要从中读出I0.0还是I0.1优先级更高的潜台词, 更没必要抬扛什么如果恰巧I0.0和I0.1同时发生,会有什么意外结果。并以此标榜自己发现了什么程序漏洞。 因为很大的可能性是, 实际现场中对这种偶然情形的发生根本不在乎。
因为,如果在乎,就应该直接在逻辑中体现,提醒编程者自己,也提醒后来的阅读者。
这时候, 如果I0.0和I0.1同时发生,而逻辑上又确实有安全需求,不管后面使用的是SR还是RS, 运行结果是一样的,都是以I0.1优先。
事实上, 在SMART 200和TIA PORTAL中, 同样的梯形图符号SR和RS, 优先级好像还是颠倒的。 然而基于上述的规范, 你根本没必要记忆和发现他们。
所以,结论是,对于一个规范程序的作者和阅读者, SR逻辑和RS逻辑没有区别。
换个说法给你吧:你做程序的时候需要(养成这样的习惯)做到两者没有区别,可随意互换。
茴香豆的四种写法, 没有区别。 随便用其中的一种即可。
忘了它们吧!
附图全文:
真是印证了一个道理, 越是简单的问题,争议越大。
这段时间连着写了几篇文章, 关于双线圈, 关于启保停等等,都是很基础的概念问题。 原本也没觉得有什么亮点。 也只是在一些直播视频讲座时灵机一动想到的,都是顺便一提, 提完了听众都听懂了。 然而觉得有必要写下来,给初学者有做启发和帮助。
没想到却一波一波的争议,各种质疑,非常不可理喻。
既然这样,那就再向下一点,下沉到最基本的SR/RS指令,来做个剖析。
PLC程序中通常有SR指令, RS指令, 以及分开的单独的R和S指令。后者不提,只提前两者。
这两者有什么区别?
估计各位同行在学习PLC编程的第一天就遇到了。
编程手册上通常会教大家, RS指令, S指令在后面, S优先。 而SR指令, R指令在后面, R优先。
然而“优先”这个关键词, 估计那时候大家第一次听说, 还有点烧脑。 烧过之后,真的后面的编程设计工作反而没什么机会遇到,然而烧了这一回, 很多人脑子中就形成了深刻的印象,也错以为是掌握了什么行业核心技能了。
指令的优先级,在编程中随处可见。 比如数学运算符之间,都是有优先级的。
然而,在实际的工作中, 通常很少有人会依赖于优先级进行编程。 反而在一些编程规范中, 会明确强调程序的易读性,禁止依靠优先级实现程序逻辑。
比如:
所以,一段别人写好的逻辑:
你没有必要从中读出I0.0还是I0.1优先级更高的潜台词, 更没必要抬扛什么如果恰巧I0.0和I0.1同时发生,会有什么意外结果。并以此标榜自己发现了什么程序漏洞。 因为很大的可能性是, 实际现场中对这种偶然情形的发生根本不在乎。
因为,如果在乎,就应该直接在逻辑中体现,提醒编程者自己,也提醒后来的阅读者。
这时候, 如果I0.0和I0.1同时发生,而逻辑上又确实有安全需求,不管后面使用的是SR还是RS, 运行结果是一样的,都是以I0.1优先。
事实上, 在SMART 200和TIA PORTAL中, 同样的梯形图符号SR和RS, 优先级好像还是颠倒的。 然而基于上述的规范, 你根本没必要记忆和发现他们。
所以,结论是,对于一个规范程序的作者和阅读者, SR逻辑和RS逻辑没有区别。
换个说法给你吧:你做程序的时候需要(养成这样的习惯)做到两者没有区别,可随意互换。
茴香豆的四种写法, 没有区别。 随便用其中的一种即可。
忘了它们吧!
附图全文:
附件:
[本地下载][此贴子已经被作者于2022/6/17 22:48:11编辑过]
PLC标准化编程