遠程抄表系統中集中器軟件的模塊化設計與實現
定時抄表模塊使用單獨線程實現,在模塊中判斷當前時間是否符合抄表設定的時間,如果是則將所有要抄讀信息發(fā)送到下行協議模塊封裝模塊進行封裝抄表命令,然后下發(fā)出去。在向下通信的過程中使用了兩個隊列來實現通信和處理的異步性,在對多個表抄讀時可提高整體系統的效率。
3 通信軟件的實現
該軟件系統模擬在Linux操作系統中用C++語言實現,每個模塊封裝成單獨的類,如下所示:
該類對應主控模塊,其中成員函數run()中實現主控模塊的功能,在系統中構造一個全局的Dispatcher對象以實現對主控模塊的訪問。
該類對應上行協議的幀,其中提供成員方法Encode()和Decode()來實現對上行協議的封裝和解析。在程序中只需創(chuàng)建一個幀的對象就可以通過這些函數實現封裝和解析的功能。下行協議采用同樣的方法處理:
該類對應集中器操作模塊,其中方法Do(int Op_Type)實現具體操作功能,參數Op_Type表示要做的具體操作,在函數內部可以使用switch-case語句判斷操作的類型,然后到各個分支執(zhí)行。
其余模塊采用相同的方法進行封裝,需要注意的是抄表模塊和下行通信模塊采用單獨線程處理,以實現抄表任務的定時啟動和下行數據傳輸的異步性。下行隊列采取封裝STL中queue模板來實現,并提供入隊,出對,獲取隊列大小等接口。
4 結語
集中器軟件設計的主要任務是實現其的各部分功能。主要功能包括:集中器控制、實時用電數據采集、定時數據采集及存儲、數據報文的轉發(fā)、運行狀態(tài)記錄及指示、通信管理等。采用了模塊化設計的通信軟件具有穩(wěn)定性好,效率高等特點,能夠進一步加快電力行業(yè)自動化的建設。
評論