徐恒亮,李 強(qiáng)
(蘭州交通大學(xué) 光 電技術(shù)與智能控制教育部重點(diǎn)實(shí)驗(yàn)室 ,蘭州 7 30070)
鐵路車站信號(hào)工程設(shè)計(jì)種類有站場(chǎng)形式的設(shè)計(jì)圖,如車站信號(hào)布置圖、聯(lián)鎖表、網(wǎng)絡(luò)電路圖等;非站場(chǎng)形式的設(shè)計(jì)圖,如信號(hào)設(shè)備模塊排列表、配線圖和許多電路圖等。鐵路車站信號(hào)工程設(shè)計(jì)圖大部分是由圖形符號(hào)組成,如信號(hào)機(jī)、道岔、股道、絕緣節(jié)和一些說(shuō)明文字、數(shù)字等,這些圖形符號(hào)基本由線段、圓、點(diǎn)、字符組成。工程設(shè)計(jì)人員使用AutoCAD中的繪圖命令繪制這些圖形符號(hào),效率低下而且容易出錯(cuò)。不同的鐵路車站信號(hào)工程設(shè)計(jì)有各自不同的制圖方法和所需的繪圖功能,不能將這些功能全部放入AutoCAD中,利用Visual Lisp、VBA、VB、C++等計(jì)算機(jī)語(yǔ)言二次開(kāi)發(fā)AutoCAD特殊的應(yīng)用程序,可提高工程設(shè)計(jì)人員使用AutoCAD進(jìn)行工程設(shè)計(jì)的效率。在各種計(jì)算機(jī)語(yǔ)言中,Visual Lisp二次開(kāi)發(fā)AutoCAD,可避免其他計(jì)算機(jī)語(yǔ)言與AutoCAD的接口問(wèn)題,而且利用Visual Lisp調(diào)用AutoCAD的繪圖命令,計(jì)算機(jī)可自動(dòng)繪制最終的工程圖紙。
Lisp(List Process Language)是一種函數(shù)式的程序設(shè)計(jì)語(yǔ)言,被廣泛的應(yīng)用在人工智能領(lǐng)域。AutoLisp是把Lisp和AutoCAD相結(jié)合,二次開(kāi)發(fā)AutoCAD的內(nèi)嵌式編程語(yǔ)言。AutoLisp既有Lisp的人工智能特點(diǎn),又有AutoCAD的圖形編輯特性,利用這種特點(diǎn),工程設(shè)計(jì)人員可以編寫AutoLisp程序,自動(dòng)計(jì)算分析圖紙,自動(dòng)形成最終工程設(shè)計(jì)圖紙。減小工程設(shè)計(jì)人員的勞動(dòng)強(qiáng)度,提高工程設(shè)計(jì)的質(zhì)量。Visual Lisp語(yǔ)法是符號(hào)表達(dá)式,采用前綴表示法,見(jiàn)圖1。Visual Lisp編程是創(chuàng)建新的函數(shù),每個(gè)創(chuàng)建的新函數(shù)都是一個(gè)功能模塊,結(jié)合起來(lái),最終形成用戶所需的二次開(kāi)發(fā)軟件。
圖1 Visual Lisp符號(hào)表達(dá)式結(jié)構(gòu)
由于Visual Lisp是一種函數(shù)式的編程語(yǔ)言,可以將程序設(shè)計(jì)為模塊化結(jié)構(gòu),即一種功能對(duì)應(yīng)一個(gè)功能函數(shù)??傮w設(shè)計(jì)為3個(gè)模塊:從圖紙上讀取數(shù)據(jù)模塊函數(shù);處理所讀取數(shù)據(jù)模塊函數(shù);計(jì)算機(jī)自動(dòng)繪制圖形模塊函數(shù)。這樣設(shè)計(jì)便于以后的修改和添加新的功能,結(jié)構(gòu)緊湊、明晰。以下結(jié)合二次開(kāi)發(fā)全電子微機(jī)聯(lián)鎖執(zhí)行單元模塊排列表和鐵路站場(chǎng)聯(lián)鎖表,說(shuō)明二次開(kāi)發(fā)鐵路車站信號(hào)工程設(shè)計(jì)的過(guò)程。
2.2.1 工程設(shè)計(jì)簡(jiǎn)介
全電子微機(jī)聯(lián)鎖是繼6502電氣集中聯(lián)鎖和傳統(tǒng)的微機(jī)聯(lián)鎖后的新一代聯(lián)鎖設(shè)備,全電子微機(jī)聯(lián)鎖執(zhí)行單元替代6502電氣集中的執(zhí)行組電路,執(zhí)行單元依轉(zhuǎn)轍機(jī)、信號(hào)機(jī)、軌道電路等不同類型的控制與采樣對(duì)象,按完全獨(dú)立的單元模塊結(jié)構(gòu)研究設(shè)計(jì),每個(gè)模塊相對(duì)獨(dú)立,完成對(duì)現(xiàn)場(chǎng)設(shè)備的驅(qū)動(dòng)和采集。全電子微機(jī)聯(lián)鎖執(zhí)行單元包括:道岔模塊、信號(hào)模塊、軌道模塊和其他模塊。全電子微機(jī)聯(lián)鎖執(zhí)行單元在工程設(shè)計(jì)時(shí),從客戶方提供的信號(hào)設(shè)備(道岔、股道、信號(hào)機(jī))的室外分線盤配線圖上讀取信號(hào)設(shè)備,根據(jù)模塊排列表排列規(guī)則,進(jìn)行人工編排。如果讓計(jì)算機(jī)讀取室外分線盤配線圖,形成信號(hào)設(shè)備數(shù)據(jù),再讓計(jì)算機(jī)根據(jù)這些數(shù)據(jù),自動(dòng)編制模塊排列表,形成全電子微機(jī)聯(lián)鎖執(zhí)行單元模塊排列表工程圖紙,不僅減輕了設(shè)計(jì)人員的勞動(dòng)強(qiáng)度,也提高了工程圖紙的精確度。
2.2.2 讀取數(shù)據(jù)模塊設(shè)計(jì)
讀取數(shù)據(jù)模塊分為3個(gè)模塊:讀取道岔、讀取股道、讀取信號(hào)機(jī)。在設(shè)計(jì)之前確定計(jì)算機(jī)要讀取的數(shù)據(jù)范圍,把工程設(shè)計(jì)中的所有使用數(shù)據(jù)都放入其中,如果在以后需要添加數(shù)據(jù),在相對(duì)應(yīng)的模塊函數(shù)中增加即可。下面以這幾種信號(hào)設(shè)備配線舉例說(shuō)明設(shè)計(jì)過(guò)程,配線種類見(jiàn)表1。
利用Visual Lisp讀取表1中的數(shù)據(jù)并提取有效數(shù)據(jù),采用Visual Lisp提供的有關(guān)選擇集的函數(shù)獲取室外分線盤上圖形數(shù)據(jù)庫(kù)數(shù)據(jù),利用人工智能中“專家系統(tǒng)”的設(shè)計(jì)思想,提取數(shù)據(jù)?!皩<蚁到y(tǒng)”結(jié)合專家知識(shí),用一系列規(guī)則表示為“如果…那么”,整套知識(shí)就被表示為(規(guī)則1,規(guī)則2,…,規(guī)則N)。建立起這樣的規(guī)則,利用選擇集依次讀出每種配線對(duì)應(yīng)的信號(hào)設(shè)備,根據(jù)每種信號(hào)設(shè)備獨(dú)有的幾種配線類型,用取交集的方法選取出相應(yīng)的設(shè)備。例如讀取第1種配線對(duì)應(yīng)的設(shè)備時(shí),只要對(duì)所讀取的2L、LUH、HH的配線的3個(gè)集合的交集就能準(zhǔn)確的獲取第1種配線所對(duì)應(yīng)的設(shè)備了。
表1 室外分線盤配線種類
2.2.3 數(shù)據(jù)處理模塊程序設(shè)計(jì)
對(duì)上面形成的數(shù)據(jù)要進(jìn)行分類、編號(hào)、分配地址,最后形成一個(gè)以表形式存放數(shù)據(jù)的數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)中有每個(gè)設(shè)備對(duì)應(yīng)的模塊類型、名稱和地址,如:(…(LXA-2 S 57)…),這個(gè)表中存儲(chǔ)了名稱為S的信號(hào)機(jī),它在模塊排列表中的地址為57,所屬模塊類型為L(zhǎng)XA-2。對(duì)信號(hào)設(shè)備的地址分配就指定了設(shè)備在模塊排列表中的位置,計(jì)算機(jī)能準(zhǔn)確的將其放入模塊排列表中,借助人工智能中的“積木世界”的基本思想:把圖2中的A模塊移到C上,必須先看A上面是否有其他模塊,若有,則先移去上面的模塊,再看C上是否有模塊,若有,則出錯(cuò),若沒(méi)有,將A至模塊C上。這里的A、B、C都是根據(jù)其中心坐標(biāo)(X,Y,Z)來(lái)確定其自身位置和相對(duì)位置,并判斷移動(dòng)的條件。(LXA-2 S 57)就相當(dāng)于A、B、C模塊的坐標(biāo)(X,Y,Z),給讀出來(lái)的所有信號(hào)模塊設(shè)備都分配了一個(gè)唯一的屬性。
2.2.4 計(jì)算機(jī)自動(dòng)繪制模塊排列表
形成了以上的一個(gè)數(shù)據(jù)庫(kù)后,就可以使用Visual Lisp中的Command函數(shù)調(diào)用AutoCAD命令,根據(jù)每個(gè)信號(hào)設(shè)備的屬性,繪制模塊排列表。繪制時(shí)根據(jù)圖形特性,使用Visual Lisp中的循環(huán)結(jié)構(gòu),減小繪圖編程的勞動(dòng)量。
圖2 “積木世界”簡(jiǎn)圖
2.3.1 鐵路站場(chǎng)聯(lián)鎖表工程設(shè)計(jì)簡(jiǎn)介
信號(hào)、道岔、進(jìn)路之間相互聯(lián)系、相互制約的關(guān)系稱為聯(lián)鎖關(guān)系,聯(lián)鎖表是聯(lián)鎖關(guān)系的說(shuō)明表。車站信號(hào)平面布置圖是編制聯(lián)鎖表的依據(jù)。聯(lián)鎖表主要包括:方向欄、進(jìn)路欄、道岔欄、敵對(duì)信號(hào)欄、軌道區(qū)段欄等。方向欄填寫進(jìn)路性質(zhì)和方向;進(jìn)路欄填寫聯(lián)鎖范圍以內(nèi)的列車和調(diào)車的基本進(jìn)路;道岔欄順序填寫所排進(jìn)路中的道岔和有關(guān)防護(hù)和帶動(dòng)道岔;敵對(duì)信號(hào)欄填寫所有敵對(duì)關(guān)系的信號(hào)機(jī);軌道區(qū)段欄填寫進(jìn)路上所要檢查的軌道區(qū)段名稱。人工編制時(shí),根據(jù)進(jìn)路的性質(zhì)、始終端、各設(shè)備聯(lián)鎖關(guān)系,從車站信號(hào)平面布置圖上讀取聯(lián)鎖表所需數(shù)據(jù),手工繪制AutoCAD工程圖紙。
2.3.2 讀取數(shù)據(jù)模塊設(shè)計(jì)
二次開(kāi)發(fā)鐵路站場(chǎng)聯(lián)鎖表時(shí),計(jì)算機(jī)讀取的是車站信號(hào)平面布置圖。由于車站信號(hào)平面布置圖是由信號(hào)機(jī)、股道、絕緣節(jié)道岔、設(shè)備名稱等圖形符號(hào)組成,這些圖形符號(hào)又由線段、圓、填充色、字符等構(gòu)成。應(yīng)該制定設(shè)計(jì)車站信號(hào)平面布置圖標(biāo)準(zhǔn),按標(biāo)準(zhǔn)繪制AutoCAD車站信號(hào)平面布置圖。讀取的數(shù)據(jù)結(jié)構(gòu)為:(設(shè)備名稱 前節(jié)點(diǎn)設(shè)備名稱 后節(jié)點(diǎn)設(shè)備名稱),道岔的數(shù)據(jù)結(jié)構(gòu)比較特殊,為(設(shè)備名稱 岔前直股設(shè)備名稱 岔后直股設(shè)備名稱 岔后彎股設(shè)備名稱)。這樣做以便在數(shù)據(jù)處理模塊中搜索進(jìn)路時(shí)方便的找出其前后節(jié)點(diǎn)的設(shè)備。
2.3.3 數(shù)據(jù)處理模塊程序設(shè)計(jì)
將以上讀取的數(shù)據(jù)放入一個(gè)總表中,其結(jié)構(gòu)為:((設(shè)備1,設(shè)備1前節(jié)點(diǎn),設(shè)備1后節(jié)點(diǎn))…(設(shè)備N 設(shè)備N前節(jié)點(diǎn) 設(shè)備N后節(jié)點(diǎn))),將總表作為一個(gè)靜態(tài)數(shù)據(jù)庫(kù),每次從靜態(tài)數(shù)據(jù)庫(kù)中取出一設(shè)備表,如:(設(shè)備1,設(shè)備1前節(jié)點(diǎn),設(shè)備1后節(jié)點(diǎn))。如果該設(shè)備可做始端,根據(jù)表中內(nèi)容尋找下一結(jié)點(diǎn)設(shè)備,如此循環(huán),最終找到終端,記錄從始端到終端聯(lián)鎖表所需填寫數(shù)據(jù),形成數(shù)據(jù)結(jié)構(gòu)為(方向,進(jìn)路,按下按鈕,信號(hào)機(jī),道岔,敵對(duì)信號(hào),軌道區(qū)段)的表,將這樣的表存入一數(shù)據(jù)總表中,形成最終的連鎖表數(shù)據(jù)總表,流程如圖3。
圖3 二次開(kāi)發(fā)聯(lián)鎖表數(shù)據(jù)處理流程圖
AutoCAD得到鐵路工程設(shè)計(jì)人員廣泛應(yīng)用,但是設(shè)計(jì)人員大部分在設(shè)計(jì)、繪制圖紙時(shí),往往只是使用AutoCAD中的一些繪圖命令,簡(jiǎn)單的將線段、圓、文字等圖形符號(hào)組合成所需的圖形。如果設(shè)計(jì)人員掌握了Visual Lisp語(yǔ)言,就可以根據(jù)自己所需,編制滿足特殊功能的軟件,這樣不但降低了鐵路車站信號(hào)工程設(shè)計(jì)人員的勞動(dòng)強(qiáng)度,也提高了設(shè)計(jì)效率。
[1] 王秉文. 6502電氣集中工程設(shè)計(jì)[M]. 北京:鐵道出版社,1997.
[2] 何 濤. 鐵路車站信號(hào)全電子計(jì)算機(jī)聯(lián)鎖執(zhí)行單元[J]. 鐵路通信信號(hào)工程技術(shù),2005(4):11-16.
[3]李學(xué)志. Visual LISP程序設(shè)計(jì)[M]. 北京:清華大學(xué)出版社,2006.
[4] George F.Luger. 人工智能復(fù)雜問(wèn)題求解的結(jié)構(gòu)和策略[M].史忠植,張銀奎,趙志,等.北京:機(jī)械工業(yè)出版社,2006.