茅 飛
?
基于軌道車輛門系統(tǒng)控制的圖形化開發(fā)平臺設(shè)計
茅 飛
(南京康尼電子科技有限公司,江蘇 南京 210038)
軌道車輛門系統(tǒng)是軌道車輛的重要組成部分,傳統(tǒng)的門控制軟件設(shè)計方式是根據(jù)門系統(tǒng)的實際需求,編寫文本語言代碼,實現(xiàn)DSP驅(qū)動無刷直流電機。但對于大型企業(yè),客戶繁多,而且不同項目之間的差異比較小,若采用上述方式設(shè)計控制程序,會浪費過多的設(shè)計時間,而且底層源代碼經(jīng)過多位設(shè)計人員的修改,容易造成軟件泄密。因此,本文采用圖形化的編程方式來設(shè)計門系統(tǒng)控制程序,基于門系統(tǒng)控制軟件設(shè)計的圖形化開發(fā)平臺,通過編寫圖形化控制軟件,實現(xiàn)車輛門系統(tǒng)的邏輯控制功能。
門系統(tǒng),DSP,圖形化
軌道交通車輛對門系統(tǒng)的要求極高,門系統(tǒng)質(zhì)量直接關(guān)系到車輛的安全[1]。門系統(tǒng)主要功能為通過門控器控制電機開關(guān)車門,故障診斷存儲,網(wǎng)絡(luò)通訊等功能,其控制對象主要為電機。傳統(tǒng)的電機驅(qū)動程序,由開發(fā)人員在上位機編輯軟件中編寫電機控制源程序,編寫完成的源程序經(jīng)過編譯器編譯后,生成可執(zhí)行文件,再下載到門控器DSP(Digital Signal Process)芯片。以上方式對于客戶比較單一或者小型企業(yè)來說,可能比較適用,但對于大型企業(yè),項目過多,設(shè)計人員疲于應(yīng)對,而且還增加了軟件代碼泄密的風險。
基于以上現(xiàn)狀,采用操作簡單、修改方便、封裝性好的創(chuàng)新方法,設(shè)計出基于圖形化的門系統(tǒng)開發(fā)平臺,用來替代原有的編程平臺。采用Visual Studio C#.NET集成開發(fā)環(huán)境開發(fā)出一款界面交互性好、參數(shù)覆蓋廣、模塊集成度高、軟件擴展性強的圖形化配置工具,結(jié)合DSP控制電機,可以簡化門系統(tǒng)電機驅(qū)動程序的設(shè)計,縮短項目開發(fā)周期,滿足企業(yè)的實際需求。
軌道車輛門系統(tǒng)的控制核心為門控器,作用對象主要有電機、指示燈、蜂鳴器等,門系統(tǒng)控制器根據(jù)輸入信號的要求,發(fā)送控制指令,驅(qū)動電機,電機驅(qū)動門板,系統(tǒng)功能得以實現(xiàn)。其結(jié)構(gòu)如圖1所示。
門控器中央處理器為TI公司開發(fā)的DSP控制器,DSP是為電機控制應(yīng)用而優(yōu)化的數(shù)字芯片處理器。電機類型為無刷直流電機。利用DSP芯片控制無刷直流電機,可以對電機信號快速地作出響應(yīng)。
DSP芯片控制無刷直流電動機的策略,在硬件電路設(shè)計中,主要為DSP數(shù)字信號處理器和無刷直流電機電路設(shè)計。采用雙閉環(huán)的控制方式完成DSP對BLDCM的控制。DSP芯片的3個捕獲單元cap管腳與無刷直流電機霍爾元件相接,用以獲取電機的位置和速度信息,速度值的大小則根據(jù)兩位置交變時刻之間的位置變化通過計算得到[2-3]。速度信號經(jīng)過速度調(diào)節(jié)器調(diào)節(jié)后作為相應(yīng)的電流給定值,速度調(diào)節(jié)器由PI控制器來實現(xiàn)。電流值經(jīng)過電流調(diào)節(jié)器的輸出再去控制PWM裝置,PWM信號控制驅(qū)動電路中功率電子開關(guān)的導通截止,用來驅(qū)動電機,其中電流調(diào)節(jié)器也采用的是PI調(diào)節(jié)。驅(qū)動電機的電流又經(jīng)過電流采樣和A/D轉(zhuǎn)換,反饋到電流調(diào)節(jié)器,用來對電流進行反饋控制,無刷直流電機按照導通相序周而復始的轉(zhuǎn)動,并通過PI調(diào)節(jié)器的調(diào)節(jié),產(chǎn)生穩(wěn)定的轉(zhuǎn)速,驅(qū)動車輛門的開關(guān)。其硬件框圖如圖2所示。

