蔣立洲 朱昊昱 李成明
【摘 要】以實(shí)時(shí)Linux為軟件平臺(tái),工業(yè)PC機(jī)為硬件平臺(tái),以C語言、GNOME/GTK+庫、GCC編譯器等為主要開發(fā)工具,在激光切割機(jī)的基礎(chǔ)上進(jìn)行了數(shù)控系統(tǒng)的研究,實(shí)現(xiàn)實(shí)時(shí)系統(tǒng)控制下的激光切割。
【關(guān)鍵詞】Linux;數(shù)控系統(tǒng);激光切割
一、引言
數(shù)控系統(tǒng)是數(shù)控加工生產(chǎn)的關(guān)鍵因素,數(shù)控系統(tǒng)的實(shí)時(shí)性、穩(wěn)定性對(duì)影響著數(shù)控產(chǎn)品的性能起著至關(guān)重要的作用。Linux操作系統(tǒng)是一個(gè)多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng),能夠?qū)崿F(xiàn)實(shí)時(shí)多任務(wù)功能,具有源代碼對(duì)外開放、穩(wěn)定性極高、內(nèi)存管理和網(wǎng)絡(luò)功能強(qiáng)大等特性,在原有的基礎(chǔ)上進(jìn)行改良加工能夠較好的滿足數(shù)控系統(tǒng)的平臺(tái)需求。
二、工作原理
(一)激光切割原理
激光切割是利用經(jīng)過聚焦的高功率激光束照射工件,使被照射處的材料迅速熔化、氣化、燒蝕等,同時(shí)借助于與光束同軸的高速氣流,吹除熔融物質(zhì),割開工件的一種熱切割方法。
(二)系統(tǒng)工作原理
首先對(duì)已有的Linux系統(tǒng)擇取所需功能,再利用RTLinux實(shí)時(shí)模塊對(duì)該系統(tǒng)進(jìn)行實(shí)時(shí)化處理,完成對(duì)數(shù)控加工過程的速度控制、插補(bǔ)運(yùn)算、位置控制、實(shí)時(shí)狀態(tài)反饋等功能。利用C語言和編譯器設(shè)計(jì)用戶需要的人機(jī)界面,包括對(duì)數(shù)控程序的編程、譯碼,數(shù)控加工的狀態(tài)顯示、參數(shù)設(shè)置、仿真模擬等。
實(shí)時(shí)操作系統(tǒng)一般具有如下基本特征:支持多線程和可搶先調(diào)度;有可預(yù)測(cè)的線程同步機(jī)制;有優(yōu)先級(jí)繼承機(jī)制;操作系統(tǒng)的行為能夠被用戶了解和及時(shí)反饋。
(三)過程實(shí)現(xiàn)
通過分析激光切割機(jī)數(shù)控系統(tǒng)基本功能,采用了基于RT-Linux的數(shù)控系統(tǒng)平臺(tái),對(duì)切割機(jī)數(shù)控系統(tǒng)的硬件結(jié)構(gòu)和軟件進(jìn)行了設(shè)計(jì),并對(duì)系統(tǒng)進(jìn)行了多任務(wù)執(zhí)行分析和數(shù)據(jù)轉(zhuǎn)換精準(zhǔn)度分析,為激光切割機(jī)的數(shù)控系統(tǒng)的各功能模塊之間協(xié)調(diào)工作、高效工作打下基礎(chǔ)。
1.硬件設(shè)計(jì)
系統(tǒng)的硬件平臺(tái)為普通PC或者工業(yè)PC,本文采用工業(yè)PC,數(shù)控系統(tǒng)與伺服系統(tǒng)及機(jī)床輔助機(jī)構(gòu)的接口采用一塊多功能接口卡,通過總線等連接。
2.軟件系統(tǒng)設(shè)計(jì)
(1)基于Linux的數(shù)控系統(tǒng)開發(fā)系統(tǒng)設(shè)計(jì)
RTLinux支持兩個(gè)域:實(shí)時(shí)域和非實(shí)時(shí)域,實(shí)時(shí)域任務(wù)以內(nèi)核線程形式實(shí)現(xiàn),非實(shí)時(shí)域任務(wù)以用戶進(jìn)程或用戶線程的形式實(shí)現(xiàn)。利用 RTLinux提供的基于優(yōu)先級(jí)的搶占式多任務(wù)調(diào)度機(jī)制,以及豐富的任務(wù)通信機(jī)制,可以方便地實(shí)現(xiàn)數(shù)控系統(tǒng)各任務(wù)的調(diào)度和通信。
RT-Linux的新實(shí)時(shí)內(nèi)核采用虛擬中斷方案,將系統(tǒng)中斷劃分為兩組:一組由常規(guī)Linux內(nèi)核控制,另一組則由實(shí)時(shí)內(nèi)核控制,同時(shí)設(shè)置8259芯片相應(yīng)中斷級(jí)的屏蔽位,使中斷請(qǐng)求首先重定向到實(shí)時(shí)內(nèi)核中并加以過濾。如果該中斷是實(shí)時(shí)內(nèi)核中斷,則由實(shí)時(shí)中斷處理處繼續(xù)執(zhí)行;如果是常規(guī)Linux內(nèi)核中斷則設(shè)置標(biāo)志位等待處理。通過這種方法,使實(shí)時(shí)內(nèi)核可以隨時(shí)中斷常規(guī)Linux操作系統(tǒng)來執(zhí)行重要的實(shí)時(shí)任務(wù),來實(shí)現(xiàn)中斷優(yōu)先級(jí)的判別。此時(shí)常規(guī)Linux內(nèi)核作為實(shí)時(shí)內(nèi)核的一個(gè)最低優(yōu)先級(jí)任務(wù)予以管理,當(dāng)有其他更高優(yōu)先級(jí)的實(shí)時(shí)任務(wù)來請(qǐng)求處理時(shí),就中斷常規(guī)Linux操作系統(tǒng)的運(yùn)行繼而轉(zhuǎn)入相應(yīng)的高優(yōu)先級(jí)實(shí)時(shí)任務(wù)處理程序。
(2)系統(tǒng)各層間的通信設(shè)計(jì)
在經(jīng)過了對(duì)數(shù)控系統(tǒng)功能以及實(shí)時(shí)多任務(wù)間數(shù)據(jù)高級(jí)級(jí)別關(guān)系的分析,結(jié)合Linux+RTLinux平臺(tái)上實(shí)時(shí)應(yīng)用軟件的結(jié)構(gòu)特點(diǎn),把系統(tǒng)分為三層:人機(jī)界面層、模塊管理層和命令控制層,每一層又分為若干個(gè)模塊及子模塊,同層模塊相互配合、先后執(zhí)行命令來共同完成該層的任務(wù)。
一、模塊管理層與人機(jī)界面層的通信
模塊管理層與人機(jī)界面層的通信包括如下兩個(gè)方面:
(1)用戶在人機(jī)交互的圖形界面下的操作信息及相關(guān)數(shù)據(jù)需要傳遞到管理層中作相應(yīng)處理。
(2)系統(tǒng)運(yùn)行過程中的檢測(cè)到的實(shí)時(shí)狀態(tài)信息需要傳遞到人機(jī)界面層顯示給用戶。
二、模塊管理層與命令控制層的通信
模塊管理層與命令控制層需要進(jìn)行多方面通信:
命令控制層運(yùn)行時(shí)所需的各種參數(shù)是可配置的,包括位置參數(shù)、速度加速度參數(shù)等。
(1)模塊管理層發(fā)往命令控制層的控制命令,主要有單軸控制啟動(dòng),G代碼運(yùn)行等。
(2)模塊管理層發(fā)往命令控制層的控制數(shù)據(jù),控制數(shù)據(jù)有相對(duì)應(yīng)的控制命令,命令控制層根據(jù)控制命令取相應(yīng)的控制數(shù)據(jù)進(jìn)行控制,控制數(shù)據(jù)必須先于控制命令發(fā)往控制層。
(3)命令控制層反饋到模塊管理層的數(shù)據(jù),這些數(shù)據(jù)主要包括:各軸在參考系中的位置參數(shù),軟PLC輸入輸出的數(shù)據(jù)顯示,以及出現(xiàn)故障時(shí)的出錯(cuò)報(bào)告等。
四、研究意義
一方面實(shí)時(shí)控制能夠提高數(shù)控系統(tǒng)的整體性能,提高工作效率,另一方面系統(tǒng)的穩(wěn)定性會(huì)可以降低故障的可能性。除此之外,基于PC的數(shù)控系統(tǒng),可降低系統(tǒng)成本,增加系統(tǒng)的開放性、靈活性和通用性。
【參考文獻(xiàn)】
[1]呂思偉,等.實(shí)時(shí)Linux下數(shù)控系統(tǒng)的開發(fā)研究[J],組合機(jī)床與自動(dòng)化加工技術(shù),2002,(2):27-30
[2]林樹忠,孫會(huì)來.激光加工技術(shù)的應(yīng)用及發(fā)展[J].河北工業(yè)大學(xué)學(xué)報(bào),2004,7(2):77~82.
[3]巫德彬,尹顯明.基于PC的開放式數(shù)控系統(tǒng)[J].機(jī)械工程與自動(dòng)化,2006,12(6):171~172.
[4]王永章.機(jī)床的數(shù)字控制技術(shù)[M].哈爾濱: 哈爾濱工業(yè)大學(xué)出版社, 1999.4
[5]王小輝,雷麗萍,李文斌等.基于 PC 的數(shù)控系統(tǒng)及其控制任務(wù)調(diào)度的實(shí)現(xiàn)[J].機(jī)械工程與自動(dòng)化,2005, 8(4): 65~67.