陳吉余 何紅光
(卡斯柯信號有限公司 上海市 200071)
參數(shù)追蹤功能是利用電務(wù)維修機SDM 利用向聯(lián)鎖下位機IPS 發(fā)送請求的辦法,來獲取聯(lián)鎖內(nèi)部的所有參與運算的變量狀態(tài)值,并通過可視化的波形在電務(wù)維修機上直觀的呈現(xiàn),具備實時監(jiān)測聯(lián)鎖內(nèi)部所有參數(shù)的功能,同時還可以將參數(shù)跟蹤過程中的狀態(tài)記錄在特定的日志文件中。在聯(lián)鎖系統(tǒng)軟件調(diào)試,測試,聯(lián)鎖數(shù)據(jù)制作發(fā)布以及現(xiàn)場故障排查時,具有越來越廣泛的應(yīng)用,并發(fā)揮越來越重要的作用。
在聯(lián)鎖數(shù)據(jù)制作和發(fā)布,以及聯(lián)鎖下位機程序開發(fā)的過程中,黑盒的聯(lián)鎖狀態(tài)不利于聯(lián)鎖系統(tǒng)的維護和故障診斷。原因在于,用戶無法知道聯(lián)鎖系統(tǒng)內(nèi)部運行的每個參數(shù)狀態(tài)是否正確。中間發(fā)生任何的運算錯誤,都可能會影響聯(lián)鎖系統(tǒng)的輸出。而錯誤的輸出,將導(dǎo)致聯(lián)鎖操作機上形成虛假的表示狀態(tài),從而造成操作員錯誤理解,或者按照錯誤的規(guī)則操作6502 電路設(shè)備,均存在一定的可能性導(dǎo)致安全事故的發(fā)生或潛在風險,從而對鐵路運算造成一定的影響。同時,當設(shè)備出現(xiàn)故障時,為了診斷故障的根本原因,每個參數(shù)的內(nèi)部運算狀態(tài)對于快速定位故障和診斷至關(guān)重要。
如何來實現(xiàn)在線的查看聯(lián)鎖系統(tǒng)內(nèi)部參數(shù)狀態(tài),從而避免運算時發(fā)生的錯誤,在聯(lián)鎖下位機軟件的發(fā)布測試過程中,以及在聯(lián)鎖數(shù)據(jù)的制作發(fā)布過程中,成了一個不可或缺的,必須實現(xiàn)的功能,這將很大程度幫助系統(tǒng)軟件功能調(diào)試,查找并糾正開發(fā)過程中的產(chǎn)生的功能錯誤,甚至在現(xiàn)場故障排查過程中,有時候為了排查為什么會產(chǎn)生錯誤的輸出的時候,也可以利用參數(shù)追蹤進行抽絲剝繭的一層一層追蹤,最后定位到底是輸入狀態(tài)錯誤,還是運算規(guī)則錯誤。
一套完整的聯(lián)鎖鐵路信號聯(lián)鎖系統(tǒng),有聯(lián)鎖下位機IPS,聯(lián)鎖操作機MMI,電務(wù)維修機SDM。聯(lián)鎖下位機IPS作為邏輯運算系統(tǒng),周期性的采集獲取聯(lián)鎖各設(shè)備輸入的信息,并通過邏輯運算得到輸出碼位信息發(fā)送給聯(lián)鎖操作機和外部電路設(shè)備。對于外界,聯(lián)鎖下位機是相對封閉的黑盒系統(tǒng),內(nèi)部運算的所有的碼位狀態(tài),對于用戶是無法直接查看的見的,鑒于此,由聯(lián)鎖電務(wù)維修機SDM 對聯(lián)鎖下位機IPS(雙系)進行查詢和訪問,保證能對聯(lián)鎖的采集參數(shù)、中間變量以及邏輯運算結(jié)果準確實時查看和記錄。聯(lián)鎖系統(tǒng)結(jié)構(gòu)圖見圖1。
圖1: 聯(lián)鎖系統(tǒng)結(jié)構(gòu)圖
聯(lián)鎖機參與運算的輸入的信息包括聯(lián)鎖繼電器采集碼位,聯(lián)鎖操作機的控制命令,聯(lián)鎖和相鄰車站聯(lián)鎖系統(tǒng)的通信碼位,以及聯(lián)鎖系統(tǒng)和外部設(shè)備的傳輸?shù)脑O(shè)備狀態(tài)碼位等。輸出信息則包括聯(lián)鎖系統(tǒng)發(fā)送給聯(lián)鎖操作機和電務(wù)維修機的站場表示碼位,比如道岔的位置信息,以及發(fā)送給繼電器電路和室外設(shè)備的驅(qū)動操作信息等,如道岔的扳動方向命令。相關(guān)數(shù)據(jù)信息見圖2。
圖2: 聯(lián)鎖輸入輸出參數(shù)數(shù)據(jù)流圖
聯(lián)鎖機IPS 和電務(wù)維修機交互數(shù)據(jù)結(jié)構(gòu)定義:
在MSG_STRUCT 中由BMsgType 定義消息類型,BSubMsgType 定義消息子類型。
利用以參數(shù)追蹤的辦法確認聯(lián)鎖下位機IPS 運行狀態(tài),可以實時在線的查看聯(lián)鎖系統(tǒng)內(nèi)部的參數(shù)值,通過聯(lián)鎖邏輯的可視化,可以在線查看聯(lián)鎖邏輯的原始表達式,并且可以查看聯(lián)鎖邏輯運算過程中中間變量的邏輯值,從而達到診斷聯(lián)鎖內(nèi)部狀態(tài)的功能。具體包括FSFB2 輸入?yún)?shù),VSL 輸入變量輸入?yún)?shù),COM 輸入變量,系統(tǒng)變量,自保參數(shù),時間參數(shù),一般參數(shù),DI 采集參數(shù),SBO 驅(qū)動參數(shù)等一切聯(lián)鎖系統(tǒng)內(nèi)部的參數(shù)。
基于參數(shù)追蹤的聯(lián)鎖聯(lián)鎖下位機運行方法,包括以下步驟。
(1)SDM 發(fā)送請求特定參數(shù)追蹤的消息給IPS, 消息中包括需要校驗的參數(shù)名稱以及參數(shù)個數(shù),以及是查詢聯(lián)鎖A機還是聯(lián)鎖B 機或雙系中某參數(shù)信息。如果該參數(shù)是通過布爾邏輯運算得到的值,那么運算的中間變量的名稱也可以一并下發(fā)。
(2)IPS 接收到SDM 發(fā)送的參數(shù)追蹤請求消息,讀出需要追蹤的參數(shù)名稱以及參數(shù)個數(shù),同時解析出需追蹤的參數(shù)獲取響應(yīng)運行狀態(tài)的參數(shù)狀態(tài)值,并將參數(shù)值組成定義的數(shù)據(jù)幀發(fā)送給電務(wù)維修機SDM。
(3)SDM 需要周期性不間斷的下發(fā)參數(shù)追蹤請求命令。IPS 則根據(jù)每一包的SDM 的請求包回復(fù)一次對應(yīng)參數(shù)的值。
(4)SDM 接收到IPS 的發(fā)送的參數(shù)值時,將參數(shù)值和參數(shù)名稱動態(tài)顯示在對應(yīng)的SDM 界面上。參數(shù)狀態(tài)要能圖形化顯示其高低電平,達到直觀的顯示效果。
(5)SDM 接收到IPS 的發(fā)送的參數(shù)值時,將參數(shù)狀態(tài)量記錄在日志文件里,以供日后查看。對于指定追蹤的參數(shù)值,用動態(tài)圖形化的辦法顯示參數(shù)值。對于有布爾邏輯運算的參數(shù)值,其最終值用動態(tài)圖形化的辦法顯示參數(shù)值,并且在界面窗口上顯示其布爾邏輯運算式。而中間運算過程中的參數(shù)值,以及運算的最終值,僅以窗口的形式顯示其當前周期的值。
(6)在電務(wù)維修機SDM 與聯(lián)鎖機IPS 之間的通信斷開或者是SDM 請求包停止發(fā)送的時候,IPS 將停止發(fā)送對應(yīng)的參數(shù)值。
具體交互過程見圖3。
圖3: 基于參數(shù)追蹤的聯(lián)鎖下位機運行狀態(tài)的程序流程
程序流程在執(zhí)行的過程中,需要考慮以下因素:
(1)程序容量因素。為了降低聯(lián)鎖下位機的負載,聯(lián)鎖下位機正常狀態(tài)下,不會發(fā)送所有的運算參數(shù)狀態(tài)給電務(wù)維修機。因此,在執(zhí)行參數(shù)追蹤的時候,為了保證聯(lián)鎖下位機運行正常。必須有容量限制。電務(wù)維修機一方面把需要追蹤的參數(shù)的地址發(fā)送給聯(lián)鎖下位機,另一方面,必須明確告訴聯(lián)鎖下位機需要追蹤的數(shù)量。如超過限制,聯(lián)鎖下位機不發(fā)送超出部分的參數(shù)值狀態(tài)給電務(wù)維修機。
(2)參數(shù)完整性因素。一方面,追蹤的聯(lián)鎖參數(shù)需要在聯(lián)鎖下位機系統(tǒng)以外的輸入和輸出參數(shù)。另一方面,對于運算過程中作為中間變量的參數(shù)狀態(tài),也必須要能夠追蹤。因此,參數(shù)追蹤的參數(shù)范圍必須包括但不限于采集碼位,驅(qū)動碼位,站場表示碼位,站場控制碼位,以及參與中間運算的邏輯變量狀態(tài)。才能夠全方位的反映聯(lián)鎖系統(tǒng)的運行狀態(tài)。
(3)糾錯機制。聯(lián)鎖下位機系統(tǒng)在發(fā)送追蹤參數(shù)狀態(tài)時,對聯(lián)鎖下位機系統(tǒng)系統(tǒng),是一種負荷的加大。因此非必要的時候,需要有讓聯(lián)鎖下位機具有自動發(fā)送追蹤參數(shù)狀態(tài)的功能。電務(wù)維修機必須不間斷的周期性的發(fā)送參數(shù)追蹤請求消息。每一個聯(lián)鎖下位機接收到一包參數(shù)追蹤的請求消息,才予以回復(fù)一次對應(yīng)的參數(shù)狀態(tài)值。一旦SDM 與IPS 之間的通信斷開或者SDM 請求包停止發(fā)送時,對應(yīng)的聯(lián)鎖下位機將停止發(fā)送對應(yīng)的參數(shù)狀態(tài)值。
(4)利用電務(wù)維修機SDM 可控因素。電務(wù)維修機在與聯(lián)鎖下位機通信狀態(tài)良好的情況下,可以隨時暫停,開始,刪除,增加需要追蹤的參數(shù)。
(5)顯示記錄方式因素。所有追蹤的目標參數(shù)的高低電平值,均需要直觀的顯示最近10 個周期,最大60 個周期的圖形化顯示的狀態(tài)值。為了顯示其聯(lián)鎖關(guān)系,需要將有布爾邏輯運算的參數(shù)所對應(yīng)的布爾邏輯運算式展示在電務(wù)維修機界面上。同時,中間運算過程中的參數(shù)值以及運算的最終值,以窗口的形式顯示其當前周期的值。于此同時,所有追蹤的參數(shù),以及顯示的中間運算過程中的參數(shù)的中間變量狀態(tài)值在日志記錄時,均必須滿足,變化時記錄全體參數(shù)狀態(tài)值,當參數(shù)值沒有變化時,每隔10 分鐘記錄儀器全體參數(shù)的狀態(tài)值的要求,以便后續(xù)人員查看。數(shù)據(jù)交互示意圖見圖4。
圖4: 數(shù)據(jù)流交互示意圖
具體,詳細查詢消息定義如下:
(1)站號StationNO,具體某個特定車站的編號,2 個字節(jié),取值為0~65535;
針對實驗班和控制班的前后測成績進行配對樣本t檢驗,數(shù)據(jù)表明:1)兩次測試的聽力成績都有顯著性差異(p=0.015<0.05 & p=0.029<0.05),實驗組兩次測試的均值差MD=5.690,控制組兩次測試的均值差MD=4.410;2)前后兩次測驗的口語成績只有實驗組的有顯著差異(p=0.008<0.05),實驗組前后測的口語成績均值差MD=8.829,控制組前后測的口語成績均值差MD=2.526(如表2、表3所示)。
(2)消息類型BMsgType:MSGTYPE_DIAGNOSE,1個字節(jié),診斷信息;
(3)消息子類型BMsgType:SUBMSGTYPE_ENQUIRY,1 個字節(jié),請求參數(shù)消息;
(4)數(shù)據(jù)域長度usDataLen:2 字節(jié),數(shù)據(jù)域部分長度;
(5)數(shù)據(jù)域sData:具體消息內(nèi)容,[HostId] [AorB] [變量地址1] [變量地址2] […];其中HostID 用于標識電務(wù)維修機,AorB 標識請求聯(lián)鎖機IPSA 或IPSB 中參數(shù)標識,A機=1,B 機=2,AB 機=3;
詳細答復(fù)消息定義如下:
(1)站號StationNO,具體某個特定車站的編號,2 個字節(jié),取值為0~65535;
(2)消息類型BMsgType:MSGTYPE_DIAGNOSE,1個字節(jié),診斷信息;
(3)消息子類型BMsgType:SUBMSGTYPE_ RESPONSE,1 個字節(jié),答復(fù)參數(shù)請求;
(4)數(shù)據(jù)域長度usDataLen:2 字節(jié),數(shù)據(jù)域部分長度;
(5)數(shù)據(jù)域sData:具體消息內(nèi)容:前4 字節(jié)為聯(lián)鎖機運行周期號;后續(xù)字節(jié)按照 [HostId] [變量地址1][參數(shù)變量值1][變量地址2][參數(shù)變量值2][…];其中,周期號為了便于在維修機界面顯示具體運算周期號,HostID 用于標識本機是聯(lián)鎖機IPSA 或IPSB;
程序啟動初始化時,維修機需要讀取車站數(shù)據(jù),即讀取車站涉及的所有參數(shù),并且將有邏輯表達式的參數(shù)所具備的邏輯表達式也讀入程序內(nèi)部,顯示在界面上便于操作者選擇具體的參數(shù),并支持模糊搜索關(guān)鍵字功能。而中間運算過程中的參數(shù)值,以及運算的最終值,僅以窗口的形式顯示其當前周期的值。
如圖5 所示,雙擊列表中任何參數(shù),該參數(shù)被加入追蹤參數(shù)隊列中。用圖形化的辦法在界面上顯示所追蹤參數(shù)的高低電平值。界面上直觀顯示最近10 個周期,最大60 個周期的參數(shù)狀態(tài)。
圖5: 聯(lián)鎖維修機參數(shù)追蹤顯示頁面
對有邏輯表達式的參數(shù),點擊“表達式”,可以顯示該參數(shù)的內(nèi)部變量當前周期的值。
軟件界面提供增刪,搜索,重置追蹤參數(shù)等功能,方便用戶使用。同時所有的聯(lián)鎖追蹤的參數(shù)和中間變量的值,均需要在日志文件DBRecord 中予以記錄,記錄任何一個參數(shù)的狀態(tài)值發(fā)生變化,則所有參數(shù)的狀態(tài)值,以及所有參數(shù)的追蹤的地址,參數(shù)名予以記錄。所有參數(shù)值均未發(fā)生變化時,每十分鐘需要將所有參數(shù)的狀態(tài)值,以及所有參數(shù)的追蹤的地址,參數(shù)名予以記錄:
2020-11-24 15:15:14 Stno=12345,A,Circle = 1 1-7DGGDJJT1 1 [D28A4A1D] [Add]
2020-11-24 15:15:44 Stno = 12345,A,Circle = 23,SYSAONLINE 1 [EFAD730B] [Add]
2020-11-24 15:15:48 Stno = 12345,A,Circle = 38,ONLINESBO 1 [5BE6DE03] [Add]
2020-11-24 15:18:50 Stno = 12345,A,Circle = 1,SYSAONLINE 1 [EFAD730B] [Add]
2020-11-24 15:18:51 Stno = 12345,A,Circle = 7,SYSA-DI 1 [1D1C0023] [Add]
可以看到,日志中記錄了世間參數(shù)的列表,名稱,狀態(tài)值,參數(shù)地址、以及記錄本次追蹤是來自I 聯(lián)鎖A 機還是聯(lián)鎖B機。因為聯(lián)鎖A 機和聯(lián)鎖B 機采用獨立運算后雙系同步方式,存在因通信抖動造成雙系計算輸出不一致,參數(shù)狀態(tài)值存在差異,這就是很多時候造成故障的原因之一,參數(shù)追蹤的功能有助于定位該類型故障。
基于參數(shù)追蹤的聯(lián)鎖系統(tǒng)下位機運行狀態(tài)監(jiān)測的方法,以既有的聯(lián)鎖系統(tǒng)為基礎(chǔ),沒有增加任何硬件的成本,完成了聯(lián)鎖系統(tǒng)內(nèi)部的參數(shù)查詢功能。使用人員可以隨時全方位的深入了解聯(lián)鎖系統(tǒng)內(nèi)部的運算狀態(tài),有效的克服了以往聯(lián)鎖的黑盒狀態(tài)下,無法探知聯(lián)鎖系統(tǒng)內(nèi)部運算狀態(tài)的缺點。有效的提高了現(xiàn)場工作人員的維護效率,使其能動態(tài)的掌握聯(lián)鎖系統(tǒng)內(nèi)部的運行狀態(tài)。