圖1 門控器結(jié)構(gòu)

圖2 系統(tǒng)硬件框圖
圖形化編程是通過圖形化的表現(xiàn)形式,用抽象的圖形語言實現(xiàn)程序的設(shè)計。圖形化編程是一種源碼級的開發(fā)方式,它的整個程序編寫過程都可視,在編程過程中避免編寫字符代碼,用戶在圖形編輯區(qū)域,拖放功能組件到指定位置,像搭“積木”一樣搭建出所見即所得的圖形程序,編程人員可以比較容易掌控整個程序的功能開發(fā)以及程序的設(shè)計 過程[4-6]。
目前國內(nèi)外對于圖形化開發(fā)平臺的研發(fā)涌現(xiàn)出了許多的新技術(shù)、新方法,其中最主要的設(shè)計方式是基于特征提取技術(shù)和基于組件技術(shù)。
(1)基于特征提取技術(shù)
特征提取技術(shù)是在模式識別的基礎(chǔ)上演變、發(fā)展起來的。特征指的是任何已被接受的某一對象的幾何功能元素和屬性,通過它們可以很好地理解該對象的功能、行為和操作。對于比較特殊的行業(yè),例如機器人系統(tǒng),許多的動作指令必須分步驟來實現(xiàn),這些步驟的集合則構(gòu)成了一個特征集,而針對這些分步驟建立起來的信息庫,可以完整地表示該動作,該過程稱之為特征提取。
(2)基于組件技術(shù)
基于組件技術(shù)從軟件角度來定義的話,是把一個巨大的應(yīng)用程序軟件分成若干個功能模塊,并且保持每個功能模塊在功能上的獨立性,在調(diào)用功能模塊的時候通過模塊之間的接口協(xié)同工作。這樣的模塊內(nèi)部保持有功能的內(nèi)聚性,但模塊之間保持著功能的低耦合這樣一個特性。一般來說的話,這些組件可以獨立的進行設(shè)計、開發(fā),并單獨編譯運行。在程序設(shè)計的時候,只需將組件有機的組合,就能實現(xiàn)其功能,完成程序的設(shè)計。這種模塊組件化的開發(fā)方式,類似于面向?qū)ο蟮拈_發(fā)方法,具有良好的封裝性以及信息隱蔽功能,還具有良好的繼承性和易維護性。
以上基本上涵蓋了圖形化設(shè)計的所有領(lǐng)域,應(yīng)用范圍比較廣泛[7-9]。本文主要運用基于組件的技術(shù),在軟件設(shè)計中,將各功能模塊封裝為組件,在圖形模塊的功能擴展中,根據(jù)各控制功能模塊的特點,將功能信息在組件中以圖形符號描述出來,用以區(qū)分不同的組件;同時整合DSP驅(qū)動無刷直流電機的功能模塊,將各功能模塊設(shè)置成單個的C文件,各圖形組件通過調(diào)用與之對應(yīng)的C文件,組合到一起,形成一個完整的C文件工程,圖形化編程其實質(zhì)是對C文件的調(diào)用。
圍繞圖形化開發(fā)平臺的設(shè)計,主要分為三部分:平臺框架設(shè)計、圖形編程區(qū)設(shè)計、編譯功能設(shè)計[10]。平臺的框架設(shè)計綜合考慮產(chǎn)品的各組成部分,合理分配界面組成區(qū)域,確定產(chǎn)品的大致框架和產(chǎn)品的功能屬性。編程區(qū)設(shè)計包括畫布編程區(qū)的設(shè)計和圖元模塊的設(shè)計,二者組合生成圖形化程序。編譯功能指對源程序代碼的轉(zhuǎn)換,轉(zhuǎn)換結(jié)果在編譯輸出區(qū)可見,并能提示編譯錯誤。該產(chǎn)品經(jīng)過上述設(shè)計后,基本上具備了圖形化開發(fā)平臺的所有功能,軟件總體結(jié)構(gòu)如圖3所示。

