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

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

对于两台水泵循环启停我们采用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
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则