前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >S7-SCL 进水阀门模糊控制

S7-SCL 进水阀门模糊控制

作者头像
科控物联
发布2022-03-29 21:22:22
4300
发布2022-03-29 21:22:22
举报
文章被收录于专栏:科控自动化

用于水厂进水阀门控制

代码语言:javascript
复制
//1分钟脉冲
#T1(IN := #T2.Q,
    PT := T#30s,
    Q => #T1_state,
    ET => #T1_TIME);
#T2(IN :=NOT #T1.Q,
    PT := T#30S,
    Q => #T2_STATE,
    ET => #T2_Time);
#MinTrig(CLK:=#T1.Q,Q=>#"1minP"
);
//调节范围计算
#DownFast := #水位设定值 * (1.0 + REAL#0.03);     //相当于HiHi;现在用不着
#DownSlow := #水位设定值 * (1.0 + REAL#0.02);     //相当于Hi;到达就关阀
//#水位设定值
IF #水位设定值 * #微调范围 < 0.05 THEN            //主要是避免死区太小,阀门频繁开闭
    #UpSlow := #水位设定值 - 0.05;                //相当于设定值是2米以下
ELSE
    #UpSlow := #水位设定值 * (1.0 - #微调范围);  //初始值是0.05
END_IF;

IF #水位设定值 * #快调范围 < 0.1 THEN            //主要是避免调节区范围太小,阀门频繁开闭
    #UpFast := #水位设定值 - 0.1;                // 
ELSE
    #UpFast := #水位设定值 * (1.0 - #快调范围);        //初始值是0.15
END_IF;
//模拟调试
IF #ModSim THEN
    #水位值 := #水位模拟值;
ELSE
    #水位值 := #水位实际值;
END_IF;
//清水阀 --- 自动开度  现场使用的比例阀,0--5%之间无法调节
REGION 阀门正常调节
    IF #"1minP" AND #ManAutoModel THEN
        IF #水位值 < #UpFast THEN  //此区间阀门快速打开
            IF #Q调节阀给定<0.7*#调节阀自动开度极限 THEN
                #Q调节阀给定 := 0.7*#调节阀自动开度极限;
            ELSE
                #Q调节阀给定 := #Q调节阀给定 + #快调值;
            END_IF;
            
                
          
            ELSIF #水位值 >= #UpFast AND #水位值 < #UpSlow THEN //慢速调整阀门开度
                IF #Q调节阀给定 > 5 THEN                         //如果阀门本来就是打开就慢慢关闭到5%
                    #Q调节阀给定 := #Q调节阀给定-#慢调值;
                ELSE                                            //如果阀门本来是关闭就直接打开到5%<主要是从高水位降到低水位时>
                    #Q调节阀给定 := 5;
                END_IF;

            ELSIF #水位值 >= #UpSlow AND #水位值 <= #DownSlow THEN //此区间相当于死区;尽量保证阀门不动作;阀门开度为5%或者0
                IF  #Q调节阀给定 > 5 THEN
                    #Q调节阀给定 := 5;                               //2021优化,到达死区.如果阀门本来是打开状态就调整到阀门最小开度5%
                END_IF;
            ELSIF #水位值 > #DownSlow THEN
                #Q调节阀给定 := 0.0;//2021年优化;超过就DownSlow就直接关阀<现场阀门关不死,打开全关之后水位一个小时还是会上升0.4米左右>
                //并且现场的水位计超过3M,性能也不是很稳定
        END_IF;
    END_IF;
    
END_REGION
REGION 极端情况--自动状态下
    IF #Q调节阀给定 < 5.0 AND #Q调节阀给定 > 0.0 THEN //需要打开阀门时,开度最小是5%
        #Q调节阀给定 := 5.0; //开阀门时最少为5%,否则阀门会打不开,阀门会报警锁定.
    END_IF;
    IF #Q调节阀给定> #调节阀自动开度极限 OR #水位值<=#LOLO THEN  //保证最大开度在范围内;保证LOLO时,快速打开阀门
        #Q调节阀给定 := #调节阀自动开度极限;
    END_IF;
END_REGION
//清水阀手动设定开度 把手动调整到自动之后.
IF NOT #ManAutoModel  THEN
    #Q调节阀给定 := #ManulOpenDegree;
END_IF;

//水位过高,直接关阀;避免满池子.
    IF #水位值 >= #HIHI OR #Q调节阀给定 <= 0.0 THEN
        #Q调节阀给定 := 0.0;
        
    END_IF;

稳定运行2年

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 科控物联 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档