圖3 開發(fā)平臺總體設(shè)計示意圖
(1)平臺界面區(qū)設(shè)計
平臺主體界面包括菜單欄和工具欄,如圖4所示。其中菜單欄包括文件、視圖、工具等五部分,文件的子欄實現(xiàn)工程的創(chuàng)建、打開、保存以及退出功能。
新建項目時,圖形化開發(fā)平臺會生成一個完整的圖形化工程,它包含以下三個文件夾:
Projectfile:用于存放圖形化編輯得到的結(jié)果,也可以放置CCS的基礎(chǔ)工程。
CCSproject:拷貝自基礎(chǔ)工程,編程工具可以有兩個編譯步驟。第一,檢查編輯的圖形是否正常,各項配置值是否合法;第二,將修改正常的C文件拷貝到CCSproject,啟動工程編譯。
Binfile:拷貝CCS工程編譯的結(jié)果。
工具欄與菜單欄的功能相似,是對菜單欄功能的聯(lián)調(diào),是菜單欄中常用快捷方式的具體體現(xiàn)。子欄以圖標的形式在工具欄中顯示,方便用戶使用。

圖4 開發(fā)平臺界面結(jié)構(gòu)示意圖
(2)圖形編程區(qū)設(shè)計
圖形編程區(qū)的設(shè)計包括畫布的設(shè)計和圖形模塊的設(shè)計。對于畫布的設(shè)計,采用擴展Panel控件的方式,通過修改控件功能,生成新的FlatTabControl控件。FlatTabControl控件支持圖形程序的繪制,可以在畫布的任意區(qū)域放置圖形模塊,支持編程界面的自適應(yīng)軟件框架,支持右鍵單擊等等。由于二維坐標可以表示出界面上的任意一點,組件界面以二維坐標的方式,將界面拆分成由若干個點所組成,由點的坐標再來確定圖形模塊的位置,實現(xiàn)對界面移動目標位置信息的標記。圖形模塊也是在C#原有控件的基礎(chǔ)上,擴展控件結(jié)構(gòu),增加組件功能,使之滿足圖形模塊要求。圖形模塊分為兩大類,一類是功能模塊,另一類是連線模塊。在擴展button組件時,主要從兩個方面進行擴展,一個是組件的外觀,另一個是組件的文件屬性。組件的外觀包括連接點的設(shè)置以及模塊的樣式。連接點的位置取button組件的高和寬的中點,高和寬長度的計算可根據(jù)組件的橫縱坐標值通過計算得到;圖形模塊的形狀與button組件相似,但在整體表現(xiàn)風格上,區(qū)別于原有組件。組件的文件屬性指點擊組件時的功能響應(yīng),功能模塊需要實現(xiàn)模塊所封裝的函數(shù)功能,系統(tǒng)將函數(shù)文件同步復制到工程中,系統(tǒng)對圖形模塊的設(shè)置可同步反映到工程文件中。

