王文芳
(蘭州交通大學光電技術與智能控制教育部重點實驗室,碩士研究生,甘肅 蘭州 730070)
我國鐵路信號領域,不同的系統之間大部分采用繼電器接口方式。繼電器接口在技術上比較成熟且容易實現,但在繼電接口的系統之間存在著交換信息種類和信息量有限、電氣電路復雜、配線繁多需要投入大量的電纜和工程造價高等問題。隨著列車速度的提高,在CTCS2級及以上列控系統中增加了列控中心等新的系統和新的技術,繼電接口已經不適應列控中心與調度集中、計算機聯鎖及微機監測等系統之間信息的交互。為了克服繼電接口的缺點,滿足系統間大信息量傳輸,減少投資,采用數字接口。數字接口技術在通信接口技術領域有更廣泛的應用前景,它的使用對列控系統的開發和應用具有重要的意義[1]。
TCC(列控中心)和CBI(計算機聯鎖)系統是CTCS的重要信號設備。車站計算機聯鎖系統主要是實現道岔、軌道、信號機之間的聯鎖控制,把接發車進路的辦理情況告訴地面列控中心,列控中心接收到信息并進行處理從而控制車站和區間軌道電路,并通過軌旁電子單元控制有源應答器,實現地面信息向列車動態傳輸。本文研究的主要內容是TCC與CBI間的通信。設備和通信信道技術要求及通信指標要求如下[2]:
1)TCC與CBI間應能實現信息傳輸的安全性。TCC或CBI對接收的數據進行CRC安全校驗,TCC應能夠與不同型號的計算機聯鎖系統通用兼容,采用標準統一的通信接口協議,TCC與CBI間應采用RSSP-1(Railway Signal Safety Protocol)安全協議。
2)設備與傳輸通道故障時應不影響信息正常傳輸。為保證列車控制的安全性和設備的冗余性,設備與通信網絡均按雙套冗余配置,分為主機和備機。主機應能向外部設備的主、備機發送數據,備機不發送。主備機切換時,應能保證切換后發送數據的連續性。
3)系統設計要符合“故障-安全”原則,應具備診斷與維護功能,并能實時向集中監測系統提供監測狀態信息。設備或通道故障時能夠向集中監測系統提供故障報警信息。
4)列控中心的IP地址和端口號應參照列控系統相關編號規則進行配置。
5)TCC與CBI間應能實現信息傳輸的實時性,以300 ms為周期交互數據。
6)TCC與CBI通信數據的應用層信息包的總長固定為40個字節,其中幀頭信息占用3個字節、信息類型l個字節,為數據內容余留33個字節,其中包括預留字節,當車站規模較大或者系統升級傳輸數據內容增加,由預留字節填充。
列控中心與計算機聯鎖之間采用標準以太網連接。兩者之間的數據傳輸采用TCP方式,如圖1所示。

圖1 TCC和CBI網絡連接示意圖
TCC與CBI的物理接口采用標準RJ45接口,形成交叉互連的冗余雙通道,通過安全信息網傳遞安全信息。RJ45型網線插頭又稱水晶頭,廣泛應用于局域網和以太網的網絡設備間網線的連接。RJ45型插頭和網線有2種連接方法,分別稱作T568A線序和T568B線序。列控中心和計算機聯鎖系統分別與交換機相連,應采用直連線互連,即網線的兩端均用T568B線序。T568B線序是指RJ45型插頭的8個引腳插入的網線按“橙白、橙、綠白、藍、藍白、綠、棕白、棕”順序排列。對于10/100Base-T以太網RJ-45各腳功能如下:
1—TX+ 傳輸數據正極(發信號+);
2—TX- 傳輸數據負極(發信號-);
3—RX+ 接收數據正極(收信號+);
4—n/c 未使用(空腳);
5—n/c 未使用(空腳);
6—RX- 接受數據負極(收信號-);
7—n/c 未使用(空腳);
8—n/c 未使用(空腳)。
RJ45接口采用差分傳輸方式,tx+、tx-是一對雙絞線,擰在一起可以減少干擾。
3.1 計算機聯鎖發給列控中心的信息 列控中心接收聯鎖設備的信息包括接發車進路信息、進站信號機燈絲斷絲信息、發車請求信息、發車鎖閉狀態信息、發車輔助辦理請求信息、接車輔助辦理請求信息。計算機聯鎖系統以進路號的形式向列控中心傳送接發車進路信息。根據不同的車站,進路信息號分為接車進路、通過進路和發車進路信息號。
對于接車進路,進路信息號發送時機為進站信號機開放,當進站信號機內方首區段解鎖則停止發送。
由列控中心判別計算機聯鎖系統是否建立了通過進路,若進路建立,計算機聯鎖系統向列控中心同時發送接車進路信息號和相應的發車進路信息號。
對于發車進路,進路鎖閉開始發送進路信息號,進路末區段解鎖則停止發送。特別是對于正線股道的直股發車進路,發送時機為該股道發車信號機的開放,該信號機關閉時,立即停止發送進路信息號[3]。
3.2 計算機聯鎖接收列控中心的信息 列控中心向聯鎖設備提供如下信息:進站信號機降級顯示命令、區間閉塞及方向信息、區間軌道電路狀態信息、區間燈絲斷絲信息。進站信號機降級顯示命令發送和停止時機為:當正線發車區段或車站離去區間有限速或者當應答器與限速起點的距離小于限速目標距離,列控中心系統向計算機聯鎖發送相應進站信號降級顯示命令信息。計算機聯鎖系統收到降級顯示命令后,需要控制該信號機降級顯示黃燈,直到相應的臨時限速區取消后,停止發送該命令。[3]
列控中心和計算機聯鎖分別用1臺計算機模擬,2臺計算機通過以太網進行通信,對于每一臺計算機來說都要知道它的通信對象、通信信息和通信規則(即協議),在網絡上通過IP地址來標識1臺計算機,結合端口號就可以唯一的確定1臺主機。主機A和主機B是網絡中的2個終端,只要主機A知道主機B的IP地址和端口號,就可以向主機B發送通信請求,主機B接受請求并按照通信協議的規定就可以和主機A進行交互。
這里使用基于TCP(面向連接)的Socket套接字進行編程。在TCP/IP網絡應用中,通信的2個進程間相互作用的主要模式是客戶機/服務器模式,即客戶端向服務器主動提出請求,服務器接收到請求后,提供相應的服務[4]。Windows下Socket編程主要包括服務器端和客戶端。
4.1 服務器端程序 服務器端程序流程,如圖2所示。

