西門子PLC中如何解決流量累積問題?
發布日期:
2022-03-30

現在上位機係統中很多要求具備流量計的流量累計功能,由此引出的幾個(ge) 問題,期望與(yu) 大家分享。

問題1:自行編寫(xie) 流量累計程序

自行編寫(xie) 流量累計程序的原理,其實就是積分的更原始算法概念,把單位小間隔時間內(nei) 的瞬時流量乘以單位間隔時間,得到單位小間隔時間內(nei) 的流量,再把這些小流量累加起來,就的到了累計流量。

在流量累計編程中經常會(hui) 遇到實數加法問題,實數加法運算的注意事項也應當引起編程人員的重視,請看下例程序(假設其在OB35中被調用,目的為(wei) 每隔一定時間間隔就累計一次流量)

L MD0 //累計流量存儲(chu) 值

L MD4 //流量瞬時值

+R

T MD 0

以上的程序是否存在問題?

很多人會(hui) 認為(wei) 沒有問題,但實際情況是此程序在運行一段時間後就將出現錯誤。此程序在運行之初是正常的,因為(wei) 累計流量初始值及流量瞬時值都為(wei) 一個(ge) 很小的浮點數,兩(liang) 數相加後,結果正確。但是當一段時間後,累計流量的數值逐漸增大,當它與(yu) 瞬時流量的數值相差很遠的時候,兩(liang) 者執行加法操作後,瞬時流量的數值將被忽略掉(如9999990.0與(yu) 0.2做加法操作)。其實具備計算機常識的人都應當清楚這一點,這是由於(yu) 浮點數的存儲(chu) 機製造成的,是所有計算機方麵編程都需要考慮的問題。這個(ge) 問題可以通過使用二次累加或多次累加的方法來解決(jue) 。所以在編程時應避免數量級相差太多的浮點數之間進行運算。很多人反映“加法指令不好用了”,很有可能就是數量級相差很多的實數進行了加法運算。

問題2:累計流量誤差問題

對於(yu) 積分算法,取小的矩形對流量進行累計,肯定是矩形劃分越細,誤差越小,不存在誤差是不可能的。

問題3:流量計與(yu) PLC構成的係統的誤差

流量計有多種多樣,下麵舉(ju) 些例子:

1、流量計本身沒有累計流量功能,但可以把瞬時流量以模擬量的方式(例如4-20mA)輸出。

此時累計流量的更大誤差可以估算為(wei) :

流量計本身誤差 * 流量計D/A誤差 * 模擬量模塊A/D誤差 * PLC流量累計算法誤差

假設上麵所有誤差都是1%,則更後的誤差約為(wei) :4.06%

1.01*1.01*1.01*1.01=1.0406

對於(yu) 某些流量計,本身的瞬時流量誤差可能就是3%,所以這樣的係統累計流量的誤差可能還要大些。

2、流量計本身沒有累計流量功能,但可以把瞬時流量以數字量的方式輸出。

有些流量計提供數字量接口,可以連接PLC的數字量輸入模板,流量計每流過一定流量後(例如0.1噸),此輸入點就導通一次,PLC就把累計流量累加0.1噸即可。此類係統避免了A/D,D/A轉化的誤差,以及PLC累計算法誤差。但是會(hui) 出現一定時間內(nei) 累計流量不變化的情況,實時性不好(每0.1噸累積的時間)。

3、流量計本身有累計流量功能,同時可以把瞬時流量以模擬量的方式(例如4-20mA)輸出,但無法將累計流量數值送出。
流量計本身累積流量的數值,更後很有可能與(yu) PLC的累計流量數值相差很大,原因可能是多方麵造成的,除去係統累計流量誤差的因素,如果PLC係統檢修時,流量計還計量,則PLC無法累積這部分流量。

4、流量計本身有累計流量功能,同時可以通過通信的方式,把瞬時流量及累計流量數值送給PLC。這種情況更理想,但係統的成本也更高。

......

更多內(nei) 容歡迎與(yu) 我們(men) 交流。

聲明:部分內(nei) 容來源於(yu) 網絡,如侵權請後台留言聯係刪除。