【正文】
實(shí)現(xiàn)的。如圖34為常見(jiàn)的虛擬儀器的組成形式,首先利用傳感器的功能對(duì)位移、力、溫度和濕度等模擬物理信號(hào)測(cè)量,測(cè)量得到的信號(hào)不可避免的會(huì)包含很多噪音信號(hào)的干擾,因此必須對(duì)采集到的信號(hào)進(jìn)行濾波和去噪等的信號(hào)調(diào)理操作。經(jīng)過(guò)過(guò)濾的信號(hào),通過(guò)數(shù)據(jù)采集卡采集到控制系統(tǒng)的處理中心,對(duì)其進(jìn)行所需的處理操作,而設(shè)計(jì)的虛擬的儀器面板此時(shí)便可實(shí)現(xiàn)對(duì)虛擬儀器的交互控制操作。圖38 虛擬儀器的組成 Composition of virtual instrument虛擬儀器的組成,最常見(jiàn)包括有計(jì)算機(jī)硬件資源,例如計(jì)算機(jī)微處理器、內(nèi)存設(shè)備和顯示器等,計(jì)算機(jī)的應(yīng)用軟件資源,以及傳統(tǒng)的儀器硬件設(shè)備,例如模擬信號(hào)和數(shù)字信號(hào)的轉(zhuǎn)換通道,用于外部通信的I/O接口、信號(hào)調(diào)理電路等。設(shè)計(jì)者在設(shè)計(jì)虛擬儀器時(shí)則具有了很大的靈活性,可以充分利用一切計(jì)算機(jī)可以利用的各種應(yīng)用軟件,從而將計(jì)算機(jī)硬件和軟件資源與儀器設(shè)備硬件資源有機(jī)的結(jié)合起來(lái)。由于虛擬儀器的控制面板式通過(guò)計(jì)算機(jī)軟件編制的虛擬界面,借助于強(qiáng)大的計(jì)算機(jī)軟件功能,可以非常方便的設(shè)計(jì)人性化的友好的人機(jī)交互界面,并且可以根據(jù)使用時(shí)的需求,隨時(shí)調(diào)整界面的布局和功能,極大的提高了效率和體現(xiàn)了個(gè)性化實(shí)用化設(shè)計(jì)的需求。硬件系統(tǒng)的主要功能是對(duì)信號(hào)進(jìn)行調(diào)理并解決輸入和輸出的問(wèn)題。軟件的主要作用是完成對(duì)數(shù)據(jù)的讀取、采集、分析、處理和顯示,以及完成對(duì)硬件相應(yīng)動(dòng)作和功能的控制。而在傳統(tǒng)的儀器中,要實(shí)現(xiàn)上述的功能則主要是通過(guò)設(shè)計(jì)硬件電子電路來(lái)實(shí)現(xiàn),但電子電路的設(shè)計(jì)就會(huì)具有效率低、成本高和靈活性差等的缺點(diǎn),因此相對(duì)于傳統(tǒng)儀器的原理,虛擬儀器的應(yīng)用是測(cè)試控制領(lǐng)域的長(zhǎng)足飛躍。如圖34所展示的是虛擬與傳統(tǒng)儀器的組成和原理之間的區(qū)別。圖39 虛擬與傳統(tǒng)儀器的區(qū)別 The contrast of virtual Instruments and traditional instruments與傳統(tǒng)儀器相比,虛擬儀器具有很大的優(yōu)勢(shì),而這些優(yōu)勢(shì)主要可以體現(xiàn)在程序的智能化,處理能力的高效化,性價(jià)比的大幅度提升以及人機(jī)交互性能變強(qiáng)等方面,這些特點(diǎn)概括起來(lái)就是:智能化程度提高,處理能力加強(qiáng);重復(fù)利用性顯著增強(qiáng),系統(tǒng)的成本大大將低;人性化的操作性能變強(qiáng),可根據(jù)用戶需求靈活多變[33]。虛擬儀器的硬件系統(tǒng)大致可以分為以下幾類:(1)GPIB系統(tǒng),這是一種儀表控制系統(tǒng),標(biāo)準(zhǔn)配置,GPIB接口卡可以14儀器,電纜長(zhǎng)度可達(dá)40米。GPIB的軟硬件支持都非常的廣泛,測(cè)試和控制系統(tǒng)本身也相對(duì)比較簡(jiǎn)單,從而可以十分便利地實(shí)現(xiàn)將多臺(tái)儀器組合起來(lái)形成復(fù)合的運(yùn)動(dòng)測(cè)試系統(tǒng)。(2)串口系統(tǒng),這是一種利用不同串口線進(jìn)行通信的儀器系統(tǒng),使用的總線主要有RS232串口線、USB通用總線和IEEE1394總線,目前技術(shù)已相當(dāng)成熟。(3)現(xiàn)場(chǎng)總線系統(tǒng),這是一種利用了計(jì)算機(jī)的現(xiàn)場(chǎng)總線的虛擬儀器系統(tǒng),可以實(shí)現(xiàn)儀器與控制系統(tǒng)之間全數(shù)字化、多變量、多點(diǎn)多站的通信方式,具有穩(wěn)定性好、速率快、可靠性高和抗干擾能力強(qiáng)的優(yōu)點(diǎn),這種虛擬儀器硬件系統(tǒng)的的應(yīng)用前景非常廣闊。虛擬儀器的軟件系統(tǒng),與虛擬儀器的硬件模塊的開放性和標(biāo)準(zhǔn)化相適應(yīng),也具有開放的、統(tǒng)一的格式與標(biāo)準(zhǔn)。虛擬儀器的軟件結(jié)構(gòu)從頂層到底層分別為:應(yīng)用軟件層、輸入輸出接口層和儀器程序驅(qū)動(dòng)層。虛擬儀器的應(yīng)用軟件的開發(fā)環(huán)境有很多種選擇,但必須滿足能給用戶提供友好、功能強(qiáng)大的應(yīng)用程序的要求。在眾多不同的開發(fā)環(huán)境中,Labview因其突出的優(yōu)勢(shì),而成為虛擬儀器、自動(dòng)控制領(lǐng)域被采用最為廣泛的一種編程方式,目前在眾多可用于進(jìn)行數(shù)據(jù)采集和運(yùn)動(dòng)控制的編程語(yǔ)言中,Labview是公認(rèn)最標(biāo)準(zhǔn)的設(shè)計(jì)軟件。Labview本身既是一個(gè)功能非常完整的軟件開發(fā)環(huán)境,同時(shí)又可以作為一種獨(dú)立的編程語(yǔ)言,它是美國(guó)國(guó)家儀器公司(簡(jiǎn)稱NI)設(shè)計(jì)研制的。其編程的基本原理和思想類似于C語(yǔ)言和BASIC語(yǔ)言,具備程序語(yǔ)言的所有特性,但是與其他大多數(shù)的高級(jí)計(jì)算機(jī)編程語(yǔ)言又存在著十分顯著的區(qū)別:Labview創(chuàng)造性地開創(chuàng)了圖形化的編程方式,利用Labview開放的是框圖化的程序形式,因此又被稱為G語(yǔ)言。G語(yǔ)言是一種圖形化的編程語(yǔ)言,具有擴(kuò)展的函數(shù)庫(kù),可應(yīng)用于各種編程。G語(yǔ)言在創(chuàng)建應(yīng)用程序時(shí)使用的是圖形形式的圖標(biāo),而非傳統(tǒng)的高級(jí)編程語(yǔ)言使用文本語(yǔ)句作為編程的基礎(chǔ)。Labview 則引入數(shù)據(jù)流的方式,其編制的程序的執(zhí)行是根據(jù)程序中的數(shù)據(jù)流向進(jìn)行執(zhí)行,這又與傳統(tǒng)語(yǔ)言在執(zhí)行時(shí)所依照的按文本的排列順序執(zhí)行有很大的不同,數(shù)據(jù)流這一執(zhí)行方式的使用,使得程序的執(zhí)行過(guò)程變得更加直觀[3436]。(2)Labview的開發(fā)環(huán)境Labview的程序通常稱為VI,一個(gè)Labview程序通常由前面板、程序框圖、兩部分組成。如圖是一個(gè)簡(jiǎn)易的Labview程序的前面板和程序框圖示例:圖310 程序框圖和前面板 The block diagram and front panel前面板就是實(shí)質(zhì)上就是軟件開發(fā)所設(shè)計(jì)的人機(jī)界面,是進(jìn)行人機(jī)交互的通道。前面板包括輸入控制盒輸出控制兩部分。輸入控制指的是用戶根據(jù)使用需要輸入數(shù)據(jù)到程序的接口,而輸出控制則是程序所產(chǎn)生的輸出接口。最常用的前面板對(duì)象是數(shù)字控制和數(shù)字顯示,而數(shù)字控制的數(shù)值修改液非常方便,可以使用前面板控件的增加或減少按鈕,以可以通過(guò)輸入數(shù)值直接修改,操作非常簡(jiǎn)便。(3)Labview的編程優(yōu)勢(shì)Labview的圖形化編程,提供更直觀的體驗(yàn)。G代碼具有直觀顯示的特性,因此更易于被開發(fā)者和使用者迅速理解,并能用圖解的方式式對(duì)程序進(jìn)行分析和建模,程序框圖本身就可以作為一種流程圖去理解。設(shè)計(jì)過(guò)程的直觀性使得工程師不必花大量精力去嚴(yán)格遵循編程語(yǔ)言的語(yǔ)法規(guī)則,而可以把更多的關(guān)注焦點(diǎn)放在更加高效更加人性化的程序結(jié)構(gòu)的設(shè)計(jì)上。圖形化的編程形式,數(shù)據(jù)流的指令執(zhí)行方式,都大大簡(jiǎn)化了編程的難度,提高了編程的效率。Labview除了編程過(guò)程直觀化容易理解,在此基礎(chǔ)上海提供了直觀的交互式調(diào)試工具。 例如程序執(zhí)行過(guò)程的高亮顯示執(zhí)行,就可以使開發(fā)者清晰的看到整個(gè)程序的執(zhí)行過(guò)程和方式,通過(guò)直觀的方式就可以檢查出程序的執(zhí)行順序和數(shù)據(jù)的流向是否出現(xiàn)了跟預(yù)期不同的錯(cuò)誤。修改起來(lái)也非常方便。圖311 高亮顯示執(zhí)行 Highlight execution除了獨(dú)一無(wú)二的高亮顯示執(zhí)行的調(diào)試方法外,Labview也具備了其他高級(jí)語(yǔ)言編程工具所具有的全部調(diào)試功能,如單步執(zhí)行,設(shè)置斷點(diǎn),循環(huán)執(zhí)行,中斷執(zhí)行等等,與高亮顯示執(zhí)行互相補(bǔ)充,使得Labview的調(diào)試功能更顯多樣和靈活。開發(fā)方式的靈活性,Labview軟件同時(shí)支持多種外部接口技術(shù),如動(dòng)態(tài)數(shù)據(jù)交換DDE、動(dòng)態(tài)鏈接庫(kù)DDL、應(yīng)用編程接口,CIN接口技術(shù)等。Labivew還可以基于串行IPO、GPI、IPO通信協(xié)議對(duì)儀器對(duì)象實(shí)施控制,而且它具備的高級(jí)分析軟件庫(kù)可以完成數(shù)據(jù)分析、信號(hào)處理、曲線擬合等工作。正是基于Labview開發(fā)語(yǔ)言的獨(dú)特優(yōu)勢(shì),該套微銑削裝備的控制系統(tǒng)選用Labview編程語(yǔ)言開發(fā)研制。本章主要對(duì)該微銑削機(jī)床的控制方案進(jìn)行了選擇,選擇了運(yùn)動(dòng)控制器和PC機(jī)的控制方式,對(duì)運(yùn)動(dòng)控制方案的核心組件的性能進(jìn)行了介紹并介紹了Labview編程軟件的特性和選擇Labview作為軟件設(shè)計(jì)語(yǔ)言的原因。第四章 微銑削機(jī)床軟件系統(tǒng)設(shè)計(jì)第四章 微銑削機(jī)床軟件系統(tǒng)設(shè)計(jì)該數(shù)控系統(tǒng)的底層結(jié)構(gòu)為封裝在運(yùn)動(dòng)控制器動(dòng)態(tài)鏈接庫(kù)中的基礎(chǔ)庫(kù)函數(shù),結(jié)合Labview的編程特點(diǎn),設(shè)計(jì)了如下圖所示的軟件結(jié)構(gòu)圖。圖41 數(shù)控系統(tǒng)軟件結(jié)構(gòu)圖 Structure of CNC system software 該軟件的設(shè)計(jì)充分體現(xiàn)了Labview編程語(yǔ)言模塊化設(shè)計(jì)的特點(diǎn),所謂的模塊化設(shè)計(jì),實(shí)際上就是程序的設(shè)計(jì)并不是一開始就按照程序的流程一點(diǎn)一點(diǎn)的進(jìn)行直至所有功能完整,而是首先將所要設(shè)計(jì)的程序進(jìn)行模塊化的分類,首先明確主程序要完成哪幾種主要的功能,這些功能則分別作為一級(jí)子程序進(jìn)行設(shè)計(jì),而對(duì)于一級(jí)子程序則又可以細(xì)分為相應(yīng)的不同模塊,每一個(gè)模塊則也由相應(yīng)的子程序完成,作為二級(jí)子程序,就這樣通過(guò)對(duì)整個(gè)程序的功能進(jìn)行模塊化的細(xì)分,復(fù)雜的程序設(shè)計(jì)就會(huì)變得簡(jiǎn)單清晰,最后將分別設(shè)計(jì)的各個(gè)小程序模塊逐一的一層一層的有機(jī)結(jié)合起來(lái),就構(gòu)成了所需的控制系統(tǒng)總程序。該軟件首先編寫四個(gè)主要的核心模塊,分別是初始化模塊、定位對(duì)刀模塊、G代碼處理模塊和顯示模塊,再將這些模塊統(tǒng)一組成為完整的數(shù)控加工總程序。初始化模塊主要用于完成控制器型號(hào)的選擇匹配和工控機(jī)與運(yùn)動(dòng)控制器之間的通信連接,選擇匹配的控制器型號(hào)和正確的通信路徑是實(shí)現(xiàn)上、下位機(jī)之間正常連接通信的前提。定位對(duì)刀模塊則是用于實(shí)現(xiàn)工件的粗對(duì)刀和精對(duì)刀操作,為了滿足不同行程條件下的進(jìn)給需要,該模塊設(shè)置了速度選擇功能,同時(shí)即能夠?qū)崿F(xiàn)絕對(duì)位移進(jìn)給又可實(shí)現(xiàn)相對(duì)位移進(jìn)給,可根據(jù)實(shí)際加工需求靈活選擇不同的進(jìn)給方式;G代碼處理模塊是該軟件結(jié)構(gòu)中的核心模塊,它是決定該微銑削機(jī)床能否按指令加工復(fù)雜結(jié)構(gòu)的關(guān)鍵,該模塊主要包括G代碼的輸入,G代碼語(yǔ)句檢查,G代碼解析等功能。對(duì)于三軸微動(dòng)平臺(tái),為了加工復(fù)雜結(jié)構(gòu),必須能夠?qū)崿F(xiàn)插補(bǔ)運(yùn)動(dòng),因此在G代碼處理模塊中加入了插補(bǔ)模塊,包括直線插補(bǔ)和圓弧插補(bǔ),通過(guò)獨(dú)立設(shè)計(jì)的插補(bǔ)算法,真正意義上滿足可根據(jù)需求加工復(fù)雜結(jié)構(gòu)的要求,同時(shí)提高了插補(bǔ)的效率和精度。顯示模塊的設(shè)計(jì)室為了使得加工過(guò)程更加直觀化,由于微銑削機(jī)床進(jìn)行的是微觀結(jié)構(gòu)的加工,很多情況下加工過(guò)程的進(jìn)行程度用肉眼很難分辨出來(lái),而通過(guò)對(duì)軸的位置坐標(biāo)和加工軌跡的實(shí)時(shí)顯示,將微觀地不便于觀察的過(guò)程直觀化,加強(qiáng)了對(duì)加工進(jìn)度的了解和加工過(guò)程的控制。 控制系統(tǒng)界面設(shè)計(jì)人機(jī)界面是實(shí)現(xiàn)操作者與程序通信的橋梁,是一個(gè)程序設(shè)計(jì)十分關(guān)鍵的環(huán)節(jié)。一個(gè)設(shè)計(jì)成功的人機(jī)界面必須符合既能涵蓋軟件的全部功能,使得使用者可以充分利用軟件的一切性質(zhì),又要符合簡(jiǎn)潔美觀的原則,界面布局要有條理不能凌亂不堪,還要符合一般使用者的使用習(xí)慣。因此,基于以上的設(shè)計(jì)原則,設(shè)計(jì)了如圖所示的人機(jī)界面,該界面包含初始化、定位對(duì)刀、G代碼加工和坐標(biāo)及路徑顯示模塊,通過(guò)枚舉型控件的使用實(shí)現(xiàn)初始化、定位對(duì)刀和G代碼加工這三大模塊之間的切換,實(shí)現(xiàn)相對(duì)運(yùn)動(dòng)和絕對(duì)運(yùn)動(dòng)之間的切換,實(shí)現(xiàn)G代碼文本文件導(dǎo)入和直接輸入方式間的切換,同時(shí)也避免的相互間因操作不當(dāng)造成的干擾。人機(jī)界面如圖42所示:圖42 數(shù)控系統(tǒng)界面 CNC system interface在建立上位機(jī)工控機(jī)與下位機(jī)運(yùn)動(dòng)控制器板卡之間的通信連接之前,首先要確認(rèn)運(yùn)動(dòng)控制器板卡處于斷電清零狀態(tài),將PID參數(shù)清零,讓控制卡上電時(shí)默認(rèn)使能信號(hào)關(guān)閉;將此狀態(tài)保存,確??刂瓶ㄔ俅紊想姇r(shí)即為此狀態(tài)。因此初始化的第一步操作是利用Mercury Close ,將運(yùn)動(dòng)控制器板卡的各種狀態(tài)關(guān)閉,避免之前使用后出現(xiàn)參數(shù)未清零或有些高電平位未關(guān)閉的現(xiàn)象,影響板卡的正常連接。清除了板卡的各種可能上電狀態(tài)后,接下來(lái)便是進(jìn)行上下位機(jī)通信方式和通信通道的選擇。該運(yùn)動(dòng)控制板卡與工控機(jī)之間是通過(guò)RS232串口連接通信,通過(guò)Interface ,然后通過(guò)檢測(cè)連接函數(shù)檢測(cè)連接是否成功,不成功則報(bào)錯(cuò),成功則執(zhí)行初始化后續(xù)步驟。對(duì)于不同的運(yùn)動(dòng)軸的伺服驅(qū)動(dòng)電機(jī),配備了相應(yīng)型號(hào)的驅(qū)動(dòng)器,其中水平方向上移動(dòng)的兩根軸,其控制器型號(hào)為ML03K008,而進(jìn)行豎直位移進(jìn)給的軸的控制器型號(hào)為ML03K009,,,最后讓每根位移軸回到最小位移處,作為程序開始時(shí)的初始位置。當(dāng)這一過(guò)程完成時(shí),Labview的字符串輸出函數(shù)輸出初始化成功的提示。上述的任一過(guò)程出現(xiàn)連接錯(cuò)誤,如軸與相應(yīng)控制器型號(hào)不匹配的問(wèn)題時(shí),程序均會(huì)報(bào)錯(cuò)并停止執(zhí)行,確保初始化過(guò)程安全可靠,避免錯(cuò)誤操作對(duì)運(yùn)動(dòng)控制器板卡硬件造成破壞。圖43 初始化程序框圖 The diagram of Initialization program 定位對(duì)刀操作是所有機(jī)床進(jìn)行工件加工的基礎(chǔ)操作,只有能夠根據(jù)加工需求快速準(zhǔn)確的將工件進(jìn)給到加工工位,既能保證進(jìn)給效率又能符合進(jìn)給精度,才是符合要求的定位對(duì)刀操作。該部分程序模塊的設(shè)計(jì)便是按照效率與準(zhǔn)確性兼顧的原則,設(shè)計(jì)了絕對(duì)位移進(jìn)給和相對(duì)位移進(jìn)給相結(jié)合的進(jìn)給操作,兩種進(jìn)給狀態(tài)之間可以自由切換且相互獨(dú)立,能滿足不同情況下對(duì)工件進(jìn)給狀態(tài)的需求。整體的設(shè)計(jì)思路為,將絕對(duì)運(yùn)動(dòng)和相對(duì)運(yùn)動(dòng)作為一個(gè)條件結(jié)構(gòu)的兩種不同的狀態(tài),使用枚舉型變量實(shí)現(xiàn)對(duì)這兩種運(yùn)動(dòng)狀態(tài),根據(jù)需要進(jìn)行人工的自由切換。而兩種運(yùn)動(dòng)狀態(tài)的具體編程方式,以絕對(duì)運(yùn)動(dòng)為例,對(duì)這些函數(shù)指定匹配的程序ID和運(yùn)動(dòng)軸名稱,實(shí)現(xiàn)對(duì)不同軸的進(jìn)給操作。速度函數(shù)的可調(diào)范圍廣,使得軸既可以實(shí)現(xiàn)快速進(jìn)給又可以實(shí)現(xiàn)微量精確進(jìn)給。由于是微銑削機(jī)床的軟件設(shè)計(jì),在一些進(jìn)給狀態(tài)下,軸的運(yùn)動(dòng)距離很短且運(yùn)動(dòng)速度很小,肉眼根本無(wú)法判斷軸是否已到達(dá)目標(biāo)位置,引入運(yùn)動(dòng)狀態(tài)檢測(cè)函數(shù)Is ,并結(jié)合布爾控件作為運(yùn)動(dòng)狀態(tài)的指示燈,當(dāng)軸在移動(dòng)尤其在進(jìn)行微小微細(xì)進(jìn)給時(shí),運(yùn)動(dòng)指示燈能準(zhǔn)確反應(yīng)軸的運(yùn)動(dòng)狀態(tài),從而能實(shí)現(xiàn)準(zhǔn)確執(zhí)行下一步的操作。為了使進(jìn)給過(guò)程更加靈活可控和強(qiáng)安全性,在上述設(shè)計(jì)的基礎(chǔ)上,使得在進(jìn)給過(guò)程中能根據(jù)實(shí)際情況隨時(shí)暫停進(jìn)給過(guò)程,進(jìn)行調(diào)整后再繼續(xù)執(zhí)行之前的進(jìn)給操作,大大提高了交互性和安全性。為了更大程度地提高安全性,程序里同時(shí)設(shè)置了軟限位操作,對(duì)位移函數(shù)的輸入控件進(jìn)行了輸入限制處理,當(dāng)輸入的數(shù)值超過(guò)每根軸的相應(yīng)量程時(shí),會(huì)出現(xiàn)輸入無(wú)效的情況,確保輸入的位移必須在進(jìn)給量程允許的范圍內(nèi),避免因操作疏忽引起運(yùn)動(dòng)軸進(jìn)給超出量程損壞硬件的情況發(fā)生。對(duì)于每根軸的控制選用相互并列的控制方式,使得每根軸的移動(dòng)均相互獨(dú)立,互不干擾,最大限度保證進(jìn)給的效率和順暢性。圖44 絕對(duì)運(yùn)動(dòng)程序框圖 The diagram of absolute motion相對(duì)位移進(jìn)給的設(shè)計(jì)模式和絕對(duì)位移非常類似。為了減少控件的使用數(shù)量,引用了局部變量的方法。將絕對(duì)位移程序下的全部控件都生成相應(yīng)的局部變量,將這些局部變量作為相對(duì)位移進(jìn)給模式下的相應(yīng)輸入控件,這樣的設(shè)計(jì)使得相對(duì)位移和絕對(duì)位移能夠共用同一套控件,大大節(jié)省了控件的使用數(shù)量,使得人機(jī)交互的界面更加簡(jiǎn)潔美觀。與絕對(duì)位移進(jìn)給不同的是,在相對(duì)位移進(jìn)給的狀況下,由于進(jìn)給的是相對(duì)移動(dòng)量,每次輸入的移動(dòng)位移可能并沒(méi)有超過(guò)移動(dòng)量程,但實(shí)際軸的位置已經(jīng)可能快要達(dá)到或是超過(guò)軸的量程,因此絕對(duì)位移進(jìn)給的