技术论坛

 我对单钮启停的一点认识

返回主题列表
作者 主题
winter938
奇侠

经验值:8971
发帖数:1438
精华帖:25
楼主    2021-12-08 13:42:10
主题:我对单钮启停的一点认识 精华帖  精编帖 

这个话题几乎每个论坛每个人都会碰到,试着用图片表述一下我的认识。就本质上说就是异或的逻辑运算,具体实现是可以多样的。200系统的RS,SR指令实现我也试了一下,转换成STL 语句更能看到一些问题。






工控爱好者
Zane
至圣

经验值:62404
发帖数:17478
精华帖:345
4楼    2021-12-08 22:14:13
精编帖  主题:回复:我对单钮启停的一点认识

       程序也如文章需要表达事情的起因、经过和结果,所以我们的程序应该是能用我们常规的物理现象及逻辑思维方式来解释或者说是自圆其说的,能够表达出明确的逻辑因果关系及时序关系。

能用数学方式实现,但不能用物理方式说明的,则不一定是正确的,巧合而已。

当然,数学是高度抽象的,比如楼主的形式2、形式3就是,但在我们实际控制的编程中却不一定会很实用。

所以,我推荐的是段1、2例程形式,永远可以使用,永远正确,不分品牌,这就是编程的八股文。



这个就有点抽象,公式化了


这个解释起来就有些费事儿,有些凑时序了



Zane 注册自动化系统工程师 Always save before download
锋言锋语
至圣

经验值:12873
发帖数:2038
精华帖:41
6楼    2021-12-09 09:27:57
精编帖  主题:回复:我对单钮启停的一点认识

有道理。 抽象是为了综合,演绎。 上升一个思维维度。


使用起来还是要具体化, 实用化。

不忘初心
winter938
奇侠

经验值:8971
发帖数:1438
精华帖:25
7楼    2021-12-09 09:31:37
精编帖  主题:回复:我对单钮启停的一点认识

再补张图片,都是一些基础的认识,希望能抛砖引玉



工控爱好者
冷暖自可知
侠圣

经验值:2842
发帖数:697
精华帖:3
9楼    2021-12-09 10:37:41
精编帖  主题:回复:我对单钮启停的一点认识

段1+2的方式是最容易理解和使用

另外就是跟Z版说的那样,形式3方式虽然有点抽象但是理解起来还是可以

另外就是SR RS的应用也多了一种方式

路漫漫其修远兮,吾将上下而求索!!!
Zane
至圣

经验值:62404
发帖数:17478
精华帖:345
11楼    2021-12-09 11:13:42
精编帖  主题:回复:我对单钮启停的一点认识

这个做法其实很鸡肋。

已经是多线圈输出的嫌疑了,急停,故障停机怎么办?妥妥地贴狗皮膏药去了。

Zane 注册自动化系统工程师 Always save before download
yming
至圣

经验值:101470
发帖数:19784
精华帖:706
17楼    2021-12-09 19:11:53
精编帖  主题:回复:我对单钮启停的一点认识

Zane推荐的段一段二方法,其实段一就是将单键分解为双键的状态。段二就是教科书上双键的 启-保-停 标准电路。

好处是啥?

因为实际控制往往是 启/启 - 保 - 停-停-停。(多点启动、多点停止)

这样,后面段二就很容易根据情况修改了。(标准电路)


(我觉得这个十几年前就讨论过。)



学而时习之,不亦说乎?温故而知新,不亦乐乎?
yming
至圣

经验值:101470
发帖数:19784
精华帖:706
18楼    2021-12-09 19:25:38
精编帖  主题:回复:我对单钮启停的一点认识

S/R通常用于顺控的状态保持上的。

例如:故障 切断输出,就要用它保持,直到确认故障。

程序是“实时”扫描的,每周期扫描中,是就是,非就非。用它做啥?




学而时习之,不亦说乎?温故而知新,不亦乐乎?
YUKJ
至圣

经验值:11984
发帖数:2224
精华帖:3
20楼    2021-12-09 19:34:54
精编帖  主题:回复:我对单钮启停的一点认识


这个图中的程序很简单,很好解释,不存在生硬凑时序的问题。7楼的图文与这个图中的基本没有太大的差异。如果看懂7楼的的内容,自然也可以解释清楚这个图中的程序。

