基於配電終端設備XML文件的定製轉發表生成方法及系統與流程
2023-11-10 12:42:42 2

本發明涉及一種基於配電終端設備XML文件的定製轉發表生成方法及系統。
背景技術:
現有技術是根據配電終端設備通信管理模塊主配置文件,設計設備樹信息以及子節點相互關聯等數據,是一個標準的多叉樹,只需遍歷樹就能獲取數據信息然後生成轉發表,但針對根據用戶需求定製的,不規則的,亂序的主配置文件信息無法生成正常的可供配電終端設備使用的轉發表信息。
現有技術只針對標準樹形結構和標準模式的XML文件進行解析,然後生成數據信息。
技術實現要素:
本發明的目的就是為了解決上述問題,提供一種基於配電終端設備XML文件的定製轉發表生成方法及系統,本發明是在配電終端主配置文件中,主站根據需求重新定製轉發表,該定製轉發表是從不同設備中選取測點信息,由於設備的ID不同,需要生成多個設備的遙測、遙信、遙控、功能定值等信息,由於功能定值的特殊性,將定值信息分組,每組定值下面都有相應的描述信息以及參數信息,在生成轉發表時,需要反向查找該參數信息屬於哪個組別,該組別屬於哪個設備,因此在每個參數查找對應的組別和設備信息,都需要將前一個信息進行保存,然後形成一個樹形鍊表,最後根據鍊表信息生成該定製轉發表的信息。
為了實現上述目的,本發明採用如下技術方案:
基於配電終端設備XML文件的定製轉發表生成方法,包括:
步驟(1):根據配電終端設備類型新建設備數組,並將設備數組進行初始化;讀取XML配置文件;判斷XML配置文件格式是否正確,若正確進入步驟(2),否則,結束;
步驟(2):定位XML配置文件節點,獲取節點數據,判斷節點數據是否為空;若節點數據不為空,進入步驟(3);反之,結束;
步驟(3):獲取節點的子節點個數N,若N>0,進入步驟(4),反之,結束;
步驟(4):將節點的子節點的數據記錄存儲到數據記錄表中;
步驟(5):將數據記錄表中的所有數據記錄逐一對應存儲到步驟(1)新建的設備數組中;
步驟(6):根據設備數組中的設備信息以及對應設備下的四遙信息和定值信息組成一個自頂向下由父節點和子節點組成的多叉樹結構的設備信息;根據用戶的需求,通過對多叉樹結構的設備信息的循環遍歷,生成對應設備的自定義定製轉發表。
所述步驟(1):
新建的設備數組包括:設備ID、設備名稱、設備地址、四遙數組和定值數組。
所述四遙數組包括:遙測數組、遙信數組、遙脈數組和遙控數組。
所述四遙數組的數據記錄包括:記錄ID、設備ID、設備地址、記錄類型、記錄內序號和記錄描述等信息,
所述記錄描述是對配電終端設備線路上的電壓、電流、功率、開關狀態和遠程控制等信息的描述。
所述定值數組包括:若干個定值組,每個定值組包括若干個定值數據記錄。
所述定值組和所述定值記錄都包含記錄ID,設備ID,設備地址,設備類型和設備描述信息,定值記錄是對配電終端設備的運行參數進行描述和設定。
所述步驟(1):判斷XML配置文件格式是否正確是根據XmlSerializer文件序列化庫函數Serialize判斷XML配置文件格式是否正確。
所述步驟(2)定位XML配置文件節點是指XML文件管理類根據xmlRoot根節點的屬性XmlAttribute、欄位命名空間Namespace和節點類型XmlElement定位XML配置文件節點。
所述步驟(3)節點的子節點包括遙測類型節點、遙信類型節點、遙脈類型節點、遙控類型節點和定值類型節點。
所述步驟(4)首先獲取遙測類型節點下的所有數據記錄,然後獲取遙信類型節點下的所有數據記錄,然後獲取遙脈類型節點下的所有數據記錄,然後獲取遙控類型節點下的所有數據記錄,最後獲取定值類型節點下的所有數據記錄;將所有的數據記錄按獲取順序全部存儲到數據記錄表中,將數據記錄表的首條數據記錄標識為k=1,進入步驟(5);
所述數據記錄包括:記錄ID,設備ID,設備地址,記錄類型,記錄內序號和記錄描述。
所述步驟(5)還包括:
步驟(51):判斷當前數據記錄是否為首條數據記錄,
若是,則根據數據記錄中的設備ID,在設備數組中新建設備信息,並將新建設備信息中的四遙數組和定值數組初始化,進入步驟(52);設備信息包括:設備ID、設備名稱和設備地址、四遙數組、定值數組;
若不是首條數據記錄,就根據數據記錄中的設備ID判斷設備數組中是否已經存在設備ID,
若存在,根據設備ID,從數據記錄中獲取對應的設備信息,進入步驟(52);
若不存在,根據設備ID,在設備數組中新建設備信息,並將新建設備信息中的四遙數組和定值數組初始化,進入步驟(52)。
步驟(52):繼續判斷數據記錄所屬節點的節點類型;
若節點類型為四遙類型,讀取當前數據記錄,並將當前數據記錄插入到設備數組中對應設備下的四遙數組下;
若節點數據類型為定值類型,讀取當前數據記錄,根據記錄內序號判斷當前數據記錄信息的父節點是否存在,
若存在,將當前數據記錄放入父節點下的子節點數據記錄中,將父節點數據以及父節點下的子節點數據存到設備數組對應設備下的定值數組中;
若不存在,將當前數據記錄直接存到設備數組對應設備下的定值數組中。
所述步驟(5)與步驟(6)之間還包括步驟(50):
步驟(50):讀取數據記錄表當前數據記錄的下一條記錄,判斷下一條記錄所屬節點的節點類型是否發生改變,若發生改變,則當前節點類型的數據記錄讀取完畢,若未發生改變,則繼續讀取;若讀取到數據記錄表的下一條記錄為空,則所有數據記錄已經讀取完畢,進入步驟(6),否則,返回步驟(3);
所述自定義定製轉發表包括遙測類型以及遙測數據記錄、遙信類型以及遙信數據記錄、遙脈類型以及遙脈數據記錄、遙控類型以及遙控數據記錄、定值類型以及定值數據記錄。
一般的轉發表是每個設備下都有對應固定結構的、分類明確、有序的、層次清晰的遙測、遙信、遙脈、遙控以及定值信息,自定義定製的轉發表是一個平坦的、分類清晰但結構及次序混亂的信息表。
四遙數組包括遙測數組、遙信數組、遙控數組和遙脈數組;所述遙測數組包括若干遙測數據記錄,所述遙信數組包括若干遙信數據記錄,所述遙脈數組包括若干遙脈數據記錄,所述遙控數組包括若干遙控數據記錄。
四遙類型包括遙測、遙信、遙脈、遙控。
所述父節點下面可以是一個子節點,也可以是多個子節點。
判斷下一條記錄的節點信息類型是否發生改變,例如,由當前記錄的節點信息類型是遙測類型,下一條記錄的節點信息類型是遙信類型,則判斷為發生改變。
基於配電終端設備XML文件的定製轉發表生成系統,包括:
設備數組新建模塊:根據配電終端設備類型新建設備數組,並將設備數組進行初始化;
配置文件讀取判斷模塊:讀取XML配置文件;判斷XML配置文件格式是否正確,若正確進入節點定位模塊,否則,結束;
節點定位模塊:定位XML配置文件節點,獲取節點數據,判斷節點數據是否為空;若節點數據不為空,進入節點獲取模塊;反之,結束;
節點獲取模塊:獲取節點的子節點個數N,若N>0,進入數據記錄表生成模塊,反之,結束;
數據記錄表生成模塊:將節點的子節點的數據記錄存儲到數據記錄表中;
存儲模塊:將數據記錄表中的所有數據記錄逐一對應存儲到設備數組新建模塊新建的設備數組中;
定值轉發表生成模塊:根據設備數組中的設備信息以及對應設備下的四遙信息和定值信息組成一個自頂向下由父節點和子節點組成的多叉樹結構的設備信息;根據用戶的需求,通過對多叉樹結構的設備信息的循環遍歷,生成對應設備的自定義定製轉發表。
本發明的有益效果:能夠自定義設備轉發表信息,並根據自定義的轉發表節點文件生成相應的轉發表文件,能夠更準確的定位節點對應的設備信息和快速查詢該設備的四遙信息,使設備配置方便自由,信息簡潔,效率高。
附圖說明
圖1為本發明的方法流程圖;
圖2為本發明的多叉樹設備信息。
具體實施方式
下面結合附圖與實施例對本發明作進一步說明。
如圖1-2所示,基於配電終端設備XML文件的定製轉發表生成方法,包括:
步驟(1):根據配電終端設備類型新建設備數組,並將設備數組進行初始化;讀取XML配置文件;判斷XML配置文件格式是否正確,若正確進入步驟(2),否則,結束;
步驟(2):定位XML配置文件節點,獲取節點數據,判斷節點數據是否為空;若節點數據不為空,進入步驟(3);反之,結束;
步驟(3):獲取節點的子節點個數N,若N>0,進入步驟(4),反之,結束;
步驟(4):將節點的子節點的數據記錄存儲到數據記錄表中;
步驟(5):將數據記錄表中的所有數據記錄逐一對應存儲到步驟(1)新建的設備數組中;
步驟(6):根據設備數組中的設備信息以及對應設備下的四遙信息和定值信息組成一個自頂向下由父節點和子節點組成的多叉樹結構的設備信息;根據用戶的需求,通過對多叉樹結構的設備信息的循環遍歷,生成對應設備的自定義定製轉發表。
所述步驟(1):新建的設備數組包括:設備ID、設備名稱、設備地址、四遙數組和定值數組。所述四遙數組包括:遙測數組、遙信數組、遙脈數組和遙控數組;所述四遙數組的記錄信息包括:記錄ID、設備ID、設備地址、記錄類型、記錄內序號和記錄描述,所述記錄描述是對配電終端設備線路上的電壓、電流、功率、開關狀態和遠程控制的描述。所述定值數組包括:若干個定值組,每個定值組包括若干個定值記錄,所述定值組和所述定值記錄都包含記錄ID,設備ID,設備地址,設備類型和設備描述信息,定值記錄是對配電終端設備的運行參數進行描述和設定。
所述步驟(1):判斷XML配置文件格式是否正確是根據XmlSerializer文件序列化庫函數Serialize判斷XML配置文件格式是否正確。
所述步驟(2)定位XML配置文件節點是指XML文件管理類根據xmlRoot根節點的屬性XmlAttribute、欄位命名空間Namespace和節點類型XmlElement定位XML配置文件節點。
所述步驟(3)節點的子節點包括遙測類型節點、遙信類型節點、遙脈類型節點、遙控類型節點和定值類型節點。
所述步驟(4)首先獲取遙測類型節點下的所有數據記錄,然後獲取遙信類型節點下的所有數據記錄,然後獲取遙脈類型節點下的所有數據記錄,然後獲取遙控類型節點下的所有數據記錄,最後獲取定值類型節點下的所有數據記錄;將所有的數據記錄按獲取順序全部存儲到數據記錄表中,將數據記錄表的首條數據記錄標識為k=1,進入步驟(5);
所述數據記錄包括:記錄ID,設備ID,設備地址,記錄類型,記錄內序號和記錄描述。
所述步驟(5)還包括:步驟(51):判斷當前數據記錄是否為首條數據記錄,若是,則根據數據記錄中的設備ID,在設備數組中新建設備信息,並將新建設備信息中的四遙數組和定值數組初始化,進入步驟(52);設備信息包括:設備ID、設備名稱和設備地址、四遙數組、定值數組;若不是首條數據記錄,就根據數據記錄中的設備ID判斷設備數組中是否已經存在設備ID,若存在,根據設備ID,從數據記錄中獲取對應的設備信息,進入步驟(52);若不存在,根據設備ID,在設備數組中新建設備信息,並將新建設備信息中的四遙數組和定值數組初始化,進入步驟(52)。
步驟(52):繼續判斷數據記錄所屬節點的節點類型;若節點類型為四遙類型,讀取當前數據記錄,並將當前數據記錄插入到設備數組中對應設備下的四遙數組下;若節點數據類型為定值類型,讀取當前數據記錄,根據記錄內序號判斷當前數據記錄信息的父節點是否存在,若存在,將當前數據記錄放入父節點下的子節點數據記錄中,將父節點數據以及父節點下的子節點數據存到設備數組對應設備下的定值數組中;若不存在,將當前數據記錄直接存到設備數組對應設備下的定值數組中。
所述步驟(5)與步驟(6)之間還包括步驟(50):
步驟(50):讀取數據記錄表當前數據記錄的下一條記錄,判斷下一條記錄所屬節點的節點類型是否發生改變,若發生改變,則當前節點類型的數據記錄讀取完畢,若未發生改變,則繼續讀取;若讀取到數據記錄表的下一條記錄為空,則所有數據記錄已經讀取完畢,進入步驟(6),否則,返回步驟(3);
所述自定義定製轉發表包括遙測類型以及遙測數據記錄、遙信類型以及遙信數據記錄、遙脈類型以及遙脈數據記錄、遙控類型以及遙控數據記錄、定值類型以及定值數據記錄。
一般的轉發表是每個設備下都有對應固定結構的、分類明確、有序的、層次清晰的遙測、遙信、遙脈、遙控以及定值信息,自定義定製的轉發表是一個平坦的、分類清晰但結構及次序混亂的信息表。
四遙數組包括遙測數組、遙信數組、遙控數組和遙脈數組;
四遙類型包括遙測、遙信、遙脈、遙控。
所述父節點下面可以是一個子節點,也可以是多個子節點。
判斷下一條記錄的節點信息類型是否發生改變,例如,由當前記錄的節點信息類型是遙測類型,下一條記錄的節點信息類型是遙信類型,則判斷為發生改變。
基於配電終端設備XML文件的定製轉發表生成系統,包括:
設備數組新建模塊:根據配電終端設備類型新建設備數組,並將設備數組進行初始化;
配置文件讀取判斷模塊:讀取XML配置文件;判斷XML配置文件格式是否正確,若正確進入節點定位模塊,否則,結束;
節點定位模塊:定位XML配置文件節點,獲取節點數據,判斷節點數據是否為空;若節點數據不為空,進入節點獲取模塊;反之,結束;
節點獲取模塊:獲取節點的子節點個數N,若N>0,進入數據記錄表生成模塊,反之,結束;
數據記錄表生成模塊:將節點的子節點的數據記錄存儲到數據記錄表中;
存儲模塊:將數據記錄表中的所有數據記錄逐一對應存儲到設備數組新建模塊新建的設備數組中;
定值轉發表生成模塊:根據設備數組中的設備信息以及對應設備下的四遙信息和定值信息組成一個自頂向下由父節點和子節點組成的多叉樹結構的設備信息;根據用戶的需求,通過對多叉樹結構的設備信息的循環遍歷,生成對應設備的自定義定製轉發表。
上述雖然結合附圖對本發明的具體實施方式進行了描述,但並非對本發明保護範圍的限制,所屬領域技術人員應該明白,在本發明的技術方案的基礎上,本領域技術人員不需要付出創造性勞動即可做出的各種修改或變形仍在本發明的保護範圍以內。