S7-1200 SCL 沿指令陷阱

已锁定

sangshunyang

  • 帖子

    565
  • 精华

    4
  • 被关注

    37

论坛等级:侠圣

注册时间:2017-02-14

白金 白金 如何晋级?

S7-1200 SCL 沿指令陷阱

4276

32

2020-09-15 12:16:26

近期做个项目,程序执行结果和预想的不同,主要是沿指令不按预想的去执行。因此单独把沿指令单独拿出来做个测试,项目用的是这样:


IF "Tag_2"  THEN    

         "R_TRIG_DB"(CLK := "Tag_2",

             Q => "Tag_3");


          IF "Tag_3" THEN

            "Tag_4":=TRUE  ;

        END_IF;

END_IF;


后改为 :

         "R_TRIG_DB"(CLK := "Tag_2",

           Q => "Tag_3");

IF "Tag_2"  THEN    

          IF "Tag_3" THEN

            "Tag_4":=TRUE  ;

        END_IF;

END_IF;

程序的本意是:"Tag_2" 接通的上升沿先做初始化处理,而后再处理其它逻辑,其它逻辑需要多个处理周期。实际上只有“Tag_2"第一次接通时逻辑处理结果正确。后把沿指令提到判断条件前,即判断语句的外面,程序运行正常。

原因分析:沿指令内部保存 CLK端信号的位,在执行该指令时改变。在IF语句中使用时, CLK 信号仅在第一次运行时与沿指令内部保存位不同。以后沿指令内部保存位与 CLK 信号都相同,所以沿指令就不会触发。

总结:

在SCL中使用 沿指令要保证每个周期都会扫描的该指令,在判断语句,或其它包围指令中使用沿指令要格外小心。




S7-1200 SCL 沿指令陷阱 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有12957条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

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