茅 飛
?
基于軌道車輛門系統(tǒng)控制的圖形化開發(fā)平臺(tái)設(shè)計(jì)
茅 飛
(南京康尼電子科技有限公司,江蘇 南京 210038)
軌道車輛門系統(tǒng)是軌道車輛的重要組成部分,傳統(tǒng)的門控制軟件設(shè)計(jì)方式是根據(jù)門系統(tǒng)的實(shí)際需求,編寫文本語(yǔ)言代碼,實(shí)現(xiàn)DSP驅(qū)動(dòng)無刷直流電機(jī)。但對(duì)于大型企業(yè),客戶繁多,而且不同項(xiàng)目之間的差異比較小,若采用上述方式設(shè)計(jì)控制程序,會(huì)浪費(fèi)過多的設(shè)計(jì)時(shí)間,而且底層源代碼經(jīng)過多位設(shè)計(jì)人員的修改,容易造成軟件泄密。因此,本文采用圖形化的編程方式來設(shè)計(jì)門系統(tǒng)控制程序,基于門系統(tǒng)控制軟件設(shè)計(jì)的圖形化開發(fā)平臺(tái),通過編寫圖形化控制軟件,實(shí)現(xiàn)車輛門系統(tǒng)的邏輯控制功能。
門系統(tǒng),DSP,圖形化
軌道交通車輛對(duì)門系統(tǒng)的要求極高,門系統(tǒng)質(zhì)量直接關(guān)系到車輛的安全[1]。門系統(tǒng)主要功能為通過門控器控制電機(jī)開關(guān)車門,故障診斷存儲(chǔ),網(wǎng)絡(luò)通訊等功能,其控制對(duì)象主要為電機(jī)。傳統(tǒng)的電機(jī)驅(qū)動(dòng)程序,由開發(fā)人員在上位機(jī)編輯軟件中編寫電機(jī)控制源程序,編寫完成的源程序經(jīng)過編譯器編譯后,生成可執(zhí)行文件,再下載到門控器DSP(Digital Signal Process)芯片。以上方式對(duì)于客戶比較單一或者小型企業(yè)來說,可能比較適用,但對(duì)于大型企業(yè),項(xiàng)目過多,設(shè)計(jì)人員疲于應(yīng)對(duì),而且還增加了軟件代碼泄密的風(fēng)險(xiǎn)。
基于以上現(xiàn)狀,采用操作簡(jiǎn)單、修改方便、封裝性好的創(chuàng)新方法,設(shè)計(jì)出基于圖形化的門系統(tǒng)開發(fā)平臺(tái),用來替代原有的編程平臺(tái)。采用Visual Studio C#.NET集成開發(fā)環(huán)境開發(fā)出一款界面交互性好、參數(shù)覆蓋廣、模塊集成度高、軟件擴(kuò)展性強(qiáng)的圖形化配置工具,結(jié)合DSP控制電機(jī),可以簡(jiǎn)化門系統(tǒng)電機(jī)驅(qū)動(dòng)程序的設(shè)計(jì),縮短項(xiàng)目開發(fā)周期,滿足企業(yè)的實(shí)際需求。
軌道車輛門系統(tǒng)的控制核心為門控器,作用對(duì)象主要有電機(jī)、指示燈、蜂鳴器等,門系統(tǒng)控制器根據(jù)輸入信號(hào)的要求,發(fā)送控制指令,驅(qū)動(dòng)電機(jī),電機(jī)驅(qū)動(dòng)門板,系統(tǒng)功能得以實(shí)現(xiàn)。其結(jié)構(gòu)如圖1所示。
門控器中央處理器為TI公司開發(fā)的DSP控制器,DSP是為電機(jī)控制應(yīng)用而優(yōu)化的數(shù)字芯片處理器。電機(jī)類型為無刷直流電機(jī)。利用DSP芯片控制無刷直流電機(jī),可以對(duì)電機(jī)信號(hào)快速地作出響應(yīng)。
DSP芯片控制無刷直流電動(dòng)機(jī)的策略,在硬件電路設(shè)計(jì)中,主要為DSP數(shù)字信號(hào)處理器和無刷直流電機(jī)電路設(shè)計(jì)。采用雙閉環(huán)的控制方式完成DSP對(duì)BLDCM的控制。DSP芯片的3個(gè)捕獲單元cap管腳與無刷直流電機(jī)霍爾元件相接,用以獲取電機(jī)的位置和速度信息,速度值的大小則根據(jù)兩位置交變時(shí)刻之間的位置變化通過計(jì)算得到[2-3]。速度信號(hào)經(jīng)過速度調(diào)節(jié)器調(diào)節(jié)后作為相應(yīng)的電流給定值,速度調(diào)節(jié)器由PI控制器來實(shí)現(xiàn)。電流值經(jīng)過電流調(diào)節(jié)器的輸出再去控制PWM裝置,PWM信號(hào)控制驅(qū)動(dòng)電路中功率電子開關(guān)的導(dǎo)通截止,用來驅(qū)動(dòng)電機(jī),其中電流調(diào)節(jié)器也采用的是PI調(diào)節(jié)。驅(qū)動(dòng)電機(jī)的電流又經(jīng)過電流采樣和A/D轉(zhuǎn)換,反饋到電流調(diào)節(jié)器,用來對(duì)電流進(jìn)行反饋控制,無刷直流電機(jī)按照導(dǎo)通相序周而復(fù)始的轉(zhuǎn)動(dòng),并通過PI調(diào)節(jié)器的調(diào)節(jié),產(chǎn)生穩(wěn)定的轉(zhuǎn)速,驅(qū)動(dòng)車輛門的開關(guān)。其硬件框圖如圖2所示。
圖1 門控器結(jié)構(gòu)
圖2 系統(tǒng)硬件框圖
圖形化編程是通過圖形化的表現(xiàn)形式,用抽象的圖形語(yǔ)言實(shí)現(xiàn)程序的設(shè)計(jì)。圖形化編程是一種源碼級(jí)的開發(fā)方式,它的整個(gè)程序編寫過程都可視,在編程過程中避免編寫字符代碼,用戶在圖形編輯區(qū)域,拖放功能組件到指定位置,像搭“積木”一樣搭建出所見即所得的圖形程序,編程人員可以比較容易掌控整個(gè)程序的功能開發(fā)以及程序的設(shè)計(jì) 過程[4-6]。
目前國(guó)內(nèi)外對(duì)于圖形化開發(fā)平臺(tái)的研發(fā)涌現(xiàn)出了許多的新技術(shù)、新方法,其中最主要的設(shè)計(jì)方式是基于特征提取技術(shù)和基于組件技術(shù)。
(1)基于特征提取技術(shù)
特征提取技術(shù)是在模式識(shí)別的基礎(chǔ)上演變、發(fā)展起來的。特征指的是任何已被接受的某一對(duì)象的幾何功能元素和屬性,通過它們可以很好地理解該對(duì)象的功能、行為和操作。對(duì)于比較特殊的行業(yè),例如機(jī)器人系統(tǒng),許多的動(dòng)作指令必須分步驟來實(shí)現(xiàn),這些步驟的集合則構(gòu)成了一個(gè)特征集,而針對(duì)這些分步驟建立起來的信息庫(kù),可以完整地表示該動(dòng)作,該過程稱之為特征提取。
(2)基于組件技術(shù)
基于組件技術(shù)從軟件角度來定義的話,是把一個(gè)巨大的應(yīng)用程序軟件分成若干個(gè)功能模塊,并且保持每個(gè)功能模塊在功能上的獨(dú)立性,在調(diào)用功能模塊的時(shí)候通過模塊之間的接口協(xié)同工作。這樣的模塊內(nèi)部保持有功能的內(nèi)聚性,但模塊之間保持著功能的低耦合這樣一個(gè)特性。一般來說的話,這些組件可以獨(dú)立的進(jìn)行設(shè)計(jì)、開發(fā),并單獨(dú)編譯運(yùn)行。在程序設(shè)計(jì)的時(shí)候,只需將組件有機(jī)的組合,就能實(shí)現(xiàn)其功能,完成程序的設(shè)計(jì)。這種模塊組件化的開發(fā)方式,類似于面向?qū)ο蟮拈_發(fā)方法,具有良好的封裝性以及信息隱蔽功能,還具有良好的繼承性和易維護(hù)性。
以上基本上涵蓋了圖形化設(shè)計(jì)的所有領(lǐng)域,應(yīng)用范圍比較廣泛[7-9]。本文主要運(yùn)用基于組件的技術(shù),在軟件設(shè)計(jì)中,將各功能模塊封裝為組件,在圖形模塊的功能擴(kuò)展中,根據(jù)各控制功能模塊的特點(diǎn),將功能信息在組件中以圖形符號(hào)描述出來,用以區(qū)分不同的組件;同時(shí)整合DSP驅(qū)動(dòng)無刷直流電機(jī)的功能模塊,將各功能模塊設(shè)置成單個(gè)的C文件,各圖形組件通過調(diào)用與之對(duì)應(yīng)的C文件,組合到一起,形成一個(gè)完整的C文件工程,圖形化編程其實(shí)質(zhì)是對(duì)C文件的調(diào)用。
圍繞圖形化開發(fā)平臺(tái)的設(shè)計(jì),主要分為三部分:平臺(tái)框架設(shè)計(jì)、圖形編程區(qū)設(shè)計(jì)、編譯功能設(shè)計(jì)[10]。平臺(tái)的框架設(shè)計(jì)綜合考慮產(chǎn)品的各組成部分,合理分配界面組成區(qū)域,確定產(chǎn)品的大致框架和產(chǎn)品的功能屬性。編程區(qū)設(shè)計(jì)包括畫布編程區(qū)的設(shè)計(jì)和圖元模塊的設(shè)計(jì),二者組合生成圖形化程序。編譯功能指對(duì)源程序代碼的轉(zhuǎn)換,轉(zhuǎn)換結(jié)果在編譯輸出區(qū)可見,并能提示編譯錯(cuò)誤。該產(chǎn)品經(jīng)過上述設(shè)計(jì)后,基本上具備了圖形化開發(fā)平臺(tái)的所有功能,軟件總體結(jié)構(gòu)如圖3所示。
圖3 開發(fā)平臺(tái)總體設(shè)計(jì)示意圖
(1)平臺(tái)界面區(qū)設(shè)計(jì)
平臺(tái)主體界面包括菜單欄和工具欄,如圖4所示。其中菜單欄包括文件、視圖、工具等五部分,文件的子欄實(shí)現(xiàn)工程的創(chuàng)建、打開、保存以及退出功能。
新建項(xiàng)目時(shí),圖形化開發(fā)平臺(tái)會(huì)生成一個(gè)完整的圖形化工程,它包含以下三個(gè)文件夾:
Projectfile:用于存放圖形化編輯得到的結(jié)果,也可以放置CCS的基礎(chǔ)工程。
CCSproject:拷貝自基礎(chǔ)工程,編程工具可以有兩個(gè)編譯步驟。第一,檢查編輯的圖形是否正常,各項(xiàng)配置值是否合法;第二,將修改正常的C文件拷貝到CCSproject,啟動(dòng)工程編譯。
Binfile:拷貝CCS工程編譯的結(jié)果。
工具欄與菜單欄的功能相似,是對(duì)菜單欄功能的聯(lián)調(diào),是菜單欄中常用快捷方式的具體體現(xiàn)。子欄以圖標(biāo)的形式在工具欄中顯示,方便用戶使用。
圖4 開發(fā)平臺(tái)界面結(jié)構(gòu)示意圖
(2)圖形編程區(qū)設(shè)計(jì)
圖形編程區(qū)的設(shè)計(jì)包括畫布的設(shè)計(jì)和圖形模塊的設(shè)計(jì)。對(duì)于畫布的設(shè)計(jì),采用擴(kuò)展Panel控件的方式,通過修改控件功能,生成新的FlatTabControl控件。FlatTabControl控件支持圖形程序的繪制,可以在畫布的任意區(qū)域放置圖形模塊,支持編程界面的自適應(yīng)軟件框架,支持右鍵單擊等等。由于二維坐標(biāo)可以表示出界面上的任意一點(diǎn),組件界面以二維坐標(biāo)的方式,將界面拆分成由若干個(gè)點(diǎn)所組成,由點(diǎn)的坐標(biāo)再來確定圖形模塊的位置,實(shí)現(xiàn)對(duì)界面移動(dòng)目標(biāo)位置信息的標(biāo)記。圖形模塊也是在C#原有控件的基礎(chǔ)上,擴(kuò)展控件結(jié)構(gòu),增加組件功能,使之滿足圖形模塊要求。圖形模塊分為兩大類,一類是功能模塊,另一類是連線模塊。在擴(kuò)展button組件時(shí),主要從兩個(gè)方面進(jìn)行擴(kuò)展,一個(gè)是組件的外觀,另一個(gè)是組件的文件屬性。組件的外觀包括連接點(diǎn)的設(shè)置以及模塊的樣式。連接點(diǎn)的位置取button組件的高和寬的中點(diǎn),高和寬長(zhǎng)度的計(jì)算可根據(jù)組件的橫縱坐標(biāo)值通過計(jì)算得到;圖形模塊的形狀與button組件相似,但在整體表現(xiàn)風(fēng)格上,區(qū)別于原有組件。組件的文件屬性指點(diǎn)擊組件時(shí)的功能響應(yīng),功能模塊需要實(shí)現(xiàn)模塊所封裝的函數(shù)功能,系統(tǒng)將函數(shù)文件同步復(fù)制到工程中,系統(tǒng)對(duì)圖形模塊的設(shè)置可同步反映到工程文件中。
圖5 圖形模塊功能擴(kuò)展
圖形模塊生成后,接下來完成模塊功能。將圖形模塊與模塊功能函數(shù)綁定鏈接在一起,實(shí)現(xiàn)模塊與C文件動(dòng)態(tài)地同步聯(lián)動(dòng)。在圖形化編程時(shí),圖形模塊被拖放到編程區(qū),C函數(shù)文件隨著圖形模塊也被復(fù)制到所在的工程,工程函數(shù)再根據(jù)具體項(xiàng)目的要求設(shè)置電機(jī)參數(shù)值,執(zhí)行相應(yīng)的指令[11-12]。這樣整個(gè)編程區(qū)的功能就實(shí)現(xiàn)了。
(3)編譯功能區(qū)設(shè)計(jì)
圖形化開發(fā)平臺(tái)生成的源代碼,下位機(jī)無法識(shí)別其代碼指令,需要進(jìn)行編譯轉(zhuǎn)換。如果直接設(shè)計(jì)一個(gè)編譯器,技術(shù)難度太大,而且花費(fèi)的時(shí)間也較多,不可取。在此所采用的方法是調(diào)用CCStudio編輯軟件的代碼編譯器,將該編譯器內(nèi)嵌到圖形化開發(fā)平臺(tái),通過點(diǎn)擊編譯按鈕,將編譯結(jié)果顯示在output輸出區(qū),生成.out格式的可執(zhí)行文件。具體實(shí)現(xiàn)方式是在點(diǎn)擊編譯按鈕的時(shí)候,觸發(fā)事件響應(yīng),調(diào)用CCStudio內(nèi)嵌的timake.exe編譯程序,執(zhí)行其編譯功能。
在完成以上述功能后,整個(gè)開發(fā)平臺(tái)基本上可以實(shí)現(xiàn)程序的圖形化設(shè)計(jì)。圖形化開發(fā)平臺(tái)界面如圖6所示。
在驗(yàn)證調(diào)試圖形化開發(fā)平臺(tái)的功能過程中,結(jié)合DSP芯片控制無刷直流電機(jī)策略,以輸入端口信號(hào)作為輸入指令,控制無刷直流電機(jī)的轉(zhuǎn)動(dòng)停止;以輸出端口信號(hào)作為電機(jī)輸出指令,指示電機(jī)的運(yùn)動(dòng)狀態(tài)。將圖形化開發(fā)平臺(tái)中的motor模塊綁定電機(jī)控制程序所在的C文件,輸入口I0~I3接入110 V正電壓,其中I0、I1作為電機(jī)啟動(dòng)控制邏輯,I2、I3作為電機(jī)停止控制邏輯,其中電機(jī)的運(yùn)動(dòng)以及停止指令均由輸入口的高電平?jīng)Q定;輸出LED燈O0作為開門指示燈,O1燈作為關(guān)門指示燈,監(jiān)視門系統(tǒng)的運(yùn)行情況。
新建工程項(xiàng)目,選擇系統(tǒng)工程文件,編寫圖形程序,并在模塊屬性窗口設(shè)置控制參數(shù)。
根據(jù)電機(jī)的轉(zhuǎn)速情況,相應(yīng)地調(diào)整速度值,使得電機(jī)運(yùn)動(dòng)速度有規(guī)律地變化,并穩(wěn)定運(yùn)行。圖7為圖形程序修改參數(shù)后編譯生成的界面。
在調(diào)試當(dāng)中,采用中斷定時(shí)器循環(huán)定時(shí),控制電機(jī)的轉(zhuǎn)動(dòng)停止,中斷定時(shí)器通過設(shè)初值為-1,啟動(dòng)定時(shí)器,定時(shí)器周期為100 ms,置計(jì)數(shù)周期為40 s,掃描輸入端口的輸入信號(hào),如果I0或I1管腳有信號(hào)輸入,電機(jī)設(shè)為啟動(dòng)模式,調(diào)用啟動(dòng)函數(shù)程序,電機(jī)開始轉(zhuǎn)動(dòng);當(dāng)電機(jī)轉(zhuǎn)動(dòng)運(yùn)行20 s后,再次掃描輸入端口的信號(hào)變化,I2或I3管腳有信號(hào)輸入,電機(jī)轉(zhuǎn)為停止模式,調(diào)用停止函數(shù)程序,電機(jī)停止轉(zhuǎn)動(dòng);當(dāng)計(jì)數(shù)為0時(shí),計(jì)時(shí)器清零,并置初值為0。其電機(jī)控制程序流程圖如下8所示。
在電機(jī)循環(huán)轉(zhuǎn)動(dòng)過程中,通過修改電機(jī)速度的參數(shù)值,逐漸增大電機(jī)給定值,電機(jī)的轉(zhuǎn)速變化明顯,其轉(zhuǎn)動(dòng)速度與電機(jī)給定值成正比,可以達(dá)到預(yù)期的設(shè)計(jì)目標(biāo),取得了良好的控制效果。
將上述電機(jī)轉(zhuǎn)動(dòng)情況與傳統(tǒng)方式控制下的電機(jī)轉(zhuǎn)動(dòng)情況進(jìn)行對(duì)比,在初始速度取相同值的情況下,電機(jī)的轉(zhuǎn)動(dòng)速度一致,其轉(zhuǎn)動(dòng)情況不發(fā)生變化;此時(shí)修改電機(jī)轉(zhuǎn)速,可以看到,采用圖形化開發(fā)平臺(tái)編寫的電機(jī)控制程序,只需在屬性窗口中修改電機(jī)速度值,經(jīng)編譯運(yùn)行后,電機(jī)的轉(zhuǎn)速立刻就會(huì)有變化,這比傳統(tǒng)的控制程序編寫方式要簡(jiǎn)單許多,但運(yùn)行效果卻一致。因此,由此可以得出該圖形化開發(fā)平臺(tái)可以滿足對(duì)電機(jī)的控制要求,達(dá)到了預(yù)期的設(shè)計(jì)目標(biāo)。
圖6 圖形化編程界面
圖7 圖形化程序編譯結(jié)果
圖8 中斷定時(shí)器控制流程圖
從以上所述的圖形化開發(fā)平臺(tái)可以看出,采用圖形化的編程方式,可以實(shí)現(xiàn)DSP對(duì)無刷直流電機(jī)的控制要求。該控制方式的源碼不可見,設(shè)計(jì)過程簡(jiǎn)單明了,較好的保護(hù)了源碼的安全,節(jié)約代碼編碼時(shí)間,并且程序結(jié)構(gòu)清晰,可修改性強(qiáng),易于實(shí)現(xiàn),具有很好的應(yīng)用推廣價(jià)值。
[1] 高偉. 智慧門系統(tǒng)的智能監(jiān)控設(shè)計(jì)與開發(fā)[D]. 南京理工大學(xué), 2013.
[2] 孟彥京, 常杰, 朱玉國(guó).基于DSP的直流無刷電機(jī)控制系統(tǒng)設(shè)計(jì)[J]. 陜西科技大學(xué)學(xué)報(bào), 2009, 27(3): 101-105.
[3] Digital Motor Control C2000 Systems and Applications[M]. Texas Instruments, 2012.
[4] 李鋒. 機(jī)器人大腦圖形化開發(fā)平臺(tái)的研究[D]. 西安: 長(zhǎng)安大學(xué), 2011.
[5] 徐成. 機(jī)器人圖形化編程系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 武漢: 武漢理工大學(xué), 2010.
[6] 魏蘭, 李文鋒, 陳維克. 機(jī)器人控制軟件的圖形化編程系統(tǒng)設(shè)計(jì)[J]. 計(jì)算機(jī)工程與設(shè)計(jì), 2007, 27(8): 3723-3725.
[7] 謝宣松, 林君. G語(yǔ)言結(jié)構(gòu)及運(yùn)行模型[J]. 吉林大學(xué)學(xué)報(bào)(工學(xué)版), 2006, 36(2): 38-40.
[8] 程學(xué)敏. 基于LabVIEW信號(hào)分析系統(tǒng)的設(shè)計(jì)[D]. 蘭州: 蘭州大學(xué), 2008.
[9] 安曉榮, 吳文江, 彭勇, 等. 有向幾何在圖形化數(shù)控編程系統(tǒng)中的應(yīng)用[J]. 組合機(jī)床與自動(dòng)化加工技術(shù), 2010, (5): 52-55.
[10] 張為平. 參數(shù)化設(shè)計(jì)研究與實(shí)踐[J]. 城市建筑, 2009, (11): 112-117.
[11] 金建國(guó), 周明華, 鄔學(xué)軍. 參數(shù)化設(shè)計(jì)綜述[J]. 計(jì)算機(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-),男,碩士,主要研究方向:直流無刷電機(jī)數(shù)字化驅(qū)動(dòng)、軌道交通設(shè)備網(wǎng)絡(luò)通訊、診斷及維護(hù)技術(shù)、安全性及可靠性設(shè)計(jì)。
本文著錄格式:茅飛. 基于軌道車輛門系統(tǒng)控制的圖形化開發(fā)平臺(tái)設(shè)計(jì)[J]. 軟件,2018,39(9):97-102