張雯柏,彭翠云,張立都,胡愛云
(上海鐵大電信科技股份有限公司 研究發(fā)展中心, 上海 200070)
鐵路信號智能分析與故障診斷系統(tǒng)(簡稱:智能分析)在信號集中監(jiān)測(CSM,Centralized Signaling Monitoring)的基礎(chǔ)上,對安全隱患預(yù)先識別與實(shí)時(shí)處理,給出穩(wěn)定有效的故障解決方案。電務(wù)設(shè)備檢修、故障定位、隱患處理不再只依靠維護(hù)人員的業(yè)務(wù)水平和經(jīng)驗(yàn)積累程度[1]?,F(xiàn)有CSM系統(tǒng)主要有 CSM–HH、 CSM–TD、 CSM–TH、CSM–KA、CSM–YH、 CSM–JS、 CSM–JD、CSM–WD、 CSM–LT、 CSM–CL等。唐匯東應(yīng)用蟻群算法生成腳本全局串接測試RBC[2]。崔巖使用正向最大匹算法生成腳本測試TCC[3]。叢向超提出覆蓋全場景編制腳本測試TSRS[4]。白鴻鈞等人研究腳本語言測試LKJ[5]。在上述研究基礎(chǔ)上,本文著重研究以數(shù)據(jù)驅(qū)動(dòng)方式把自動(dòng)化腳本系統(tǒng)引入CSM智能分析系統(tǒng)測試。
對智能分析系統(tǒng)的漸增式集成測試是上站之前必備的工作步驟,實(shí)際站場中信號設(shè)備類型多樣、故障邏輯多變、測試腳本數(shù)量大,直接依靠手工編寫需要較長時(shí)間,且在接口協(xié)議轉(zhuǎn)換、經(jīng)驗(yàn)值讀取、數(shù)值計(jì)算等編寫過程中容易出錯(cuò)。因此,設(shè)計(jì)一套以數(shù)據(jù)驅(qū)動(dòng)讀取站場數(shù)據(jù)、程序化業(yè)務(wù)邏輯、序列化故障腳本數(shù)目,面向CSM智能分析的測試腳本生成系統(tǒng)具有一定的實(shí)用意義。
搭建的智能分析測試系統(tǒng),如圖1所示,分為腳本入口層、模擬轉(zhuǎn)換層以及傳輸層。腳本入口層是模擬采集工具TestServer;模擬轉(zhuǎn)換層包括相應(yīng)數(shù)據(jù)格式轉(zhuǎn)換模塊;傳輸層主要是綜合信息通信采集板卡,能夠接收RS485、CAN、RS232和TCP/IP格式的數(shù)據(jù);環(huán)境監(jiān)測、列控中心、TDCS/CTC、UPS和集中監(jiān)測等信息直接從TCP/IP通信網(wǎng)輸入站機(jī)[6]。
圖1 CSM智能分析系統(tǒng)的測試結(jié)構(gòu)圖
(1)將測試腳本輸入到TestServer,把腳本分割為單個(gè)模擬采集數(shù)據(jù)包;(2)數(shù)據(jù)包通過腳本入口網(wǎng)傳輸至模擬轉(zhuǎn)換層,模擬工具接收對應(yīng)的數(shù)據(jù)解析歸類,分別打包為RS485、TCP/IP、CAN以及Moxa卡等監(jiān)測格式的數(shù)據(jù);(3)傳輸至監(jiān)測站機(jī),經(jīng)拆解分析后保留有用信息作為監(jiān)測采集數(shù)據(jù),并轉(zhuǎn)發(fā)到智能分析系統(tǒng)處理,得到報(bào)警和預(yù)警結(jié)果。
測試故障按安全級別分為報(bào)警和預(yù)警腳本。鐵路信號設(shè)備類型分為信號機(jī)、道岔、軌道電路、站內(nèi)電碼化、電源屏、外電網(wǎng)、環(huán)境監(jiān)測、聯(lián)鎖系統(tǒng)、列控中心、TDCS/CTC、UPS等,其中,信號機(jī)、道岔、軌道電路、電源屏與外電網(wǎng)需要通過測試腳本進(jìn)行邏輯分析。如圖2所示,按設(shè)備類型依次展開各自對應(yīng)的報(bào)警和預(yù)警項(xiàng)目。
同一報(bào)警或預(yù)警對應(yīng)不同的原因,如表1中區(qū)間軌道電路包括4個(gè)報(bào)警項(xiàng)目,其中,“區(qū)間紅光帶”的故障原因包括“發(fā)送功出電壓低”等6類[7],如果要驗(yàn)證該報(bào)警項(xiàng)目,則需編寫上述6類故障原因腳本。
智能分析系統(tǒng)以單個(gè)設(shè)備為最小的處理單元,站場信號設(shè)備配置數(shù)量增加,測試腳本成倍數(shù)增長,同類單元的監(jiān)測點(diǎn)與采集種類相同,因此設(shè)計(jì)時(shí)按照故障類型分類,對設(shè)備統(tǒng)一編號,統(tǒng)計(jì)并編寫該類故障下所有設(shè)備的獨(dú)立腳本,文章以區(qū)間軌道電路為例,圖3所示是一個(gè)區(qū)間軌道電路單元包含的11個(gè)故障區(qū)域,需要配套編寫相應(yīng)的11類邏輯腳本[8]。
模擬轉(zhuǎn)換層的模塊要按照一定的通信協(xié)議解析腳本,因此編寫腳本前,需要設(shè)計(jì)腳本中各類采集通信協(xié)議,按照現(xiàn)場實(shí)際采集方式設(shè)計(jì)以下幾類通信協(xié)議,如圖4所示。
以區(qū)間軌道電路通信協(xié)議為例,區(qū)間軌道電路走網(wǎng)絡(luò)通信時(shí),模擬量通信協(xié)議以“區(qū)間軌道電路(網(wǎng)絡(luò))=區(qū)段名稱,模擬量標(biāo)志位,設(shè)定值”格式設(shè)計(jì),按ZPW2000A監(jiān)測通信協(xié)議,模擬量標(biāo)志位設(shè)置在0到27范圍,分別表示區(qū)段各監(jiān)測點(diǎn)采集量,如“04=28810AG,3,2 000”, 其中“3”表示“功出載頻”。區(qū)間軌道電路開關(guān)量通信協(xié)議以“區(qū)間軌道電路(網(wǎng)絡(luò))=區(qū)段名稱,開關(guān)量標(biāo)志位,狀態(tài)位”格式設(shè)計(jì),開關(guān)量標(biāo)志位,0表示主軌,1表示小軌;狀態(tài)位,0表示空閑,1表示占用,2表示無效。如“09=28810AG,0,1”。區(qū)間軌道電路走串口通信時(shí),以“區(qū)間軌道電路(串口)=區(qū)段名稱,模擬量標(biāo)志位,模擬量類型”格式設(shè)計(jì),模擬量類型中,1表示區(qū)間軌道電路,2表示電碼化。
圖2 CSM智能分析系統(tǒng)處理報(bào)警與預(yù)警分類
表1 區(qū)間軌道電路報(bào)警項(xiàng)目與原因
圖3 區(qū)間軌道電路單元故障定位區(qū)域與監(jiān)測采集點(diǎn)
自動(dòng)化測試腳本分為5個(gè)層次:線性化,結(jié)構(gòu)化,共享化,數(shù)據(jù)驅(qū)動(dòng)化與關(guān)鍵字驅(qū)動(dòng)化腳本。考慮到站場數(shù)據(jù)配置多,儲(chǔ)存格式多樣,不能隨意修改,因此采用數(shù)據(jù)與腳本分離的數(shù)據(jù)驅(qū)動(dòng)化設(shè)計(jì)方式,腳本只編寫邏輯控制信息,通過讀取站場配置文檔,經(jīng)邏輯計(jì)算配置模擬量大小。該設(shè)計(jì)方式優(yōu)點(diǎn)是可以快速添加相似測試,不同類別腳本讀取同一數(shù)據(jù)時(shí)互不影響。編寫時(shí)程序成本大,有多少類腳本就要寫多少類邏輯,但后期維護(hù)成本小。
信號設(shè)備的報(bào)警可以按照業(yè)務(wù)邏輯逐層分析定位,因此編寫腳本遵從相應(yīng)的邏輯推導(dǎo)規(guī)則,能夠降低誤寫率,避免內(nèi)容重復(fù)的編寫。如圖5所示,圖5 a是對應(yīng)的數(shù)據(jù)驅(qū)動(dòng)化編寫腳本程序流程圖;圖5 b是區(qū)間軌道紅光帶的業(yè)務(wù)邏輯分析流程圖。
圖4 測試系統(tǒng)模擬通信協(xié)議分類
2.2.1 編寫初始化腳本
在腳本運(yùn)行之前,需要對測試站場信號設(shè)備的開關(guān)量和模擬量進(jìn)行初始化設(shè)置,保證測試站場處于正常工作狀態(tài)。
(1)初始化站場信號設(shè)備開關(guān)量。通過站場配置文件讀取所有信號設(shè)備的開關(guān)量,查找對應(yīng)的ID號并設(shè)置,有道岔的1DQJ、2DQJ、定反表繼電器開關(guān)量;站內(nèi)軌道電路GJ、FBJD等相關(guān)開關(guān)量;聯(lián)鎖、外電網(wǎng)、電源屏相關(guān)開關(guān)量;控制臺(tái)接發(fā)車與閉塞按鈕相關(guān)開關(guān)量;各模塊與采集板卡通信狀態(tài)等相關(guān)開關(guān)量等。程序?qū)?yīng)讀取StationCFG.ini站場圖信息,讀取FrankCFG.ini連接的通信地址與分機(jī)號,讀取Digit.ini中所有配置開關(guān)量的名稱和ID號。
(2)初始化站場信號設(shè)備模擬量。查找所有模擬量ID號并設(shè)置對應(yīng)模擬量等于正常狀態(tài)下的經(jīng)驗(yàn)值。有電源屏、外電網(wǎng)、站內(nèi)軌道、道岔、信號機(jī)、電纜絕緣、電源漏流、電碼化、區(qū)間軌道電路與監(jiān)測、計(jì)軸、環(huán)境監(jiān)測、UPS等相關(guān)的電壓、電流、阻抗、功率、載頻、相位角模擬量。編寫程序?qū)?yīng)讀取 Power、ModBus、TrackCircuit、Turnout、TrackTestDa、TrackOnSit、Signal、SetOther等文擋中的模擬量名稱與ID。
(3)根據(jù)讀取的實(shí)驗(yàn)室經(jīng)驗(yàn)值文檔TrackTestDa和現(xiàn)場經(jīng)驗(yàn)值TrackOnSit文檔設(shè)置站場開關(guān)量和模擬量初始值。初始化后,所有主電源點(diǎn)亮,軌道處于出清狀態(tài),信號機(jī)點(diǎn)紅燈,道岔處于定位狀態(tài)。
2.2.2 編寫發(fā)送功出電壓低腳本
(1)編寫初始化語句,調(diào)初始化腳本,使所有設(shè)備處于初始狀態(tài)。
(2)取站場管轄區(qū)間內(nèi)一段非盡頭區(qū)段,在Digit開關(guān)量表中查找對應(yīng)ID號。
(3)通過該區(qū)段名稱和ID,在Analog模擬量表中查找對應(yīng)的功出電壓和電流、電纜側(cè)發(fā)送電壓和電流、受端電纜側(cè)主軌電壓、主軌入和小軌入電壓、主軌出和小軌出電壓模擬量ID號,初始化該區(qū)段所有設(shè)備的電壓、電流、載頻處于正常經(jīng)驗(yàn)值。
(4)通過該區(qū)段名稱和ID,在SecRelation軌道關(guān)聯(lián)表中查找該區(qū)段前后相鄰區(qū)段名稱與ID,讀取相關(guān)數(shù)據(jù)表,設(shè)置相鄰區(qū)段GJ吸起。
(5)設(shè)置該區(qū)段功出電壓和電流模擬量低于邏輯閾值,延時(shí)默認(rèn)20 s。
應(yīng)用上述(2)的方法編寫剩余區(qū)間軌道紅光帶的5類腳本,根據(jù)邏輯依次編寫,對邏輯結(jié)構(gòu)不同的地方做相應(yīng)調(diào)整。
在VS平臺(tái)下引用MFC與DEV編寫測試系統(tǒng)的圖形用戶界面(GUI),如圖6所示,在菜單行添加了一系列Ribbon控件,表示各類信號設(shè)備腳本獨(dú)立控制生成功能區(qū),如軌道電路功能區(qū)中包含正常接車發(fā)車、合并過車報(bào)警、站內(nèi)報(bào)警等邏輯控制選項(xiàng),可以通過點(diǎn)擊按鈕觸發(fā)腳本生成,保存至當(dāng)前程序運(yùn)行路徑下。在點(diǎn)擊生成腳本之前需要先選擇“經(jīng)驗(yàn)值設(shè)置”,確定初始化與邏輯對比的經(jīng)驗(yàn)值來源,可以選擇站場數(shù)據(jù)庫讀取或默認(rèn)初始值;在“通信設(shè)置”中根據(jù)需求設(shè)置聯(lián)鎖、Modbus、Can通信接口號;根據(jù)業(yè)務(wù)邏輯,在“延時(shí)設(shè)置”中設(shè)置4類延時(shí)。
在系統(tǒng)設(shè)計(jì)完成之后,通過配置相應(yīng)的站場設(shè)備文檔對多個(gè)站進(jìn)行應(yīng)用。以丹霞山、滕州和南昌西等3個(gè)站為例,進(jìn)行應(yīng)用說明,3個(gè)站的信號設(shè)備數(shù)量依次由少到多,其中,丹霞山屬于小型信號集中站,滕州站屬于中型,南昌西屬于大型。分別統(tǒng)計(jì)各站的電源屏、外電網(wǎng)、站內(nèi)軌道、道岔、信號機(jī)、電碼化和區(qū)間軌道的測試腳本數(shù)量,如圖7表示各個(gè)站內(nèi)信號設(shè)備種類與對應(yīng)測試腳本數(shù)量的分布情況,軌道電路、信號機(jī)和道岔測試腳本最多,是電務(wù)部門維護(hù)和關(guān)注的重點(diǎn),大型站的測試腳本數(shù)量要遠(yuǎn)多于中小型站。
圖5 區(qū)間軌道邏輯流程與對應(yīng)的編寫流程
表2中統(tǒng)計(jì)了3個(gè)站的信號設(shè)備總數(shù)、生成測試腳本總數(shù)、手動(dòng)編寫平均時(shí)間和系統(tǒng)自動(dòng)生成時(shí)間,其中,南昌西站的測試腳本11 590個(gè),是丹霞山站的12倍多,測試腳本生成數(shù)量最多,自動(dòng)生成時(shí)間最長(165 s),是丹霞山站生成時(shí)間的14倍,而平均編寫一個(gè)腳本的時(shí)間是6 min,該系統(tǒng)縮小了編寫時(shí)間,提升了編寫效率。
圖6 腳本生成系統(tǒng)軌道電路控制界面
圖7 應(yīng)用站場信號設(shè)備與測試腳本分布關(guān)系
按照技術(shù)規(guī)范[9-10],在監(jiān)測點(diǎn)數(shù)目一定、采集數(shù)據(jù)一致的前提下,信號設(shè)備故障的業(yè)務(wù)邏輯流程是一致的,腳本控制程序一般不需要修改,因此系統(tǒng)生成的腳本邏輯性較高;數(shù)據(jù)讀取過程與轉(zhuǎn)換算法流程明確,可追蹤錯(cuò)誤,經(jīng)過多個(gè)站場測試應(yīng)用,腳本準(zhǔn)確性較高。
表2 腳本生成系統(tǒng)站場腳本總數(shù)與生成時(shí)間
綜上所述,為減少測試腳本編寫工作量,降低測試腳本誤寫率,縮短測試上線周期,設(shè)計(jì)并實(shí)現(xiàn)了面向CSM智能分析的測試腳本生成系統(tǒng)。在數(shù)據(jù)驅(qū)動(dòng)設(shè)計(jì)思路下,分析了智能分析系統(tǒng)需處理的故障項(xiàng)目與原因,以面向?qū)ο蟮某绦蚣兏鼧I(yè)務(wù)數(shù)據(jù)來源、接口協(xié)議與控制流程中的變量,便于調(diào)整邏輯流程和測試環(huán)境,控制腳本的輸出。設(shè)計(jì)的腳本系統(tǒng)對鐵路信號設(shè)備故障測試具有一定的實(shí)用意義,不足之處是還未實(shí)現(xiàn)腳本預(yù)期報(bào)警與實(shí)際報(bào)警結(jié)果自動(dòng)對比功能,今后研究方向是從智能分析系統(tǒng)中提取報(bào)警結(jié)果,與輸入的腳本預(yù)期報(bào)警對比,自動(dòng)生成測試結(jié)果報(bào)告。