《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 遠程抄表系統中集中器軟件的模塊化設計與實現
遠程抄表系統中集中器軟件的模塊化設計與實現
閻 浩 葉 崧
摘要: 研究基于GPRS的無線遠程抄表系統,利用GPRS技術連接主站與集中器,從而縮短了布線的范圍及長度,并可實時、準確地獲取電表數據并上傳數據到主站,重點研究基于GPRS的有線集中器的軟件設計。
Abstract:
Key words :

0 引言
    近些年來由于電子技術、計算機技術和通信技術的快速發展而加快了各個行業的自動化進程,在電力行業內,也依靠現代化技術改變了傳統的手工抄表方法,使得抄表工作在不需要人力的情況下依靠網絡和計算機就能快速而準確的完成,提高了抄表過程中數據采集的實時性、可靠性、信息量。目前的自動化抄表系統主要有掌上抄表系統,有線抄表系統和無線抄表系統,其中掌上抄表系統需抄表人員用掌上抄表器抄收數據,因此自動化程度不夠;有線系統需要施工布線,既提高了費用又增加了難度;而無線抄表系統雖不需布線,安裝也方便,但信號易受外界干擾,數據傳輸的穩定性較差,容易抄收失敗。因此主要研究基于GPRS的無線遠程抄表系統,利用GPRS技術連接主站與集中器,從而縮短了布線的范圍及長度,并可實時、準確地獲取電表數據并上傳數據到主站,重點研究基于GPRS的有線集中器的軟件設計。

1 系統結構描述
   
完整的遠程抄表系統包括主站、集中器、采集器、載波表、手持終端等,其系統結構如圖1所示。


    主站是運行抄表系統的計算機,一般放在電力中心,由它來發出命令進行定時抄表、實時抄讀或設置相關信息等操作。主站通過GPRS與集中器通信。
    集中器負責連接若干個電表或采集器,此范圍內的所有電表的抄讀工作由集中器統一完成,然后再將結果傳送給主站,集中器與主站間通過GPRS連接,下行通過RS 486進行連接。
    本文重點介紹集中器中通信軟件的設計。

2 集中器通信軟件設計
2.1 集中器功能
   
集中器除了響應主站命令外還要負責對電表的定時抄讀,因此設計集中器軟件時要明確這2個功能,即:響應主站命令與定時抄表。響應主站命令任務的啟動是由主站命令到達觸發的,定時抄表任務則應該由集中器內時間觸發而啟動的,不同的任務對應不同的處理流程。
2.2 響應主站流程
   
集中器向上與主站連接,向下與各終端進行通信。與主站間的通信集中器處于從屬地位,它只有在接收到主站中的命令時才做出操作,而不能主動與主站發起通信;而其與下行終端通信時,集中器處于主動地位,它在適當的時候向下終端發出命令,而不會收到下行的主動請求幀。
    圖2描述了集中器通信流程,通信的工作始終運行在外圍的無限循環中判斷和接收主站請求幀,當接收到主站命令后先判斷此數據幀是否校驗正確,若錯誤檢查錯誤原因,并根據錯誤類型設置錯誤代碼,然后發送異常應答幀;否則判斷是否是集中器命令,若不是集中器命令則需要判斷是否需要轉發,需要轉發則首先將協議進行轉換,然后將命令轉發出去,接收到轉發響應后再向主站響應;若是集中器命令,則根據操作碼對集中器進行相關操作,操作完成后返回響應幀,然后進入下一個循環繼續等待主站的命令幀。


2.3 抄表任務流程
   
定時抄表是集中器的重要功能,通常有抄表日抄表,抄表月抄表,整點抄表;零點抄表等多種類型。集中器首先啟動抄表任務功能,然后不斷檢測當前時間是否符合設定的抄表時間,如果不符合則繼續下一輪的檢查;否則獲取到要抄讀的電表信息,然后向電表發送抄讀命令幀,收到回復后先驗證數據的正確性,如果數據正確則進行相關的入庫等操作,否則重發抄讀命令(一般設為3次),當數據處理完成后,進行下一輪循環。整個流程如圖3所示


2.4 軟件模塊設計
   
