西门子关于累计流量问题.docx
《西门子关于累计流量问题.docx》由会员分享,可在线阅读,更多相关《西门子关于累计流量问题.docx(10页珍藏版)》请在冰豆网上搜索。
![西门子关于累计流量问题.docx](https://file1.bdocx.com/fileroot1/2022-12/16/f1f2a619-1ac8-43d6-8d1b-3c4b3d0ad7f7/f1f2a619-1ac8-43d6-8d1b-3c4b3d0ad7f71.gif)
西门子关于累计流量问题
关于累计流量问题
在用SiemensS7-300PLC上采用step7v5.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
SYMBOLADRESSDATATYPECOMMENT
条件"MODE"——M0.0BOOL全局模式选择0-手动;1-自动
条件"DB_FA".FSTATUS——DB11.DBW96INTA过滤器状态0-ready;1-预涂;2-回流;3-过滤;4-再生;5-反冲洗
"share".FIC01A_R——DB1.DBD10REALA过滤器的流量00~100.0
#TEMPR——REAL流量累计临时变量
"share".FLOWSUM——DB1.DBD0REAL总过滤流量累计
注:
程序中共有5台过滤器(A、B、C、D、E)并联运行,上面只给出了A过滤器的符号声明,其它
过滤器与之基本相同,只是在不同的DB中。
---------------------------------------------------------------------------------------
A"MODE"
=L30.0
A(
AL30.0
A(
L"DB_FA".FSTATUS
L3
==I
)
JNB_01e
L"share".FIC01A_R
L6.944440e-004
*R
T#TEMPR
ANOV
SAVE
CLR
_01e:
ABR
)
JNB_01f
L#TEMPR
L"share".FLOWSUM
+R
T"share".FLOWSUM
_01f:
NOP0
A(
AL30.0
A(
L"DB_FB".FSTATUS
L3
==I
)
JNB_020
L"share".FIC01B_R
L6.944440e-004
*R
T#TEMPR
ANOV
SAVE
CLR
_020:
ABR
)
JNB_021
L#TEMPR
L"share".FLOWSUM
+R
T"share".FLOWSUM
_021:
NOP0
A(
AL30.0
A(
L"DB_FC".FSTATUS
L3
==I
)
JNB_022
L"share".FIC01C_R
L6.944440e-004
*R
T#TEMPR
ANOV
SAVE
CLR
_022:
ABR
)
JNB_023
L#TEMPR
L"share".FLOWSUM
+R
T"share".FLOWSUM
_023:
NOP0
A(
AL30.0
A(
L"DB_FD".FSTATUS
L3
==I
)
JNB_02a
L"share".FIC01D_R
L6.944440e-004
*R
T#TEMPR
ANOV
SAVE
CLR
_02a:
ABR
)
JNB_02b
L#TEMPR
L"share".FLOWSUM
+R
T"share".FLOWSUM
_02b:
NOP0
A(
AL30.0
A(
L"DB_FE".FSTATUS
L3
==I
)
JNB_034
L"share".FIC01E_R
L6.944440e-004
*R
T#TEMPR
ANOV
SAVE
CLR
_034:
ABR
)
JNB_035
L#TEMPR
L"share".FLOWSUM
+R
T"share".FLOWSUM
_035:
NOP0
-------------------------------------------------------------------------------------------------
请帮忙检查一下,问题到底出在什么地方,十分感谢!
由于S7-300的浮点数格式为单精度格式的,其有效数据长度为8位,因此当两个相差很大的数相加时(如A/B>10000000),会发生丢尾数及完全被舍弃的现象,这在累加值的应用中经常发生,所以必须根据你的实际应用情况确定其算法.
非常感谢您的指点,问题好像正在于此,每秒钟的累加数6.944440e-004和累加和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-400HPLC来实现流量累计(仪表只有瞬时流量4-20mA信号)。
以前我用SchneiderPremiunPLC来做时,一天差1吨左右,不精确。
西门子PLC在OB35里面做时,是否要做100ms或1s脉冲?
而且处理时要扩大倍数才可以,但倍数很大时,会超出MD数据范围。
请各位大侠能否把自己做过的实例E-mail给我。
wliavge@
MD0=MD0+PIW
IFMD0>CONST
{
MD0=MD0-CONST
MD4=MD4+1}
MD8=MD4*CONST+MD0
MD0,MD4为longint,MD8为float,const为一个MD数值范围内的常数,这样就不用担心数值溢出,也不用担心如果使用浮点数作累计时,当累计量大到一定数值时累计不准。
倍数放大可以对MD8进行操作。
6PLC300流量累加问题求救
我准备在plc中作长期累计量计算精度、溢出问题不知怎么解决step7中只能用32位浮点数长期对该数累加精度很难保证并4月左右不能正常累加请教各位怎么解决谢谢
32位浮点数恐怕很难溢出吧
累加精度是不好解决
不过精度不会差的
流量的话应该有脉冲输出的那样计算比较精确如果你用流量乘时间精度本身就不够了
你可以累加到10万,当大于10万的时候就让它回到0,重新累加。
如果数据比这大得多,你可以除以10,100,或者更大,然后单位上变化一下,再来累加。
使用浮点数,累积数一大,精度就不能保证,可以使用Dint,一个不够用2个.64位应该足够了吧.
7用S200作流量累计时,时间如何设置?
请问,用S200作流量累计时,时间如何设置?
说明上说时间占8个字节,那年、月、日和小时、分钟、秒如何分配存储器的
8个字节时间缓冲器格式(T)
TT+1T+2T+3T+4T+5T+6T+7
年月日小时分钟秒0星期
8MD0=MD0+PIW512;
IFMD0>CONST;
{MD=0
MD4=MD4+1}
MD8=MD4*CONST+MD0;
MD8定义FLOAT,其余定义INT;
这样就不会出现溢出了。
9电磁流量计
电磁流量计:
7ME-5038-2AA11-1AA0(SITRANSFM)
变送器:
7MQ5752-4VA11-0CB0(Intermag2)
当220VAC供电电源突然断掉,等恢复供电后是否可以保存流量累积数据。
请各位同行指点!
谢谢!
可以。
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