I/O控制器是開放式數控系統的一部分,考慮到整個數控系統結構層次化和模塊化的特點,構造了基于RCS設計方法的I/O控制器。文章簡述了RCS 方法的主要思想及數控系統中I/O控制器的主要功能和組成,詳細闡述一個基于RCS方法的I/O控制器的設計和實現過程。最后總結了基于RCS 設計方法的I/O控制器的優缺點。
0 前言
基于PC機豐富的軟硬件資源開發具有開放式體系結構的數控系統已經成為當今數控系統研發的潮流。開放式體系結構使數控系統有更好的通用性、柔性、適應性、可擴展性和可移植性。數控系統是一個強實時、多任務的復雜控制系統。為了更好的解決它的實時性問題,人們進行了很多的理論研究,RCS(Real - Time Control System) 設計方法就是由美國國家技術與標準委員會(NIST)的智能系統部(ISD)在多年的控制系統研發過程中,形成的一套完整的用于實現復雜的層次及分布式實時控制系統的一套設計方法及軟件庫,多年來,RCS 方法在國外已經在多個領域得到試驗和應用 。
1 RCS設計方法
RCS設計方法的基本原理就是將復雜的控制系統分解成一些簡單的、獨立的、小規模的、易于用傳統的控制方法來實現的子系統,而分解之后的這些子系統可以運行于不同的系統環境中,甚至分布在網絡的不同節點。然后根據分解的結果,采用由下至上對各層的模塊分別進行定義的方法來定義控制系統的層次結構,RCS 將這些子系統按照層次結構組織起來,每一層節點都有各自的任務,組成一個層次結構。最后確定系統中各模塊的任務分配和模塊間共享的信息,同時定義關于命令和狀態信息的詞匯,完成控制系統的設計工作。這樣大大地減少了實時控制系統的復雜度。
2 I/O控制器在數控系統中的作用
2.1 開放式數控系統的軟件結構
本系統用藍天NC-200 作為系統的硬件平臺,采用RTLinux實時操作系統作為操作平臺。整個數控系統由控制單元、CRT單元、機床操作站三個單元組成。
CNC 系統是一個專用的實時多任務計算機系統,它通常作為一個獨立的過程控制單元用于生產過程中,因此它的系統軟件必須完成管理和控制兩大任務。系統的管理部分包括輸入輸出、I/O處理、顯示、診斷。系統的控制部分包括譯碼、刀具補償、速度處理、差補和位置控制。這樣根據CNC系統軟件的功能要求和RCS設計方法層次化結構設計的特點,整個數控系統軟件就可以設計成一個層次化的結構模型,如圖1所示。在這個結構中主要有四個功能模塊,分別是為圖形用戶界面(GUI),任務控制器,運動控制器和I/O控制器。
圖1 數控系統軟件軟件層次結構
2. 2 I/O控制器在數控系統中的作用
I/O 控制器是數控系統中執行I/O操作的中心,它主要處理來自任務控制器的針對I/O系統的指令。對于數控系統而言,這些I/O設備主要有刀具,主軸,冷卻部件,潤滑器以及急停開關等一些輔助操作。這些針對I/O 的操作都是一些開關量控制,所以又稱為離散型I/O控制器。I/O控制器根據來自任務控制器的控制指令,按照控制對象進行任務拆分,發送到對應的目的I/O設備中。I/O控制器是數控系統中的重要組成部分,是控制外部設備的中心。
3 I/O控制器的結構設計
I/O操作對實時性的要求比運動控制要求低,它與任務控制器之間的通信采用NML 機制。
3.1 I/O控制器與任務控制器的接口
通信接口在數控系統總體的層次化結構模型中,I/O控制器位于任務控制器的下層,它與任務控制器之間有三條用于通信的NML 通道,分別是命令通道、狀態通道和錯誤信息通道。而在任務控制器中,有一個專門的接口模塊taskintf ,它定義了所有發送到其下級運動控制器和I/O控制器的控制命令。I/O控制器與任務控制器的接口如圖2 所示。
圖2 I/O控制器與任務控制器
I/O控制器的任務主要有: I/O初始化、停止、關閉、急停開關、主軸正轉、反轉、停止、冷卻液開關、潤滑初始化與開關、刀具準備、上刀下刀和刀具表管理等等。下面是刀具部分的接口定義。
cncToolPrepare(int tool) ;
cncToolLOAd() ;
cncToolUnload() ;
cncToolLoadToolTable(const char 3 file) ;
cncToolSetOffset (int tool , double length , double diameter) ;
3.2 I/O控制器的內部結構設計
基于RCS設計思想設計一個I/O控制器, 它可以對任務控制器發送給I/O控制器的命令進行分類整理, 即在I/O控制器內把任務劃分為若干個模塊,即為:與刀具相關、與主軸相關、與潤滑相關、與冷卻相關和其他與輔助操作相關的五個子任務模塊。同時在I/O控制器頂層設定一個I/O接口模塊,用于總體把握I/O控制器的狀態和任務分發。模塊之間的通信利用NML通信機制。具體的I/O控制器的內部結構如圖3所示。
圖3 I/O控制器結構示意圖
如圖所示,I/O接口、刀具控制、主軸控制、冷卻處理、潤滑處理和輔助加工分別作為一個獨立的模塊存在。I/O接口模塊位于其他五個模塊的上層,作為I/O控制器和任務控制器的接口,接收所有來自任務控制器送往I/O 部分的任務,它將接收的任務進一步劃分,并按照任務的分類分別送往刀具、主軸、冷卻,潤滑和輔助幾個模塊進行執行。底層的五個模塊作為執行任務的最終節點,具體執行細化任務,不再有子模塊。
3.3 I/O控制器和任務控制器以及I/O控制器內部各模塊之間的通信
I/O控制器和任務控制器之間,以及I/O控制器內部各模塊之間的通信是通過NML通道來完成的。系統定義了兩種類型的NML通道:一是命令通道,用于傳遞上層模塊對下層模塊的命令信息;二是狀態通道,用于上級從下級讀取狀態信息;在這里,NML通道采用共享內存的方式實現,所有的數據要經過共享內存進行中轉。I/O內部模塊間也是按照共享內存的方式進行通信的,因此系統中設立了相應的共享內存緩沖區用于內部模塊間通信。例如用于I/O接口與刀具間的緩沖區toolCmd和toolSts ; 用于I/O接口與主軸間的緩沖區spindleCmd 和spindleSts , 用于I/O接口與冷卻間的緩沖區coolandCmd 和coolandSts ,用于I/O接口與輔助操作間的緩沖區auxCmd 和auxSts ,用于I/O接口與潤滑間的緩沖區lubeCmd 和lubeSts。
4 I/O控制器的執行
I/O控制器內部由I/O接口、刀具、主軸、冷卻、潤滑和輔助操作五個模塊組成。每個模塊都有其模塊內部執行過程, 目的在于完成上下級模塊間通信及本模塊的任務處理。在構造I/O控制器的時候,可將五個模塊在控制器內部循環執行。由于I/O接口在上層,所以循環次序為I/O接口→刀具→主軸→冷卻→潤滑→輔助操作。每一個循環為控制器的一個執行周期,那么五個模塊共同消耗這個執行周期。每個模塊在執行時都對自己的執行時間進行統計,設定模塊的最大和最小執行時間。I/O控制器在開始時定義五個模塊如下:
圖4 I/O控制器內部執行流程圖
CNC IO MODULE 3 iointf ;
CNC TOOL MODULE 3 tool ;
CNC SPINDLE MODULE 3 spindle ;
CNC COOLANT MODULE 3 coolant ;
CNC AUX MODULE 3 aux ;
CNC LUBE MODULE 3 lube ;
I/O控制器內部的執行過程如圖4 所示。由流程圖可見:總體來說整個執行過程是一個while 主循環,并且可以通過系統中斷信號隨時中止循環。同時利用RCS 庫提供的RCS TIMER類的對象同步系統時鐘,由成員函數RCS TIMER: :wait ( ) 實現這一功能。在每一個采樣周期內,規定任務執行結束后可能還有剩余時間,wait () 函數就是保證等到下一采樣周期到來時才執行下一個循環操作。比如一個采樣周期是100ms ,運行所有控制所需時間是60ms ,那么wait 函數將使進程處于睡眠狀態40ms ,之后才繼續運行下一循環。
5 結論
基于RCS 設計方法,設計數控系統中的I/O控制器是一種很成功的方法。這樣的I/ O 控制器具有如下特點:優點:
1) 層次化、模塊化結構設計,使系統易更改,可擴展性好,大大提高了系統的靈活性。
2) 對于不同的I/O板卡等硬件可以使用專門的讀寫函數,實現底層操作。故使I/O控制器可適用于不同的硬件平臺。缺點:
I/O控制器只實現了對I/O的離散控制,因此它只實現了解決開關量的邏輯運算,以及計時、計數等幾種有限的功能控制,難以實現復雜的邏輯運算,算術運算,數據處理以及數控機床所需要的許多特殊功能。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.lukmueng.com/