根據上節介紹的流程,在設計軟件的時候將整個系統分為如下幾個部分:
    主控模塊  負責命令的接收,發送,邏輯判斷,數據流的控制等總體調度和控制工作。
    上行協議解析模塊  負責對主站下發的命令進行幀的校驗和解析,并將解析的結果保存以便主控的訪問。
    上行協議封裝模塊  負責對主站回復幀的封裝工作,具體數據由主控模塊提供。
    集中器操作模塊  負責根據主站命令實現對集中器的操作工作。
    下行協議封裝模塊  在需要命令轉換時,該模塊負責將主站下發的命令翻譯成下行協議,在抄讀任務啟動后負責封裝抄讀命令。
    下行通信模塊  負責下行命令的發送和接收。
    下行協議的解析模塊  負責將下行命令的回復幀進行校驗和解析。
    數據處理模塊  負責將必要的數據存入數據庫或從數據庫中讀取數據。
    抄表模塊  負責定時啟動抄表任務。
    整體的系統模型如圖4所示。


    定時抄表模塊使用單獨線程實現,在模塊中判斷當前時間是否符合抄表設定的時間,如果是則將所有要抄讀信息發送到下行協議模塊封裝模塊進行封裝抄表命令,然后下發出去。在向下通信的過程中使用了兩個隊列來實現通信和處理的異步性,在對多個表抄讀時可提高整體系統的效率。

3 通信軟件的實現
   
該軟件系統模擬在Linux操作系統中用C++語言實現,每個模塊封裝成單獨的類,如下所示:
   
    該類對應主控模塊,其中成員函數run()中實現主控模塊的功能,在系統中構造一個全局的Dispatcher對象以實現對主控模塊的訪問。
   
    該類對應上行協議的幀,其中提供成員方法Encode()和Decode()來實現對上行協議的封裝和解析。在程序中只需創建一個幀的對象就可以通過這些函數實現封裝和解析的功能。下行協議采用同樣的方法處理:
   
    該類對應集中器操作模塊,其中方法Do(int Op_Type)實現具體操作功能,參數Op_Type表示要做的具體操作,在函數內部可以使用switch-case語句判斷操作的類型,然后到各個分支執行。
    其余模塊采用相同的方法進行封裝,需要注意的是抄表模塊和下行通信模塊采用單獨線程處理,以實現抄表任務的定時啟動和下行數據傳輸的異步性。下行隊列采取封裝STL中queue模板來實現,并提供入隊,出對,獲取隊列大小等接口。

4 結語
   
集中器軟件設計的主要任務是實現其的各部分功能。主要功能包括:集中器控制、實時用電數據采集、定時數據采集及存儲、數據報文的轉發、運行狀態記錄及指示、通信管理等。采用了模塊化設計的通信軟件具有穩定性好,效率高等特點,能夠進一步加快電力行業自動化的建設。

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 嫩草影院永久一二三入口 | 高清中文字幕 | 久久国产精品久久精 | 草草操 | 日韩欧美一及在线播放 | 69性成熟xxxxhd | 午夜影院在线 | 日韩精品一区二区三区在线观看 | 麻豆久久婷婷国产综合五月 | 日韩黄色一级视频 | 国产一区二区三区在线 | 中文字幕一区视频 | 全部免费的毛片视频观看 | 黄色片中文| 欧美freesex呦交6_10 | 成人抖音软件 | 久久国产精品永久免费网站 | 天天操夜夜爱 | 天天摸天天碰天天碰 | 国产精品成人免费视频99 | 九九久久99 | 五月桃花网婷婷亚洲综合 | 一区二区三区无码高清视频 | 男女一起www免费高清视频 | 国产欧美日韩视频怡春院 | 久久精品成人免费网站 | 999香蕉视频 | 最近2019中文字幕免费大全5 | 夜夜爽一区二区三区精品 | 国产欧美成人免费观看 | 成人亚洲视频在线观看 | 久久成人免费观看全部免费 | 快点给我黄色录像看 | 国产精品一区二区不卡的视频 | 欧美丝袜制服 | 亚洲欧美综合一区二区三区四区 | 黄色福利 | 久操精品在线观看 | 日本不卡二区 | 国产乱子伦一区二区三区 | 成人永久免费福利视频网站 |