5/21/2012 8:36 PM | |
Joined: 10/31/2011 Last visit: 9/2/2024 Posts: 400 Rating: (5) |
Dear Ayman, I m using the same block and AI value is working correctly..
|
5/21/2012 9:26 PM | |
Joined: 10/7/2005 Last visit: 9/23/2024 Posts: 3021 Rating: (1054)
|
Hello m.shoaib khatana You are doing 36000 additions to calculate the Total (one addition every 100ms over one hour). What this means in your case is that your AI value (which is an hourly flow value) gets divided by 36000 and the fraction of that actual value is then addedto the total every 100ms. The precision of a floating point value is "only" 6 decimal placesand as you add a rather small value to an every increasing larger total, the required alignment of the exponents will lead to a loss of precision (values get truncated in this alignment). This will in your caseleadto an accumulated value that is too small and you'll find more info on this at How accurately can I calculate with REAL numbers that are used in extensive formulas? Possible Solutions: 1.) Do a totalevery minute and add these totals together 60 times to get the hourly total. 2.) If your steam flow is rather steady, call the totalizer block only lets say every 10 seconds instead of every 100ms. Give it a try and please let us know if it helped. |
Last edited by: fritz at: 5/21/2012 9:46 PMChanged the term"digit" to "decimal places" to remove ambiguity (thanks Juergen) Cheers |
|
This contribution was helpful to4 thankful Users |
5/21/2012 9:28 PM | |
Joined: 10/31/2011 Last visit: 9/2/2024 Posts: 400 Rating: (5) |
Here code in ob35 CALL "Totalizer" , DB200 IN0 :=DB1.DBD48 IN1 :=T#1H IN2 :=T#100MS IN3 :=M700.0 OUT4:=DB8.DBD8 |
5/22/2012 6:04 PM | |
Joined: 10/7/2005 Last visit: 9/23/2024 Posts: 3021 Rating: (1054)
|
Hello Selvam_viji assuming my theory that the problem is caused by the precision of a floating point value is correct, I'm afraid to say that your suggestion will make the problem worse instead of better. |
Cheers |
|
This contribution was helpful to2 thankful Users |
5/22/2012 7:08 PM | |
Joined: 10/7/2005 Last visit: 9/23/2024 Posts: 3021 Rating: (1054)
|
Trust me it can dear m.shoaib khatana, because you end upadding a tiny bit too small value thousands of times to an ever increasing total. It's yourcall at the end of the day what you want to test or try though. If you want to be really precise,I forget to mention the best way to do totalising which is: Use a Digital Output of your Flowmeter (it should have one, most do anyhow), connect it to a free DI, configure the Flowmeter to give you a pulse perx amount and then simply add up the pulses (doing Totalsbased on AI will never be 100% accurate even if Siemens provides you with a block for this purpose). The only thing to look out for is to make sure that the DI pulses are not missed (i.e. they are long enough andand don't come faster that the scan of the logic that evaluates them). I hope this helps |
Cheers |
|
This contribution was helpful to2 thankful Users |
2/15/2016 11:52 AM | |
Joined: 9/3/2014 Last visit: 3/13/2019 Posts: 4767 Rating: (123) |
New question published by AutoGen_905449 is split to a separate thread with the subject Block FB100 "Totalizer" for step7 5.5 and LAD programing. Best regards |
2/19/2016 10:10 AM | |
Joined: 9/3/2014 Last visit: 3/13/2019 Posts: 4767 Rating: (123) |
New question published by AutoGen_905449 is split to a separate thread with the subject Valve control in STEP7. Best regards |