回复:S7-1200 SCL 沿指令陷阱

已锁定

sangshunyang

  • 帖子

    638
  • 精华

    4
  • 被关注

    39

论坛等级:侠圣

注册时间:2017-02-14

黄金 黄金 如何晋级?

发布于 2020-09-15 19:31:03

3楼

这是一个 顺序控制逻辑中的一部分,原程序是STEP1   STEP2    STEP3 等把每步的控制写在一起,层次感比较清晰,本意是在刚进入步后的一个周期做初始化操作,在该步后面还有许多东西处理,这些逻辑要满足一定的条件才会转向下一步。调试时出现问题,单独按照原程序结构测试沿指令


源程序如下:

    #R_TRIG_开始称重(CLK := #step[3] AND #放料阀关闭到位,

                 Q => #flag[8]);

    #R_TRIG_平台到顶是上升沿(CLK := #上升到位 AND #吹气 = FALSE,

                     Q => #flag[9]);

IF #step[3] THEN

    #放料阀打开 := FALSE;

    #放料阀关闭 := TRUE;

    

    //放料阀关闭到位后把称重插板全部打开

    IF ( #flag[9] OR #flag[18] ) AND #放料阀关闭到位 THEN

        #大插板打开 := TRUE;

        #大插板关闭 := FALSE;

        #中插板打开 := TRUE;

        #中插板关闭 := FALSE;

        #小插板打开 := TRUE;

        #小插板关闭 := FALSE;

        #flag[18] := FALSE;

    END_IF;

    //第一分支  差料特别多的情况下。  

    IF #flag[5] THEN

        IF #当前重量 > #大插板关闭值 THEN

            #大插板打开 := FALSE;

            #大插板关闭 := TRUE;

            #flag[5] := FALSE;

            #flag[10] := TRUE;

        END_IF;

    END_IF;

    

    IF #flag[10] THEN

        IF #当前重量 > #中插板关闭值 THEN

            #中插板打开 := FALSE;

            #中插板关闭 := TRUE;

            #flag[10] := FALSE;

            #flag[11] := TRUE;

        END_IF;

    END_IF;

    

    IF #flag[11] THEN

        IF #当前重量 > #小插板关闭值 THEN

            #小插板打开 := FALSE;

            #小插板关闭 := TRUE;

            #flag[11] := FALSE;

            #step[4] := TRUE;

            #step[3] := FALSE;

        END_IF;

    END_IF;

    //第二分支  差料一包多的情况下。  

    IF #flag[6] THEN

        IF #当前重量 > #大插板关闭值 THEN

            #大插板打开 := FALSE;

            #大插板关闭 := TRUE;

            #flag[6] := FALSE;

            #flag[12] := TRUE;

        END_IF;

    END_IF;

    

    IF #flag[12] THEN

        IF #当前重量 > #中插板关闭值 THEN

            #中插板打开 := FALSE;

            #中插板关闭 := TRUE;

            #flag[12] := FALSE;

            #flag[13] := TRUE;

        END_IF;

    END_IF;

    

    IF #flag[13] THEN

        IF #当前重量 > #小插板关闭值 THEN

            #小插板打开 := FALSE;

            #小插板关闭 := TRUE;

            #flag[13] := FALSE;

            #step[4] := TRUE;

            #step[3] := FALSE;

        END_IF;

    END_IF;

    

    //第三分支  差料特别少的情况下。  

    IF #flag[7] THEN

        IF #当前重量 > #大插板关闭值 THEN

            #大插板打开 := FALSE;

            #大插板关闭 := TRUE;

            #flag[7] := FALSE;

            #flag[14] := TRUE;

        END_IF;

    END_IF;

    

    IF #flag[14] THEN

        IF #当前重量 > #中插板关闭值 THEN

            #中插板打开 := FALSE;

            #中插板关闭 := TRUE;

            #flag[14] := FALSE;

            #flag[15] := TRUE;

        END_IF;

    END_IF;

    

    IF #flag[15] THEN

        IF #当前重量 > #小插板关闭值 THEN

            #小插板打开 := FALSE;

            #小插板关闭 := TRUE;

            #flag[15] := FALSE;

            #step[4] := TRUE;

            #step[3] := FALSE;

        END_IF;

    END_IF;    

END_IF;


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15647条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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