回复:用 SCL 编程完成的项目

imycat

  • 帖子

    271
  • 精华

    0
  • 被关注

    15

论坛等级:侠士

注册时间:2018-05-16

普通 普通 如何晋级?

发布于 2018-12-19 15:42:59

48楼

SCL不应该是复杂的SEQ CONTROL吗?至少写点CONST, LOOP啊 用点GENERIC


把复杂的SEQ CONTROL用一个LOOP解决掉,CONST FB可以重用到其他的项目,剩下每个SEQ做什么,就是独立的事件了


CONST

    TOTAL := 4;

    PER_INCOMMANDS := 3;

    PER_OUTCOMMANDS := 2;

    

    COMPLETEPOS := 0;

    ENABLEPOS := 1;

    SKIPPOS := 2;

    

    OSTARTPOS := 0;

    OCOMPLETEPOS := 1;

END_CONST


VAR_INPUT

    COMPLETE1 {S7_m_c := 'true'} : BOOL := FALSE; 

    INCOMMANDS AT COMPLETE1 : ARRAY[0..0] OF BOOL;

......


VAR_OUTPUT

    OSTART1 {S7_m_c := 'true'} : BOOL := FALSE;

    OUTCOMMANDS AT OSTART1 : ARRAY[0..0] OF BOOL;

......


IF statINDEX < TOTAL THEN

        FOR K := 1 TO TOTAL DO

            TEMP := TOTAL - K; //REVERSE CHECKING

            

            IF TEMP = statINDEX THEN

                IF INCOMMANDS[TEMP * PER_INCOMMANDS + SKIPPOS] THEN

                    OUTCOMMANDS[TEMP * PER_OUTCOMMANDS + OSTARTPOS] := FALSE;

                    OUTCOMMANDS[TEMP * PER_OUTCOMMANDS + OCOMPLETEPOS] := FALSE;

                    statINDEX := statINDEX + 1;

                ELSIF INCOMMANDS[TEMP * PER_INCOMMANDS + COMPLETEPOS] THEN

                    OUTCOMMANDS[TEMP * PER_OUTCOMMANDS + OSTARTPOS] := FALSE;

                    OUTCOMMANDS[TEMP * PER_OUTCOMMANDS + OCOMPLETEPOS] := TRUE;

                    statINDEX := statINDEX + 1;

                ELSE

                    IF INCOMMANDS[TEMP * PER_INCOMMANDS + ENABLEPOS] THEN

                        OUTCOMMANDS[TEMP * PER_OUTCOMMANDS + OSTARTPOS] := TRUE;

                    ELSE

                        OUTCOMMANDS[TEMP * PER_OUTCOMMANDS + OSTARTPOS] := FALSE;

                        //wait enable happen

                    END_IF;

                END_IF;

            END_IF;

        END_FOR;

    ELSE

        statSTART := FALSE;

    END_IF;


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15647条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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