氣體流量計(jì)實(shí)現(xiàn)流量累積功能

氣體流量計(jì)實(shí)現(xiàn)流量累積功能

ID:37489484

大?。?.24 MB

頁數(shù):42頁

時(shí)間:2019-05-24

氣體流量計(jì)實(shí)現(xiàn)流量累積功能_第1頁
氣體流量計(jì)實(shí)現(xiàn)流量累積功能_第2頁
氣體流量計(jì)實(shí)現(xiàn)流量累積功能_第3頁
氣體流量計(jì)實(shí)現(xiàn)流量累積功能_第4頁
氣體流量計(jì)實(shí)現(xiàn)流量累積功能_第5頁
資源描述:

《氣體流量計(jì)實(shí)現(xiàn)流量累積功能》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、對(duì)于流量累計(jì)而言,看起來好像是個(gè)很簡單的程序,但實(shí)質(zhì)上還是有很多需要注意的地方。寫累加程序不難,但要做到誤差最小,就不是那么容易的事情了。簡述如下。引用

2、回復(fù)

3、管理

4、設(shè)為最佳回復(fù)

5、2010-08-1919:15:1912樓老菜鳥deshengwu積分:7832帖子:232注冊(cè):03-06-15??[個(gè)人博客]????[個(gè)人播客]??[加為好友]????[發(fā)送消息]1.首先是采樣時(shí)間采用的計(jì)時(shí)方式的問題??赡苡行┤藭?huì)采用定時(shí)器(包括1ms/10ms/100ms/1s定時(shí)器及秒脈沖等)來作為采樣周期--------這樣會(huì)增大誤差。???????可以用計(jì)時(shí)器指令來來作為采樣間隔時(shí)間

6、,每次計(jì)時(shí)器到了設(shè)定值就采樣一次。計(jì)時(shí)器的精度不可能高于它的時(shí)基,因此每次計(jì)時(shí)器超時(shí)和再次開始計(jì)時(shí)的時(shí)候,都要產(chǎn)生一個(gè)時(shí)基的正或負(fù)的誤差。例如,10ms為一個(gè)時(shí)基的計(jì)時(shí)器預(yù)定計(jì)10次,其時(shí)間計(jì)算將是100ms正或負(fù)10ms。假設(shè)你采用100ms定時(shí)器來作為采樣周期,那么在程序運(yùn)行過程中,實(shí)際上的有效采樣周期不是100ms,在這個(gè)基礎(chǔ)上還包括了PLC的掃描周期的一部分(掃描周期過程包含如下內(nèi)容。讀取輸入--------S7-200將實(shí)際輸入的狀態(tài)復(fù)制到過程映像輸入寄存器;執(zhí)行程序中的控制邏輯--------S7-200執(zhí)行程序指令,并在不同的存儲(chǔ)區(qū)存儲(chǔ)數(shù)值;處理通訊請(qǐng)求----

7、----S7-200執(zhí)行通訊所需的所有任務(wù);執(zhí)行CPU自檢診斷--------S7-200可確保固件、程序存儲(chǔ)器和所有擴(kuò)展模塊正確工作;寫入輸出--------將存儲(chǔ)在過程映像輸出寄存器中的數(shù)值寫入到實(shí)際輸出。)。該方式的采樣間隔時(shí)間是固定的,但實(shí)際采樣時(shí)間不是定時(shí)器的時(shí)間,而是比定時(shí)器的時(shí)間大一些,因此累計(jì)值比實(shí)際值就會(huì)小一些。越累計(jì)越多,誤差就越大。???????諸如貝加萊、Sigmatek這樣的使用C語言進(jìn)行編程的PLC,它們的PLC中并無定時(shí)器T這個(gè)寄存器區(qū),而是通過讀取系統(tǒng)時(shí)鐘來完成定時(shí)的。不過結(jié)果相同,一樣的要產(chǎn)生誤差。???????當(dāng)然,也可以采用一種技巧來減少

