<span id="hfl55"><noframes id="hfl55">
<span id="hfl55"><noframes id="hfl55">
<progress id="hfl55"><noframes id="hfl55"><progress id="hfl55"></progress>
<th id="hfl55"></th><th id="hfl55"></th><span id="hfl55"><noframes id="hfl55"><span id="hfl55"></span>
<th id="hfl55"></th>
<th id="hfl55"></th>
<strike id="hfl55"><noframes id="hfl55"><strike id="hfl55"></strike>
<span id="hfl55"></span>
<strike id="hfl55"></strike>
湖南科技大學計算機科學與工程學院/武漢理工大學信息學院
基于簇的鐵路轉轍機道岔測控系統通信協議設計與實現
作者:陳斌 李方敏 劉清華 岳超 發布時間:2007/12/6 14:36:00
摘 要
在鐵路液壓轉轍機道岔測控系統中,上位機與遠距離下位機由于數據信號在傳輸過程中受到干擾、衰減而無法通信針對該問題,提出了一種基于簇的串行總線通信協議,利用各簇簇頭節點輔助協調系統的通信,確保系統通信高效、暢通。
鐵道上的道岔位于道軌組合處,道岔的動作由轉轍機完成,執行鐵軌的移動和接軌,F在一般的做法是,定期檢查轉轍機內部是否漏油,檢查漏油的方法是在油管接頭處接一塊油壓表,每次巡視檢查油位,并記錄在設備檢修卡上,通過比較數值來發現。但是液壓轍機動作較快,油壓表實測很難得到準確的數據,并且受測試人員水平、油壓表精度以及氣候條件等因素影響,使測試數據容易失真,不能及時反映油壓的變化情況,不能及時發現液壓轉轍機是否漏油。為了克服現有檢查液壓轉轍機油壓方法的不足,按照狀態修的要求,設計了一種基于簇的高速鐵路液壓轉轍機實時測控系統,該系統對眾多液壓型轉轍機進行實時測控,對油壓值進行實時采集、處理、顯示,實現了油壓值集中管理的自動化和智能化,能及時發現液壓轉轍機故障隱患,提高了檢修的質量。
1 系統整體架構設計
該系統采用基于簇的電力線載波主從式上下位機的結構。系統總體結構如圖1所示。上位機采用PC機,放在監控機房里;以PL3201單片機為核心的數據采集儀作為下位機,放在現場。系統實際運行中,上位機跟遠距離下位機由于信號衰減和干擾,不能直接通信,因此下位機要根據從簇頭節點轉發來的上位機控制指令進行數據的采集與上行傳送。液壓轉轍機是鐵路上已經大量投入運行的機務設備,根據問題的性質和背景,當前只能對現有設備進行改進,而且所有改動受到嚴格限制,不宜在轉轍機外部增加裝置,只能將增加的監測裝置安置在已有狹小接線盒內部,F有接線盒是一個強電連接器,暴露在露天下,環境惡劣,安裝在其內部的監測裝置須承受-35℃~+75℃以上的環境溫度;不宜重新布線(信號線或電源線),只能利用已有為數不多的一對預留公共線,而PC機上只有RS-232接口,因此要采用PLC/RS-232接口轉換。


下位機連接定制的壓力傳感器,壓力傳感器與液壓轉轍機的油壓信號相連,由上位機發出控制指令,實現現場油壓信號和缺口距離的采集?紤]到現場的惡劣環境,現場要求布線要少,因此采用電源線載波技術,通過使用電源載波模塊來減少現場的布線,連接線由原來的4芯屏蔽電纜變為2芯屏蔽電纜。
2 系統硬件設計
系統的硬件部分主要包括上位機、北京福星曉程電子科技股份有限公司PL3201型號的SoC、壓力傳感器和PLC/RS2232轉換器。PL3201是為智能儀表應用設計的SoC(System on Chip)產品,可以大幅度降低成本和提高可靠性。它具有與8051指令兼容的1T高速微處理器,內部集成了2路16位的∑-△調制A/D轉換器、LCD顯示控制模塊、2個多功能串口;內置16K字節的E2PROM程序存儲器和1KByte的RAM,內部具有實時鐘,且在主電源掉電的情況下還能使用備用電池繼續供電維持。PL3201對擴頻數據采用四相移相鍵控QPSK(Quaternary Phase Shift Keying)其載波中心頻率為120kHz,偽隨機碼速率可達到30kbps和15kbps。根據偽隨機碼的速率不同,數據速率可達到1kbps和500bps。由于該芯片采用了63位的Gold/Kasami序列,從而實現了碼分多址,其地址數目最多可達40個,其中32個Gold序列,8個Kasami序列,還使用了擴頻技術,可使各地址之間的干擾減到最小。
3 通信協議設計
3.1 通信協議中的數據結構
系統通信過程中,需要在上位機和下位機里維持對應的數據結構來控制和協調全局。在上位機中維持一個CMasterMachine類的對象,對象部分屬性信息如下(VC++代碼實現):
class CMasterMachine//上位機

private:
short nodeld;
COlbList List_ErrorNode;
CObList List_AIINode;
CObList List_ActiveNode;
};
其中nodeld是節點ID,List_ErrorNode是出現故障的下位機ID列表;List_AIINode是系統中所有的下位機ID列表,有多少個簇List_AIINode里面就有多少個SubList,每個SubList表示一個簇,該SubList的索引號就是該簇的簇號,簇頭節點ID放在SubList的第O個元素里,其中0號簇就一個節點就是上位機;List_ActiveNode是網絡中處于活動狀態的機器列表,有多少個簇List_ActiveNode里面就有多少個SubList,每個SubList代表一個簇,該SubList的索引號就是該簇的簇號,簇頭放在SubList的第0個元素里。
下位饑節點維持的數據結構部分屬性如下(C代碼實現):
struct NodeMachine

