关于累计流量问题
在用Siemens S7-300 PLC上采用step7 v5.1开发的一套程序中,需要计算累计流量(变量
share\".FLOWSUM),瞬时流量通过5台流量变送器获得,经转化成0.0~100.0后分别存储在\"share\".FIC01A_R、\"share\".FIC01B_R、\"share\".FIC01C_R、\"share\".FIC01D_R和\"share\".FIC01E_R中,每台流量传感器的量程为250立方米/小时。程序一直运行正常,但当累计流量达到1.7E+005左右后,累计流量便不再增长,当将累计流量手工改小为1.0E+005后,程序又运行正常,再次长到1.7E+005左右后又停止增长。
程序中计算累计流量的部分都在OB35中(程序的其他部分都没有使用该变量), OB35已设定为每秒钟执行一次,程序采用梯形图编写,为了方便发送将其转换为语句表格式,程序中用到的符号说明如下:
----------------------------------------------------------------------------------------
2
SYMBOL ADRESS DATATYPE COMMENT
条件 \"MODE\" —— M0.0 BOOL 全局模式选择0-手动;1-自动
条件 \"DB_FA\".FSTATUS —— DB11.DBW96 INT A过滤器状态 0-ready;1-预涂;2-
回流;3-过滤;4-再生;5-反冲洗
\"share\".FIC01A_R—— DB1.DBD10 REAL A过滤器的流量00~100.0
#TEMPR —— REAL 流量累计临时变量
\"share\".FLOWSUM ——DB1.DBD0 REAL 总过滤流量累计
注:程序有5台过滤器(A、B、C、D、E)并联运行,上面只给出了A过滤器的符号声明,其它
过滤器与之基本相同,只是在不同的DB中。
---------------------------------------------------------------------------------------
A \"MODE\"
= L 30.0
A(
A L 30.0
A(
L \"DB_FA\".FSTATUS
L 3
==I
)
JNB _01e
L \"share\".FIC01A_R
L 6.944440e-004
*R
T #TEMPR
AN OV
SAVE
CLR
_01e: A BR
)
JNB _01f
L #TEMPR
L \"share\".FLOWSUM
+R
T \"share\".FLOWSUM
_01f: NOP 0
A(
A L 30.0
A(
L \"DB_FB\".FSTATUS
L 3
==I
)
JNB _020
L \"share\".FIC01B_R
L 6.944440e-004
*R
T #TEMPR
AN OV
SAVE
CLR
_020: A BR
)
JNB _021
L #TEMPR
L \"share\".FLOWSUM
+R
T \"share\".FLOWSUM
_021: NOP 0
A(
A L 30.0
A(
L \"DB_FC\".FSTATUS
L 3
==I
)
JNB _022
L \"share\".FIC01C_R
L 6.944440e-004
*R
T #TEMPR
AN OV
SAVE
CLR
_022: A BR
)
JNB _023
L #TEMPR
L \"share\".FLOWSUM
+R
T \"share\".FLOWSUM
_023: NOP 0
A(
A L 30.0
A(
L \"DB_FD\".FSTATUS
L 3
==I
)
JNB _02a
L \"share\".FIC01D_R
L 6.944440e-004
*R
T #TEMPR
AN OV
SAVE
CLR
_02a: A BR
)
JNB _02b
L #TEMPR
L \"share\".FLOWSUM
+R
T \"share\".FLOWSUM
_02b: NOP 0
A(
A L 30.0
A(
L \"DB_FE\".FSTATUS
L 3
==I
)
JNB _034
L \"share\".FIC01E_R
L 6.944440e-004
*R
T #TEMPR
AN OV
SAVE
CLR
_034: A BR
)
JNB _035
L #TEMPR
L \"share\".FLOWSUM
+R
T \"share\".FLOWSUM
_035: NOP 0
-------------------------------------------------------------------------------------------------
请帮忙检查一下,问题到底出在什么地方,十分感谢!
由于S7-300的浮点数格式为单精度格式的,其有效数据长度为8位,因此当两个相差很大的数相加时(如A/B > 10000000),会发生丢尾数及完全被舍弃的现象,这在累加值的应用中经常发生,所以必须根据你的实际应用情况确定其算法.
非常感谢您的指点,问题好像正在于此,每秒钟的累加数 6.944 440e-0 04 和累加
和1.7e+005相比正好差了8次方。我曾尝试将累加数缩小了1000倍,在wincc中再放大1000倍,但没有起到多大效果。
能不能具体给指点一下如何解决该问题?谢谢!
2有个瞬时流量计,如何计算累积流量
用定时中断将流量相加,经过单位变换即得累积流量。
我做的课题也用了一个流量计,我也需要计算累积流量,我用的流量计是给出的脉冲信号,在这个课题中还有一个编码器,用来测深度的,当深度每增加0.1米时中断,在这个中断中读出当前流量值,存入某个数组,这样既可以得到每段的流量,也可以的到总的流量。
最简单
1秒中取1次样
累计流量就是每秒的流量和
3流量累计求助?
各位大侠,请教4-20mA的流量信号怎幺累计,做成三班报表?
用辛普森积分法
A+B->B
A为采集量
一般有脉冲信号来累计
脉冲信号累计,误差可能会比较大
还是建议用周期采集累计!!不过那,不想找麻烦的话,可以用脉冲信号来累计,一直循环加,再作相应的数据处理就OK了!!
定时中断 累加
每100ms取一次流量值,然后累加,累加10次就是1s内的流量和,以此类推~
4关于累积流量偏小的问题
在FC1块里做流量信号处理,在OB中调用FC1,在OB35(设为1秒)里取流量值进行累加,得到的累积量总是偏低,后来在OB35里做试验,取流量值为固定值20000,其累加值也会偏低。请问各位师傅大概是哪一方面的原因引起的?
你是否用实数进行累加的?
5流量计累计
我用S7-400H PLC 来实现流量累计(仪表只有瞬时流量4-20mA信号)。以前我用
Schneider Premiun PLC来做时,一天差1吨左右,不精确。西门子PLC在OB35里面做时,是否要做100ms或1s脉冲?而且处理时要扩大倍数才可以,但倍数很大时,会超出MD数据范围。请各位大侠能否把自己做过的实例E-mail 给我。***************
MD0=MD0+PIW
IF MD0>CONST
{
MD0=MD0-CONST
MD4=MD4+1}
MD8=MD4*CONST+MD0
MD0,MD4为long int,MD8为float,const为一个MD数值范围内的常数,这样就不用担心数值溢出,也不用担心如果使用浮点数作累计时,当累计量大到一定数值时累计不准。倍数放大可以对MD8进行操作。
6 PLC300流量累加问题求救
我准备在plc中作长期累计量计算 精度、溢出问题不知怎么解决 step7中只能用32位浮点数 长期对该数累加精度很难保证并4月左右不能正常累加 请教各位怎么解决 谢谢
32位浮点数恐怕很难溢出吧
累加精度是不好解决
不过精度不会差的
流量的话 应该有脉冲输出的 那样计算比较精确 如果你用流量乘时间 精度本身就不够了
你可以累加到10万,当大于10万的时候就让它回到0,重新累加。如果数据比这大得多,你可以除以10,100,或者更大,然后单位上变化一下,再来累加。
使用浮点数,累积数一大,精度就不能保证,可以使用Dint,一个不够用2个.位应该足够了吧.
7用S200作流量累计时,时间如何设置?
请问,用S200作流量累计时,时间如何设置?说明上说时间占8个字节,那年、月、日和小时、分钟、秒如何分配存储器的
8个字节时间缓冲器格式(T)
T T+1 T+2 T+3 T+4 T+5 T+6 T+7
年 月 日 小时 分钟 秒 0 星期
8 MD0=MD0+PIW512;
IF MD0>CONST;
{MD=0
MD4=MD4+1}
MD8=MD4*CONST+MD0;
MD8定义FLOAT,其余定义INT;
这样就不会出现溢出了。
9电磁流量计
电磁流量计:7ME-5038-2AA11-1AA0 (SITRANS F M)
变送器:7MQ5752-4VA11-0CB0 (Intermag 2)
当220V AC供电电源突然断掉,等恢复供电后是否可以保存流量累积数据。
请各位同行指点!
谢谢!
可以。
10请教,利用瞬时流量计算累计流量
请教各位,利用瞬时流量计算累计流量,怎么样做才能误差最小呢。多谢,多谢
用定积分做,把区间做得越小越精确。
等间隔时间可直接累加,不等间隔需乘上时间值再累加n
对啊,其实是个模拟积分算法,就是累加了。
比如,单位L/S,你每秒把计量值累加一次就好了。但是你想更精确,0。1秒一次,那就每0。1秒加一次,但记得要把结果除以10,因为你的流速是以升每秒为单位的。
11工程厂家要求我们作一个关于瞬时流量计算的问题,其方式靠“物重的减少”来计算当前的瞬时流量,就是在一段时间内分别采用A-B=A1,B-A1=A2,A1-A2=A3.....最后求瞬时流量(t/h).
C:当前重量,P:上一次执行时的重量,F:流量,T:定时中断的周期。
初始化中:
P=C
在定时中断中执行:
F=(P-C)/T
P=C
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务