System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及電能表數據處理,尤其是涉及一種電能表的數據處理方法、系統和電子設備。
技術介紹
1、電能表的數據處理中,關鍵數據掉電保存與上電恢復是產品可靠性的非常關鍵的一個指標,在現場運行過程中出現的非器件故障導致的數據錯誤,絕大部分與掉電數據保存與上電恢復有關。
2、現有技術中,為解決掉電時的數據存儲問題,許多電能表采用多備份機制,即通過多個存儲區進行數據備份,并在上電后通過比較選擇多數一致的存儲區數據進行恢復。多備份區機制通過少數服從多數的原則來確保數據正確性,但這增加了存儲需求和操作復雜性。每次待存儲數據寫入時都需要較大的存儲空間,導致存儲效率降低。
技術實現思路
1、有鑒于此,本專利技術的目的在于提供一種電能表的數據處理方法、系統和電子設備,可以節省存儲空間,提升電能表在掉電頻繁時的數據存儲效率和存儲可靠性。
2、第一方面,本專利技術實施例提供了一種電能表的數據處理方法,電能表中設置有flash存儲器和只讀存儲器;方法包括:判斷待存儲數據是否成功寫入flash存儲器;如果待存儲數據沒有成功寫入flash存儲器,判斷重寫次數是否大于預設重寫次數;如果重寫次數小于或等于重寫次數,增加重寫次數,并基于預設數據塊劃分規則,確定待存儲數據對應的目標備份數據塊;其中,重寫次數的初始值為0;在只讀存儲器上設置已備份標志,將目標備份數據塊中除待存儲數據之外的待備份數據存儲至只讀存儲器,并擦除目標備份數據塊;當檢測到電能表處于掉電后重新上電狀態時,識別只讀存儲器中是否
3、進一步的,電能表中設置有隨機存取存儲器;判斷待存儲數據是否成功寫入flash存儲器的步驟之前,方法還包括:獲取隨機存取存儲器中的待存儲數據對應的數據長度和數據起始地址;基于數據起始地址和數據長度,確定待存儲數據對應的數據結束地址;基于數據塊劃分規則,確定數據起始地址對應的第一數據塊編號和數據結束地址對應的第二數據塊編號;判斷第一數據塊編號和第二數據塊編號是否相同;如果相同,確定第一數據塊編號或第二數據塊編號為目標寫入數據塊編號,將待存儲數據寫入目標寫入數據塊;如果不相同,確定第一數據塊編號和第二數據塊編號為目標寫入數據塊編號,基于數據塊劃分規則,確定每個目標寫入數據塊編號對應的數據長度,將待存儲數據依次寫入目標寫入數據塊。
4、進一步的,判斷待存儲數據是否成功寫入flash存儲器的步驟,包括:基于預設數據回讀方法,對待存儲數據進行數據核對,生成數據核對結果;數據核對結果為數據一致或數據不一致;如果數據核對結果為數據一致,確定待存儲數據成功寫入flash存儲器;如果數據核對結果為數據不一致,確定待存儲數據沒有成功寫入flash存儲器。
5、進一步的,基于預設數據回讀方法,對待存儲數據進行數據核對,生成數據核對結果的步驟,包括:s1:獲取隨機存取存儲器中的待存儲數據,并基于數據起始地址和預設數據塊長度,獲取目標寫入數據塊中的待驗證數據;s2:判斷待存儲數據與待驗證數據是否一致;s3:如果待存儲數據與待驗證數據一致,確定數據核對結果為數據一致;s4:如果待存儲數據與待驗證數據不一致,增加重試次數,判斷增加后的重試次數是否大于預設重試次數;如果增加后的重試次數小于或等于預設重試次數,重復步驟s1-s2,直至增加后的重試次數大于預設重試次數;確定數據核對結果為數據不一致;其中,重試次數的初始值為0。
6、進一步的,擦除目標備份數據塊的步驟之后,方法還包括:基于目標寫入數據塊編號和目標寫入數據塊編號對應的數據長度,重新將待存儲數據寫入目標寫入數據塊。
7、進一步的,待存儲數據為固件升級數據;電能表與外設的上位機通訊連接;獲取隨機存取存儲器中的待存儲數據對應的數據長度和數據起始地址的步驟之前,方法還包括:如果接收到上位機發送的固件升級指令,基于數據塊劃分規則和固件升級數據的數據長度,確定固件升級數據對應的升級數據塊編號,并擦除升級數據塊編號對應的升級數據塊。
8、進一步的,基于數據地址將待備份數據寫入目標備份數據塊的步驟之后,方法還包括:基于預設數據回讀方法,對待備份數據進行數據核對;生成數據核對結果;數據核對結果為數據一致或數據不一致;如果數據核對結果為數據一致,并將只讀存儲器中的已備份標志修改為無備份標志。
9、第二方面,本專利技術實施例提供了一種電能表的數據處理系統,電能表中設置有flash存儲器和只讀存儲器;系統包括:數據寫入判斷模塊,用于判斷待存儲數據是否成功寫入flash存儲器;數據寫入判斷模塊,還用于如果待存儲數據沒有成功寫入flash存儲器,判斷重寫次數是否大于預設重寫次數;數據寫入判斷模塊,還用于如果重寫次數小于或等于重寫次數,在重寫次數上增加1,并基于預設數據塊劃分規則,確定待存儲數據對應的目標備份數據塊;其中,重寫次數的初始值為0;數據備份模塊,用于在只讀存儲器上設置已備份標志,將目標備份數據塊中除待存儲數據之外的待備份數據存儲至只讀存儲器,并擦除目標備份數據塊;上電保護模塊,用于當檢測到電能表處于掉電后重新上電狀態時,識別只讀存儲器中是否存在已備份標志;上電備份模塊,用于如果識別到已備份標志,讀取只讀存儲器中待備份數據對應的數據地址,并基于數據地址將待備份數據寫入目標備份數據塊。
10、第三方面,本專利技術實施例提供了電子設備,包括存儲器、處理器,所述存儲器上存儲有可在所述處理器上運行的計算機程序,所述處理器執行所述計算機程序時實現如上所述的方法。
11、第四方面,本專利技術實施例提供了一種計算機可讀存儲介質,計算機可讀存儲介質上存儲有計算機程序,所述程序代碼使所述處理器執行如上所述的方法。
12、本專利技術實施例提供了一種電能表的數據處理方法、系統和電子設備,電能表中設置有flash存儲器和只讀存儲器;方法包括:判斷待存儲數據是否成功寫入flash存儲器;如果待存儲數據沒有成功寫入flash存儲器,判斷重寫次數是否大于預設重寫次數;如果重寫次數小于或等于重寫次數,增加重寫次數,并基于預設數據塊劃分規則,確定待存儲數據對應的目標備份數據塊;其中,重寫次數的初始值為0;在只讀存儲器上設置已備份標志,將目標備份數據塊中除待存儲數據之外的待備份數據存儲至只讀存儲器,并擦除目標備份數據塊;當檢測到電能表處于掉電后重新上電狀態時,識別只讀存儲器中是否存在已備份標志;如果識別到已備份標志,讀取只讀存儲器中待備份數據對應的數據地址,并基于數據地址將待備份數據寫入目標備份數據塊。該方式中,可以節省電能表的存儲空間,提升電能表在掉電頻繁時的數據存儲效率和存儲可靠性。
13、本專利技術的其他特征和優點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本專利技術而了解。本專利技術的目的和其他優點在說明書、權利要求書以及附圖中所特別指出的結構來實現和獲得。
14、為使本專利技術的上述目的、特征和優本文檔來自技高網...
【技術保護點】
1.一種電能表的數據處理方法,其特征在于,所述電能表中設置有FLASH存儲器和只讀存儲器;所述方法包括:
2.根據權利要求1所述的電能表的數據處理方法,其特征在于,所述電能表中設置有隨機存取存儲器;
3.根據權利要求2所述的電能表的數據處理方法,其特征在于,所述判斷所述待存儲數據是否成功寫入所述FLASH存儲器的步驟,包括:
4.根據權利要求3所述的電能表的數據處理方法,其特征在于,所述基于預設數據回讀方法,對所述待存儲數據進行數據核對,生成數據核對結果的步驟,包括:
5.根據權利要求2所述的電能表的數據處理方法,其特征在于,所述擦除所述目標備份數據塊的步驟之后,所述方法還包括:
6.根據權利要求2所述的電能表的數據處理方法,其特征在于,所述待存儲數據為固件升級數據;所述電能表與外設的上位機通訊連接;
7.根據權利要求1所述的電能表的數據處理方法,其特征在于,所述基于所述數據地址將所述待備份數據寫入所述目標備份數據塊的步驟之后,所述方法還包括:
8.一種電能表的數據處理系統,其特征在于,所述電能表
9.一種電子設備,其特征在于,包括存儲器、處理器,所述存儲器上存儲有可在所述處理器上運行的計算機程序,其特征在于,所述處理器執行所述計算機程序時實現上述權利要求1-7任一項所述的電能表的數據處理方法。
10.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質存儲有計算機指令,所述計算機指令被處理器執行時實現如權利要求1-7任一項所述的電能表的數據處理方法。
...【技術特征摘要】
1.一種電能表的數據處理方法,其特征在于,所述電能表中設置有flash存儲器和只讀存儲器;所述方法包括:
2.根據權利要求1所述的電能表的數據處理方法,其特征在于,所述電能表中設置有隨機存取存儲器;
3.根據權利要求2所述的電能表的數據處理方法,其特征在于,所述判斷所述待存儲數據是否成功寫入所述flash存儲器的步驟,包括:
4.根據權利要求3所述的電能表的數據處理方法,其特征在于,所述基于預設數據回讀方法,對所述待存儲數據進行數據核對,生成數據核對結果的步驟,包括:
5.根據權利要求2所述的電能表的數據處理方法,其特征在于,所述擦除所述目標備份數據塊的步驟之后,所述方法還包括:
6.根據權利要求2所述的電能表的數據處理方法,其特征在于,所述待存儲數據...
【專利技術屬性】
技術研發人員:劉山平,阮立波,陸德智,龍瑞金,
申請(專利權)人:華立科技股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。