U8 nodeld;//節點ID
U8 clusterld;//所在簇的ID
U8 headNodeld;//所在簇的簇頭機器ID
bool isHeadNode;//是否是所在簇的簇頭節點
U8 nextHeadNode;//下一號簇的簇頭節點ID
U8 frontHeadNode;//上一號簇的簇頭節點ID
U8 Array_subNode[];//簇內其他節點ID列表
float(*GetMeasureValue)(int value); //獲取油壓值
};
3.2 幀格式
該協議的幀長度范圍為5~255字節。不攜帶數據(DATA)時候,幀長度為5,該協議中的幀格式如圖2所表示。


D_ID:幀的目的節點ID,目的節點ID為FF的幀是廣播幀
CMD:指令標識號
LEN:幀攜帶的DATA和CODE2的字節數和
S_ID:幀的源節點ID,上位機ID為00
CODE1:幀頭校驗和
DATA:傳輸的數據(可選域)
CODE2:數據(DATA)的校驗和(可選域)
3.3 該通信協議特點
該通信協議是針對液壓轉轍機道岔測控系統項目量身打造的,具有以下若干特點:
1)上位機ID為00,廣播幀的目的ID為FF。
2)簇頭節點轉發數據幀時,不改變幀的目的ID和源ID。
3)上位機所在簇簇號為0,該簇只有1個機器節點即上位機。
4)任一時刻一個簇里只允許一個節點向總線發送報文,由簇頭節點控制。
5)任何節點只接收目的ID為自己ID的幀和廣播幀,一般節點對數據幀的2種處理方式:接收和丟棄;簇頭節點對數據幀的2種處理方式:接收和轉發。
6)非簇頭節點只跟本簇的簇頭通信。
4 通信協議實現
整個系統通信流程分為系統初始化,數據采集兩個階段,如圖3所示。


4.1 系統初始化階段
1)系統初始化時,上位機根據List_ActiveNode找到第1個SubList中的第0個元素,發A1指令給它設置它為1號簇簇頭,1號簇頭接收到該指令后,返回ACK幀給上位機,并根據幀里的數據信息設置自己的屬性。然后該簇頭用A2指令對簇內節點輪詢,簇內節點收到A2指令后返回ACK幀給簇頭,并根據A2指令幀設置自己的屬性。最后簇頭設置自己的Array_subNode。再用A3指令,把簇內所有有效節點ID發送到上位機,上位機收到信息返回ACK幀,上位機根據信息修改全局活動節點表List_ActiveNode,把失效節點ID從List_ActiveNode轉移到List_ErrorNode,至此1號簇初始化完成。
2)n號簇的初始化(上位機與n號簇簇頭節點間的通信經過路徑上的n-1個簇的簇頭轉發):上位機根據List_ActiveNode找到第n個SubList中的第0個元素發送A1指令設置其為n號簇的簇頭,n號簇頭接收到該指令后,返回ACK幀給上位機,并根據幀里的數據信息設置自己的屬性。然后該簇頭用A2指令對簇內節點輪詢,簇內節點收到A2指令后返回ACK幀給簇頭,并根據A2指令幀設置自己的屬性。最后簇頭設置自己的Array_subNode,再用A3指令,把簇內所有有效節點ID發送到上位機,上位機收到信息返回ACK幀,上位機根據信息修改全局活動節點表List_ActiveNode,把失效節點ID從List_ActiveNode轉移到List_ErrorNode,至此n號簇初始化完成。
3)初始化最后一個簇后,上位機用AO指令進行一次系統時間同步操作,至此,系統初始化完成。
4.2 信息采集階段
1)采集1號簇的監測數據:上位機向1號簇簇頭發送B1指令,1號簇簇頭節點接收到該指令后用B2指令輪詢簇內其他節點,等簇內節點用B3返回監測數據后,把簇內所有節點的監測數據(包括簇頭自己的監測數據)打包用B4指令發送給上位機,上位機收到數據后,返回ACK幀,至此,1號簇的監測數據采集完成。
2)采集n號簇的監測數據(上位機與n號簇簇頭節點間的通信經過路徑上的n-1個簇的簇頭轉發):上位機向n號簇簇頭發送B1指令,n號簇簇頭節點接收到該指令后用B2指令輪詢簇內其他節點,等簇內節點用B3返回監測數據后,把簇內所有節點的監測數據(包括簇頭自己的監測數據)打包用B4指令發送給上位機,上位機收到數據后,返回ACK幀,至此,n號簇的監測數據采集完成。
3)采集最后一個簇的監測數據后,重復上述過程進行下一輪數據采集工作。
5 結束語
該通信協議在高速鐵路液壓轉轍機道岔測控系統的具體應用實踐中不斷探索、改進,經過測試和系統試運行,證明該通信協議的設計和實現完全滿足液壓轉轍機道岔測控測控系統的各方面需求,保證了數據的及時、可靠傳輸。
一个人看的WWW高清动漫
<span id="hfl55"><noframes id="hfl55">
<span id="hfl55"><noframes id="hfl55">
<progress id="hfl55"><noframes id="hfl55"><progress id="hfl55"></progress>
<th id="hfl55"></th><th id="hfl55"></th><span id="hfl55"><noframes id="hfl55"><span id="hfl55"></span>
<th id="hfl55"></th>
<th id="hfl55"></th>
<strike id="hfl55"><noframes id="hfl55"><strike id="hfl55"></strike>
<span id="hfl55"></span>
<strike id="hfl55"></strike>