S/R指令本身就是给编程者使用的,只要合理使用就行了。诚然,任何指令都存在有人偏爱,有人不太喜欢,至于原因恐怕不是所有的人都能坦诚相告。


Zane
至圣

经验值:62404
发帖数:17478
精华帖:345
21楼    2021-12-09 20:53:32
精编帖  主题:回复:我对单钮启停的一点认识

您可以看一下yming版主的回帖,的确是这么回事儿,我们遇见的绝大多数逻辑控制程序都是开关逻辑。


另外,不用S/R指令,可以减少你编程的随意性,我把这比作脚踩西瓜皮贴狗皮膏药,这句话我说了n多遍了,不知您是否有体会?

Zane 注册自动化系统工程师 Always save before download
Zane
至圣

经验值:62404
发帖数:17478
精华帖:345
23楼    2021-12-09 21:11:00
精编帖  主题:回复:我对单钮启停的一点认识

那你给个理由先,为什么要夹花着用M0.0和Q0.0?都用Q0.0,一样用条理不是更清楚吗?非得把人搞得一愣一愣的,方显水平?


理由是个人爱好?


然后,加上急停,条件启动,条件停止,故障停止,在你的程序的基础上能实现吗?


首先,我承认看错过你的程序,其次我承认你的程序能用,但我没说过你的程序就是好的是值得学习的。


看错过你的程序就不能再评价你的程序了吗?


不要酸唧唧的,给个理由先!


还有,你说S/R只要用得合理就能用,很好,我对初学者的要求是可以用S/R指令,但一个逻辑变量只能用一次S和R指令,你可以去试试能不能做到?



Zane 注册自动化系统工程师 Always save before download
winter938
奇侠

经验值:8971
发帖数:1438
精华帖:25
24楼    2021-12-09 21:36:00
精编帖  主题:回复:我对单钮启停的一点认识

置位S/复位R指令与置位优先触发器SR和复位优先触发器RS指令是有很大区别的,后两者在STL状态下可以看到是一段指令组合实现的,尤其是RS指令从逻辑堆栈看还对Q0.0进行了两次“=”输出。S/R指令怎么用仁者见仁智者见智,不滥用就是了。就单钮启停的逻辑功能的实现个人觉得上次状态的保存,与1异或运算实现取反是核心。

工控爱好者
Sykblue
侠士

经验值:1888
发帖数:302
精华帖:1
34楼    2021-12-10 08:48:06
精编帖  主题:回复:我对单钮启停的一点认识

单独看这个的话中间加个M0.0确实没啥必要,但是实际做程序的时候,可能是不同的条件都要输出Q0.0,这时候就使用中间变量,比如条件一成立要输出Q0.0,条件2成立也输出Q0.0一直到n,这样是必须使用中间变量的,条件1,M0.0,条件2,M0.1依次类推,最后做个总结输出Q0.0

比如我这个

另外还有一点就是当需要更改点位的时候很是方便,包括输入点。比如I0.0开始定义是急停,后期由于PLC点坏或者其他原因需要将其改至I1.0这个如果,程序中引用了很多I0.0,你就需要查找然后全部更改,但是如果有中间转换,你只需要在这转换一处地方更改即可。

比如下面


这我只需更改此处的I0.2即可

利而不害,为而不争;专注暖通空调行业
Zane
至圣

经验值:62404
发帖数:17478
精华帖:345
43楼    2021-12-12 14:42:53
精编帖  主题:回复:我对单钮启停的一点认识

关于R/S指令,


有谁能说说下面两段程序的区别?是不是百分之百的有效替代?





Zane 注册自动化系统工程师 Always save before download
winter938
奇侠

经验值:8971
发帖数:1438
精华帖:25
45楼    2021-12-12 16:23:41
精编帖  主题:回复:我对单钮启停的一点认识
当S,R条件均满足时随S,R的执行M1.7有先置1后置0的变化,=的执行M1.7的状态是唯一确定的0。所以二者是不完全等价的。
工控爱好者
yanxiao
版主

经验值:21673
发帖数:11417
精华帖:33
46楼    2021-12-12 18:58:03
精编帖  主题:回复:我对单钮启停的一点认识

1、互拆条件是可以实现的,不出现信号跳变;

2、第一段程序,采用的全是无条件执行指令,只要扫描到,所有指令都是执行的,保持通过将原值送回实现;

