流量计计算累积流量,只有定时累加法吗? 点击:77 | 回复:6



乖乖小笨熊

    
  • 精华:2帖
  • 求助:0帖
  • 帖子:1210帖 | 11287回
  • 年度积分:2461
  • 历史总积分:62658
  • 注册:2006年8月05日
发表于:2023-04-08 10:06:13
楼主

流量计计算累积流量,只有定时累加法吗?

反正我都是采用采样时间累加(实时流量值*偏置比例,偏置比例值在触摸屏设置或者程序直接预置)



楼主最近还看过



LBX112233

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 713回
  • 年度积分:214
  • 历史总积分:601
  • 注册:2012年5月10日
发表于:2023-04-09 09:03:50
1楼

谢谢老师分享,学习学习,赞一个。。。如何累计流量程序如何做,给个思路。。新手

乖乖小笨熊

  • 精华:2帖
  • 求助:0帖
  • 帖子:1210帖 | 11287回
  • 年度积分:2461
  • 历史总积分:62658
  • 注册:2006年8月05日
发表于:2023-04-09 09:41:48
2楼

R_Trig_0(CLK:=x清空当前已入液值 , Q=> );
R_Trig_1(CLK:=xEnable , Q=> );
ton_30(IN:= , PT:=INT_TO_TIME(i采样时间_ms) , Q=> , ET=> );
ton_31(IN:= , PT:=T#10MS , Q=> , ET=> );

IF x入液中 AND NOT x入液完成 AND NOT xEnable THEN /////////暂停入液状态判断
 
    x暂停入液:=TRUE;
END_IF

IF R_Trig_0.Q THEN    r已入液量:=0;i:=0;    END_IF            ////////清空已入液量

IF R_Trig_1.Q THEN    x暂停入液:=FALSE;END_IF    
    

//IF R_Trig_1.Q AND x入液完成 THEN r已入液量:=0; END_IF

        FOR i_count:=0 TO 48 BY 1 DO
        v_采样值buff[50-i_count]:=v_采样值buff[49-i_count];
        END_FOR
        v_采样值buff[1]:=r管道流量_升每分钟;
        v_采样值Sum:=0;
        FOR j_count:=1 TO 50 BY 1 DO
        v_采样值Sum:=v_采样值Sum+v_采样值buff[j_count];
        END_FOR
        r流量值_滤波:=v_采样值Sum/50.0;
CASE i OF
    0:///初始化
        IF x入液完成 THEN
            i:=40;
        ELSE
            i:=60;
        END_IF
        (*IF xEnable AND  x入液完成=FALSE  THEN
            x入液中:=TRUE;
            i:=100;
        ELSIF xEnable AND x入液完成  THEN
            x入液完成:=FALSE;    
            r已入液量:=0;
            i:=100;
            ELSE
            x入液中:=FALSE;    
            i:=0;
        END_IF*)
        
    40:
        IF xEnable THEN
            x清空当前已入液值:=FALSE;
            x入液完成:=FALSE;    
            r已入液量:=0;
            i:=100;
        ELSE
            x入液中:=FALSE;
        END_IF
    60:
        IF xEnable THEN
            x清空当前已入液值:=FALSE;
            x入液中:=TRUE;
            i:=100;    
        ELSE
            x入液中:=FALSE;    
        END_IF
    100:////管道流量换算
        r当前流量值_滤波:=r管道流量_升每分钟/60/1000; //L/ms    
        ton_30.IN:=TRUE;
        i:=200;
    200:///采样间隔计时
        IF ton_30.Q THEN
            ton_30.IN:=FALSE;
            i:=300;
        END_IF
    300://已入液量计算
        r已入液量:=r已入液量+r当前流量值_滤波*i采样时间_ms;
        i:=400;
    400://已入液量判断
        IF r已入液量>=r液量设定值 THEN
            x入液完成:=TRUE;
            x入液中:=FALSE;
            i:=0;
            ELSE
                x入液完成:=FALSE;
                i:=0;
        END_IF
        
    
END_CASE

乖乖小笨熊

  • 精华:2帖
  • 求助:0帖
  • 帖子:1210帖 | 11287回
  • 年度积分:2461
  • 历史总积分:62658
  • 注册:2006年8月05日
发表于:2023-04-09 09:45:55
3楼

图片.png


这个就是实际应用FB块

LBX112233

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 713回
  • 年度积分:214
  • 历史总积分:601
  • 注册:2012年5月10日
发表于:2023-04-10 10:59:37
4楼

"乖乖小笨熊" 的回复,发表在3楼
        对内容: 【这个就是实际应用FB块】进行回复:

        -----------------------------------------------------------------


看不懂。。。SCL

乖乖小笨熊

  • 精华:2帖
  • 求助:0帖
  • 帖子:1210帖 | 11287回
  • 年度积分:2461
  • 历史总积分:62658
  • 注册:2006年8月05日
发表于:2023-04-10 11:24:49
5楼

这个,封装FB采用ST语言比较简便,当然用梯形图简单的我还是梯形图优先:梯形图最直观,一眼看到底,ST语言不加注释,调试完成项目几个月后我自己都不知执行啥功能

twtynijj

  • 精华:0帖
  • 求助:10帖
  • 帖子:35帖 | 131回
  • 年度积分:199
  • 历史总积分:6993
  • 注册:2008年8月11日
发表于:2023-04-10 11:34:41
6楼

有些复杂了,比较准的做法时 通讯直接从表上读 ,如果有脉冲功能的流量计 ,就高速计数计。比较准的,常用的就是定时中断累加!


热门招聘
相关主题

官方公众号

智造工程师