改編自:《新一代智能化數控系統》(作者:陳吉紅,楊建中,周會成)
「1.開放式數控系統的定義及屬性」
1)開放式數控系統定義
目前,開放式數控系統還沒有公認的統一定義。IEEE對其定義為“開放式數控系統應提供這樣的能力:來自不同廠商的,在不同操作平臺上運行的應用程序都能夠在系統上實現,并且該系統能夠和其他應用系統協調工作。”本文作者根據自身的研究工作,并結合本書內容,對開放式數控系統給出如下定義:開放式數控系統本質一個具備軟件平臺化、功能模塊化、界面組態化內部屬性和可移植性、可伸縮性、互操作性外部特征,支持用戶根據需求進行數控系統二次開發,并提供用戶應用軟件的運行、管理平臺。因此,開放式數控系統的核心是支持用戶根據需求進行二次開發,增加定制化功能,提升機床的性能。
2)開放式數控系統的內部屬性
要實現數控系統的開放,使其具備良好通用性、互換性,并且使用戶無需深入到底層硬件集成、操作系統調度等專業性要求很強的開發任務中,數控系統需具備軟件層次化、功能模塊化、界面組態化的內部屬性。這些內部屬性是數控系統廠商為實現數控系統的開放而對數控系統體系內部架構的設計。
(1)軟件層次化
數控系統軟件不僅包含解釋、插補及運動控制等功能的實現,還需具備設備驅動、實時內核及進程調度等基礎功能。但是,用戶進行數控系統二次開發目的是改進現有功能或增加新功能,其工作并不需要涉及硬件讀寫、內核管理等基礎功能。因此,需要對軟件進行層次化劃分,使用戶進行二次開發時只需要關注其所需功能的接口層,不需要了解基礎功能的實現和系統調度等任務,在降低用戶開發難度的同時,在一定程度上保障系統的可靠和穩定。
為了實現系統軟件的分層,首先需要把軟件從硬件中分離出來,降低硬件的可靠性受用戶加入功能的影響的可能,于是需要建立驅動層。其次,數控系統軟件隨著功能增多,變得越來越復雜,為了不讓用戶陷入到底層軟件的開發當中,將軟件層次進一步劃分出內核層和應用層,用戶只需要通過應用層的接口進行二次開發,不需要直接在內核的層面進行開發。
綜上所述,可以將數控系統軟件平臺從技術層面分為3個層次:驅動層、內核層、應用層,如圖1所示。
圖1 開放式數控系統軟件平臺架構
a.驅動層:驅動層一般由硬件抽象層(HAL)、板級支持包(BSP)和驅動程序組成,是數控系統軟件中不可或缺的重要部分,它的作用是為上層程序提供外部設備的操作接口,并且實現設備的驅動程序。上層程序在進行硬件操作時,不需要了解設備的具體細節,只需要調用驅動的接口即可。
b.內核層:內核層即嵌入NC內核的操作系統層,包含實時內核、進程調度、NC內核功能模塊、文件系統、圖形用戶接口和網絡系統等。在嵌入式系統中工作的操作系統稱為EOS(Embedded Operating System,嵌入式操作系統),EOS在數控系統中主要作用是處理由內部或者外部事件引發的中斷、設備驅動層的激活以及執行任務的調度,它并不執行具體的應用功能,如運動控制、界面顯示等具體功能是由應用層的應用軟件實現的。
c.應用層:應用層軟件主要指多個相對獨立的應用任務,每個應用任務完成特定的工作,如I/O任務、計算任務、通信任務、人機界面等,由操作系統調度各個任務的進行。它由基于操作系統的應用程序組成,用來完成對被控制對象的控制功能。應用層是面向被控制對象和用戶的,為了方便用戶的操作,往往需要友好的人機界面。應用程序運行在操作系統之上,通過對操作系統的接口函數的調用,實現系統如采集診斷、運動控制等具體的應用功能。各種任務以應用程序的形式集合在應用層,服務于不同的功能模塊。在操作系統的支持下,每個任務都被分配到一個優先級,根據優先級別的高低,動態切換任務,以保證實時性的要求。此外,操作系統根據每個任務的要求,進行資源管理,合理分配資源,實現消息管理、任務調度和異常處理等任務。
數控系統是一個專用性很強的多任務調度運行系統,按照任務運行實時性強弱的劃分方法,一般將數控系統的任務劃分為管理任務和控制任務兩大類。如圖2所示,其中控制類任務的工作與數控加工直接相連,對實時性要求高,而管理類任務的工作對實時性的要求相對較低。系統的控制任務又可細分為位置控制、軌跡插補、指令譯碼、I/O控制、誤差控制、狀態實時監控與故障診斷等子任務;系統的管理任務則包括人機交互管理、顯示管理、數據管理、通信管理和網絡管理等子任務。而且,在實際的開發設計中可根據需要對各個子任務進行進一步細分,形成一個任務集合,任務集合中的任務都必須根據外部事件及時被激活運行,同時結合具體的加工情況,由操作系統統一調度,動態地對任務進行優先級控制,以適應不同加工任務的要求。當有高優先級的任務進入任務列表時,內核通過優先級搶占調度方式切換到高優先級的任務;當同等優先級的多個任務進入任務列表時,內核通過時間片輪轉調度法實現多任務的并發控制。操作系統具體的多任務調度機制以在上一小節給出詳細解釋。
圖2 數控系統應用層任務劃分
通過系統軟件的分層可以實現“高內聚”和“低耦合”,每層間功能上獨立,減少依賴關系,擴展性、可維護性增強。另外每層之間實現指定功能,與其他層之間通過指定接口建立聯系,可移植性大大提升。
(2)功能模塊化
對數控系統的功能進行模塊化開發,使其基礎軟件模塊具有可重用性,提高系統的可維護性、可擴充性是開放式數控系統實現開放的必要條件。數控系統功能模塊化也稱軟件芯片化,是指采用面向對象的技術,對數控系統的功能劃分,把一些通用模塊做成獨立的可重用的對象類,建立類似于硬件芯片的數控系統軟件芯片庫。當開發新的數控系統時,只需從軟件芯片庫中取出相應的模塊加以組合即可,必要時加以擴充,而無需從頭開發整個系統, 這樣便改變數控系統的封閉式設計,提高了整個系統的靈活性,實現了數控系統開放性設計、資源得到重用。利用軟件芯片構建數控系統的過程如圖3所示。
圖3 基于軟件芯片庫的數控系統的構建過程
a.軟件芯片的特點:內部黑箱封裝;接口標準規范化;多態性及繼承性。
b.功能模塊的劃分:人機交互界面模塊;編碼譯碼模塊;刀補預處理模塊;軌跡插補模塊;軸伺服控制模塊;I/O模塊。上述幾個基本模塊具有互操作性、可移植性和可擴展性,且是構成CNC系統最小的配置模塊,可作為數控功能的基本劃分,作為最基本的CNC軟件芯片,此外還有刀具管理、數據庫管理等芯片,軟件芯片的功能與數量的定義是動態的,隨著應用需求的變化和CNC技術的發展,可能需要增加新的軟件芯片。軟件芯片之間協作關系如圖4所示。
圖4 開放式數控系統軟件芯片對象協作關系
(3)界面組態化
人機界面是人與數控系統之間傳遞、交換信息的媒介,是數控系統的重要組成部分,人機界面的二次開發是大部分用戶完成可視化內容的個性化定制及開發的重要手段。目前,數控系統的通用人機界面已經具備了比較通用、完備的功能,能夠實現監控、診斷、編程、設置等操作。但是,這種標準化的人機界面不能滿足用戶對特定加工工藝的個性化定制需求,另外,用戶提出新功能,數控系統廠家開發需要一定的開發周期往往不能及時響應市場需求。因此,需要開發一種數控系統人機界面二次開發平臺,不僅滿足用戶對數控系統的專業化、個性化需求,而且滿足開放式數控系統的便于擴展、對用戶開放等需求。
對于這種需求,人們提出了組態的概念,組態的核心思想就是以圖形可視化方式將人機界面以功能組件的形式,通過特定的方式配置組織起來,實現人機界面靈活地、可擴展地開發。組態技術可以以圖形可視化的方式,通過功能組件的組合配置,以組態的形式快速靈活地構建具有高可擴展性的人機界面。總的來說人機界面的組態技術主要有兩個特點:
一是圖形化的界面構建能力:組態化界面開發是以圖形可視化的方式添加和配置界面圖元來構建完成的。組態要求部署后的組態界面應該和開發過程中的組態界面保持“靜態的一致性”,以實現所見即所得的界面開發理念。
二是組件式的功能配置:組態人機界面應該由獨立的功能單元組合而成,這些功能單元組件可以是圖元、設備或者功能模塊等,通過“配置”的形式將這些功能單元的組合即可完成人機界面構建,同時這些功能單元之間的組合形式應該是低耦合,可擴展的。一般來說,組成數控人機界面的主要元素有圖形、控件、變量、設備、數據庫、邏輯命令,為了實現數控人界面組態過程中的靈活性,降低各個組件和元素之間的耦合性及HMI 結構的復雜性,對數控人機界面進行模塊化劃分。以功能性為劃分依據,采用軟件設計中常用的 MVC 系統框架(model-view-control 框架),將組成計算機軟件的數據、圖形以及邏輯控制部分抽象剝離出來,以到達降低系統耦合性和提升擴展性的目的。最終,將人機界面的基本元素劃分為數據,圖形和交互控制三個模塊。其中數據模塊對應于人機界面的各種數據源,為視圖的顯示提供數據, 主要包括機床運行與加工過程中的各種數據。圖形就是數控 HMI 在屏幕上的表示形式,主要包括構成人機界面的基本圖形即常用組件等;交互控制則主要負責人機界面運行過程中的邏輯控制及用戶交互。
組件化是對組成人機界面功能單元進行相應的處理,將相同或相似的功能單元進行提煉與抽象,轉化為具有標準接口、可復用的功能組件的過程。如圖5所示,組件化的步驟主要包括單元識別、單元聚類以及單元集概括抽象和組件封裝。基本單元識別即將組成系統的基本單元,依據功能、邏輯和結構方面的差異,通過相應的識別方法,按照一定劃分粒度,將具有獨立功能且與其他基本單元低耦合的功能單元提取出來。在功能單元的識別過程中,劃分粒度對最終人機界面的靈活性和擴展性起著決定性作用。粒度過大將導致單元組件可配置性差,組態界面的整體靈活性不高;而粒度過小,則會導致界面系統過于復雜,可維護性性不夠。因此劃分粒度應根據功能單元的特點及經驗進行選擇。
圖5人機界面組件化基本過程
基本功能單元識別完成后,將一些在功能、結構上或邏輯上具有一定相似性的單元進行分類,構成能夠實現特定功能的單元集,提升單元集內元素的聯系性,降低單元集之間元素的相似性和耦合性,這個過程便稱為單元聚類。單元聚類后,利用面向對象軟件開發中類的思想,對這些單元集進行概括和總結,抽象成為單元“類”,并提煉出單元類的根本屬性,并將其參數化,添加用于組件組合的外部接口,最后封裝成具有特定功能,可復用且具有標準可配置參數與組合接口的單元組件。
「2. 開放式數控系統的特征」
以上兩部分對封閉式和開放式數控系統的內部屬性進行了分析,從用戶的角度來講,封閉式和開放式數控系統在特征上也有所區別。表2給出了封閉式和開放式數控系統的具體特征的詳細對比。
表2 封閉式和開放式數控系統的外部特征
通過以上對比分析,我們可以知道傳統封閉式數控系統具有可靠性高、成本較低的優點,對于典型量大面廣的場合還是以傳統數控系統的應用為主。但是,隨著科技的進步和其它相關支撐技術的發展,開放式數控系統取得了長足發展,傳統封閉式數控系統的這些優勢已經不再明顯。開放式數控系統允許用戶根據自己的實際需求進行選配、集成、更改或者擴展系統的功能以快速適應不同的應用場合。
一般來說,開放式數控系統應具有以下基本特征:
(1)開放性:提供標準化環境的基礎平臺,允許不同功能和不同開發商的軟、硬件模塊介入。
(2)可移植性:不同的應用程序可運行于不同生產商提供的系統平臺,同樣的,系統軟件也可以運行于不同特性的硬件平臺。通過標準的設備接口,各功能模塊能夠正常運行在不同的硬件平臺上。
(3)可伸縮性:增添或減少系統的功能僅表現為特定功能模塊的裝載或卸載。允許用戶結合實際需要進行二次開發,甚至允許用戶將自行設計的標準功能模塊集成到數控系統內部,從而實現深層的二次開發。
(4)互換性:不同性能、不同可靠性和不同能力的功能模塊可以相互替代,而不影響系統的協調運行。
(5)相互操作性:提供標準化的接口、通信和交互模型。不同的應用程序模塊通過標準化的應用程序接口運行于系統平臺之上,不同的模塊之間保持平等的相互操作能力,協調工作。標準化的接口既包含硬件接口,如RS232、USB、VGA、以太網等接口;也包含軟件接口,即通信協議,如數控系統與伺服的總線協議NCUC、EtherCAT、Profinet IRT、Sercos III等,以及不同類型數控系統之間通信語言,如NC-Link協議。
-
數控系統
+關注
關注
5文章
258瀏覽量
24213 -
屬性
+關注
關注
0文章
23瀏覽量
8521 -
應用軟件
+關注
關注
0文章
50瀏覽量
9074
發布評論請先 登錄
相關推薦
評論