1 前言
目前,數控技術正在發(fā)生根本性變革,由專用型封閉式開環(huán)控制模式向通用型開放式實時動態(tài)全閉環(huán)控制模式發(fā)展。另一方面,隨著工業(yè)Pc機性能的飛速發(fā)展,其可靠性也大為提高,且其價格卻大幅度降低。從而以工業(yè)PC機為核心的控制系統(tǒng)已廣泛被工業(yè)控制領域所接受。尤其是近年來,發(fā)展通用的全軟件開放式數控系統(tǒng)已成為國際數控行業(yè)研究的熱點,代表著數控技術發(fā)展的最新潮流。全軟件數控系統(tǒng)由通用PC+I/O接口卡構成。這種模式是將I/O接口卡插入到PC機的標準插槽中,整個系統(tǒng)是由PC擴展而成。數控系統(tǒng)所有的非實時任務和實時任務都由PC完成。I/O接口卡實現PC與控制目標之間的溝通及驅動接口的任務。PC+I/O接口卡模式的全軟件數控系統(tǒng)才是真正意義上的開放式數控系統(tǒng),能實現Nc內核的開放、用戶操作界面的開放。
該全軟件開放式數控系統(tǒng),采用PC前端加高速I/0平臺的復合式結構;所有的數控功能都由模塊化的功能軟件實現,可供程序直接調用,也可作為構造其他控制系統(tǒng)的二次開發(fā)調用。本系統(tǒng)的控制通道為:PC通過總線控制每一個I/O端口,I/O端口與各個控制目標相連。硬件組成如圖1所示。
圖1數控系統(tǒng)硬件組成結構圖
2 硬件系統(tǒng)
2.1 工控PC機
計算機是運行數控軟件的核心部件。采用通用的工控PC機,不但可以充分利用PC完備的硬件及計算機領域的先進技術以提高CNC系統(tǒng)的可靠性,而且可以在很大范圍內選擇硬件,從而避免CNC在更換硬件和服務時引起的限制。選用新型高性能的SIMATC PC840型工控機作為運算和控制核心,用以來完成數控系統(tǒng)的基本功能、開關量功能及伺服控制功能。
2.2 I/O適配卡
系統(tǒng)在PC/AT總線上構架高速I/O平臺,自行設計了一塊I/O適配卡。該卡用以完成地址譯碼、I/O端口光電隔離、I/O端口驅動等作為信號輸入輸出的通用功能。其I/O端口控制和譯碼的功能都由CPLD可編程器件實現,功能完全由寫入該卡的軟件定義,只要對CPLD重新編程,而無需修改硬件就可以成為新的數控I/O硬件平臺,將硬件設計也實現軟件化,使數控系統(tǒng)硬件完全具有通用性,且升級、維護都更方便。其結構如圖2所示。
圖2I/O適配卡原理圖
由于PC機的I/O地址單元大部分被一些標準設備占用,如果設置不當,會引起PC機工作不正常,甚至死機。根據PC機I/O端口地址分配表,我們將適配卡置為0310H~031FH 16個連續(xù)地址單元。I/0地址譯碼采用高速電可擦除可編程器件ATFl6V8B。
其地址分配如下:
2.3伺服信號中轉板
這塊伺服信號中轉板用于在I/O適配卡與電機伺服驅動器之間進行信號轉換。主要產生各部分之間差分形式的信號,使伺服控制具有更高的抗干擾能力和可靠性。
3 軟件系統(tǒng)分析
數控系統(tǒng)軟件屬于前后臺結構的控制模式,由實時中斷完成插補運算和位置控制。與傳統(tǒng)的基于PC的數控系統(tǒng)結構比較,全軟件數控系統(tǒng)要解決插補計算和位置控制的軟件化問題,同時須滿足加工過程的實時性要求。所以在選擇軟件方案時必須圍繞這一出發(fā)點來進行。在目前比較流行的windows2000操作系統(tǒng)下開發(fā)本數控系統(tǒng)的軟件。然而目前的windows的產品不支持實時性要求很高的實時任務的調度管理,所以考慮采用windows操作系統(tǒng)下外圍設備的硬件中斷,由它來提供高精度的實時響應,并合理運用Windows的搶占式、多線程機制有效地解決了開放式CNC系統(tǒng)的實時多任務問題。經過在PⅢ866的CPU上對系統(tǒng)的實時性進行測試,累計最遲中斷響應速度為23.3μs,結果表明,完全能滿足強實時任務的要求。
3.1 利用硬件中斷實現實時控制
由于windows系統(tǒng)的控制實權由虛擬級管理器(XMM)和虛擬設備驅動程序(VxD)實現,通過編寫VxD虛擬設備驅動程序來提供時鐘中斷,并通過時間回調函數來保證其實時性。
VMM和vxD的操作模式和真正的程序不同。在大多數時候,它們是潛伏的。當應用程序在系統(tǒng)中運行時,這些VxD程序沒有被激活。當中斷/錯誤/事件發(fā)生時,它們才被喚醒。Windows系統(tǒng)為可編程中斷控制器8259安裝了驅動程序VPICD,并通過相關服務達到允許其它V如利用硬中斷的目的。VPICD負責映射中斷信號到虛擬機,并模擬相應的I/O來識別虛擬機發(fā)出的中斷請求。
在虛擬設備驅動程序中要完成以下工作:
3.1.1 初始化8253
該過程是完成適配卡上8253的初始化設置。使用通道o(方式0)。8253用來控制插補速度。8253的cLK信號輸入端為2MHz方波信號。當8253的16位計數器將置入的值減為。則發(fā)一個正跳變的中斷請求信號給ISA插槽的IRQ3,即主板主8259的IRQ3。CPU響應中斷后轉入中斷服務程序INT—SEV0。中斷服務程序根據插補的策略送出伺服電機的脈沖及方向信號并接收反饋信號自動調整各坐標值,然后繼續(xù)對8253進行重新置數,并開放中斷等待下一個中斷的發(fā)生,從而自動完成插補的全過程。
3.1.2 初始化8259
軟件對PC機主板上的兩片8259進行初始化,即將操作系統(tǒng)的中斷系統(tǒng)進行重置,這樣做的主要目的是用以接管中斷向量B,即原串行口2,我們用它指向中斷服務程序。但這是一件比較危險的操作,因為絲毫錯誤都會給PC機帶來系統(tǒng)崩潰的后果。這里我們使用驅動程序開發(fā)包(DDK)在VC++6.0集成環(huán)境下經過多次調試完成該項工作。同時還需說明的是,在使用適配卡時,數控系統(tǒng)已經占用了COM2,從而必須保證機箱的cOM2端口不能連接任何外部設備;另一方面,在運行本軟件時,若未插適配卡,則不會有中斷信號發(fā)至IRQ3,這樣系統(tǒng)軟件將無法運行。
3.2 利用Visual C++6.0開發(fā)系統(tǒng)軟件
windows的多線程技術以“資源分時共享”為原則,在軟件設計時,將有并行要求的模塊置于獨立的線程中,實現系統(tǒng)的多任務并行工作。由于Windows操作系統(tǒng)的設備無關性和高級語言良好的可移植性,在Windows環(huán)境下使用Ms Visual系列功能強大的編程語言來實現數控系統(tǒng),可以使系統(tǒng)的結構組織得比較明晰有序,也便于功能的擴充與剪裁,使數控系統(tǒng)能方便地與各種現有的CAD/CAM軟件、數據庫接口。
在軟件設計中,采用了模塊化結構,使得所有的數控核心功能軟件和附加的可選功能軟件在系統(tǒng)中易于集成,同時也可作為其他控制系統(tǒng)的二次開發(fā)調用,體現了數控系統(tǒng)軟件的開放性。系統(tǒng)加工程
序文件的讀寫采用軟件自帶的編輯窗口,也可以讀人外部的文本文件,該程序可自動格式化輸人的程序,并檢查語法錯誤,能在線編輯c代碼程序,并以文本文檔的格式保存。系統(tǒng)主功能鍵為主界面上的各個按鈕和選擇框,全部運行用鼠標點擊操作。
由于篇幅所限,只對軟件中涉及的幾個關鍵問題進行闡述。
3.2.1 線程的應用
在手動運行和自動運行中都用到了線程技術。
3.2.2 對注冊表操作的應用
由于數控系統(tǒng)要求有坐標記憶的功能,也就是說在系統(tǒng)再次啟動時,各軸坐標值應該為上一次系統(tǒng)退出前的坐標值。為了實現這一個功能,比較便捷的方法就是對注冊表進行讀寫操作。在系統(tǒng)退出之前,把各軸坐標值寫入注冊表,在系統(tǒng)啟動時,把坐標值從注冊表中取出。
3.2.3 加工程序的編譯與診斷
在編譯程序時,基于DOS的數控系統(tǒng)主要是經過多次掃描,將數控加工程序存入緩沖區(qū),最后再次掃描編譯緩沖區(qū),根據各功能代碼轉入相應的子程序。進行插補運算,完成程序加工。
在編寫這套軟件時,加工代碼只經過一次掃描。在掃描過程中,對代碼按照字符逐個識別就把程序中的各種代碼元素存放在不同的數組中,其中包含絕對坐標值、相對坐標值、正反轉標志位等等。在輸出脈沖程序模塊中,按照這些數組中的值分別向各軸送出相應的脈沖及方向信號。
3.2.4 插補程序
插補程序采用比較積分法,插補算法基于伸雄式函數發(fā)生器。基本原理為:如果給定了直線的終點坐標(xo,yo)、圓弧的起點坐標(xo,-yo)、或者其它二次曲線的參數(A,B)和公差(α,β),就可以通過判別函數△的計算來實現這些函數曲線的脈沖分配。△為x軸脈沖總時間間隔和y軸脈沖總時間間隔之差,用來決定兩軸進給脈沖的配合關系。運算過程說明如下:
(1)比較x軸和y軸的脈沖間隔A和B(對直線而言,A、B的初始值A0=ye,B0=xe;對圓則A0=x0,B0=y0)。插補時取脈沖間隔小的軸作基礎軸,此處設A<B,取戈為基礎軸。
(2)脈沖源每發(fā)一個脈沖,基礎軸都走一步。非基礎軸,則根據判別函數△來決定是否走一步。
當△≤0時,x、y都走一步。
當△<0時,只戈走一步,y不動。
為方便計,其中A、B取絕對值進行運算,而α、β取相對值運算???、盧取值不同就可以得到不同的曲線形式。
采用此算法實現多坐標直線插補插補原理清晰,插補計算比較簡單,而且由于這種方法是在基礎軸上走步,脈沖發(fā)生是不間斷的,而且是均勻的,故機床的長軸運行很平穩(wěn)。
4 結束語
在機械制造加工中,數控軟件不僅要有一個友好的人機界面,更重要的是實現加工控制的實時性。我們設計了這種前后臺結構的全軟件開放式數控系統(tǒng),以visual C++6.0作為開發(fā)工具,在windows2000平臺下,充分利用PC的硬件功能,通過編寫VPICD虛擬設備驅動程序來提供實時中斷以實現實時控制;采用windows多線程機制來實現多任務調度。下一步我們將在不斷完善系統(tǒng)自身功能的同時,進一步開發(fā)出該數控系統(tǒng)的網絡功能。
(審核編輯: 智匯胡妮)
分享