关于R、S、=,砍哪算哪

已锁定

yanxiao

版主

  • 帖子

    12147
  • 精华

    46
  • 被关注

    183

论坛等级:至圣

注册时间:2003-06-06

钻石 钻石 如何晋级?

关于R、S、=,砍哪算哪

1572

8

2022-12-14 18:09:44

根据对三个指令的使用态度区分,坛子里的网友可分为两个阵营:

主张少用甚至不用R、S的归为一个阵营,其它不介意R、S、=混用的归为一个阵营。

我本人属于混用阵营。


以Smart200为例,我把它的指令分为三个大类:

1、有条件执行指令

LAD程序,能流是必须有的。

大多数指令,根据前面的能流情况(OFF/ON、0/1)决定是否执行。

此类由能流决定执行的指令,我称其为有条件执行指令,能流就是执行条件。

STL程序,与能流概念对应的是逻辑堆栈的栈顶值。


2、无条件执行指令

此类指令,只要PLC扫描到,一定执行。

凡是以能流(条件)为操作对象(操作数)的指令,都属于此类。


3、其它指令

此类指令PLC并不执行,不占用PLC执行时间

比如,与For配套的NEXT指令,LBL指令等。


根据上面的分类:

R、S指令属于有条件执行指令

=指令属于无条件执行指令


=指令的本质,是把能流直接输出(COPY)给目标,能流是操作数。

=指令既可以让目标为0,也可以让目标为1,一条指令完成。


R指令,在条件成立(能流ON)时,让目标为0

与之对应,S指令,在条件成立(能流ON)时,让目标为1


所以,R/S指令一般成套出现(但数量上并不一定是1:1)。


请看两段程序:

程序1

LD     I0.0                        // 能流(栈顶)=I0.0

=      Q0.0                        // 能流(栈顶)COPY给Q0.0


程序2

LD     I0.0                        // 如果I0.0=ON

S      Q0.0, 1                     // 置1

NOT                                // 如果I0.0=0

R      Q0.0, 1                     // 清0


这两段程序,在绝大多数情况下,功能是等价的。

(不等价的情形,我遇到的是在顺控指令内,另行叙述)。


粗看起来,用R、S既笨又啰嗦,但它的长处也在于此,把清0和置1分离开来了。


关于R、S、=,砍哪算哪 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有8944条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

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