回复:新人,看了大神们对SET/RESET帖子的讨论后,我更迷茫了

已锁定

yming

西门子1847工业学习平台

  • 帖子

    23682
  • 精华

    914
  • 被关注

    1284

论坛等级:至圣

注册时间:2004-03-06

钻石 钻石 如何晋级?

发布于 2022-11-23 18:23:56

9楼

其实就是两种编程方法。

不使用Set/Reset的方法,就是从(后面)输出往前写。就是楼主说的那样。一个输出一行:

泵1 := not 停止位 and (状态S1 or 状态S3 or 标志位2 ) or .... ; 分好程序结构,表达式就简单些。

有多少输出点,就写多少行。

当然,添加、编辑,只对这个点,逻辑上自然不易出错。需要再添加一个点,也与其他点无关。

但是,这里有个前提条件:上面所有粗体变量,都不得被跳转就是说,所有程序段需要全被扫描。

例如:上述的 状态S1,被程序跳转越过没有被执行时,它将保持前一个周期的状态。(除非是SCR 自动复位。)

在LAD编程中,这种写法会显得占据很多页面;而在SCL中,仅是一行。


当从前面(输入端状态)向后(输出端)写时,可能就是:

输入1 or 输入2 and 输入3时,泵1、泵2、驱动3 开(SET);

not 输入4 or 输入5 and 输入3时,泵1关(Reset)、泵2开(Set)、驱动3关(Reset) ;

not 输入1 and not 输入2 and 输入3时,泵1、泵2、驱动3 关(Reset);

这种写法,就允许跳转要逻辑完备,就需要每一状态都要枚举所有输出点Set/Reset ;那样才是完备的。

如果不能枚举所有输出点,就可能需要“补漏”。而且修改不容易。(因为,需要查找前面的Set/Reset )





学而时习之,不亦说乎?温故而知新,不亦乐乎?
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有9435条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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