pc機進入數控領域,極大地豐富了數控系統的硬軟件資源,有利于實現總線式、模塊化、開放化的數控系統,使其具有很高的性能價格比。隨著Windows系統的發展與普及,開發WindowB CE)下的數控系統已經成為廣大CNC同行的共識。近年來,國內已有不少廠家開發了幾種基于Windows的控制系統。國內的控制系統各有優點,但從數控系統發展的趨勢來看,仍有許多需要改進之處。
等新型操作系統。軟件開發思想與技術落后,始終處于甚至低于結構化程序設計的水平。沒有充分利用面向對象的新理論、新技術。
其次,數控系統軟件設計中存在設計不規范,可靠性與可維護性差,沒有采用一種開放式、模塊化軟件設計方法。
本文所介紹的系統軟件,利用Windows的多線程機制和中斷機制解決數控軟件的實時多任務處理;利用面向對象的新理論、新技術,采用一種開放式、模塊化軟件設計方法,使軟件具有開放性。本系統軟件能使插補、伺服控制、NC程序編制同時進行,能較好地滿足數控系統的要求,并且已形成了產品,應用效果良好。
2CNC軟件的總體設計為了使數控軟件具有明顯的開放數控特點,使數控軟件易于組裝、擴充、維護,我們采用了工程化的設計方法,利用面向對象等技術開發一套基于Windows32位數控軟件。軟件設計遵循模塊化、層次化、動態配置的原則。
開放式控制系統應采用分層的體系結構。分層使得各層實現隔離,層與層之間通過標準的接口進行通信,實現可移植性和可用第三方軟件,只用更換相應層即可。本系統的縱向**層次為界面層,它完成系統的監控管理:輸人、I/O處理、顯示、診斷和監控。此界面層由界面和各回調函數組成。回調函數的功能是完成界面上控件的事件驅動操作?;卣{函數的調用操作,由操作系統管理。
系統的縱向第二層次為功能單元層,包括譯碼類、刀補類、插補動態連接庫、運動控制器類。譯碼層將數控指令解釋成為數控系統的內部數據格式。刀補層進行刀具補償。插補動態連接庫完成數據插補,產生加工數據、速度處理、輔助功能設備控制D運動控制器類完成位置伺服的控制D譯碼類、刀補類分別由多個軟件芯片組成。此功能單元層的調用操作放在回調函數中。
系統的縱向第三層次為支撐層,包括運動控制器卡、運動控制器的設備驅動程序、I/O卡、操作系統、PC機。運動控制器卡主要完成位置伺服的任務。運動控制器的設備驅動程序完成對運動控制卡和I/O卡的直接操作。本系統的體系結構如所示。
在該數控系統的軟件中,采用了前后臺型的結構形式。前臺程序即實時中斷程序,完成全部的實時功能(插補動態連接庫、運動控制器類、設備驅動程序),主要是插補功能。后臺程序的主要功能是插補前的準備功能及調度管理(包括界面、I用戶縵入I譯碼類、刀補類)。具體地講,是數控程序輸人、譯碼、刀具補償、顯示及上述任務之間的調度管理功能。后臺程序結構是一個多線程結構,完成多任務處理。在運行過程中,前臺程序(中斷服務程序)不斷插人,共同完成零件加工任務。而位置伺服的任務主要由運動控制器完成。加工程序由計算機進行譯碼、刀具補償、速度處理后,得到刀具中心的插補指令數據。計算機將這些插補指令數據和其他的指令數據以固定格式存放于一緩沖區中。每次中斷發生時,計算機根據這些指令數據進行相應的處理。如果存在插補指令,則實時計算出插補數據,并且送人緩沖區,運動控制器根據這些數據控制相應軸的電機動作。當計算機中的一幀指令數據被讀完后,在插補間隙自動計算出新的插補指令數據,填人緩沖區。
文件編面厲作炻面刀具/醇設1面系統設置面手動撅作子更面ipi撬作盍面自動操作子頁面類刀樸類運動後I/O卡支層顏補動塞M數控軟件體系結構3實現方法3.1軟件系統的多任務實時控制策略CNC系統是一個專用的多任務計算機系統。
在它的控制軟件中,融合了許多軟件技術中的先進技術,其中*突出的是多任務并行處理和實時處理CNC裝置通常作為一個獨立的過程控制單元,應用于工業自動化生產過程中,它的軟件必須完成管理和控制兩大功能。系統的管理部分,包括輸人、I/O處理、顯示、診斷。系統的控制部分,包括譯碼、刀具補償、速度處理、插補、位置控制。在CNC裝置的實際運行過程中,多個任務中的若干個任務要同時進行。
CNC軟件在工業自動化的實際應用過程中,為了滿足生產的要求,必須具有實時性。
為了使我們的數控軟件具有并行處理和實時處理的能力,我們采用Windows95的多線程模型和中斷機制的控制策略。
為了使CNC系統軟件能在Windows環境下并行處理多任務,采用多線程來實現多任務控制。線程是32位操作系統的主要特點,它支持搶占式的多任務機制,是操作系統的基本調度單元。我們可將各管理和控制模塊置于獨立的線程中,從而實現數控軟件系統的并行處理操作。在我們的數控軟件中,建立了主控制線程(監控和界面線程)、顯示/面板操作線程和自動加工線程。顯示/面板操作線程的預置時間片為50ms.自動加工線程是由主線程啟動和消除的。通過建立這三個線程,可實現整個系統的協調運行。
主控制線程主要完成監控和界面管理、功能控制、系統管理等,并負責實時啟動和消除自動加工線程。系統退出時,將消除顯示/面板操作線程。主控制線程是經過Windows的消息排隊,來實現其操作流程。
用戶輸入(程啟動p:NC初始化一系統主菜單界面和事件循3不線程停止)文件輯的方式實現實時性強的任務。由于中斷可以在任何時刻發生,而不限于使用設備的應用程序運行期間,所以,中斷服務程序必須在固定代碼段中。在大框架EMS內存配置中,只有一種類型的代碼,才能保證任何時刻均可用來進行此類中斷服務。這種類型的代碼就是動態連接庫(DLL)的固定代碼段中的代碼。因此,必須采用DLL來實現中斷。在我們的系統中,采用DLL實現了硬件中斷,運行可靠。
在我們的軟件中,在的自動加工線程中,采用中斷機制來實時控制。自動加工線程主要完成打開NC文件、語法檢、譯碼、刀具補償、插補,產生加工數據。在這些功能中,插補必須實時完成,因而采用中斷服務程序來實現。自動加工線程的開啟,在回調函數中完成。自動加工線程的控制流程見,中斷服務程序控制流程見自動加工線程由于動態連接庫可以根據需要被應用程序靈活地裝載、卸出,占用的系統資源將相應減少,所以把插補中斷服務程序編譯連接成動態鏈接庫的形式使用。
由于面向對象的軟件開發技術綜合了功能抽象與數據抽象,它較好地實現了軟件的可擴性、多態性,并使軟件易于修改。我們采用面向對象方法對數控軟件進行建模,分3個層次對其進行描述與實現:系統、控制單元和基本類,使CNC軟件可組裝、易擴展。
基本類是數控系統功能細粒度分解的結果,是組成開放系統的*小單位?;绢悩嫵擅嫦驅ο髷悼剀浖念愺w系。具有標準化接口的基本類,稱之為軟件芯片。
控制單元是由一系列功能相關的基本類組成的、完成一定功能的軟件實體。控制單元可以嵌套。
系統是由一系列控制單元組成的某種類型的數控系統軟件。
在我們的數控軟件開發的類,有運動控制器類、譯碼類、刀補類。它們都作為功能單元分別完成位置伺服功能、譯碼功能、刀補功能。譯碼類、刀補類較復雜,由多個軟件芯片繼承組成。
3.3多緩沖區技術運動控制器類、譯碼類、刀補類、動態連接庫都是相對獨立的功能單元,它們相互有大量的數據交換,因此采用多緩沖區實現數據交換。
為了協調各線程、各任務之間的運行,使各模塊相對獨立,在軟件中建立多個數據緩沖區,具體的實現方法是:為多緩沖區分配內存,建立指向當前緩沖區的讀、寫指針,構成一個環形多緩沖區;為每塊內存設置一個標志位,作為對各緩沖區進行操作的判斷依據;每讀一個緩沖區,對該緩沖區設置已讀標志,當前讀指針向前移動一個緩沖區;每寫一個緩沖區,對該緩沖區設置已寫標志,當前寫指針向前移動一個緩沖區;對于當前操作未結束的緩沖區,設置正在操作標志,禁止其他操作。
采用這種方法,將系統中必須在單個插補周期內完成的運算,“均化”在多個插補周期內完成,有效地利用了CPU的計算時間,提高了系統的工作效率。
3.4界面實現技術測控軟件的界面不僅具有Windows―般控件功能,而且還必須具有模擬一些實物的控件,如:電表顯7TC、旋鈕等。因此,采用LabWindows/CVI工具設計系統界面。采用LabWindows/CVI時以一種C語言設計界面非常方便。此工具設計的界面包括頭文件(。h)、界面文件(。uir)。在中,提供界面控件的回調函數。應用程序可在回調函數中實現所需要的功能。在此系統中,顯示/面板操作線程作為界面的定時器控件的回調函數。Windows按照定時器設定的時間,定時調用定時器控件的回調函數。
4結論多線程模型與中斷機制相結合的控制策略和層次化的體系結構,利用面向對象技術、多緩沖區技術、界面實現技術,成功地在Windows環境下實現數控系統的實時多任務控制要求,較好地實現軟件的可擴充性、多態性、重構性,并使軟件易于修改。該設計方法應用于我們開發的數控軟件上,已取得了良好的效果。