整理你的問題條件:


1.以每5分鐘的間隔擷取一次資料


2.擷取三次後,第三次資料與第一、二次資料比較,若比較後誤差值低於5%則此三筆資料需記錄;若高於5%則捨棄第三次資料,再等待5分鐘後重新擷取一筆新的資料,並重新與第一、二次資料作比較,直至滿足小於5%誤差範圍為止


3.5%的誤差值是以第一次資料為基礎,若一、二次資料剛好差5%,那第三次資料就必需剛好落在一、二次資料的範圍內才符合


4.三筆資料記錄後,重新再擷取三次資料

 

 


程式面板配置如下:

20131101-02  


存檔的檔名路徑自訂


定時擷取的部分使用系統時間比對


三次資料的比對設定一個比對資料陣列來處理


記錄資料設定一個暫存資料陣列來處理

 

 


完成的程式如下:

20131101-03  


使用主從結構,上半為定時擷取訊號及資料比對迴圈,下半為擷取資料迴圈。擷取資料迴圈在收到定時擷取訊號時才會動作

 

 


擷取資料的迴圈比較簡單,擷取資料的部分先以亂數取代,你在依實際設備改寫

20131101-04  

 

 


定時擷取訊號部分,使用系統時間比對。為確保只會觸發一次,及跨時區時不會出錯,設定了多個比對條件

20131101-05  

 

 


資料比對部分問題較大


我看過你在其他討論網站得到的程式,是先擷取二次,第三次再比對。這樣若一、二次資料誤差大於5%,則第三次會出現很離譜的比對結果。輸出的也是錯誤的比對結果


我的做法是每次擷取資料都比對,確保全部資料的誤差值低於5%

20131101-06  

 

 


執行後儲存的檔案內容

20131101-01  

未出師的小工程師 發表在 痞客邦 PIXNET 留言(0) 人氣()