一種變電站自動化系統(tǒng)通信協(xié)議動態(tài)實(shí)現(xiàn)方法
【專利摘要】本發(fā)明公開了一種變電站自動化系統(tǒng)通信協(xié)議動態(tài)實(shí)現(xiàn)方法,包括分析通信協(xié)議的文本描述,將其轉(zhuǎn)換成有限狀態(tài)機(jī),有限狀態(tài)機(jī)有限狀態(tài)集、事件輸入集、處理動作集、狀態(tài)變遷的映射函數(shù)集和初始狀態(tài)5部分組成;分別將有限狀態(tài)集、事件輸入集、處理動作集用基本格式表達(dá),所述基本格式為:“關(guān)鍵字=描述字符串”;編寫映射函數(shù)集,包括從左至右順序編寫的:當(dāng)前狀態(tài)、接收輸入報(bào)文、執(zhí)行運(yùn)行操作和當(dāng)前狀態(tài)轉(zhuǎn)化結(jié)果;對腳本語言中的關(guān)鍵字進(jìn)行統(tǒng)一定義;對腳本語言中的語法進(jìn)行統(tǒng)一說明。本發(fā)明將有限狀態(tài)機(jī)應(yīng)用于通信協(xié)議建模中,通過建構(gòu)一個(gè)通信協(xié)議實(shí)現(xiàn)框架,實(shí)現(xiàn)了通信協(xié)議的配置化。
【專利說明】一種變電站自動化系統(tǒng)通信協(xié)議動態(tài)實(shí)現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種變電站自動化系統(tǒng)通信協(xié)議動態(tài)實(shí)現(xiàn)方法,屬于通信【技術(shù)領(lǐng)域】。
【背景技術(shù)】
[0002] 目前國內(nèi)變電站自動化系統(tǒng)中通信規(guī)約種類繁多,既有由各標(biāo)準(zhǔn)化組織制定的 標(biāo)準(zhǔn)通信協(xié)議,如IEC60870系列,MODBUS,DNP,⑶T等,也有各設(shè)備廠家自定義的非標(biāo)協(xié) 議。但即使是廣泛使用的IEC60870系列標(biāo)準(zhǔn)協(xié)議,其4種配套標(biāo)準(zhǔn):IEC60870-5-101、 IEC60870-5-102、IEC60870-5-103、IEC60870-5-104,由于制定周期較長,協(xié)議中可選項(xiàng)較 多,各地區(qū)使用單位、各裝置生產(chǎn)廠家對協(xié)議的理解不同,4種配套標(biāo)準(zhǔn)都出現(xiàn)了很多子版 本。
[0003] 變電站通信管理機(jī)作為變電站數(shù)據(jù)中心,需要與站內(nèi)各智能設(shè)備和不同調(diào)度主站 通信,由于協(xié)議的多樣性和通信管理機(jī)內(nèi)部協(xié)議處理過程的不可見性,通常通信接口調(diào)試 工作需要占用較多的調(diào)試時(shí)間。同時(shí)、通信管理機(jī)需要維護(hù)一個(gè)數(shù)量巨大的協(xié)議庫,對協(xié)議 的任何修改都需要改動通信管理機(jī)的程序,也增大了通信管理機(jī)廠家的版本管理的難度。
[0004] 目前,計(jì)算機(jī)科學(xué)領(lǐng)域內(nèi)的有限狀態(tài)機(jī)理論一般用于對系統(tǒng)的動態(tài)行為建模,通 過用狀態(tài)圖來可視化表示,是對反應(yīng)式系統(tǒng)建模的強(qiáng)大工具。近20年來,有限狀態(tài)機(jī)和狀 態(tài)圖的形式化機(jī)制得到了很多研究,有效地支持了各種復(fù)雜行為的建模。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于提供一種基于有限狀態(tài)機(jī)和自定義腳本語言的變電站自動化 系統(tǒng)通信協(xié)議動態(tài)實(shí)現(xiàn)方法,將有限狀態(tài)機(jī)應(yīng)用于通信協(xié)議建模中,通過建構(gòu)一個(gè)通信協(xié) 議實(shí)現(xiàn)框架,實(shí)現(xiàn)通信協(xié)議的配置化。
[0006] 為達(dá)到上述目的,本發(fā)明所采用的技術(shù)方案是:一種變電站自動化系統(tǒng)通信協(xié)議 動態(tài)實(shí)現(xiàn)方法,包括如下步驟:
[0007] 步驟一:分析通信協(xié)議的文本描述,將其轉(zhuǎn)換成有限狀態(tài)機(jī),有限狀態(tài)機(jī)由:用于 描述發(fā)送報(bào)文的有限狀態(tài)集、用于描述接收報(bào)文的事件輸入集、用于表示處理行為的處理 動作集、用于表示有限狀態(tài)機(jī)間的狀態(tài)變遷的映射函數(shù)集和初始狀態(tài)5部分組成;
[0008] 步驟二:分別將有限狀態(tài)集、事件輸入集、處理動作集用基本格式表達(dá),所述基本 格式為:"關(guān)鍵字=描述字符串";
[0009] 步驟三:編寫映射函數(shù)集,包括從左至右順序編寫的:當(dāng)前狀態(tài)、接收輸入報(bào)文、 執(zhí)行運(yùn)行操作和當(dāng)前狀態(tài)轉(zhuǎn)化結(jié)果;
[0010] 步驟四:對腳本語言中的關(guān)鍵字進(jìn)行統(tǒng)一定義,包括:有限狀態(tài)機(jī)關(guān)鍵字定義、發(fā) 送接收表達(dá)式關(guān)鍵字定義、處理表達(dá)式關(guān)鍵字定義和計(jì)算表達(dá)式關(guān)鍵字定義;
[0011] 步驟五:對腳本語言中的語法進(jìn)行統(tǒng)一說明,包括:有限狀態(tài)集語法說明、事件輸 入集語法說明、處理動作集語法說明和映射函數(shù)集語法說明。
[0012] 進(jìn)一步的,所述有限狀態(tài)集是從通信協(xié)議中提取的所有發(fā)送命令。
[0013] 進(jìn)一步的,所述事件輸入集是從通信協(xié)議中提取的所有接收命令。
[0014] 進(jìn)一步的,所述描述字符串為立即數(shù)。
[0015] 進(jìn)一步的,所述描述字符串為計(jì)算表達(dá)式。
[0016] 進(jìn)一步的,所述描述字符串由多個(gè)子串組成,每個(gè)子串格式為"關(guān)鍵字:計(jì)算表達(dá) 式"。
[0017] 與現(xiàn)有技術(shù)相比,本發(fā)明所達(dá)到的有益效果是:
[0018] (1)提供了一種基于有限狀態(tài)機(jī)和自定義腳本語言的變電站自動化系統(tǒng)通信協(xié)議 動態(tài)實(shí)現(xiàn)方法,無論是客戶端還是服務(wù)端協(xié)議,也無論協(xié)議為平衡式或非平衡式,變電站通 信管理機(jī)都可采用同一通信模塊和自定義腳本語言實(shí)現(xiàn),實(shí)現(xiàn)了通信協(xié)議的配置化;
[0019] (2)本發(fā)明定義了一種腳本語言描述通信協(xié)議,通過對腳本語言的編程控制有限 狀態(tài)機(jī)處理器的運(yùn)行,不同的通信協(xié)議對應(yīng)不同的腳本程序,相同的通信協(xié)議腳本程序也 相同,日積月累可形成一個(gè)豐富的腳本程序庫,方便現(xiàn)場使用;
[0020] (3)有限狀態(tài)集、事件輸入集、處理動作集均采用統(tǒng)一的基本格式:"關(guān)鍵字=描 述字符串",這三種表達(dá)式格式統(tǒng)一,易學(xué)易用;
[0021] (4)自定義的腳本語言具有擴(kuò)展性,方便以后功能擴(kuò)展。
【專利附圖】
【附圖說明】
[0022] 圖1是采用本發(fā)明的問答式通信協(xié)議處理流程圖。
【具體實(shí)施方式】
[0023] 下面結(jié)合附圖對本發(fā)明作進(jìn)一步描述。以下實(shí)施例僅用于更加清楚地說明本發(fā)明 的技術(shù)方案,而不能以此來限制本發(fā)明的保護(hù)范圍。
[0024] 步驟一:分析通信協(xié)議的文本描述,將其轉(zhuǎn)換成有限狀態(tài)機(jī)。
[0025] 有限狀態(tài)機(jī)由以下5部分組成:
[0026] 有限狀態(tài)集:是從通信協(xié)議中提取的所有發(fā)送命令,用于描述發(fā)送報(bào)文,可以 用[STATE_x]表示有限狀態(tài)集代碼,其中,X為數(shù)字,每個(gè)有限狀態(tài)集的由發(fā)送報(bào)文編碼 packet和發(fā)送報(bào)文名稱send_type組成,發(fā)送報(bào)文編碼packet為必有項(xiàng)。
[0027] 事件輸入集:是從通信協(xié)議中提取的所有接收命令,用于描述接收報(bào)文,以 [INPUT_x]表示,每個(gè)事件輸入集由接收報(bào)文編碼packet和接收報(bào)文名稱rece_type組成, 其中packet為必有項(xiàng)。
[0028] 處理動作集:根據(jù)當(dāng)前狀態(tài)[STATE_x]和當(dāng)前輸入[INPUT_x],按照通信協(xié)議編寫 [0UTPUT_x],用于表示對應(yīng)的處理行為。
[0029] 映射函數(shù)集:根據(jù)當(dāng)前狀態(tài)[STATE_x]和當(dāng)前輸入[INPUT_x],按照通信協(xié)議編寫 [TRANSLATE_x],用于表示有限狀態(tài)機(jī)間的狀態(tài)變遷。
[0030] 初始狀態(tài):表示有限狀態(tài)機(jī)的初始狀態(tài),默認(rèn)為[STATE_1]。
[0031] 步驟二:分別將有限狀態(tài)集、事件輸入集、處理動作集用基本格式表達(dá),基本格式 為:"關(guān)鍵字=描述字符串"。
[0032] 每個(gè)有限狀態(tài)集、事件輸入集、處理動作集都由若干個(gè)表達(dá)項(xiàng)組成,每個(gè)表達(dá)項(xiàng) 左側(cè)為關(guān)鍵字,右側(cè)為描述字符串。關(guān)鍵字包括packet、send_type、test_input/test_ input[x]等項(xiàng),描述字符串可以為多個(gè)子串,每個(gè)子串格式為"關(guān)鍵字:計(jì)算表達(dá)式",每 個(gè)子串可以是立即數(shù),也可以是計(jì)算表達(dá)式,子串中的各個(gè)字節(jié)以逗號分隔。
[0033]如 packet = "Oxeb,0x90, Oxeb, 0x90, Oxeb, 0x90, Addr, 0x00, 0x00, SUM[6:8]",表 示該狀態(tài)發(fā)送10個(gè)字節(jié),0x5a等為立即數(shù),SUM[6:8]計(jì)算表達(dá)式,表示取第6至第8字節(jié) 的累加和校驗(yàn)碼。
[0034] 對于處理動作集,基本格式中關(guān)鍵字表示處理對象,描述字符串表示待處理數(shù)據(jù)。 舉例如下:
[0035] 如:yc4 = 〃(bytel0*256+byte9)/100〃,表示將右側(cè)計(jì)算表達(dá)式的值填入遙測數(shù) 據(jù)庫第4點(diǎn)。
[0036] 如:soe21 = 〃state:byte9 = = 2, year:bytel5, month:bytel6, day:bytel7, hou r:bytel8, min:bytel9, second:byte20〃,表示此為遙信庫第21號點(diǎn)的SOE信息,描述字符 串由多個(gè)子串組成,描述了 SOE信息的各項(xiàng)內(nèi)容。子串表達(dá)式"state:byte9 == 2",左側(cè) state表示SOE信息的狀態(tài),右側(cè)為計(jì)算表達(dá)式,表示SOE狀態(tài)值,當(dāng)接收的第9個(gè)字節(jié)為2 時(shí),SOE狀態(tài)值為1,其他為0。子串表達(dá)式"year: by tel 5",左側(cè)year表示SOE信息的年時(shí) 間,右側(cè)為計(jì)算表達(dá)式,表示時(shí)間值。其余子串表達(dá)式分別表示SOE信息的月、日、小時(shí)、分、 秒。
[0037] 如 gps = 〃year:asc(bytel2)*1000+asc(bytel3)*100+asc(bytel4)*10+asc(by tel5), month:asc(bytell)*10+asc(byte10), day:asc(byte9*0xl00+byte8), hour:asc(b yte3)*10+asc (byte2), min:asc(byte5)*10+asc(byte4), second:asc(byte7) *10+asc (byt e6) 〃,表示此為GPS對時(shí)信息,描述字符串由多個(gè)子串組成,描述了 GPS對時(shí)的各項(xiàng)內(nèi)容。 子串〃year:asc(bytel2)*1000+asc(bytel3)*100+asc(bytel4)*10+asc(bytel5)",左側(cè) year表示GPS對時(shí)的年時(shí)間,右側(cè)為計(jì)算表達(dá)式,表示時(shí)間值,其中asc ()函數(shù)表示將接收 的字節(jié)數(shù)據(jù)由ASCII碼轉(zhuǎn)換成二進(jìn)制數(shù)據(jù)。
[0038] 步驟三:編寫映射函數(shù)集,包括從左至右順序編寫的:當(dāng)前狀態(tài)、接收輸入報(bào)文、 執(zhí)行運(yùn)行操作和當(dāng)前狀態(tài)轉(zhuǎn)化結(jié)果。
[0039] 如:映射函數(shù)為:STATE_1 >INPUT_2>0UTPUT_2>STATE_2,則表示當(dāng)前狀 態(tài)處于STATE_1時(shí),若接收輸入報(bào)文為INPUT_2,執(zhí)行運(yùn)算操作0UTPUT_2,并將當(dāng)前狀態(tài)轉(zhuǎn) 換為 STATE_2。
[0040] 步驟四:對腳本語言中的關(guān)鍵字進(jìn)行統(tǒng)一定義,包括:有限狀態(tài)機(jī)關(guān)鍵字定義、發(fā) 送接收表達(dá)式關(guān)鍵字定義、處理表達(dá)式關(guān)鍵字定義和計(jì)算表達(dá)式關(guān)鍵字定義。如表1-5所 示,為各部分關(guān)鍵字定義對照表,表6為計(jì)算表達(dá)式中支持的運(yùn)算符及函數(shù)。
[0041] 表1 :有限狀態(tài)機(jī)關(guān)鍵字定義對照表
[0042]
【權(quán)利要求】
1. 一種變電站自動化系統(tǒng)通信協(xié)議動態(tài)實(shí)現(xiàn)方法,其特征在于,包括如下步驟: 步驟一:分析通信協(xié)議的文本描述,將其轉(zhuǎn)換成有限狀態(tài)機(jī),有限狀態(tài)機(jī)由:用于描述 發(fā)送報(bào)文的有限狀態(tài)集、用于描述接收報(bào)文的事件輸入集、用于表示處理行為的處理動作 集、用于表示有限狀態(tài)機(jī)間的狀態(tài)變遷的映射函數(shù)集和初始狀態(tài)5部分組成; 步驟二:分別將有限狀態(tài)集、事件輸入集、處理動作集用基本格式表達(dá),所述基本格式 為:"關(guān)鍵字=描述字符串"; 步驟三:編寫映射函數(shù)集,包括從左至右順序編寫的:當(dāng)前狀態(tài)、接收輸入報(bào)文、執(zhí)行 運(yùn)行操作和當(dāng)前狀態(tài)轉(zhuǎn)化結(jié)果; 步驟四:對腳本語言中的關(guān)鍵字進(jìn)行統(tǒng)一定義,包括:有限狀態(tài)機(jī)關(guān)鍵字定義、發(fā)送接 收表達(dá)式關(guān)鍵字定義、處理表達(dá)式關(guān)鍵字定義和計(jì)算表達(dá)式關(guān)鍵字定義; 步驟五:對腳本語言中的語法進(jìn)行統(tǒng)一說明,包括:有限狀態(tài)集語法說明、事件輸入集 語法說明、處理動作集語法說明和映射函數(shù)集語法說明。
2. 根據(jù)權(quán)利要求1所述的變電站自動化系統(tǒng)通信協(xié)議動態(tài)實(shí)現(xiàn)方法,其特征在于,所 述有限狀態(tài)集是從通信協(xié)議中提取的所有發(fā)送命令。
3. 根據(jù)權(quán)利要求1所述的變電站自動化系統(tǒng)通信協(xié)議動態(tài)實(shí)現(xiàn)方法,其特征在于,所 述事件輸入集是從通信協(xié)議中提取的所有接收命令。
4. 根據(jù)權(quán)利要求1所述的變電站自動化系統(tǒng)通信協(xié)議動態(tài)實(shí)現(xiàn)方法,其特征在于,所 述描述字符串為立即數(shù)。
5. 根據(jù)權(quán)利要求1所述的變電站自動化系統(tǒng)通信協(xié)議動態(tài)實(shí)現(xiàn)方法,其特征在于,所 述描述字符串為計(jì)算表達(dá)式。
6. 根據(jù)權(quán)利要求1所述的變電站自動化系統(tǒng)通信協(xié)議動態(tài)實(shí)現(xiàn)方法,其特征在于,所 述描述字符串由多個(gè)子串組成,每個(gè)子串格式為"關(guān)鍵字:計(jì)算表達(dá)式"。
【文檔編號】H04L29/06GK104333540SQ201410567656
【公開日】2015年2月4日 申請日期:2014年10月22日 優(yōu)先權(quán)日:2014年10月22日
【發(fā)明者】賈德順, 張傳羽, 李園圓 申請人:國電南瑞科技股份有限公司