新聞中心
PRESS CENTER
在工業(yè)自動化和物聯(lián)網(wǎng)應用場景中,設備需要持續(xù)不斷地將采集數(shù)據(jù)上傳到云端服務器。但在實際應用中,可能會遇到服務器連接中斷或者斷點的情況,導致數(shù)據(jù)丟失。為了確保數(shù)據(jù)的完整性,本案例設計了一個相較緩存隊列更穩(wěn)定的斷點續(xù)傳方案,采用時序數(shù)據(jù)庫作為數(shù)據(jù)暫存區(qū),確保在網(wǎng)絡中斷時數(shù)據(jù)不會因為斷電而丟失,并能夠在網(wǎng)絡恢復后自動將這些數(shù)據(jù)補發(fā)到服務器。
注:使用時序數(shù)據(jù)庫需要插SD卡。完整講解見:斷點續(xù)傳(時序數(shù)據(jù)庫)

需求分析
網(wǎng)絡正常時,采集數(shù)據(jù)直接上傳至云端
網(wǎng)絡異常時,采集數(shù)據(jù)存入本地時序數(shù)據(jù)庫
網(wǎng)絡恢復后,自動從時序數(shù)據(jù)庫中補發(fā)數(shù)據(jù)至云端
流程如下:

流程實現(xiàn)
(一)網(wǎng)絡狀態(tài)監(jiān)測流程
狀態(tài)變化節(jié)點,監(jiān)測服務器連接狀態(tài)的變化,確保能夠及時感知連接的建立或斷開。
條件判斷節(jié)點,根據(jù)接收到的狀態(tài)信號進行邏輯判斷,決定后續(xù)的操作。
函數(shù)計算節(jié)點,連接成功:設置全局變量 conncetFlag為 true。設置消息對象的 delay 屬性為 3000 毫秒,這樣觸發(fā)節(jié)點會每隔 3 秒輸出一次,并從數(shù)據(jù)庫中讀取一條數(shù)據(jù)。連接失?。?/span>設置全局變量 conncetFlag為 false。設置消息對象的 reset 屬性為任意非空值,這將導致觸發(fā)節(jié)點停止從數(shù)據(jù)庫中讀取數(shù)據(jù)。
(二)數(shù)據(jù)庫創(chuàng)建
在時序數(shù)據(jù)庫中,數(shù)據(jù)的時間戳和順序是關鍵。因此,數(shù)據(jù)庫的設計需要考慮高效的寫入和查詢能力。選擇合適的時序數(shù)據(jù)庫(如InfluxDB、TimescaleDB等),并根據(jù)應用需求配置索引和分區(qū)策略,以優(yōu)化數(shù)據(jù)存儲和檢索效率。
(三)數(shù)據(jù)采集轉(zhuǎn)發(fā)流程
注入節(jié)點觸發(fā),modbus讀節(jié)點讀數(shù)據(jù)。
modbus讀節(jié)點,采集modbus從機數(shù)據(jù)。
函數(shù)計算節(jié)點,將采集的modbus從機數(shù)據(jù)封裝需要的數(shù)據(jù)格式,這里為JSON格式。根據(jù)全局變量conncetFlag的值決定數(shù)據(jù)的流向:輸出口1:conncetFlag 為 true(表示網(wǎng)絡連接正常),則將數(shù)據(jù)正常上傳至服務器。輸出口2: conncetFlag 為 false(表示網(wǎng)絡連接失?。?,則將數(shù)據(jù)存入數(shù)據(jù)庫。
(四)數(shù)據(jù)補發(fā)處理流程
讀寫入文件節(jié)點(記錄時間)
初次運行:初次運行,讀文件觸發(fā)若不存在該文件,讀節(jié)點會拋出異常,捕獲到異常,獲取當前系統(tǒng)時間作為運行時間寫入文件。
數(shù)據(jù)補傳:數(shù)據(jù)補傳是以數(shù)據(jù)庫中大于運行時間的數(shù)據(jù)為起始,獲取數(shù)據(jù)庫數(shù)據(jù),每次獲取第一條。獲取完成后,將該條數(shù)據(jù)的時間往后偏移一點復寫入文件,即可保證補傳讀取下一條數(shù)據(jù)時,不會重復讀取。依次往復觸發(fā)節(jié)點根據(jù)條件執(zhí)行后續(xù)部分流程。
函數(shù)節(jié)點
構造讀數(shù)據(jù):構造SQL語句查詢大于存儲時間的數(shù)據(jù)庫數(shù)據(jù),每次觸發(fā)只讀一條。
解析封裝:輸出口1輸出本次補傳的數(shù)據(jù)。輸出口2輸出本次補傳數(shù)據(jù)的時間加上200毫秒,該時間將被記入寫文件并用于確定下一條數(shù)據(jù)補傳的時間點。
總結
斷點續(xù)傳技術在時序數(shù)據(jù)庫中的應用,為數(shù)據(jù)完整性和系統(tǒng)的穩(wěn)定運行提供了有力保障。通過數(shù)據(jù)分片、增量傳輸?shù)确椒ǎ瑪帱c續(xù)傳在多種場景中展現(xiàn)出強大的實用性和適用性。隨著技術的不斷進步,斷點續(xù)傳將進一步推動時序數(shù)據(jù)庫在各類實時數(shù)據(jù)應用中的普及,為數(shù)據(jù)的可靠性和完整性提供強有力的保障。