圖5 圖形模塊功能擴展
圖形模塊生成后,接下來完成模塊功能。將圖形模塊與模塊功能函數(shù)綁定鏈接在一起,實現(xiàn)模塊與C文件動態(tài)地同步聯(lián)動。在圖形化編程時,圖形模塊被拖放到編程區(qū),C函數(shù)文件隨著圖形模塊也被復制到所在的工程,工程函數(shù)再根據(jù)具體項目的要求設(shè)置電機參數(shù)值,執(zhí)行相應(yīng)的指令[11-12]。這樣整個編程區(qū)的功能就實現(xiàn)了。
(3)編譯功能區(qū)設(shè)計
圖形化開發(fā)平臺生成的源代碼,下位機無法識別其代碼指令,需要進行編譯轉(zhuǎn)換。如果直接設(shè)計一個編譯器,技術(shù)難度太大,而且花費的時間也較多,不可取。在此所采用的方法是調(diào)用CCStudio編輯軟件的代碼編譯器,將該編譯器內(nèi)嵌到圖形化開發(fā)平臺,通過點擊編譯按鈕,將編譯結(jié)果顯示在output輸出區(qū),生成.out格式的可執(zhí)行文件。具體實現(xiàn)方式是在點擊編譯按鈕的時候,觸發(fā)事件響應(yīng),調(diào)用CCStudio內(nèi)嵌的timake.exe編譯程序,執(zhí)行其編譯功能。
在完成以上述功能后,整個開發(fā)平臺基本上可以實現(xiàn)程序的圖形化設(shè)計。圖形化開發(fā)平臺界面如圖6所示。
在驗證調(diào)試圖形化開發(fā)平臺的功能過程中,結(jié)合DSP芯片控制無刷直流電機策略,以輸入端口信號作為輸入指令,控制無刷直流電機的轉(zhuǎn)動停止;以輸出端口信號作為電機輸出指令,指示電機的運動狀態(tài)。將圖形化開發(fā)平臺中的motor模塊綁定電機控制程序所在的C文件,輸入口I0~I3接入110 V正電壓,其中I0、I1作為電機啟動控制邏輯,I2、I3作為電機停止控制邏輯,其中電機的運動以及停止指令均由輸入口的高電平?jīng)Q定;輸出LED燈O0作為開門指示燈,O1燈作為關(guān)門指示燈,監(jiān)視門系統(tǒng)的運行情況。
新建工程項目,選擇系統(tǒng)工程文件,編寫圖形程序,并在模塊屬性窗口設(shè)置控制參數(shù)。
根據(jù)電機的轉(zhuǎn)速情況,相應(yīng)地調(diào)整速度值,使得電機運動速度有規(guī)律地變化,并穩(wěn)定運行。圖7為圖形程序修改參數(shù)后編譯生成的界面。
在調(diào)試當中,采用中斷定時器循環(huán)定時,控制電機的轉(zhuǎn)動停止,中斷定時器通過設(shè)初值為-1,啟動定時器,定時器周期為100 ms,置計數(shù)周期為40 s,掃描輸入端口的輸入信號,如果I0或I1管腳有信號輸入,電機設(shè)為啟動模式,調(diào)用啟動函數(shù)程序,電機開始轉(zhuǎn)動;當電機轉(zhuǎn)動運行20 s后,再次掃描輸入端口的信號變化,I2或I3管腳有信號輸入,電機轉(zhuǎn)為停止模式,調(diào)用停止函數(shù)程序,電機停止轉(zhuǎn)動;當計數(shù)為0時,計時器清零,并置初值為0。其電機控制程序流程圖如下8所示。
在電機循環(huán)轉(zhuǎn)動過程中,通過修改電機速度的參數(shù)值,逐漸增大電機給定值,電機的轉(zhuǎn)速變化明顯,其轉(zhuǎn)動速度與電機給定值成正比,可以達到預期的設(shè)計目標,取得了良好的控制效果。
將上述電機轉(zhuǎn)動情況與傳統(tǒng)方式控制下的電機轉(zhuǎn)動情況進行對比,在初始速度取相同值的情況下,電機的轉(zhuǎn)動速度一致,其轉(zhuǎn)動情況不發(fā)生變化;此時修改電機轉(zhuǎn)速,可以看到,采用圖形化開發(fā)平臺編寫的電機控制程序,只需在屬性窗口中修改電機速度值,經(jīng)編譯運行后,電機的轉(zhuǎn)速立刻就會有變化,這比傳統(tǒng)的控制程序編寫方式要簡單許多,但運行效果卻一致。因此,由此可以得出該圖形化開發(fā)平臺可以滿足對電機的控制要求,達到了預期的設(shè)計目標。

