[西门子] 西门子PLC编程软件博途(TIA)SCL案例(2)--两台水泵循环启停(续)

[复制链接]
查看99083 | 回复0 | 2024-3-11 15:17:06 | 显示全部楼层 |阅读模式
俗语有云,条条大道通罗马,对于自控程序也是一样的,每个编程人员的思维模式和实现方式也可能不一样,找到适合自己的路,到达目的就可以了。

对于两台水泵循环启停我们采用SCL的case...of...语句也可以实现水泵的控制。

具体代码如下:

(1)FC功能程序

"R_TRIG_DB"(CLK:=#clock_p,

            Q=>#P);

    IF #P THEN

        #B_RTview:=#B_RTview+1;

        IF #B_RTview >= #B_RTset THEN

            #p1 :=1;

            IF #p1 THEN

                #Bump_no := #Bump_no + 1;

            END_IF;

            #B_RTview := 0;

            IF #Bump_no >2 THEN

                #Bump_no := 1;

            END_IF;

        END_IF;

    END_IF;

    CASE #Bump_no OF

        1:

            #B1_drive := 1;

            #B2_drive := 0;

        2:

            #B2_drive := 1;

            #B1_drive := 0;

        ELSE

            #B1_drive := 0;

            #B2_drive := 0;

    END_CASE;

    定义管脚:



代码:



调用:



"选择水泵"(clock_p:="clock",

       Bump_no:="bump12".bump_no,

       B1_drive:="B1_drive",

       B2_drive:="B2_drive",

       B_RTset:="bump12".B_RTset1,

       B_RTview:="bump12".B_RTview);

总结:

case...of....为选择语句,就是当变量值在不同时,执行不通的语句。

留思:

笔者初入SCL,很多都是摸索,关于以下几点对于高手请给予指教:

1)如何采用SCL内部语言实现上升沿监测?

2)SCL支持置位和复位指令?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则