數(shù)控系統(tǒng)的操作系統(tǒng)平臺選擇必須滿足控制系統(tǒng)的實時性要求,而且在相當(dāng)程度上決定了數(shù)控系統(tǒng)的開放程度。從數(shù)控技術(shù)的發(fā)展來看,基于實時操作系統(tǒng)的開放式數(shù)控系統(tǒng)已成為必然的趨勢。
RT-Linux是基于Linux系統(tǒng)并可運行于多種硬件平臺的32位硬實時操作系統(tǒng)(Hard real-timeoperating system)。它繼承了MERT系統(tǒng)的設(shè)計思想,即以通用操作系統(tǒng)為基礎(chǔ),在同一操作系統(tǒng)中既提供嚴(yán)格意義上的實時服務(wù),又提供所有的標(biāo)準(zhǔn)P()SIX服務(wù)。RT-Linux源代碼公開,易于修改,使系統(tǒng)成本降低,源代碼的公開使數(shù)控系統(tǒng)的開發(fā)擺脫了對國外軟件公司的依賴,有利于提高數(shù)控軟件國產(chǎn)化程度。
現(xiàn)介紹一種基于PC機+FireWire (IEEE1394)光纖通信接口卡+FireWire (IEEE1394)光纖信號轉(zhuǎn)接模塊+通用伺服驅(qū)動器或者I/O模塊的硬件結(jié)構(gòu)的軟件伺服數(shù)控系統(tǒng)。重點介紹根據(jù)此模型開發(fā)的基于RT-Linux的數(shù)控系統(tǒng)嵌人式PI_C及其實現(xiàn)方法。
1 數(shù)控系統(tǒng)的硬件結(jié)構(gòu)
系統(tǒng)硬件建立在通用工業(yè)PC的開放體系之上,包括工控機及其外圍設(shè)備,控制信息輸人/輸出接口,伺服驅(qū)動器設(shè)備。工控機采用RedHatLinux8.0+RTLinux3. 1操作系統(tǒng),數(shù)控系統(tǒng)的人機界面、數(shù)控代碼處理、數(shù)控插補、位置伺服控制、位置控制指令平滑處理、運動控制補償以及PLC控制都通過工控機由軟件來實現(xiàn),系統(tǒng)不需要運動控制卡,只需要1塊控制信息輸入/輸出接口卡(光纖通訊適配卡),這樣大大減少了數(shù)控系統(tǒng)對硬件的依賴,有利于提高系統(tǒng)的開放性。
系統(tǒng)的位置控制信息、位置反饋信息、I/O輸人輸出信息通過光纖實現(xiàn)主機與伺服接口模塊和I/O接口模塊之間的信息交換,光纖通訊基于IEEE1394協(xié)議。這種信息傳輸方式,簡化了數(shù)控系統(tǒng)的接引線,提高了數(shù)控系統(tǒng)的可靠性,也使得系統(tǒng)的維護更為方便。數(shù)控系統(tǒng)硬件結(jié)構(gòu)如圖1所示。
2 數(shù)控系統(tǒng)的軟件結(jié)構(gòu)
開放的系統(tǒng)硬件接口使用戶可根據(jù)需要自由選用通用的工業(yè)PC作為控制系統(tǒng)的硬件平臺。但是,數(shù)控系統(tǒng)的多任務(wù)特性和實時性要求卻限制了通用操作系統(tǒng)如DOS, Windows等在數(shù)控系統(tǒng)中的應(yīng)用。近年來,RT-Linux以其優(yōu)異的性能引起了越來越多的關(guān)注,并在實時控制領(lǐng)域得到了成功的應(yīng)用。
2.1 RT-Linux的體系結(jié)構(gòu)
RT-Linux是基于Linux系統(tǒng)并可運行于多種硬件平臺的多任務(wù)實時操作系統(tǒng)。通過修改Linux內(nèi)核的硬件層,采用中斷仿真技術(shù),在內(nèi)核和硬件之間實現(xiàn)了一個小而高效的實時內(nèi)核,并在實時內(nèi)核的基礎(chǔ)上形成了小型的實時系統(tǒng),而Linux內(nèi)核僅作為實時系統(tǒng)最低優(yōu)先級的任務(wù)運行。
RT-Linux按實時性不同分為實時域和非實時域。實時內(nèi)核由一個核心部分和多個可選部分組成,核心部分只負(fù)責(zé)高速中斷處理,支持SMP操作且不會被底層同步或中斷例程延遲或重人。其他功能則由可動態(tài)加載的模塊擴充。而不影響系統(tǒng)實時性的操作(即非實時域的操作)RT-Linux均留給非實時的Linux系統(tǒng)完成。
2.2 基于RT-Linux的數(shù)控系統(tǒng)軟件結(jié)構(gòu)
按照數(shù)控系統(tǒng)的層次劃分,數(shù)控系統(tǒng)的軟件分為應(yīng)用單元和控制單元兩大部分,其中應(yīng)用單元向用戶提供了1個應(yīng)用軟件環(huán)境和1組標(biāo)準(zhǔn)的系統(tǒng)功能函數(shù),包括操作界面、數(shù)據(jù)管理。而控制單元相當(dāng)于1個高效的NC-PLC內(nèi)核,完成基本的數(shù)控功能,包括譯碼、數(shù)學(xué)預(yù)處理、速度控制、插補、I/O處理、實時狀態(tài)監(jiān)控等。
應(yīng)用單元的各個模塊由總控模塊統(tǒng)一調(diào)度,并通過消息觸發(fā)實現(xiàn)與總控模塊的交互;谙⒌耐ㄐ艡C制使應(yīng)用單元獨立于控制單元,應(yīng)用單元模塊根據(jù)用戶的操作發(fā)出相應(yīng)的消息,總控模塊則根據(jù)消息類別生成控制單元能夠識別的指令和數(shù)據(jù)。系統(tǒng)各個任務(wù)之間的通信均通過Linux內(nèi)核提供的進程間通信機制進行。對于有順序要求的數(shù)據(jù)交換采用先進先出隊列(包括實時FIFO和非實時FIFO),而對于容量不大的數(shù)據(jù)交換則采用共享內(nèi)存的方式進行。
數(shù)控系統(tǒng)的軟件結(jié)構(gòu)如圖2所示。
控制單元按照任務(wù)實時性要求的不同可以劃分為實時任務(wù)和非實時任務(wù),對于實時性要求不高的任務(wù)如編譯、預(yù)處理、狀態(tài)監(jiān)控等可以放在非實時域執(zhí)行,而對于實時性要求比較高的任務(wù)如精插補、PLC控制、位置伺服等則需要在實時域執(zhí)行,由RT-Linux對實時任務(wù)和非實時任務(wù)按照優(yōu)先級統(tǒng)一調(diào)度。
3 嵌入式PLC的設(shè)計及實現(xiàn)
3.1 嵌入式PLC的模塊組成
如圖2所示,數(shù)控系統(tǒng)的PLC控制模塊實時性要求較高,因而必須在系統(tǒng)的實時域內(nèi)運行。根據(jù)通用數(shù)控系統(tǒng)的PLC控制以及數(shù)控系統(tǒng)軟件模塊化設(shè)計的要求,將數(shù)控系統(tǒng)的PLC控制模塊作為RT-Linux系統(tǒng)的實時任務(wù)之一,其優(yōu)先級和調(diào)用周期取決于數(shù)控系統(tǒng)各任務(wù)的實時性要求以及控制要求的響應(yīng)時間。PLC控制模塊主要完成數(shù)控系統(tǒng)的邏輯控制,而被控制的輸人/輸出也就是I/O的輸人/輸出由光纖通信適配卡輸人/輸出模塊來完成,即完成數(shù)控系統(tǒng)的PLC控制需要2個RT-Linux實時任務(wù),如圖3所示,這2個任務(wù)分別為RT-Taskl(以下稱“適配卡輸人/輸出”)、RT-Task2以下稱“PLC控制”)。
圖3中,適配卡輸人/輸出主要是完成數(shù)控系統(tǒng)的輸人/輸出,即各軸位置控制命令的輸出、I/O的輸出、I/O輸人以及位置反饋輸人,實際上是數(shù)控系統(tǒng)控制卡的設(shè)備驅(qū)動模塊,其優(yōu)先級在數(shù)控系統(tǒng)的各實時任務(wù)中為最高級,根據(jù)其硬件特征以及運動控制要求,其響應(yīng)周期為100us,響應(yīng)時鐘周期由光纖通信適配卡上的硬件定時器產(chǎn)生。根據(jù)RT-Linux系統(tǒng)對硬件中斷的響應(yīng)機制,輸人/輸出控制任務(wù)的實時性是可以保證的,這一點在我們的數(shù)控系統(tǒng)已經(jīng)得到驗證。
圖3中PLC控制主要是完成數(shù)控系統(tǒng)的PLC控制功能,其任務(wù)優(yōu)先級低于適配卡輸人/輸出,同時也低于數(shù)控系統(tǒng)的精插補實時任務(wù)和位置伺服實時任務(wù)。根據(jù)通用數(shù)控系統(tǒng)的PLC控制要求,確定其響應(yīng)周期為5 ms,響應(yīng)周期由RT-Linux的軟件定時器產(chǎn)生,根據(jù)RT-Linux系統(tǒng)的實時多任務(wù)調(diào)度機制,PLC控制任務(wù)的實時性是可以保證的。在實際應(yīng)用中也得到驗證。
3.2 嵌入式PLC的實時任務(wù)模塊數(shù)據(jù)通信
完成數(shù)控系統(tǒng)PLC控制的2個實時任務(wù)之間由于需要輸人/輸出的數(shù)據(jù)量(一般情況下為64輸人,64輸出,但輸人/輸出根據(jù)需要還可以擴展)不太大,因而采用共享內(nèi)存的通信方式,在適配卡輸人/輸出和PLC控制2個實時任務(wù)之間開兩塊共享內(nèi)存,一塊用于適配卡向PLC控制傳輸I/O口狀態(tài)信息,另一塊用于PLC控制向適配卡輸人輸出任務(wù)傳輸經(jīng)PLC邏輯處理后的控制信息。
在這里,2個實時任務(wù)間不采用RT-FIFO進行通訊的原因在于:1)這2個實時任務(wù)間通訊的數(shù)據(jù)量不是很大,而且這2個實時任務(wù)運行周期差別較大,如果采用RT-FIFO傳輸數(shù)據(jù),為了避免FIFO的阻塞相應(yīng)地要增加2個任務(wù)間的協(xié)調(diào)機制,通訊效果未必比采用共享內(nèi)存好。2)相對而言,共享內(nèi)存的讀寫速度比FIFO要較快。
3.3 嵌入式PLC的實時任務(wù)的實現(xiàn)
適配卡輸人/輸出為動態(tài)可加載模塊,適配卡輸入/輸出模塊(任務(wù))以100 }.s為周期的硬件定時中斷,完成各軸位置控制指令和I /O的輸出、各軸位置反饋值和I/O的輸人,適配卡輸出值來自于位置伺服任務(wù)和PLC控制任務(wù),輸入值來自于適配卡的輸入接口。
PLC控制模塊(任務(wù))同樣也是一個動態(tài)可加載模塊,它以10 ms的軟定時,周期性地從它與總控模塊通訊的RT-FIFO讀取控制信息(如M指令,S指令及T指令),同時從它與適配卡輸入/輸出模塊通訊的共享內(nèi)存中讀取I/O信息,然后進行邏輯處理,最后將結(jié)果寫人共享內(nèi)存供適配卡輸人/輸出模塊讀取并輸出。
PLC控制模塊的軟件結(jié)構(gòu)如下:
4 結(jié)語
前該嵌人式PLC模塊已成功應(yīng)用于清華大學(xué)精儀系制造工程研究所THHP- II數(shù)控系統(tǒng)(基于RedHatLinux8.0十RTLinux3. 1)中,嵌人式PLC模塊可以滿足對普通數(shù)控系統(tǒng)和加工中心的PLC控制要求。
核心關(guān)注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:基于RT-Linux的數(shù)控系統(tǒng)軟件PLC議計與實現(xiàn)
本文網(wǎng)址:http://www.ezxoed.cn/html/support/11121513839.html