圖6 圖形化編程界面

圖7 圖形化程序編譯結(jié)果

圖8 中斷定時器控制流程圖
從以上所述的圖形化開發(fā)平臺可以看出,采用圖形化的編程方式,可以實現(xiàn)DSP對無刷直流電機的控制要求。該控制方式的源碼不可見,設(shè)計過程簡單明了,較好的保護了源碼的安全,節(jié)約代碼編碼時間,并且程序結(jié)構(gòu)清晰,可修改性強,易于實現(xiàn),具有很好的應(yīng)用推廣價值。
[1] 高偉. 智慧門系統(tǒng)的智能監(jiān)控設(shè)計與開發(fā)[D]. 南京理工大學, 2013.
[2] 孟彥京, 常杰, 朱玉國.基于DSP的直流無刷電機控制系統(tǒng)設(shè)計[J]. 陜西科技大學學報, 2009, 27(3): 101-105.
[3] Digital Motor Control C2000 Systems and Applications[M]. Texas Instruments, 2012.
[4] 李鋒. 機器人大腦圖形化開發(fā)平臺的研究[D]. 西安: 長安大學, 2011.
[5] 徐成. 機器人圖形化編程系統(tǒng)的設(shè)計與實現(xiàn)[D]. 武漢: 武漢理工大學, 2010.
[6] 魏蘭, 李文鋒, 陳維克. 機器人控制軟件的圖形化編程系統(tǒng)設(shè)計[J]. 計算機工程與設(shè)計, 2007, 27(8): 3723-3725.
[7] 謝宣松, 林君. G語言結(jié)構(gòu)及運行模型[J]. 吉林大學學報(工學版), 2006, 36(2): 38-40.
[8] 程學敏. 基于LabVIEW信號分析系統(tǒng)的設(shè)計[D]. 蘭州: 蘭州大學, 2008.
[9] 安曉榮, 吳文江, 彭勇, 等. 有向幾何在圖形化數(shù)控編程系統(tǒng)中的應(yīng)用[J]. 組合機床與自動化加工技術(shù), 2010, (5): 52-55.
[10] 張為平. 參數(shù)化設(shè)計研究與實踐[J]. 城市建筑, 2009, (11): 112-117.
[11] 金建國, 周明華, 鄔學軍. 參數(shù)化設(shè)計綜述[J]. 計算機工程與應(yīng)用, 2003, 39(7): 16-18.
The Design of Graphical Development Platform Based on the Rail Vehicle’s door Control System
MAO Fei
(Nanjing Kangni Technology Industry CO., LTD, Nanjing 210038, China)
Rail vehicle’s door system is an important part of railway vehicle, the traditional way of door control program’s design method is to write the text language code according to each customer’s demand, and realize the brushless DC motor’s driven by DSP. But for large enterprises, there are many customers and the difference between different projects is relatively small. If we use the above way to design control programs, it will waste too much time and the codes’ safety can’t be guaranteed if the source codes is modified by many designers. So, a graphical programming method is adopted to design the control program of the door system in this paper. A graphical development platform based on door system’s control software is designed and implemented, and the logic control function of vehicle‘s door system is realized by compiling graphical control software.
Door system; Digital Signal Processing; Graphing
TP273+.5
A
10.3969/j.issn.1003-6970.2018.09.020
茅飛(1975-),男,碩士,主要研究方向:直流無刷電機數(shù)字化驅(qū)動、軌道交通設(shè)備網(wǎng)絡(luò)通訊、診斷及維護技術(shù)、安全性及可靠性設(shè)計。
本文著錄格式:茅飛. 基于軌道車輛門系統(tǒng)控制的圖形化開發(fā)平臺設(shè)計[J]. 軟件,2018,39(9):97-102