一種用于微電網(wǎng)數(shù)據(jù)采集系統(tǒng)的通道管理實現(xiàn)方法
【專利摘要】本發(fā)明提供了一種用于微電網(wǎng)數(shù)據(jù)采集系統(tǒng)的通道管理實現(xiàn)方法,根據(jù)抽象提煉的各種通訊設(shè)備的通用屬性與操作,確定通用的通訊設(shè)備類,根據(jù)通用通訊設(shè)備類的定義與串口通訊、網(wǎng)絡(luò)TCP通訊、網(wǎng)絡(luò)UDP通訊、串口服務(wù)器通訊的實現(xiàn)方法,確定各個通訊設(shè)備子類;確定通訊設(shè)備類實例化,生成各個通訊設(shè)備子類的實例,并統(tǒng)一以通訊設(shè)備類的對象返回。本發(fā)明在分析了各種微電網(wǎng)通訊設(shè)備通訊方式的實現(xiàn)方法后,抽象提煉出通用通訊設(shè)備類,統(tǒng)一對外提供諸如打開設(shè)備、關(guān)閉設(shè)備、監(jiān)測連接狀態(tài)、讀數(shù)據(jù)、寫數(shù)據(jù)等的接口函數(shù),大大降低了對數(shù)據(jù)采集軟件編程的難度,提高了軟件的通用性、穩(wěn)定性,同時便于維護,也有很好的可擴展性。
【專利說明】
一種用于微電網(wǎng)數(shù)據(jù)采集系統(tǒng)的通道管理實現(xiàn)方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明屬于微電網(wǎng)系統(tǒng)技術(shù)領(lǐng)域,涉及到微電網(wǎng)數(shù)據(jù)采集系統(tǒng)的通道管理實現(xiàn)方 法。
【背景技術(shù)】
[0002] 近年來,隨著分布式發(fā)電與儲能技術(shù)的發(fā)展,微電網(wǎng)在國內(nèi)外得到廣泛應(yīng)用。微電 網(wǎng)接在用戶側(cè),具有低成本、低電壓、低污染等特點,它既可與大電網(wǎng)聯(lián)網(wǎng)運行,也可在電網(wǎng) 故障或需要時與主網(wǎng)斷開單獨運行。微電網(wǎng)不僅解決了分布式電源的大規(guī)模接入問題,充 分發(fā)揮了分布式電源的各項優(yōu)勢,還為用戶帶來了其他多方面的效益。微網(wǎng)將從根本上改 變傳統(tǒng)的應(yīng)對負荷增長的方式,在降低能耗、提高電力系統(tǒng)可靠性和靈活性等方面具有巨 大發(fā)展?jié)摿Α?br>[0003] 微電網(wǎng)數(shù)據(jù)采集系統(tǒng)作為微電網(wǎng)監(jiān)視、運行控制與能量管理軟件的基礎(chǔ)功能,要 與逆變器、變流器、微網(wǎng)測控保護裝置、模式控制器以及電池管理系統(tǒng)等各類設(shè)備、子系統(tǒng) 進行通訊獲取數(shù)據(jù),面臨多種通信信道的選擇。有串口方式、網(wǎng)絡(luò)方式,串行通訊方式又分 232、422、485多種接線方式,網(wǎng)絡(luò)通訊方式下可能采用局域網(wǎng)、廣域網(wǎng),又可能采用TCP協(xié) 議、UDP協(xié)議等。串口與網(wǎng)絡(luò)兩種通訊方式還可以通過串口服務(wù)器設(shè)備進行轉(zhuǎn)換。另外,在 Wind〇WS、Unix等多個操作系統(tǒng)平臺上,每種通道的訪問實現(xiàn)方式又有所不同。一般的數(shù)據(jù) 采集軟件根據(jù)通訊設(shè)備的類型和操作系統(tǒng)類型,結(jié)合具體的通訊協(xié)議獨立開發(fā)程序,在軟 件的穩(wěn)定性、擴展性、代碼的重用性、應(yīng)對需求變更的自適應(yīng)調(diào)節(jié)能力、易維護性等方面存 在比較大的欠缺。
【發(fā)明內(nèi)容】
[0004] 有鑒于此,本發(fā)明提出一種用于微電網(wǎng)數(shù)據(jù)采集系統(tǒng)的通道管理實現(xiàn)方法,在總 結(jié)了大量已有應(yīng)用成果的基礎(chǔ)上,對微電網(wǎng)數(shù)據(jù)采集通訊方式應(yīng)用做了進一步改進、歸納 和擴展,形成了一種用于微電網(wǎng)數(shù)據(jù)采集系統(tǒng)的跨平臺、跨通訊方式的通用通道管理方法, 加強軟件功能的通用和可定制特性。
[0005] 為達到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的:一種用于微電網(wǎng)數(shù)據(jù)采集系 統(tǒng)的通道管理實現(xiàn)方法,實現(xiàn)步驟如下:
[0006] (1)根據(jù)抽象提煉的各種通訊設(shè)備的通用屬性與操作,確定通用的通訊設(shè)備類,該 通訊設(shè)備類以動態(tài)鏈接庫的方式對外提供;
[0007] (2)根據(jù)通用通訊設(shè)備類的定義與串口通訊、網(wǎng)絡(luò)TCP通訊、網(wǎng)絡(luò)UDP通訊、串口服 務(wù)器通訊的實現(xiàn)方法,確定各個通訊設(shè)備子類;
[0008] (3)確定通訊設(shè)備類實例化,生成各個通訊設(shè)備子類的實例,并統(tǒng)一以通訊設(shè)備類 的對象返回。
[0009] 進一步的,步驟(1)所述通訊設(shè)備類的通用接口函數(shù)包括:
[0010] open連接函數(shù),用于解析通訊設(shè)備名稱,打開通訊設(shè)備連接;
[0011] close連接函數(shù),用于關(guān)閉通訊設(shè)備連接;
[0012] read函數(shù),用于從通訊設(shè)備端口讀入一定長度的數(shù)據(jù)寫入緩沖區(qū);
[0013] write函數(shù),用于從緩沖區(qū)讀取一定長度的數(shù)據(jù)寫入通訊設(shè)備端口;
[0014] 10控制函數(shù),用于控制通訊設(shè)備I/O屬性;
[0015] Check函數(shù),用于監(jiān)測通訊設(shè)備連接狀態(tài)。
[0016] 更進一步的,所述通用接口函數(shù)以純虛函數(shù)、動態(tài)鏈接庫導(dǎo)出函數(shù)的方式存在。
[0017] 進一步的,步驟(2)所述通訊設(shè)備子類包括串口、網(wǎng)絡(luò)TCP、網(wǎng)絡(luò)UDP、串口服務(wù)器。
[0018] 更進一步的,所述串口通訊設(shè)備子類中增加了串口的專用屬性,定義了串口的專 用結(jié)構(gòu),實現(xiàn)不同操作系統(tǒng)平臺下適應(yīng)于串口訪問的各個接口函數(shù)。
[0019] 更進一步的,所述網(wǎng)絡(luò)TCP通訊設(shè)備子類中增加了網(wǎng)絡(luò)TCP的專用屬性,實現(xiàn)不同 操作系統(tǒng)平臺下適應(yīng)于網(wǎng)絡(luò)TCP訪問的各個接口函數(shù),分別實現(xiàn)連接網(wǎng)絡(luò)的客戶端與網(wǎng)絡(luò) 監(jiān)聽的服務(wù)端。
[0020] 更進一步的,所述網(wǎng)絡(luò)UDP通訊設(shè)備子類中增加了網(wǎng)絡(luò)UDP的專用屬性,實現(xiàn)不同 操作系統(tǒng)平臺下適應(yīng)于網(wǎng)絡(luò)UDP訪問的各個接口函數(shù)。
[0021] 更進一步的,所述串口服務(wù)器為虛擬串口方式,不必增加新的子類處理,直接調(diào)用 串口通訊設(shè)備子類;所述串口服務(wù)器為TCP模式,網(wǎng)絡(luò)TCP通訊設(shè)備子類增加子類,該增加的 子類中設(shè)置端口偏移量屬性,各個接口函數(shù)無需重新實現(xiàn),用于串口服務(wù)器的調(diào)用。
[0022] 相對于現(xiàn)有技術(shù),本發(fā)明所述的一種用于微電網(wǎng)數(shù)據(jù)采集系統(tǒng)的通道管理實現(xiàn)方 法具有以下優(yōu)勢:
[0023] 本發(fā)明采用面向?qū)ο蠹夹g(shù),在分析了各種微電網(wǎng)通訊設(shè)備通訊方式的實現(xiàn)方法 后,抽象提煉出通用通訊設(shè)備類,統(tǒng)一對外提供諸如打開設(shè)備、關(guān)閉設(shè)備、監(jiān)測連接狀態(tài)、讀 數(shù)據(jù)、寫數(shù)據(jù)等的接口函數(shù),使得微電網(wǎng)數(shù)據(jù)采集系統(tǒng)的前置通訊軟件(或其它上層應(yīng)用的 使用者)不必關(guān)心具體的操作系統(tǒng)平臺與通訊設(shè)備類型,只需簡單的調(diào)用這些接口,通訊設(shè) 備類的對象會自動匹配到各自具體的實現(xiàn)方法。這樣,大大降低了對數(shù)據(jù)采集軟件編程的 難度,提高了軟件的通用性、穩(wěn)定性,同時便于維護,也有很好的可擴展性。
【附圖說明】
[0024] 構(gòu)成本發(fā)明的一部分的附圖用來提供對本發(fā)明的進一步理解,本發(fā)明的示意性實 施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:
[0025] 圖1為本發(fā)明的實施例中通訊設(shè)備類類圖。
【具體實施方式】
[0026] 需要說明的是,在不沖突的情況下,本發(fā)明的實施例及實施例中的特征可以相互 組合。
[0027] 下面將參考附圖并結(jié)合實施例來詳細說明本發(fā)明。
[0028]本發(fā)明具體實現(xiàn)步驟如下:
[0029] 第一步:根據(jù)抽象提煉的各種通訊設(shè)備的通用屬性與操作,確定通用通訊設(shè)備類 CComDev,該類以動態(tài)鏈接庫的方式對外提供。
[0030] 通訊設(shè)備的通用屬性包括:
[0031] int Devld; //設(shè)備標(biāo)識符
[0032] QSuint8 State; //設(shè)備狀態(tài)
[0033] char DevName[DEV_NAMELEN]; //設(shè)備名稱
[0034] 其中,QSuint8 以及下文中 QSuintl6,QSintl6,QSuint32,QSint32 等為統(tǒng)一定義的 跨平臺數(shù)據(jù)類型。
[0035] 通訊設(shè)備類的通用接口包括:
[0036] 解析通訊設(shè)備名稱,打開通訊設(shè)備連接
[0037] virtual int Open(char*devname,DevSetting*setting = NULL) =0;
[0038] 關(guān)閉通訊設(shè)備連接
[0039] virtual int Close(void) =0;
[0040] 從通訊設(shè)備端口讀入一定長度的數(shù)據(jù)寫入緩沖區(qū)
[0041] virtual int Read(void*buf, int len, int TimeOut = 0) = 0;
[0042] 從緩沖區(qū)讀取一定長度的數(shù)據(jù)寫入通訊設(shè)備端口
[0043] virtual int ffrite(void*buf, int len, int TimeOut = 0) = 0;
[0044] 控制通訊設(shè)備I/O屬性
[0045] virtual int IoCtl(CTRLCMD cmd,int&mode)=0;
[0046] 監(jiān)測通訊設(shè)備連接狀態(tài)
[0047] virtual int Check(void) =0;
[0048] 這些接口函數(shù)以純虛函數(shù)、動態(tài)鏈接庫導(dǎo)出函數(shù)的方式存在。
[0049] 第二步:根據(jù)通用通訊設(shè)備類的定義與串口通訊的實現(xiàn)方法,確定串口通訊設(shè)備 子類 CSerialDev。
[0050] 增加專用屬性:
[0051] HANDLE hFile;
[0052]定義專用結(jié)構(gòu):
[0054]然后實現(xiàn)不同操作系統(tǒng)平臺下適應(yīng)于串口訪問的各個接口函數(shù)。
[0055] 第三步:根據(jù)通用通訊設(shè)備類的定義與網(wǎng)絡(luò)TCP通訊的實現(xiàn)方法,確定網(wǎng)絡(luò)TCP通 訊設(shè)備子類CTcpDev。
[0056]增加專用屬性:
[0058]然后實現(xiàn)不同操作系統(tǒng)平臺下適應(yīng)于網(wǎng)絡(luò)TCP訪問的各個接口函數(shù),根據(jù) ServerFlag屬性分別實現(xiàn)連接網(wǎng)絡(luò)的客戶端與網(wǎng)絡(luò)監(jiān)聽的服務(wù)端。其中I〇Ctl()在該子類 中不適用。
[0059] 第四步:根據(jù)通用通訊設(shè)備類的定義與網(wǎng)絡(luò)UDP通訊的實現(xiàn)方法,確定網(wǎng)絡(luò)UDP通 訊設(shè)備子類⑶dpDev。
[0060] 增加專用屬性:
[0061] struct sockaddr_in Remote_Addr;//對方地址
[0062] 然后實現(xiàn)不同操作系統(tǒng)平臺下適應(yīng)于網(wǎng)絡(luò)UDP訪問的各個接口函數(shù),其中IoCtlO 在該子類中不適用。
[0063] 第五步:根據(jù)串口服務(wù)器在微電網(wǎng)數(shù)據(jù)采集系統(tǒng)中兩種實際應(yīng)用方式確定串口服 務(wù)器通訊的實現(xiàn)方式。在虛擬串口的方式下,不必增加新的子類處理,直接調(diào)用CSerialDev 即可。在串口服務(wù)器配置為TCP模式下,調(diào)用增加的CTcpDev的子類CSerialServer。該類中 設(shè)置端口偏移量屬性如下。
[0064] Port_0ffset = 4000 ;
[0065] 各個接口函數(shù)無需重新實現(xiàn)。
[0066] 第六步:確定通訊設(shè)備類實例化的方法。
[0067] CCommDev*CreateAComDev(QSuint32devtype)
[0068] 其中,devtype參數(shù)代表串口、網(wǎng)絡(luò)TCP、網(wǎng)絡(luò)UDP、串口服務(wù)器等各個通訊設(shè)備類 型,在該方法中,生成各個通訊設(shè)備子類的實例,并統(tǒng)一以CCo_Dev基類的對象返回。
[0069] 本實施例中通訊設(shè)備類的類圖如圖1所示。
[0070] 本發(fā)明采用面向?qū)ο蠹夹g(shù),在分析了各種微電網(wǎng)通訊設(shè)備通訊方式的實現(xiàn)方法 后,抽象提煉出通用通訊設(shè)備類,統(tǒng)一對外提供諸如打開設(shè)備、關(guān)閉設(shè)備、監(jiān)測連接狀態(tài)、讀 數(shù)據(jù)、寫數(shù)據(jù)等的接口函數(shù),使得微電網(wǎng)數(shù)據(jù)采集系統(tǒng)的前置通訊軟件(或其它上層應(yīng)用的 使用者)不必關(guān)心具體的操作系統(tǒng)平臺與通訊設(shè)備類型,只需簡單的調(diào)用這些接口,通訊設(shè) 備類的對象會自動匹配到各自具體的實現(xiàn)方法。這樣,大大降低了對數(shù)據(jù)采集軟件編程的 難度,提高了軟件的通用性、穩(wěn)定性,同時便于維護,也有很好的可擴展性。
[0071] 以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
【主權(quán)項】
1. 一種用于微電網(wǎng)數(shù)據(jù)采集系統(tǒng)的通道管理實現(xiàn)方法,其特征在于,實現(xiàn)步驟如下: (1) 根據(jù)抽象提煉的各種通訊設(shè)備的通用屬性與操作,確定通用的通訊設(shè)備類,該通訊 設(shè)備類以動態(tài)鏈接庫的方式對外提供; (2) 根據(jù)通用通訊設(shè)備類的定義與串口通訊、網(wǎng)絡(luò)TCP通訊、網(wǎng)絡(luò)UDP通訊、串口服務(wù)器 通訊的實現(xiàn)方法,確定各個通訊設(shè)備子類; (3) 確定通訊設(shè)備類實例化,生成各個通訊設(shè)備子類的實例,并統(tǒng)一以通訊設(shè)備類的對 象返回。2. 根據(jù)權(quán)利要求1所述的一種用于微電網(wǎng)數(shù)據(jù)采集系統(tǒng)的通道管理實現(xiàn)方法,其特征 在于,步驟(1)所述通訊設(shè)備類的通用接口函數(shù)包括: open連接函數(shù),用于解析通訊設(shè)備名稱,打開通訊設(shè)備連接; close連接函數(shù),用于關(guān)閉通訊設(shè)備連接; read函數(shù),用于從通訊設(shè)備端口讀入一定長度的數(shù)據(jù)寫入緩沖區(qū); write函數(shù),用于從緩沖區(qū)讀取一定長度的數(shù)據(jù)寫入通訊設(shè)備端口; 10控制函數(shù),用于控制通訊設(shè)備I/O屬性; Check函數(shù),用于監(jiān)測通訊設(shè)備連接狀態(tài)。3. 根據(jù)權(quán)利要求2所述的一種用于微電網(wǎng)數(shù)據(jù)采集系統(tǒng)的通道管理實現(xiàn)方法,其特征 在于,所述通用接口函數(shù)以純虛函數(shù)、動態(tài)鏈接庫導(dǎo)出函數(shù)的方式存在。4. 根據(jù)權(quán)利要求1所述的一種用于微電網(wǎng)數(shù)據(jù)采集系統(tǒng)的通道管理實現(xiàn)方法,其特征 在于,步驟(2)所述通訊設(shè)備子類包括串口、網(wǎng)絡(luò)TCP、網(wǎng)絡(luò)UDP、串口服務(wù)器。5. 根據(jù)權(quán)利要求4所述的一種用于微電網(wǎng)數(shù)據(jù)采集系統(tǒng)的通道管理實現(xiàn)方法,其特征 在于,所述串口通訊設(shè)備子類中增加了串口的專用屬性,定義了串口的專用結(jié)構(gòu),實現(xiàn)不同 操作系統(tǒng)平臺下適應(yīng)于串口訪問的各個接口函數(shù)。6. 根據(jù)權(quán)利要求4所述的一種用于微電網(wǎng)數(shù)據(jù)采集系統(tǒng)的通道管理實現(xiàn)方法,其特征 在于,所述網(wǎng)絡(luò)TCP通訊設(shè)備子類中增加了網(wǎng)絡(luò)TCP的專用屬性,實現(xiàn)不同操作系統(tǒng)平臺下 適應(yīng)于網(wǎng)絡(luò)TCP訪問的各個接口函數(shù),分別實現(xiàn)連接網(wǎng)絡(luò)的客戶端與網(wǎng)絡(luò)監(jiān)聽的服務(wù)端。7. 根據(jù)權(quán)利要求4所述的一種用于微電網(wǎng)數(shù)據(jù)采集系統(tǒng)的通道管理實現(xiàn)方法,其特征 在于,所述網(wǎng)絡(luò)UDP通訊設(shè)備子類中增加了網(wǎng)絡(luò)UDP的專用屬性,實現(xiàn)不同操作系統(tǒng)平臺下 適應(yīng)于網(wǎng)絡(luò)UDP訪問的各個接口函數(shù)。8. 根據(jù)權(quán)利要求4所述的一種用于微電網(wǎng)數(shù)據(jù)采集系統(tǒng)的通道管理實現(xiàn)方法,其特征 在于,所述串口服務(wù)器為虛擬串口方式,不必增加新的子類處理,直接調(diào)用串口通訊設(shè)備子 類;所述串口服務(wù)器為TCP模式,網(wǎng)絡(luò)TCP通訊設(shè)備子類增加子類,該增加的子類中設(shè)置端口 偏移量屬性,各個接口函數(shù)無需重新實現(xiàn),用于串口服務(wù)器的調(diào)用。
【文檔編號】G06F9/44GK105867943SQ201610246783
【公開日】2016年8月17日
【申請日】2016年4月19日
【發(fā)明人】趙學(xué)臣
【申請人】天津天大求實電力新技術(shù)股份有限公司