技术论坛

 回复:关于SET和RESET的疑惑

返回主题列表
作者 主题
飘凡尘
游侠

经验值:396
发帖数:31
精华帖:0
楼主    2022-11-02 10:51:19
主题:关于SET和RESET的疑惑

最近阅读一篇国内某著名上市公司的编程规范文件,收获不少。但是其中有一条不太理解,如图:


“程序中如无必要,尽量减少SET和RESET指令的使用。”

平时编程时,这两个指令没少用,不太理解这句话的初衷是什么,是多用有什么不利影响吗?

烦请解惑!

当你排除了所有的不可能,无论剩下的是什么,即使再不可能也一定是真相
yanxiao
版主

经验值:28601
发帖数:12143
精华帖:46
22楼    2022-11-03 15:22:05
精华帖  主题:回复:关于SET和RESET的疑惑

这架可能真打起来了。

对于一个输出点,我一开始一般是这样描述:

1、置位条件: 若干个;

2、复位条件:若干个。

归纳整理之后,写成一个逻辑式,方便注释。

用SET/RESET还是逻辑电路搭接,我遇到的情况,有一点点区别。

在顺控指令分支处理框架内,上面两种写法,对外表现可能会不同。

原因在于,逻辑电路搭接采用的是无条件执行指令,SET/RESET属于条件执行指令。

yming
至圣

经验值:138360
发帖数:23136
精华帖:880
44楼    2022-11-05 11:42:45
精华帖  主题:回复:关于SET和RESET的疑惑

我猜,喜欢使用SET/RESET的工程师,肯定大量使用IF ...THEN;使用 JP跳转;使用顺控指令。

就像版主杨工说的那样,条件执行。就是说,会有很多不执行程序段。

这就带来一个问题:当不执行程序段中,使用线圈、赋值这类语句时,因为不执行,所以,此变量保持上一周期的结果。(语句计算结果应该是FALSE,但没有执行,仍是上一周期的TRUE)而且交叉引用检查,不仔细,就很容易蒙圈。

此时,就会觉得SET/RESET比较可靠了。由此,一发不可收拾地使用它们。

所以,出问题的关键:就是把程序指令写在了可跳过的程序段中。没有做到全扫描!

在200/300中有SCR/主控继电器MCR,有指令状态位S可用,能确保“唯一”性。

把(顺控)状态执行写在外面,就不会跳过了,自然就不需要SET/RESET了。

1200/1500没有这种顺控指令。就是用 CASE OF来做,若把程序指令写在其中,同样有这个问题。



学而时习之,不亦说乎?温故而知新,不亦乐乎?
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。