8、因計(jì)時(shí)器精度帶來的誤差。我們采用長的時(shí)間計(jì)時(shí)來作。例如,10ms為一個(gè)時(shí)基的計(jì)時(shí)器預(yù)定計(jì)30000次,其時(shí)間計(jì)算將是300s正或負(fù)10ms。在這其中,我們可以預(yù)定一個(gè)采樣間隔時(shí)間為10個(gè)時(shí)基(100ms)以上。每次程序掃描,處理器判斷如果自從上次累積運(yùn)算起,時(shí)間間隔超過預(yù)定時(shí)間(例如:100ms),就將這段時(shí)間乘以當(dāng)前的瞬時(shí)流量值作為累加量。該方法的計(jì)算精度雖然高一些,但采樣間隔時(shí)間卻不是固定的了,而累計(jì)值比實(shí)際值仍然會(huì)小一些。越累計(jì)越多,誤差就越大。???????因此,該程序筆者采用了定時(shí)中斷的計(jì)時(shí)方式來進(jìn)行流量的累計(jì)。引用

9、回復(fù)

10、管理

11、設(shè)為最佳回復(fù)

12、2010-08-191

13、9:17:4213樓老菜鳥2.其次,是采樣間隔時(shí)間的數(shù)值問題。采樣間隔時(shí)間越短,計(jì)算誤差就越小,越逼近于實(shí)際值--------但永遠(yuǎn)都達(dá)不到實(shí)際值,只能說是越接近而已??墒?,采樣間隔時(shí)間越短就會(huì)增加PLC的運(yùn)算次數(shù)。當(dāng)這個(gè)采樣時(shí)間太?。ɡ?ms),就會(huì)出現(xiàn)問題。???????對(duì)于采用定時(shí)器來累計(jì)的情況,從上面第1條的敘述中可以看出,由于掃描周期的影響,累計(jì)值那就不是一點(diǎn)點(diǎn)的誤差了,而是錯(cuò)誤了!???????對(duì)于采用定時(shí)中斷來累計(jì)的情況,PLC占用了過多的資源去運(yùn)行中斷程序,可能導(dǎo)致主程序或其它子程序控制出現(xiàn)滯緩或者非預(yù)期問題的情況,還可能造成看門狗定時(shí)器溢出而造成問題。這個(gè)

14、問題比較復(fù)雜些,這里就不討論了。???????對(duì)于這個(gè)問題,沒有更好的解決方案,只求達(dá)到一個(gè)合理值就可以了,不用去追求非常非常高的精度!在實(shí)際工程應(yīng)用中,典型的采樣周期為100ms。該程序采用的采樣周期就是100ms。引用

15、回復(fù)

16、管理

17、設(shè)為最佳回復(fù)

18、2010-08-1919:20:4914樓老菜鳥3.第三,是累計(jì)計(jì)算時(shí)的誤差問題。???????這里,先要說一下浮點(diǎn)數(shù)運(yùn)算的問題。S7-200系列PLC僅支持單精度浮點(diǎn)數(shù)而不支持雙精度浮點(diǎn)數(shù),因此僅支持10進(jìn)制的7位有效數(shù)字(如果要問為什么,說起來就比較麻煩一些,我在這里就不贅述了。如果需要,我可以單獨(dú)發(fā)帖來說明這個(gè)問題)。???

19、????在累計(jì)流量比較大的情況下,小數(shù)點(diǎn)后面的尾數(shù)就少了--------兩個(gè)要相加的數(shù)差別太大,就會(huì)造成誤差?。ㄟ@個(gè)問題解釋起來也稍微有點(diǎn)麻煩。如果需要,我可以單獨(dú)發(fā)帖來說明這個(gè)問題)累計(jì)的精度就越來越低了,誤差也就越來越大了。為了避免出現(xiàn)這個(gè)問題,我們可以想辦法使整個(gè)運(yùn)算過程中小數(shù)和整數(shù)分開計(jì)算,且保證小數(shù)的有效數(shù)字最大可以達(dá)到7位。該程序就采用了這種計(jì)算方法。???????在2個(gè)數(shù)相加的時(shí)候,如果兩者相差特別大,那么會(huì)出現(xiàn)誤差。例如10的8次方加1仍然等于10的8次方。實(shí)際上,當(dāng)有效數(shù)字達(dá)到7位以上

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。