亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于GO語言的配網(wǎng)自動化短信系統(tǒng)設(shè)計與實現(xiàn)

        2023-06-07 09:42:46李偉青葉匯鎵
        計算機應(yīng)用與軟件 2023年5期
        關(guān)鍵詞:數(shù)據(jù)庫功能系統(tǒng)

        李偉青 石 揚 葉匯鎵

        (廣東電網(wǎng)有限責任公司梅州供電局 廣東 梅州 514021)

        0 引 言

        配網(wǎng)自動化設(shè)備點多面廣,告警信號量巨大[1],調(diào)度員漏監(jiān)視告警信號情況時有發(fā)生,導致供電所運維人員無法及時掌握設(shè)備異常情況,繼而耽誤搶修復電時間。因此,配電自動化主站系統(tǒng)的短信功能應(yīng)運而生。目前,電網(wǎng)企業(yè)使用的配網(wǎng)自動化系統(tǒng)基本帶有短信功能,但受系統(tǒng)底層架構(gòu)設(shè)計限制,僅支持固定數(shù)量的供電所,如配網(wǎng)自動化系統(tǒng)OPEN3200僅支持32個供電所,D5200僅支持64個供電所。對于配調(diào)集約化的地級市供電公司[2],管理的供電所數(shù)量往往會超過64個,此時,配網(wǎng)自動化系統(tǒng)自帶的短信功能就難以滿足實際需求。為解決上述問題,本文設(shè)計開發(fā)了一套獨立于主站系統(tǒng)、可支持任意供電所數(shù)量的跨平臺短信系統(tǒng)。

        1 系統(tǒng)硬件設(shè)計

        本系統(tǒng)主要包括數(shù)據(jù)庫服務(wù)器、Linux工作站和GMS短信模塊等三部分。數(shù)據(jù)庫服務(wù)器和Linux工作站是配網(wǎng)自動化主站系統(tǒng)發(fā)布區(qū)(安全III區(qū))設(shè)備,數(shù)據(jù)庫采用國產(chǎn)達夢數(shù)據(jù)庫(DM7),該數(shù)據(jù)庫以結(jié)構(gòu)化方式存儲了配電設(shè)備跳閘和異常告警信息。工作站安裝了達夢數(shù)據(jù)庫客戶端,借助配網(wǎng)自動化主站系統(tǒng)局域網(wǎng),即可遠程訪問數(shù)據(jù)庫服務(wù)器獲取告警信息。短信系統(tǒng)部署在Linux工作站上,定期讀取數(shù)據(jù)庫相關(guān)數(shù)據(jù)表中的告警記錄,將告警信息處理成短信內(nèi)容后以串口或USB接口輸出至GSM短信模塊,再通過運營商公網(wǎng)發(fā)送至目標接收人手機。系統(tǒng)硬件整體如圖1所示。

        圖1 系統(tǒng)硬件連接圖

        2 軟件架構(gòu)設(shè)計

        系統(tǒng)軟件設(shè)計采用“主程序+接口”架構(gòu),可實現(xiàn)主程序與接口之間有效解耦。將主要功能需求劃分為Web控制管理接口、告警信息采集接口、GSM短信模塊接口,主程序只需負責調(diào)用各功能接口,將各接口的數(shù)據(jù)流有序銜接處理,就可實現(xiàn)接口之間各司其職、運行高效、擴展靈活的目標。系統(tǒng)軟件架構(gòu)如圖2所示。

        圖2 系統(tǒng)軟件架構(gòu)圖

        考慮到數(shù)據(jù)庫類型和數(shù)據(jù)表結(jié)構(gòu)因不同應(yīng)用場景存在差異,將告警信息采集接口做成插件模式,采集信息的具體邏輯由通用的shell腳本實現(xiàn),主程序通過調(diào)用數(shù)據(jù)采集插件即可獲得指定時間段數(shù)據(jù)表中的所有告警信息。在獲取到告警信息后,主程序按照預定的規(guī)則進行匹配,保留真正需要發(fā)送短信的告警信息,從Web載入的excel表格信息找出告警信息接收人,并將告警內(nèi)容和接收人手機號碼存入緩存隊列。再通過調(diào)用GSM短信模塊不斷從緩存隊列中消費數(shù)據(jù),按特定協(xié)議封裝成GSM模塊識別的編碼信息發(fā)出。為提升短信的發(fā)送效率,將GSM模塊設(shè)計成短信發(fā)送集群管理模塊,每個模塊隨機從緩存隊列中取出告警內(nèi)容,自動實現(xiàn)短信發(fā)送負載均衡。人機交互方面,本系統(tǒng)將告警信息預定的匹配規(guī)則和告警短信接收人信息與短信平臺程序解耦,管理員可通過Web控制臺上傳json文件和excel文件,對短信平臺的數(shù)據(jù)采集及線路管理人員信息配置進行管理。此外,短信平臺對每個關(guān)鍵環(huán)節(jié)開啟了日志模式,詳細記錄了告警信息內(nèi)容、短信發(fā)送時間、接收人等信息,并可通過Web控制臺對上述流水日志進行查詢,便于功能調(diào)試和責任追溯。

        3 核心功能軟件實現(xiàn)

        3.1 編程開發(fā)語言選擇

        傳統(tǒng)的基于C/C++為編程語言,使用面向?qū)ο蟮腝T類GUI系統(tǒng)為基礎(chǔ)研發(fā)的客戶端軟件系統(tǒng),在升級換代操作系統(tǒng)時,也面臨著重新適配開發(fā)的工作,軟件的使用和開發(fā)成本都比較高。如果將傳統(tǒng)的客戶端程序做成B/S(Brower/Server)架構(gòu),將軟件功能展示的邏輯交由操作系統(tǒng)發(fā)行版默認的瀏覽器來呈現(xiàn),核心的功能由服務(wù)端來提供,整個軟件系統(tǒng)的開發(fā)將不會局限于某個特定的GUI庫[3-4]。這種開放模式的優(yōu)點也是顯而易見的,一方面可充分利用Web豐富的生態(tài)環(huán)境實現(xiàn)前端展現(xiàn)功能,另一方面,可從QTC++的跨平臺GUI開發(fā)框架解放出來,選擇一個對開發(fā)和維護更加友好的后臺開發(fā)語言來實現(xiàn)核心功能。因此本文選擇了當前廣泛應(yīng)用后臺程序開發(fā)的Golang語言。Golang語言是Google站在C/C++歷史的經(jīng)驗基礎(chǔ)上發(fā)明的專供服務(wù)端開發(fā)的語言,相比于C++的復雜,Golang是大道至簡[5-6]。

        3.2 數(shù)據(jù)查詢接口

        為實現(xiàn)主程序與數(shù)據(jù)采集解耦,數(shù)據(jù)查詢的邏輯由shell腳本實現(xiàn),以文本流形式反饋給主程序。主程序中QueryForAlert()函數(shù)是查詢告警的總線程,可根據(jù)配置文件中查詢表信息,產(chǎn)生相應(yīng)線程queryOneTableGenAlert()進行單張表查詢操作,兩個函數(shù)是逐級細化解耦多表查詢操作過程。用戶可通過配置cft.json中的tables結(jié)構(gòu)體信息,實現(xiàn)查詢數(shù)據(jù)庫多張不同表的目的,具有非常靈活的擴展特性。tables配置信息中包括輪詢數(shù)據(jù)庫間隔時間、數(shù)據(jù)庫查詢腳本路徑、對告警內(nèi)容匹配的“白名單”關(guān)鍵字和過濾的“黑名單”關(guān)鍵字等。

        shell腳本是實現(xiàn)數(shù)據(jù)庫告警記錄查詢的載體,其主要功能包括實現(xiàn)遠程登錄、查詢指定數(shù)據(jù)表告警信息兩方面。腳本設(shè)計上充分考慮了擴展性,將通用的登錄和文本處理封裝成“exec_query.sh”,而查詢具體數(shù)據(jù)表的操作封裝成一個模板,如查詢事故跳閘告警信息的模板accident.sql.template,再將這兩部分整合成一個具有表名特征的接口查詢腳本,如事故信息表查詢腳本query_accident.sh。

        3.3 緩存隊列數(shù)據(jù)存儲

        由于腳本查詢數(shù)據(jù)庫的速率比GSM發(fā)送短信的速率快幾個數(shù)量級,兩者之間須要引入一種“降速器”才能解決速率失配的問題——短信緩存隊列。查詢程序調(diào)用系統(tǒng)底層命令執(zhí)行函數(shù)exec.Command()運行shell腳本,將查詢結(jié)果以文本流形式管道標準輸出cmd.StdoutPipe(),并存入csv文件流讀(接收)對象csvreader中。程序逐行讀出csvreader內(nèi)容,按圖3所示流程進行處理,將告警查詢結(jié)果轉(zhuǎn)變成包含告警內(nèi)容主體、接收人號碼、線路名稱等信息的alert結(jié)構(gòu)體,并不斷存入緩存隊列,為下一步的短信封裝(熟數(shù)據(jù))與發(fā)送提供原材料。

        3.4 緩存隊列數(shù)據(jù)消費

        考慮到Msg(告警內(nèi)容)和Receivers(接收人)之間存在一對多的映射關(guān)系,每條告警內(nèi)容需根據(jù)接收人數(shù)量生成的多條短信逐一發(fā)送m.SendSMS()。程序中以不帶break的for死循環(huán),不斷從ch隊列中讀取并封裝發(fā)送。

        常見的GSM模塊僅支持發(fā)送中文短信字符數(shù)不超過70個[7-8],因此在發(fā)送前對短信內(nèi)容長度進行判斷,將超出70個字符的內(nèi)容分割成多條(SplitMsg),并在每條短信內(nèi)容前標記次序,以便接收人分辨子短信的先后順序(如分割成兩條短信時,標記為1/2、2/2)。SendSMS()循環(huán)調(diào)用sendOneSMS()發(fā)送一個小于70個字符的短信,循環(huán)次數(shù)即為長短信切割成小短信的數(shù)量。

        3.5 GMS模塊發(fā)送短信過程

        短信系統(tǒng)硬件上采用串口通信,軟件上通過AT指令交互。為避免modem發(fā)送的中文內(nèi)容是亂碼,系統(tǒng)對短信內(nèi)容采用PDU協(xié)議的UCS2編碼。在短信發(fā)送過程中,向一個接收人發(fā)送一條不超過70字符短信封裝成發(fā)送短信的最小操作單元sendOneSMS(),其核心操作包括短信編碼封裝和編碼發(fā)送兩部分。具體發(fā)送流程如圖4所示。

        圖4 短信發(fā)送過程流程

        AT命令是用于控制TE(Terminal Equipment)和MT(Mobile Terminal)之間交互的協(xié)議,協(xié)議本身采用文本,每個命令均以AT打頭[9-10]。系統(tǒng)采用西門子TC35i系列芯片,涉及的AT指令主要包括以下五個:

        AT+CSCA?

        //查詢短信服務(wù)中心號碼

        AT+CMGF=0

        //設(shè)置短信格式為PDU模式

        AT+CMGS=length

        //發(fā)送短信文本長度

        AT+IPR=115 200

        //設(shè)置波特率為115 200

        AT&W

        //保存修改后的配置

        4 系統(tǒng)測試與應(yīng)用

        為驗證設(shè)計開發(fā)軟件的有效性,將短信系統(tǒng)部署在工作站中,并加入Linux操作系統(tǒng)自啟動列表。短信系統(tǒng)啟動初始化成功后發(fā)送一條提示短信,第一次運行需在accident_last_time文件設(shè)置數(shù)據(jù)庫查詢起始時間,否則按默認時間2020-01-01 00:00:00。GSM模塊采用9針串口線接入工作站COM1,使用Linux系統(tǒng)命令dmesg| grep ttyS查看GSM模塊是否正確掛載在/dev/tt yS0文件中。在測試過程中,為了避免短信誤發(fā)至目標接收人,先對config.xls配置文件中的接收人手機號臨時修改成測試人員手機號。測試結(jié)果如下:圖5為短信系統(tǒng)Web控制管理界面,圖6為配網(wǎng)自動化主站告警信息,圖7為測試人員接收短信。

        圖5 Web控制管理界面

        圖6 配網(wǎng)自動化主站告警信息

        圖7 測試人員接收短信

        為提高短信發(fā)布功能的可靠性,短信系統(tǒng)設(shè)置了“看門狗”功能,每天下午5:10(可修改)定時向系統(tǒng)管理員發(fā)送一條“sms station is running”提示短信,以表示短信平臺運行正常;管理員如未收到短信,則說明短信系統(tǒng)自身故障,需現(xiàn)場檢查處理。

        5 結(jié) 語

        自主開發(fā)的短信系統(tǒng)成功部署應(yīng)用,使得配網(wǎng)自動化主站系統(tǒng)具備向任意個供電所按配電線路運維歸屬精準發(fā)送告警短信的能力。高效精確的短信服務(wù)解決了運維單位獲取設(shè)備異常信息手段不足的痛點,為運維單位快速隔離故障和恢復送電贏得寶貴時間,有助于提升公司供電可靠性水平。鑒于短信系統(tǒng)具有良好的擴展性,下一步將豐富短信功能,擴充數(shù)據(jù)查詢腳本對配網(wǎng)主站系統(tǒng)自身告警信息的采集,以提升主站系統(tǒng)安全運行水平。

        猜你喜歡
        數(shù)據(jù)庫功能系統(tǒng)
        也談詩的“功能”
        中華詩詞(2022年6期)2022-12-31 06:41:24
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機系統(tǒng)
        ZC系列無人機遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        關(guān)于非首都功能疏解的幾點思考
        數(shù)據(jù)庫
        財經(jīng)(2017年2期)2017-03-10 14:35:35
        數(shù)據(jù)庫
        財經(jīng)(2016年15期)2016-06-03 07:38:02
        數(shù)據(jù)庫
        財經(jīng)(2016年3期)2016-03-07 07:44:46
        數(shù)據(jù)庫
        財經(jīng)(2016年6期)2016-02-24 07:41:51
        久热香蕉av在线爽青青| 美女高潮黄又色高清视频免费| 国产女人高潮叫床视频| 亚洲欧美精品91| 激情文学人妻中文字幕| 久久精品熟女亚洲av麻豆永永| 国产va免费精品观看精品| 国产精品成人99一区无码 | 亚洲av综合av国一区二区三区| 国产亚洲精品久久午夜玫瑰园| 东北妇女xx做爰视频| 一本一道波多野结衣av中文| 亚洲综合天堂av网站在线观看| 色综合久久中文综合网亚洲| 国产操逼视频| 久久国产亚洲高清观看5388 | 99精品久久精品一区| 好紧好爽免费午夜视频| 97人人超碰国产精品最新o| 亚洲AV日韩AV高潮喷潮无码| 美女免费观看一区二区三区| 国产精品a免费一区久久电影| 天堂sv在线最新版在线| 免费在线观看蜜桃视频| 粉嫩极品国产在线观看免费一区| 午夜理论片yy44880影院| 国产精品jizz观看| 久久国产劲爆内射日本| 久久久极品少妇刺激呻吟网站| 久久99久久99精品中文字幕| 伊人久久亚洲综合影院首页| 中文字幕一区二区网址| 亚洲欧美综合精品成人网站| 国产色综合天天综合网| 国产精品一区二区午夜久久| 国产av在线观看一区二区三区| 特级a欧美做爰片第一次| 国产成人乱色伦区小说| 亚洲专区一区二区三区四区五区| 国产a∨天天免费观看美女| 国产精品视频一区二区三区四|