圖2 服務器端程序流程圖
加載套接字庫主要用到的函數是int WSAStart?up(MAKEWORD(2,2),&Ws)。其中 MAKEWORD(2,2)用來獲得要加載的Winsock庫的版本信息。創建套接字函數 ServerSocket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP)中第1個參數指定地址族,第2個參數指定Socket類型,第3個參數是與特定的地址家族相關的協議。當socket函數調用失敗后返回INVALID_SOCKET。通過bind(Server?Socket,(struct sockaddr*)&LocalAddr,sizeof(Loca?lAddr))函數將該套接字綁定到本地地址和端口上。其中,第1個參數是要綁定的套接字,第2個該套接字的本地地址信息,第3個是該地址結構的長度。調用listen(ServerSocket,10)即可實現將套接字設為監聽模式。根據流程圖,下一步進入循環,接受鏈 接 請 求


開始接收信息:

cout<<"接收到客戶信息為:"< 4.2 客戶端程序 在列控中心與計算機聯鎖組成的系統中,列控中心為服務器端,計算機聯鎖為客戶端。客戶端比服務器端程序要簡單,下面以計算機聯鎖系統發送發車請求信息為例說明客戶端的工作原理。首先,打開一個通信通道并連接到服務器所在主機的特定端口,并向服務器發送服務請求con?nect(CientSocket,(struct sockaddr*)&ServerAddr,sizeof(ServerAddr))。通信協議中定義1010表示發車請求繼電器(FQJ)吸起,0101表示該繼電器處于落下狀態。若現在處于選路過程,則FQJ的值為1010;若進路信號開放,則FQJ的值為1010。然后由語 句 GetDlgItem(IDC-SENDTEXT)->GetWindow?Text(str)將 FQJ的值賦給 str,用 send(CientSocket,str.GetBuffer(1),sizeof(str),0)函數將信息發送到制定的服務器端。最后,請求結束后關閉通信通道并終止。客戶端完成信息發送的功能。 作為客戶端,還應該能夠接收并顯示服務器端所發送的消息。采用異步套接字模式實現該功能,可以調用函數WSAAsyncSelect()實現。 我國在CTCS建設中成功借鑒ETCS的經驗,采用統一的技術標準,模塊化設計,實現通用兼容的功能。本文分析列控中心與計算機聯鎖之間交換的數據內容并結合鐵道部的相關規定制定出適用于本系統的接口協議,通過編程實現了計算機聯鎖和列控中心的互聯互通。 [1]肖鵬,高建強,李遠剛.CTCS2列控系統中心接口分析[J].鐵道工程學報.2007.2 [2]北京全路通信信號研究設計院.客專列控中心與聯鎖接口規范(V1.0)[S].北京:北京全路通信信號研究設計院.2009. [3]鐵道部.客運專線列控中心技術規范V0.6[S]北京:鐵道部.2008.9. [4]胡小軍,鄧波,高宏偉.Visual C++高級開發范例解析[M].北京:電子工業出版社.2002.15 結束語