3、第二段程序,R、S是有条件的指令,条件不符合时,利用存贮特性自己保持原值。

Zane
至圣

经验值:62404
发帖数:17478
精华帖:345
47楼    2021-12-12 22:22:42
精编帖  主题:回复:我对单钮启停的一点认识

实际应用中,第二段例程的S指令与R指令的程序段也许会被其他指令隔开,M1.7初始状态为false,当S指令与R指令的执行条件都同时满足时,M1.7会存在一段时间的过渡状态true,这个过渡状态可以很短,短到两行指令之间再没有其他指令,就如图例,但这个过渡状态依旧存在。如果就在两行指令之间产生了中断,中断中有评估M1.7状态的程序,是不是会得到不一样的结果?

Zane 注册自动化系统工程师 Always save before download
yming
至圣

经验值:101470
发帖数:19784
精华帖:706
52楼    2021-12-13 18:16:54
精华帖  精编帖  主题:回复:我对单钮启停的一点认识

正如你看到的,单键启停,实用性很差。它就是为理解PLC运算逻辑而存在的。

所有学过布尔运算的都知道:列出真值表-写出布尔表达式,然后根据布尔运算法则(结合律、交换律 .. 这个率那个率,还有那个什么 变量非的与=变量或的非 xx率)化简表达式。

能化简,自然能化繁了。

楼主仅列出几个表达式示例,如果列出更多布尔表达式的示例,也毫不奇怪。运算结果都一样。

这里要关注的,不是运算结果对错。是一个写程序的拆分步骤、表达清晰的问题。

例如:一个稍复杂的逻辑关系,你列出真值表 - 写出布尔表达式 - 简化到最简(公式化)。然后就这样用了。没问题吧?

但是,一旦要添加一个控制点,往往这些都要重来一遍。这就是:写的程序扩展性不好。

绝大多数网友都知道,这个单键启停核心就是个异或关系。而版主指出的;Z版评价的就是程序思路的清晰和写法上的可扩展;不出错。

一个容易出错的写法,你说能推荐么?

两位版主有差异,这是基于不同的PLC。Z版写的程序就是标准的西门子程序,啥啥都有标志位、状态字。设备故障一看便知。自然,占用空间较多。版主面对内存很小的200,自然写法有所不同。





学而时习之,不亦说乎?温故而知新,不亦乐乎?
Zane
至圣

经验值:62404
发帖数:17478
精华帖:345
54楼    2021-12-13 22:51:32
精编帖  主题:回复:我对单钮启停的一点认识

不清楚为什么要这么做,但我也并不认可,这个其实也涉及双线圈输出了,多线圈输出就会有过渡状态的值,哪怕存在时间再短,这就是BUG

Zane 注册自动化系统工程师 Always save before download
winter938
奇侠

经验值:8971
发帖数:1438
精华帖:25
57楼    2021-12-14 15:29:08
精编帖  主题:回复:我对单钮启停的一点认识

STEP7 V5.5中的SR和RS指令和200系统是完全不同的,是典型的重复线圈输出,上图说明如下;



工控爱好者
Zane
至圣

经验值:62404
发帖数:17478
精华帖:345
58楼    2021-12-14 21:02:06
精编帖  主题:回复:我对单钮启停的一点认识

呵呵,


置位优先逻辑

A     ON 

O

A     OUT

AN   OFF

=     OUT


OUT := ON  OR  OUT AND NOT OFF;

复位优先逻辑

A( 

O     ON 

O     OUT

)

AN   OFF

=     OUT


OUT := (ON OR OUT) AND NOT OFF; 

编程就是八股文,没有第二种写法,什么百花齐放百家争鸣,那是自己没学好还去骗别人。


Zane 注册自动化系统工程师 Always save before download
winter938
奇侠

经验值:8971
发帖数:1438
精华帖:25
59楼    2021-12-15 09:42:54
精编帖  主题:回复:我对单钮启停的一点认识

这样看来SR和RS指令系统自己生成的代码可以视作有缺陷的。Zane制作的SR和RS功能更科学,所谓编程是八股文是因为背后客观的规律决定的,就拿这个单钮启停来说用SR指令生成的逻辑化简后最后都会统一到一致。

工控爱好者
post_jingbian_commit.aspx
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。