模擬機訓練系統(tǒng)操作模塊研究
2016-8-2 來源:天津職業(yè)技術(shù)師范大學 作者:岳剛
4.1 模擬訓練系統(tǒng)的需求分析
數(shù)控編程技術(shù)類課程是大中專院校數(shù)控機械專業(yè)必修的一類專業(yè)課[57]。它作為一項側(cè)重動手能力培養(yǎng)的課程,在實際授課中必須穿插一定的試驗實訓課程來使學生充分理解和掌握課程的精髓。數(shù)控程序的編寫和現(xiàn)場機床實踐是授課的一個必需環(huán)節(jié)[58]。但是由于資金不足、場地匱乏等限制條件,當前大中專院校機床配備明顯不足,甚至會出現(xiàn)同一專業(yè)學生不能在同一學期進行數(shù)控實訓的現(xiàn)象,這就違背了理論結(jié)合實踐的初衷[59],無法使理論與實踐相互印證。因此,面對五軸數(shù)控機床配備不足的實情展開了模擬訓練系統(tǒng)研究。
該系統(tǒng)主要用于教學及培訓,專門為職業(yè)院校以及工科大學數(shù)控類課程實踐打造,以解決大規(guī)模數(shù)控實訓與培養(yǎng)學生動手操作能力的難題,同時也解決了機床數(shù)量與學生數(shù)量不匹配的供需矛盾[60]。使用模擬訓練系統(tǒng)能夠讓加工制造類企業(yè)方便的實現(xiàn)加工代碼的編寫和檢驗,為真實機床的使用節(jié)省了時間,提高了生產(chǎn)效率[61]。此模擬訓練系統(tǒng)以西門子840D 為藍本,所研發(fā)的模擬訓練系統(tǒng)需要擁有此機床的主要功能,模擬訓練系統(tǒng)需要滿足以下幾點要求:
(l)該機床的一比一立體模型可以在模擬訓練系統(tǒng)中實現(xiàn)與實體機床相同的各種運動及切削效果。
(2)支持實時的手動輸入加工代碼、能夠支持各種 CAD/CAM 軟件編寫而生成的加工代碼。
(3)擁有反饋能力:可以針對刀具、零件、床身的相互碰撞做出變色發(fā)聲等警告和反饋;具有欠切、過切反饋功能;能給虛擬機床各軸設(shè)置行程限制,超出時發(fā)出警告;有一定的加工代碼差錯功能等。
(4)可以完成五軸數(shù)控機床各種加工輔助的模擬,比如三色光狀態(tài)顯示燈,切屑,切削聲音等,令模擬器更加接近真實機床。
(5)通過立體模型運動模擬工件切削過程,并且能夠?qū)αⅢw模型進行局部放大或縮小、調(diào)整視角等操作。
(6)擁有人性化的后臺及前臺人機交互頁面,使操作者體驗到與真實機床相同的感受。具有一定的幫助信息,具有五軸數(shù)控機床二次開發(fā)功能及實訓功能。
4.2 仿真系統(tǒng)的功能模型
由上一節(jié)模擬器系統(tǒng)總體需求分析可以推出模擬機訓練系統(tǒng)必須擁有以下功能:
1.模擬切削場景功能
對于模擬機訓練系統(tǒng)立體仿真的要求,此系統(tǒng)需要支持立體模型導入,用專業(yè)繪圖軟
件來進行模型的構(gòu)建,實現(xiàn)完善系統(tǒng)模擬性能,模擬場景有:
1)機床結(jié)構(gòu)模型的組建以及模擬背景組建
2)毛坯的外形尺寸、夾具的外形尺寸定義。
3)加工用刀具的構(gòu)建。允許使用已構(gòu)建的刀具庫內(nèi)的刀具信息來進行重定義,也允許直接指定刀具各部分外形和大小來構(gòu)建新的刀具。
2.模擬切削動作的功能
需要擁有下列功能:
1)五軸數(shù)控機床模擬訓練機系統(tǒng)和西門子 840D 實體數(shù)控系統(tǒng),在加工代碼、零偏設(shè)定等方面保持一致。可以識別標準 G 代碼加工程序。
2)模擬功能。可以模擬五軸數(shù)控機床各軸、刀庫、絲杠等組件的移動過程,動態(tài)化的再現(xiàn)五軸數(shù)控機床切削時刀具相對毛坯移動以及切屑掉落過程;可以利用色彩的改變,以及聲音表示刀具與毛坯、刀具與機床的碰撞等事件。
3)可以動態(tài)模擬五軸數(shù)控機床自動換刀的過程,并且能通過手輪完成加工偏置的測量與輸入。
4)可以針對五軸數(shù)控機床的多種附加功能做出模擬,例如三色光指示燈隨加工狀態(tài)的變化。
3.檢驗分析的功能
加工質(zhì)量檢驗功能。能夠?qū)⑶邢鬟^程中或切削完成后的零件三維模型導出,然后測量零件尺寸以及觀察零件形狀是否符合預期標準。同時,具備一種對照功能,即比較加工后零件與預期零件之間的差別,根據(jù)有無差別以及差別大小,推算出工件加工過程中是否發(fā)生過切或欠切過程。
4.完全模擬機床界面
依據(jù)西門子 840D 機床界面構(gòu)建軟件前臺界面,擁有當前坐標顯示、加工偏置設(shè)定等輔助界面,并且完全開放可二次開發(fā),能夠依據(jù)自身需求進行定制。
4.3.1 仿真系統(tǒng)開發(fā)環(huán)境的選擇
五軸數(shù)控模擬訓練機系統(tǒng)是一臺具有鍵盤面板手輪等硬件以及機床三維模型的教學儀器[62]。伴隨著電子計算機顯卡 CPU 等圖像和數(shù)據(jù)處理硬件的飛速進步,以及三維建模仿真算法和軟件快速發(fā)展,虛擬加工技術(shù)越來越完美的呈現(xiàn)出機床的實際加工運動狀態(tài),這給五軸數(shù)控模擬訓練機系統(tǒng)的搭建提供了不同種類的研發(fā)環(huán)境和技術(shù)手段。通過大量閱讀文獻,以及網(wǎng)絡(luò)調(diào)研,綜合考慮研發(fā)目的以及應(yīng)用環(huán)境,能夠使用的技術(shù)方案如下:
a:基于VC++以及三維繪圖軟件研發(fā);
b:基于VRML 技術(shù)的研發(fā);
c:基于 C#和 Open GL 的二次開發(fā)。
雖然已經(jīng)有許多技術(shù)人員基于 Open GL 做了機床模擬器的研發(fā)與運用領(lǐng)域的探索[63][64]。北航李軍峰運用 Open GL 對數(shù)控機床進行了加工模擬仿真研究[63],不過他討論的內(nèi)容只是機床仿真系統(tǒng)的構(gòu)建以及模擬工件切削過程,對添加硬件的完全型模擬數(shù)控技術(shù)研究以及專門為實訓課程所開發(fā)的教學功能性數(shù)控系統(tǒng)研究較為淺顯。缺乏適合于特殊用戶的數(shù)控模擬教學及虛擬仿真系統(tǒng),功能的深度開發(fā)與探索較為淺顯[65]。
本課題是在目前較為先進的數(shù)控機床基礎(chǔ)上進行虛擬仿真器的構(gòu)建以及模擬系統(tǒng)的開發(fā)。使用對象是廣大學生以及培訓工作人員,在 Open GL 上進行二次開發(fā)可以減少開發(fā)周期以及開發(fā)成本[66],同時基于 Open GL 的技術(shù)成熟度,數(shù)控仿真器的開發(fā)更加方便快捷。通過對比所提出各個方案的多種優(yōu)點以及缺點,同時聯(lián)合本論文的實際研究對象和研究方法,選擇 Open GL 與 C#進行聯(lián)合開發(fā)方案,作為五軸數(shù)控機床的模擬器控制系統(tǒng)的開發(fā)平臺。
4.3.2 Open GL 概述
一般來說,數(shù)控加工模擬軟件其最主要的部分就是仿真過程的顯示,仿真模擬的外放過程決定了編制軟件的水平層次,具備優(yōu)秀的圖像顯示以及完備的人機交互功能是一個虛擬仿真軟件必不可少的功能[67]。采用完備的圖形技術(shù)標準作為模擬軟件圖形顯示的主要技術(shù)支持非常有必要。基于圖形標準在圖像顯示的重要作用,計算機技術(shù)的發(fā)展帶動了圖像顯示領(lǐng)域的發(fā)展[68],目前,主要的圖形顯示標準有 Core、Hoop S、Open GL 等。在市場競爭與產(chǎn)品的更新?lián)Q代下,Open GL 脫穎而出稱為了目前國內(nèi)外 3D 圖形顯示領(lǐng)域的基本標準,具有重要的領(lǐng)域地位。基于 Unix 平臺的 PC 機下的 Open GL 已經(jīng)得到了比較成熟的使用。以下是對 Open GL 圖形庫基本內(nèi)容的簡單介紹[69]。
Open GL 全稱為開放式圖想編輯庫(Open Garphics Library),計算機的發(fā)展以及人們對圖形見面觀賞效果的質(zhì)量要求,推動了計算機圖形庫軟件的發(fā)展,Open Garphics Library就是在這樣一個環(huán)境下所誕生的產(chǎn)品[70]。該軟件由上百個過程程序與函數(shù)共同構(gòu)成,采用圖形編輯庫內(nèi)部的圖形編輯函數(shù)函數(shù),使用人員可以構(gòu)建出質(zhì)量優(yōu)越的三維模型,不需要操作人員具有專業(yè)的數(shù)學圖像處理知識,只需要采用特定的方式,構(gòu)建好自己所需要的圖形編輯軟件[71]。在 Open GL 編輯環(huán)境下,使用者能夠采用較少的步驟構(gòu)建具有較高質(zhì)量的三維圖像,在動畫的制作上,Open GL 使用起來也能得心應(yīng)手。Open GL的原型是 SGI 公司為了將客戶從傳統(tǒng)的計算機編程軟件與硬件系統(tǒng)中解脫出來而開發(fā)的一款圖形開發(fā)環(huán)境,主要是為圖形工作站服務(wù),它具有獨立于窗口操作與計算機硬件環(huán)境等特點,進行圖形編輯時不用花較多的時間去理解系統(tǒng)的主要結(jié)構(gòu)和控制指令,采用固定格式進行應(yīng)用程序的編制就可以在支持 Open GL 系統(tǒng)的平臺進行軟件的執(zhí)行[73]。
a)Open GL 的主要特點
(1)工業(yè)標準:Open GL 的應(yīng)用標準由專門研究 Open GL 構(gòu)架的審查委員會進行技術(shù)指導,在審查委員會的監(jiān)督下,Open GL 做到了行業(yè)開放、無商業(yè)利益牽連,兼容性優(yōu)良的圖形標準。
(2)穩(wěn)定性:Open GL 經(jīng)過 10 多年各種平臺的實際應(yīng)用效果檢驗,器不斷的優(yōu)化與根性使其具備了良好的控制特性與編寫規(guī)范,其軟件具備向后兼容性,對于軟件和硬件的跟新十分方便。
(3)可擴展性:Open GL 中具有一種自動擴展的軟件接口,即 API。采用該擴展程序,可以對圖形編輯軟件進行額外功能的擴展;
(4)簡單易用性:基于 Open GL 的優(yōu)越控制結(jié)構(gòu),簡單的設(shè)計以及完整的邏輯控制程序,使得用戶在該圖形編制界面下,可以采用較少的程序代碼就可以得到完整的程序,同時 Open GL 內(nèi)部刻錄了系統(tǒng)硬件的相關(guān)信息,程序開發(fā)人員在進行程序編制時不用對硬件進行詳細設(shè)計[73]。
b)OPen GL 提供的基本功能
(l)二維和三維造型:由于現(xiàn)實中的各種實際物體均能采用點、線、面進行三維描述,Open GL 具有完整的圖形編輯命令,對實際物體的模擬繪制十分簡單方便。
(2)圖形變換:由于復雜的圖形可以通過基本單元經(jīng)過不同的變換進行實現(xiàn),Open GL中具備系列基本變換,因此可以對基本圖形單元進行合理的控制變化,產(chǎn)生所需要的圖形。
(3)光照處理:為使所繪制的圖形具有較為真實的視感,需要對三維圖形進行光照處理和渲染。
(4)著色:Open GL 內(nèi)部具有多種模型的著色方式,其一是 RGB 顏色編輯模式,另一種是顏色索引模式。
(5)反走樣:Open GL 中主要采用位圖模式進行圖形的編制,而位圖模式在繪圖時會產(chǎn)生邊界鋸齒,該鋸齒稱為圖形走樣,為了降低和弱化這種圖像邊界鋸齒,Open GL 內(nèi)部具有多個點、線、面以及多邊形的反走樣函數(shù)程序,可以有效的對圖像邊界鋸齒進行弱化和消除,達到清晰顯示的目的。
(6)融合:在 Open GL 中,為了使三維模型具有較高的實物視覺體驗,對三維模型進行半透明或者透明處理是主要技術(shù)手段,而該手段實現(xiàn)需要采用圖像融合技術(shù)進行模擬。
(7)霧化:霧化效果在圖形編輯中具有較高的使用頻率,由于霧化可以模擬真實環(huán)境中霧的存在,在模型的構(gòu)建時具有一定的使用意義,而 Open GL 軟件包中的“fog”就可以對模型圖形進行系統(tǒng)霧化效果實現(xiàn)。
(8)紋理映射:計算機圖形圖像顯示學中,所有具有顏色、值、光亮度等數(shù)據(jù)三維物體所構(gòu)成的矩形數(shù)組被稱為模型的紋理。三維模型的紋理映射就是把該物體所具有的紋理數(shù)組在模型表面進行投影,從而使該模型具有更加直觀的表達效果。
(9)動畫效果:在 Open GL 中,動畫的實現(xiàn)是該軟件包的主要特點之一,Open GL 通過設(shè)置 RI 圖形緩沖區(qū)區(qū)來實現(xiàn)動畫的演示是目前主流的實現(xiàn)形式[74]。為了在虛擬軟件中得到運動平滑的界面動畫,模型的動態(tài)過程必須在被投影到屏幕前在系統(tǒng)內(nèi)存中建立相應(yīng)的界面幀,才能保證動畫播放的流暢度。而 Open GL 通過運用雙通道緩沖方式,在系統(tǒng)內(nèi)存中了構(gòu)建多個基本場景界面幀,屏幕對動畫進行幀的播放時,后臺內(nèi)存中存儲著下一界面的多個幀,該方式對運動動畫的顯示效果十分具有優(yōu)勢,對于高速運動的圖像仍能快速處理。
c)Open GL 的工作流程
首先,控制程序從左側(cè)進入 Open GL 的軟件程序包,通過其中包含有幾何數(shù)據(jù)以及像素數(shù)據(jù)兩者,經(jīng)過求值器、像素操作,紋理映射、光柵化等多種圖像處理方式,最后生產(chǎn)待顯示的圖像幀。在該處理過程中,基于的 Open GL 函數(shù)分析包,會將得到的數(shù)據(jù)儲存在程序列表中,并按照一定的順序進行解算處理,圖像處理的求值過程是對所輸入數(shù)據(jù)的求值多項式進行幾何曲線以及曲面的擬合繪制;然后會對圖像的各個定點以及微型圖元進行對應(yīng)的組合,同時采用特殊的變換方法對定點和光照進行有效處理,將圖元進行修改和裁剪,從而得到適合實際視覺的大小[43]。而在后續(xù)的圖像數(shù)據(jù)光柵化中,Open GL 主要采用對點、線、多邊形進行二維數(shù)值描述的方法,生產(chǎn)對應(yīng)的像素儲存和圖像幀的緩存地址;當所輸入的處理對象是像素數(shù)據(jù)時,上述過程中的“求值器”將不再起作用,而會在像素值處理階段進行處理,該階段的處理結(jié)果可以儲存為模型的紋理內(nèi)存,從而在圖像的光柵操作中進行分析時使用[35],同時也可以采用與幾何模型數(shù)據(jù)相同的方式進行數(shù)據(jù)光柵化。
d)Open GL 的動畫技術(shù)
數(shù)控加工模擬軟件的動態(tài)顯示是仿真系統(tǒng)的主要功能之一,采用基于 Open GL 開發(fā)包的仿真過程動畫顯示具有突出的技術(shù)優(yōu)勢。
Open GL 開發(fā)包的數(shù)控仿真動畫實現(xiàn)主要采用雙重緩沖算法以及交互函數(shù),雙重緩沖區(qū)包含兩個部分:前緩沖區(qū)域以及后緩沖區(qū)域[37]。雙重緩沖作用方式是當前端緩沖區(qū)域畫面得到顯示時,后端緩沖區(qū)域同時處理下一階段的緩沖內(nèi)容,前緩沖區(qū)域的目標內(nèi)容得到顯示后,后緩沖區(qū)域的內(nèi)容進行顯示,顯示的同時前緩沖區(qū)域?qū)ο乱粠膬?nèi)容進行處理,當后緩沖區(qū)域的內(nèi)容顯示結(jié)束后[43],再次顯示前端緩沖區(qū)域所處理完成的內(nèi)容;此過程進行重復運行,就會得到圖形的連續(xù)顯示效果。Open GL 所采用的雙緩存顯示技術(shù),繪制圖像的同時可以對上一幀的內(nèi)容進行顯示,十分方便的克服了模擬動畫播放時屏幕閃爍的問題,可以對復雜的動畫圖像進行顯示和處理,其主要缺點就是圖像的顯示速度會受制于圖像的加工速度[42]。采用基于 Open GL 的雙緩存技術(shù),能夠在數(shù)控仿真模擬軟件中進行有效運用,實現(xiàn)對數(shù)控加工過程中的剛體運動、變形、模型變化、視覺效果的有效處理和實時顯示。同時 Open GL 提供了基于 Windows 系統(tǒng)的 API 擴展函數(shù):Sw Pa Bueffsr 可以對緩沖區(qū)的處理對象進行快速交換,功能十分完備可靠。
e)系統(tǒng)的開發(fā)平臺
基于 Open GL 圖形庫的技術(shù)特點和應(yīng)用優(yōu)勢,目前主流的系統(tǒng)程序編寫軟件,Visua1C++6.0、C++Builder 以及 C#等,都采用了 Open GL 圖形庫作為自身的擴展模塊,用來加強系統(tǒng)編譯軟件對圖形圖像的分析及處理能力,而其中之一的 C#,是目前最為成熟的窗口可視化程序開發(fā)平臺,其隸屬于微軟公司,也是目前軟件開發(fā)領(lǐng)域中非常優(yōu)秀的開發(fā)平臺之一,其強大的功能以及相對簡單的使用性,十分適合本系統(tǒng)的開發(fā)[49]。
4.3.3 模型構(gòu)建
通過 Open GL 按實際比例進行機床模型的繪制,模擬各軸的運動,實現(xiàn)數(shù)控系統(tǒng)的手輪控制功能,構(gòu)建模型如下圖:
圖 4-2 虛擬機床模型
4.3 機床手輪功能的實現(xiàn)
本節(jié)研究了模擬數(shù)控系統(tǒng)的手輪操作實現(xiàn)方法。研究了一種利用 C#與 Open GL 完成實體手輪操作模擬數(shù)控系統(tǒng)的算法。使用 C#完成手輪操作處理程序,完成手輪的通訊,并進行轉(zhuǎn)換,實現(xiàn)響應(yīng);利用 Open GL 模擬各軸的移動,完成模擬數(shù)控系統(tǒng)的實體手輪操作,并公開了核心部分的程序源代碼[21]。通過這種方式,編寫出的程序代碼,具備很強的開放性和可移植性。
手輪操作在數(shù)控機床操作中占據(jù)著非常主要的地位,在切削前對刀、機床各軸小范圍移動等都要通過手輪完成[32]。手輪操作的實現(xiàn)難點是手輪大輪與選中軸移動的跟隨性,跟隨性能夠分成兩個部分,運動距離與運動速度。本章研究了一種利用 C#與 Open GL 完成實體手輪操作模擬數(shù)控系統(tǒng)的算法。
4.3.1 硬件結(jié)構(gòu)
以手輪為控制機構(gòu),工控機為處理中樞,實現(xiàn)五軸數(shù)控機床模擬器中的虛擬機床與手輪的運動跟隨。系統(tǒng)硬件連接如圖 4-2 所示。系統(tǒng)連接框圖如圖 4-3 所示。
圖 4-2 系統(tǒng)硬件連接
圖 4-3 系統(tǒng)連接框圖
手輪通過串口將數(shù)據(jù)傳輸?shù)焦た貦C上,由工控機上的 C#語言編寫的上位機軟件(以后簡稱 C#軟件)進行數(shù)據(jù)處理,區(qū)分不同的軸和倍率,以及使能是否按下。將處理后的數(shù)據(jù)通過 API 接口傳輸給Open GL,最終驅(qū)動虛擬數(shù)控機床相應(yīng)軸的運動。
4.3.2 手輪數(shù)據(jù)設(shè)定
手輪通過串口發(fā)送給工控機的指令,由 C#軟件存儲在相應(yīng)的變量中,手輪與 C#軟件的通訊協(xié)議如表 4-1:
表 4-1 手輪通訊協(xié)議
手輪利用RS485通訊協(xié)議與工控機相連接來實現(xiàn)數(shù)據(jù)交換。手輪的核心是旋轉(zhuǎn)編碼器,旋轉(zhuǎn)手輪就能夠生成一個表示當前位置的串碼 A,手輪上的各個分度值都具有唯一的串碼A。工控機接收到手輪發(fā)出的串碼 A1 后,用 A1 和之前記錄的串碼 A0 求差,獲得差值△,當△>0 就表示手輪正轉(zhuǎn),當△<0 就表示手輪反轉(zhuǎn)。之后把|△|當做手輪移動距離。
4.3.3 軟件設(shè)計
在操作界面能夠?qū)崟r顯示 X、Y、Z、A、C 五個軸的相對位置或絕對位置,手輪當前位置,手輪旋轉(zhuǎn)量,手輪倍率,手輪旋轉(zhuǎn)速度。調(diào)試軟件界面如圖 4-4 所示:
圖 4-4 軟件界面
數(shù)控機床手輪功能的實現(xiàn),是數(shù)控機床控制系統(tǒng)設(shè)計中的重要的一環(huán),本文詳細論述了利用 C#軟件和 Open GL 實現(xiàn)手輪運動和速度跟隨的方法,并通過實驗論證了方法的有效性。
4.4 機床多系統(tǒng)的實現(xiàn)
本章詳細的探究了多系統(tǒng)數(shù)控機床的設(shè)計過程,獨創(chuàng)的提出了一種基于 C#和數(shù)控面板的方法,最終實現(xiàn)集多系統(tǒng)于五軸數(shù)控機床。通過 C#語言編寫上位機軟件,主要能夠?qū)崿F(xiàn)多系統(tǒng)界面切換和功能切換的功能,通過各機床的通用性,使多個系統(tǒng)共存在一個機床內(nèi),如果想完全換成別的機床系統(tǒng),除了在軟件界面上切換過來,還需要切換相應(yīng)的面板,這樣的話,在很大程度上提高了數(shù)控機床的利用率,特別適合用在學校的實訓教學之中。
在教學實踐中,接觸到的數(shù)控機床系統(tǒng)往往不止一種,國內(nèi)外有多個廠家發(fā)布了數(shù)控機床系統(tǒng),例如西門子、海德漢、華中數(shù)控、三菱和 FANUC 等。為提高學生的適應(yīng)性,學校通常會同時采購多種數(shù)控機床,而這些機床通常床身的區(qū)別性不大,這樣就造出來資源的冗余和浪費。因此,需要急需開發(fā)出一套能夠融合多種數(shù)控系統(tǒng)的產(chǎn)品或者系統(tǒng)。
4.4.1 實現(xiàn)原理
實現(xiàn)對應(yīng)的功能,需要的硬件主要有:工控機一臺,西門子 840D、海德漢 530i 的數(shù)控面板。
兩種數(shù)控面板分別通過串口與工控機相連接并實現(xiàn)通訊。工控機將根據(jù)接收到的數(shù)控面板的鍵盤命令進行相應(yīng)的運算和操作,通過 API 函數(shù)驅(qū)動 Open GL 中的虛擬機床進行相應(yīng)的運動。由工控機處理 Open GL 反饋的運動坐標及其他參數(shù)數(shù)據(jù),并實時控制數(shù)控面板上界面的切換和文字的顯示,控制系統(tǒng)的流程圖如圖 4-5 所示:
圖 4-5 控制系統(tǒng)流程圖
4.4.2 工控機程序編寫
工控機作為多系統(tǒng)機床的核心,綜合處理各組成部件間的信息,讓數(shù)控面板、手輪、指示燈等硬件和虛擬數(shù)控機床有機的結(jié)合在一起,協(xié)調(diào)工作。軟件的原理是將各系統(tǒng)的數(shù)控編程語言進行轉(zhuǎn)化,轉(zhuǎn)化成統(tǒng)一的程序代碼。并且將需要顯示的數(shù)據(jù),如各軸坐標值、主軸轉(zhuǎn)速、當前刀號等數(shù)據(jù)做為全局變量,實現(xiàn)數(shù)據(jù)處理的通用化;另外在更換系統(tǒng)時,可以直接提取相應(yīng)的變量,實現(xiàn)數(shù)據(jù)顯示的通用化。
程序的功能完全可由目前很成熟的、簡單的 C#編程語言來實現(xiàn)。下面就代表性代碼進行說明。
首先是機床當前狀態(tài),機床當前狀態(tài)是指在機床運行過程中所處的狀態(tài),比如切削狀態(tài)、當前刀具偏置、當前倍率等數(shù)據(jù)。這些數(shù)據(jù)通過全局變量來存儲可以實現(xiàn)各系統(tǒng)通用化的調(diào)用,下面是機床當前狀態(tài)的申明:
Public Bool jc_xunhuan_start // 機床循環(huán)啟停,循環(huán)啟動為 1,循環(huán)停止為 0
Public Int jc_m oshi// 機床模式。
Public Bool jc_wcs_mcs// 機床坐標狀態(tài),1 代表 wcs,0 代表 mcs
Public Int bzw_開始讀坐標//運行狀態(tài)為 0 停止狀態(tài)為 1
Public Double jc_ 擺頭偏置_x // 機床的擺頭偏置 x Public Double jc_ 擺頭偏置_y // 機床的擺頭偏置 y
Public Double jc_ 擺頭偏置_z // 機床的擺頭偏置 z
Public Double jc_ 已存偏置_x(16)//機床的已存偏置 x(相應(yīng)軸對刀后)
Public Double jc_ 已存偏置_y(16)//機床的已存偏置 y(相應(yīng)軸對刀后)
Public Double jc_ 已存偏置_z(16)//機床的已存偏置 z(相應(yīng)軸對刀后)
Public String jc_ 當前零點偏移//設(shè)置當前激活的零點偏移,如 G54 等,若為空則未激活任何零點偏移
Public Double jc_ 切削進給倍率//切削進給倍率
Public Double jc_ 快速進給倍率//切削進給倍率
Public String jc_ 手輪倍率 //手輪倍率
Public String jc_ 手輪軸 //當前手輪軸
Public String jc_ 手輪位置 //當前手輪大輪位置—之前
Public String jc_ 手輪位置_當前//當前手輪大輪當前位置
Public Int jc_手輪串口號//運行狀態(tài)為 0 停止狀態(tài)為 1
Public Int jc_西門子鍵盤串口號
Public Int jc_海德漢鍵盤串口號
Public Long jc_ 開機延遲 //默認為 25000
研究了一種基于工控機和 C#實現(xiàn)多面板數(shù)控機床的方法,以 FANUC 系統(tǒng)的數(shù)控編程語言為例,詳細說明了實現(xiàn)方法及思路。工控機界面通過 C#語言編寫,同時工控機實現(xiàn)了對數(shù)據(jù)的分析和處理,集成了數(shù)控機床控編程系統(tǒng),達到了節(jié)約了購置成本的效果。完全自主搭建好的多系統(tǒng)數(shù)控機床,已成功的應(yīng)用在自主研發(fā)的五軸數(shù)控機床模擬訓練機上,并且達到了理想效果。
表 4-2 面板通訊協(xié)議
4.5 機床面板功能的實現(xiàn)
機床面板是用戶與機床進行交互的主要輸入裝置,為了給用戶提供真實的操作體驗,機床面板采用采用物理面板。面板采用單片機加矩陣鍵盤的形式,鍵盤自主設(shè)計制作,采用雙單片機并聯(lián)模式,滿足組合按鍵按下的需求。面板通訊協(xié)議如表4-2 所示。
4.6 虛擬電機運動的實現(xiàn)
五軸數(shù)控機床通過控制電機的轉(zhuǎn)動,帶動絲杠,進而實現(xiàn)各軸運動,在運動過程中有連續(xù)性;而虛擬機床通過改變各軸與機床的相對位置,來實現(xiàn)五個軸的運動,因此改變相對位置值之后,相應(yīng)的軸會立即運動到指定位置,這就和實際機床運動有沖突了。
為使虛擬機床運行達到與實際機床相同的視覺效果,特別設(shè)計了虛擬電機運動算法。
參考 PLC 控制伺服電機的方法,有兩種方式:
第一種:一般的 PLC 都具備高速脈沖輸出口,通常有兩個。通過這兩個高速脈沖輸出口,就可以直接驅(qū)動伺服電機,電機運動的速度跟高速脈沖輸出口的脈沖頻率成正比,電機旋轉(zhuǎn)的圈數(shù)跟高速脈沖輸出口的脈沖個數(shù)成正比,如果需要反轉(zhuǎn),再通過一個 I/O 信號就行。第二種:有一些 PLC 是具備定位模塊的,比如 GE,這種定位模塊是通過讀取 PLC中 CPU模塊傳過來的運行命令的數(shù)據(jù),最終轉(zhuǎn)換成能夠驅(qū)動伺服電機的方向和脈沖。由于定位模塊內(nèi)部接口是為控制伺服而設(shè)計的,所以能夠和伺服驅(qū)動器進行數(shù)據(jù)上的交換,能夠讀出伺服報警信號信號,伺服使能信號,伺服定位結(jié)束信號,還有其他的一些伺服電機控制方面的信號。
伺服電機控制的方式一共可以分為兩種,分別為脈沖控制和模擬電壓控制。
1、脈沖控制方式可以細分為位置控制模式和轉(zhuǎn)矩控制模式;
2、模擬電壓模擬電壓控制一般通過模擬量去控制伺服電機,可通過 PLC 的模擬量輸出去控制伺服電機,同時也可通過定位模塊去控制。
所以為使虛擬電機能達到同樣的連續(xù)運動效果,可以模擬電機的脈沖運動效果,將結(jié)果分段顯示,將剩余移動位移轉(zhuǎn)化為有限個小的位移,以脈沖的形式發(fā)送移動指令,這樣就能達到把瞬間移動轉(zhuǎn)化為多個瞬間移動,然后每個瞬間移動之間,插入一個小的延時,這樣就可以得到連續(xù)的效果。
理論上講延時越小則觀察到的連續(xù)性越好,但是對于程序來講,延時越小發(fā)出的脈沖越多,過大的頻率會導致系統(tǒng)卡頓,經(jīng)測試,極限頻率為 100Hz 左右,所以延時大于 10ms即可;而電影的播放速度為 24 幀每秒,即 42.6ms/幀,也就是延時應(yīng)該小于 42.6ms,所以每幀的時間差可以取 Δt =40ms ,這樣既可以騙過人眼,讓使用者認為運動是連續(xù)的,又不至于影響系統(tǒng)的穩(wěn)定性。
然后是脈沖的個數(shù) N,也就是完成一個運動需要的脈沖數(shù)量;每個脈沖移動的距離Δs ;還有最后一個脈沖移動的距離δs 。
下面可以開始構(gòu)建電機運動函數(shù)了,函數(shù)輸入值為所選坐標軸 axis、位移 S 和速度 V(若 S>0 則正向移動,若 S<0 則反向移動),這樣可以計算出移動用時 t。基于以上討論,可以推導出如下公式:
用這幾個公式可以構(gòu)成虛擬電機的運動主函數(shù),把輸入的位移和速度值分解為脈沖數(shù)、每個脈沖所走距離、最后一個脈沖所走距離,然后循環(huán)調(diào)用運動子函數(shù)。虛擬電機運動主函數(shù)構(gòu)建偽代碼如下:
static void Dian Ji(Double S ,Double V,Int axis)
{Int N
Double d S
Double dd S
Int axis
Double t
t = S / V //計算總時間
N = Math.Floor(t / 40) + 1 //計算總脈沖次數(shù)
d S = Math.Floor(S / N) //計算每個脈沖所走距離
dd S = S / N - d S //計算最后一次脈沖的剩余移動量
XNDJ( N, d S,dd S,axis) //調(diào)用電機子函數(shù)} 然后構(gòu)建虛擬電機的運動子函數(shù):
static void XNDJ(Int N,Double d S,Double dd S,Int axis )
{//虛擬電機函數(shù),參數(shù)分別為脈沖數(shù)、每個脈沖所走距離、最后一個脈沖所走距離、所選坐標軸
//其中調(diào)用的函數(shù)有
//Move To(Int axis,Double s )//(使選定軸 axis 移動距離 s)
//Sleep YS(Int time )//(使程序延時,單位 ms)
//其中使用的全局變量有
Int Stop XNDJ (用來停止相應(yīng)軸的電機運動函數(shù),0 為不停止,不為 0 則停止相應(yīng)軸)
If (N > 1)
{For(i = 2;i < N+1;i++) //完成前N-1 次脈沖
{Move To( axis,d S) //完成前 N-1 次脈沖中每次對應(yīng)軸的移動
I f (Stop XNDJ = = axis)
{ return}//跳出循環(huán)條件Sleep YS (40)//延時 40ms }
Move To (axis,dd S) //完成最后一次脈沖的剩余移動量}
在虛擬電機的運動函數(shù)中,輸入?yún)?shù)為脈沖數(shù)、每個脈沖所走距離、最后一個脈沖所走距離、所選坐標軸,每次調(diào)用可以完成相應(yīng)軸的有限次的移動,直到移動結(jié)束;也可以響應(yīng)中斷,比如用戶點擊了循環(huán)停止按鈕或改變了電機運動倍率。
初期用的是系統(tǒng)的自帶延時函數(shù),發(fā)現(xiàn)使用時會使系統(tǒng)失去響應(yīng),用戶無法進行其他操作,直到延時結(jié)束才能響應(yīng),所以雖然比較簡單,但并不能應(yīng)用在這里。新的延時函數(shù),使用的是系統(tǒng)開機時間,先記錄延時開始時的系統(tǒng)開機時間,再不斷請求開機時間,將獲取的新的開機時間與起始開機時間的差和延時長度對比,若差大于延時長度,則跳出循環(huán)。
4.7 本章小結(jié)
本章主要從五軸手數(shù)控機床模擬訓練機的功能分析入手,分析和比較了三種虛擬機床的開發(fā)方案,選擇基于 Open GL 以及C# 這兩款工具來進行五軸數(shù)控機床模擬機的開發(fā),并簡單描述了Open GL 這款工具的主要特點,分析了Open GL 的功能優(yōu)勢。
在上章中提到,五軸數(shù)控機床模擬器是基于 C#和 Open GL 進行二次開發(fā),軟件開發(fā)平臺基于 Windows 系統(tǒng),就需要將機床原有的伺服系統(tǒng)進行模擬,使原伺服系統(tǒng)及伺服電機可以在 Windows 中模擬出來,使模擬器中機床的運行符合真實機床的運行規(guī)律;同時可以驅(qū)動手輪、面板、鍵盤、指示燈等硬件,實現(xiàn)對用戶輸入的響應(yīng),包括鍵盤和手輪按鍵的觸發(fā),面板界面菜單的顯示,指示燈的點亮和熄滅等。最終效果是使用戶體驗到操作真實五軸數(shù)控機床的感覺,最大程度的實現(xiàn)仿真教學的真實性。
投稿箱:
如果您有機床行業(yè)、企業(yè)相關(guān)新聞稿件發(fā)表,或進行資訊合作,歡迎聯(lián)系本網(wǎng)編輯部, 郵箱:skjcsc@vip.sina.com
如果您有機床行業(yè)、企業(yè)相關(guān)新聞稿件發(fā)表,或進行資訊合作,歡迎聯(lián)系本網(wǎng)編輯部, 郵箱:skjcsc@vip.sina.com
更多本專題新聞
專題點擊前十
| 更多