五軸聯動數控系統的開放化設計
介紹了一種基于工控機的五軸聯動數控系統,對其系統構成,硬件軟件開放化設計方法進行了探討。從開發過程及使用效果來看,開放化設計可有效地縮短開發周期,提高數控系統軟硬件的質量。
關鍵詞:開放化系統;ISA總線;CNC
1 概述
從MIT開發出第一臺三軸銑床數控系統到現在的四十多年中,數控系統的設計方法經歷了巨大的變化。特別是近十年來,隨著計算機技術的迅猛發展,數控系統從整體結構到詳細設計,從軟件設計到硬件設計,都與早期的數控系統有了很大不同。早期的數控系統出于效率的考慮,許多功能采用硬件電路實現,專用性很強,可維護性、可擴展性比較差。另一方面,通用計算機的運算速度隨時間以指數規律不斷提高,現在一臺微機的運算能力已經達到或超過了早期的小型機,而且,通用型微機應用廣泛,有完善和開放的標準,有眾多外圍硬件設備和豐富的軟件資源的支持。借助微機進行數控系統的開發可以達到事半功倍的效果,因此成為目前數控領域的國際趨勢。
五軸聯動數控系統聯動軸數比較多,同時又涉及到兩個回轉運動,插補算法復雜,而且其各組成部分,如伺服驅動單元、位置反饋單元、誤差補償、電氣控制、機床機械結構等在不同的應用場合有不同的特點,在系統整體設計時對此應有充分的考慮。目前,多數數控系統不能滿足這種多樣性的需要,對不同的應用場合,就得選用不同型號的數控系統,這勢必增加開發與維護費用。研究開放式數控系統及其功能部件,就可以根據用戶需要,比較容易地對整個數控系統進行重新組合,以提高系統的可移植性、可伸縮性、可維護性和兼容性。
2 數控系統硬件的開放化設計
2.1 硬件設計的一般原則
傳統數控系統的硬件設計分為兩個流派:采用專用芯片的大板結構與總線式體系結構。大板結構對用戶而言是一個封閉的系統,功能的擴展與系統維護都受到限制??偩€式結構有一定的靈活性,但由于這種總線由生產廠自己確定,缺乏共同的行業標準,不同廠商的產品之間不具備互換性,所以,這種設計方法已不適應現代制造業的需要。另一方面,隨著計算機技術的發展,微機的速度與十幾年前相比是天壤之別。在這種形勢下的軟硬件設計中,人們關注的重點出現了由效率向互換性、可維護性轉移。受其影響,在數控系統的設計進程中,由大板結構或專用總線向標準總線、可重組的單元模塊發展成為國際趨勢。
硬件設計的開放化主要體現在總線標準上。開放化的數控系統是由多種模塊構成的,模塊通過標準的總線連成一個整體??偩€的選擇應當滿足三個要求:①在技術上有一定的先進性,能夠滿足數控系統各種功能模塊對信息交互的需要。②總線標準完全開放,且在國際上得到廣泛認可與應用,而不是由某個廠商自己定義使用的某種特殊總線標準。③具有高度的可靠性。
選擇了合適的總線標準后,才能進行各功能模塊的設計。在數控系統中,主要的功能模塊有:運動軸位置控制模塊、電氣控制模塊、機床操作面板及數控面板接口模塊、通訊模塊、顯示模塊等。功能模塊應當能夠重新配置,以免不同模塊I/O端口地址及中斷類型發生沖突。
2.2五軸聯動數控系統的硬件設計
在五軸聯動數控系統開發過程中,我們選擇工控機作為設計的基礎。工控機本身符合多種工業標準,是一種開放化的計算機系統,與常用的微機有良好的兼容性,有大量的軟硬件的支持。目前工控機底板插槽總線類型主要有兩種:ISA總線(工業標準總線)和PCI總線(外圍設備接口)。ISA總線的數據傳輸速率比較低,但已能滿足數控系統的需要。同時,高總線速率會對各功能模塊的硬件提出更高的要求。因此,我們選用ISA總線作為所有模塊設計的基礎。
由于五軸聯動插補算法復雜,有大量浮點運算,對實時性要求又較高,我們選用Pentium 166 CPU完成插補運算。另外,系統中各個坐標軸還需具備位置控制功能,位置控制實時性很強,且控制軸數比較多,該任務與插補共用一個CPU會導致數控系統主機負擔太重,實時性不易保證,而且故障風險過于集中,較好做法是每根軸采用一個獨立的CPU進行控制,采用層次式體系結構構成系統。根據位置控制CPU與主機交互信息方法的不同,分為兩種結構(見圖1)。第一種結構把位置控制板直接插到工控機底板的ISA插槽中,在這種情況下,主機與多個位控板之間直接進行信息傳輸,由于位控板CPU速度低,數據通訊階段會浪費主機CPU資源,控制軸數越多,主機CPU的效率就越低。此外,主機還需采取措施來保證多個位控板在時間上的準確同步。因此,我們選擇了第二種結構。第二種結構采用單獨的通訊機完成主機與位控板之間的信息傳遞。通訊機一方面通過雙口存儲器與主機之間進行信息交換,另一方面通過自建的局部總線與位控板進行信息交換。雙口存儲器容量為2kb,它同時也起數據緩沖器的作用。這種方案大大減少了主機用于信息交換的CPU時間。
圖1 分布式多CPU數控系統的兩種結構
通訊機在系統中起著承上啟下的作用。它接收Pentium 166插補得出的各坐標軸位置指令,通過并行口把這些指令分發給位控板。另外,通訊機還提供對數控面板按鍵及指示燈的管理功能。通訊機的設計見圖2。圖中的仿ISA總線,提供了通訊機與位控板之間傳輸信息的通道。這時的“仿ISA總線”是根據位控板及常用控制插卡的需要而設計的,它重建了標準ISA總線的部分信號,包括:I/O操作所需的各種信號線、中斷信號線、就緒控制、電源線等。按照“仿ISA總線”設計的位控板與標準的ISA總線完全兼容。這樣做有兩個好處:①在系統開發階段,通訊機與位控板的設計和調試工作可借助微機各自單獨完成,兩者之間無先后依賴關系;②在控制軸數較少的系統中,可以采用圖1 中的第一種結構,把位控板直接插到工控機的底板上,方便地實現對系統的重組。
圖2 通訊機設計原理
在設計過程中,在通訊機與位控板之間,我們曾采用了自定義的專用總線。專用總線效率高,但根據專用總線設計的位控板與工控機不兼容,互換性較差,開發、調試與維護都比較麻煩。為此,我們對這一部分進行重新設計,走開放化道路,采用“仿 ISA總線”向標準總線靠近,收到了良好的效果。
3 數控系統軟件的開放化設計
開放化數控系統的軟件設計首先需要選擇合適的操作系統和軟件開發工具。目前常用的操作系統如DOS、Windows 3.1、Windows 95、Windows NT等均被應用到數控系統中。DOS本質上是一種單任務操作系統,在DOS下的多任務只能通過中斷技術來實現。數控系統各軟件功能模塊一般不能同時執行,若要同時執行,需自行解決模塊之間的調度問題。但DOS的規模很小,人們對DOS的了解比較多,在DOS上開發應用程度相對容易。Windows 3.1是一種非搶先多任務操作系統,可同時完成多個任務。其缺點在于某個任務,如任務A得到CPU資源時,其它任務是否能順利執行完成取決于A是否能及時處理完其本次事件,因此實時性沒有保證。Windows 95和Windows NT都是性能優異的搶先式32位多任務操作系統,操作介面良好,就功能而言,適合數控系統的需要。但在工業場合使用,其穩定性有待證實。綜合考慮的結果,我們選擇了DOS操作系統。與此相應,我們選擇Turbo C++ 3.0作為軟件開發工具。
軟件設計工作分為三個部分:主機軟件、通訊機軟件和位置控制卡軟件。制訂完善的通訊協議是其首要問題。為了保證可靠傳輸數據,通訊機構件采用分時處理的方法分別完成與主機及位控卡的信息傳輸。其時間上的同步關系見圖3。時間片的劃分及三部分之間的同步關系由通訊機進行控制。第一時間片開始時,通訊機向主機及位控卡發出同步信號,通知主機向雙口RAM中寫入新的數據,同時使位控卡開始位置控制運算。第二個時間片內,通訊機從雙口RAM中取出位置指令,分發給各個位控卡,同時從各位控卡采集實際位置數據,寫入雙口RAM。
圖3 數控系統各進程之間的關系
主機軟件主要由NC程序編輯模塊、手動操作、電氣控制模塊、通訊模塊、自動加工、機床參數調整、系統定位、螺矩補償等功能模塊構成。下面以電氣控制模塊為例說明軟件模塊的開放化設計方法。
電氣控制是所有機床必不可少的一部分。在數控機床中,其實現方法有三種:外裝式PLC、嵌入式PLC和虛擬PLC。市場上現有的各種PLC一般具有通訊功能,可以通過通訊接口與數控系統構成一個整體,這種電氣控制方式稱為外裝式PLC;此外,也可以設計一個智能型I/O接口卡,通過總線直接與數控系統構成一體,卡上帶有CPU,完成開關邏輯運算與控制,這種方式為嵌入式實現。也可以直接利用數控系統主機CPU周期性地進行邏輯運算,配合普通的開關量 I/O卡實現對電氣開關的控制,這種方式稱為虛擬PLC。
如果采用常規的程序設計方法,對于以上三種電氣控制方式,就得設計不同的軟件接口,數控系統軟件主體就會直接涉及到電氣控制的實現方式及其細節,一旦控制方式發生變化,將不得不對軟件進行大量修改。這樣編寫出的軟件通用性較差,難以適應預料之外的變化。為了增加軟件與硬件之間的相互獨立性,我們運用面向對象技術對系統進行了開放化設計。
顯然,不論哪一種控制方式,其目標都是相同的。經認真分析,我們找出了三者之間的共同點,由此得出一抽象類CPlc,它提供了數控機床電氣控制所有的外部特征,為數控系統主體軟件提供了完備的消息處理函數,數控系統中其它部分只需向PLC對象發送消息(message)就可使電氣開關做出相應的動作。該部分不涉及電氣操作過程中的細節。
在抽象類CPlc的基礎上,針對三種方式分別定義了派生類CExernalPlc、CEmbedPlc和CVirtualPlc,在這些類中,完成消息的解釋及硬件的操作。按照這種設計思想得到的電氣控制部分軟件具有圖4所示的結構。由圖中可以看出,這種設計方法在數控系統主體軟件與電氣控制硬件之間加入了抽象類層次,使其相互依賴性減弱,成為相對獨立的兩部分。運用這種方法得到的數控系統軟件具有與設備無關的特征。當有新的硬件設備出現時,只需在原抽象類上派生出新的對象類,按照共同的標準對消息進行解釋,操縱硬件做出相應的動作即可,無需對軟件其它部分做任何修改,大大提高了軟件設計的效率,實際上,在對消息的數據結構及其意義做出明確的規范后,其它任何人都可以參照該規范設計出新的電氣控制硬件及相應的驅動程序,集成入系統中。這也是軟件開放化設計的主要目的。
圖4 電氣控制軟件的抽象化設計
上面以PLC為例說明了數控系統軟件開放化設計的思想。我們按照這種思路完成了數控系統的軟件設計。雖然在開發初期反復做了多次分析討論,但在系統結構確定后,軟硬件開發還是比較順利的。從開發過程和聯機調試情況來看,開放化設計可以有效縮短軟件的開發周期,提高數控系統軟件的質量。
評論
查看更多