□ 李 麗 □ 房立金 □ 王國勛
1.沈陽城市建設學院 交通與機械工程系 沈陽 110167
2.東北大學 機械工程與自動化學院 沈陽 110819
3.沈陽理工大學 機械工程學院 沈陽 110159
數控系統體系結構是數控技術的關鍵技術之一。目前多數數控系統普遍存在一些缺點:①系統硬件結構封閉且硬件平臺缺乏柔性;②系統軟件不開放,可重構性差;③在編程語言方面,仍然使用G/M代碼,它只包含刀具運動信息,不包含任何其它信息,無法與CAD/CAM實現集成,無法實現智能化,而且加工代碼與其它系統不兼容。為了解決這些缺點,近年來,數控系統體系結構的研究逐漸成為研究熱點。李斌[1]對基于構件的開放式數控系統進行了研究。游有鵬[2]、李宏偉[3]、謝經明[4]、Z D Zhou[5]對基于現場總線的開放式數控系統進行了研究。 陳良驥[6]等人對基于PC平臺研究了開放式系統的軟硬件體系結構。X W Xu[7]提出了一種基于STEP-NC分布式支持互操作的數控系統體系結構。Matthieu Rauch[8]等人針對智能制造過程提出了基于STEP-NC的控制器結構。S H Suh[9]對智能數控系統的框架和數據模型進行了研究。以上研究只針對數控系統本身體系結構,而未考慮開放式數控系統的復雜性問題。
隨著STEP-NC標準的制定和日益完善,基于STEP-NC的開放式數控系統能夠解決當前數控系統所存在的問題[10],因此,研究基于STEP-NC的開放式數控系統對于數控技術的發展具有重要意義。筆者從數控系統硬件平臺、軟件結構、加工數據模型3個方面進行了深入研究,提出了一種既兼容STEP-NC標準、又基于調度軟件的數控系統體系結構,在滿足數控系統開放性需求的同時,簡化了數控系統的開發任務。
STEP-NC(STandard for the Exchange of Product Model Data for Numeric Control),全稱為“數控領域的產品模型數據交換標準”,它是產品模型數據交換標準STEP (STandard for the Exchange of Product Model Data)標準向數控領域內的擴展。STEP-NC的目的是實現CAD/CAM與CNC系統之間,以及不同CNC系統之間的信息交換和共享。與G/M代碼不同,STEPNC是基于完整描述加工對象和現場加工過程的模型,包括零件信息描述、工件毛坯信息描述、刀具信息描述、加工操作和策略描述等。通過易于理解的、易于智能診斷和控制的描述方式,詳細而簡潔地描述零件信息及其制造過程。STEP-NC的出現,從根本上改變了數控系統開放式、智能化發展的現狀,實現了CAD/CAM/CNC的信息集成。
使用G/M代碼的數控系統與上游CAD/CAM數據格式不兼容,信息只能實現從CAD/CAM到數控系統的單向流動,而且容易造成數據丟失,無法實現智能加工。而以STEP-NC作為數據模型的控制系統與上游CAD/CAM的STEP格式兼容,設計數據可無損地傳輸到CNC系統,并且可實現數據的雙向交換,滿足智能化加工的信息需求。因此,對于開放式智能化的數控系統,必須滿足對STEP-NC數據格式的兼容。
要實現數控系統真正的開放,必須在數控系統軟件、硬件和加工數據模型3個方面做到真正的開放,需滿足以下要求。
(1)系統軟件的結構必須具有開放性,并且允許用戶通過較簡單的方法進行二次開發,以便用戶定制自己的特殊功能,同時可減輕設計負擔,提高設計效率。
(2)在數據加工模型方面,必須使用一種新的加工數據模型代替傳統的G/M代碼,實現CAD/CAM/CNC的無縫集成與數據共享,并且為實現數控系統的智能化加工奠定基礎。
(3)在數控系統的硬件平臺方面,目前比較可行的方法是基于PC平臺實現,可以充分利用PC軟硬件發展的最新成果,同時具有一定的開放性。

▲圖1 STEP-NC數控系統層次結構

▲圖2 基于調度軟件的數控系統層次結構
根據開放式數控系統的需求及特點,本文提出了既兼容STEP-NC標準、又基于調度軟件模塊的開放式數控系統的體系結構,與傳統數控系統不同,兼容STEP-NC標準的開放式數控系統相當于增加了CAPP/CAM系統的部分功能,因此具有更多的模塊,且模塊與模塊之間相互關聯,形成復雜的系統結構。在這些模塊中,有強實時性模塊、弱實時性模塊和非實時性模塊,系統需對這些模塊進行實時任務調度,以實現數控系統的功能,因此系統的控制任務更加繁重。為了減輕系統的控制任務,簡化系統設計,本文提出調度軟件的概念,負責系統中各模塊的實時調度與任務處理。
數控系統通常可分為4個層次:智能控制層、運動控制層、設備控制層、物理設備層,如圖1所示。其中智能控制層和運動控制層包含插補、加工過程控制、智能控制、軌跡規劃等軟件模塊,設備控制層負責各運動軸伺服控制以及PLC、輸入/輸出控制等,物理設備層是指數控機床。
在軟件模塊層和設備控制層之間插入調度軟件模塊,使軟件模塊和設備控制層(運動控制模塊)、數控機床分離,其結構示意如圖2所示。調度軟件模塊負責管理和調度所有軟件模塊,并通過運動控制模塊控制機床運動完成特定的任務。
調度軟件模塊的管理及調度功能的實現是通過3個子模塊實現的,即任務管理調度模塊、軟件模塊信息庫、任務序列庫。任務管理調度子模塊負責管理和調度各個軟件模塊;軟件模塊信息庫中保存了本系統中各個軟件模塊的信息,包括模塊名、模塊位置信息、輸入/輸出參數等信息;任務序列庫中保存了完成某個具體任務所需的所有軟件模塊和執行順序信息。軟件模塊信息庫和任務序列庫都由任務管理調度模塊訪問和維護,當任務管理調度模塊接收到外部輸入的某一任務時,從任務序列庫中提取出任務序列,再從軟件模塊信息庫中提取信息,執行相應的軟件模塊,完成給定任務,如圖3所示。下面分別對3個子模塊進行詳細論述。
3.1.1 軟件模塊信息庫

▲圖3 調度軟件功能結構圖
軟件模塊信息庫中存儲了整個系統中所有軟件模塊的信息,為了便于查找與調用,每個模塊存儲格式為名稱、IP地址、輸入/輸出參數、功能說明等。每個軟件模塊都是獨立的,可能來自不同的供應商,軟件模塊具有兩個特征:①可替換性。每個軟件模塊可被實現相同功能的其它模塊代替,如插補模塊,使用DDA插補算法的插補模塊可被使用Bresenham算法的插補模塊替換。②支持網絡化調用。軟件模塊可通過網絡被其它系統的調度軟件模塊調用,為了滿足開放式數控系統對于可重構性的需求,軟件模塊信息庫中的軟件模塊可進行添加、刪除、替換等操作。因此,用戶可使用已有的軟件模塊迅速構建出自己的數控系統,大大減少了數控系統開發周期,同時也簡化了系統的開發流程。
3.1.2 任務序列庫
任務序列庫描述了怎樣完成操作者或其它系統請求的任務,它描述完成給定任務的所有信息,包括軟件模塊的調用序列以及與運動控制卡及控制器、操作者的通信等信息。例如,操作者請求了一個零件的加工任務,則任務序列為智能控制軟件模塊負責加工軌跡規劃,運動控制模塊負責生成運動指令,運動控制卡負責執行加工程序驅動機床完成加工。
3.1.3 任務管理調度子模塊
任務管理調度子模塊實現對軟件模塊的管理、調用、調度等功能,管理功能體現為對軟件模塊信息庫和任務序列庫的管理和維護。當系統中添加新的軟件模塊時,任務調度子模塊負責將該模塊的信息按照一定的格式添加到軟件模塊信息庫中,方便系統的調用,同時,將與新模塊有關的任務序列進行更新或添加到任務序列庫中。調用功能和調度功能是任務管理調度子模塊的核心功能,分別介紹如下。
(1)調用功能。當系統要完成某項任務時,首先從任務序列庫中查找完成該項任務所需的任務序列,然后從任務序列中提取需要執行的軟件模塊,執行該軟件模塊,完成所需任務。執行軟件模塊時,首先從軟件模塊信息庫中查找該軟件模塊的信息,包括模塊名、模塊位置、模塊輸入參數等信息,然后將模塊所需的信息傳入,軟件模塊接收到輸入參數后開始執行,最后將執行結果返回給任務調度管理子模塊,任務調度管理子模塊將執行結果輸出給其它模塊。以插補模塊為例對調用過程進行說明,如圖4所示。調度軟件模塊從軟件模塊信息庫中查找插補模塊信息后,將任務中的相關要求和參數傳給插補模塊,例如:模塊名為插補,模塊位置為10.98.24.2,表示該模塊位于IP地址為10.98.24.2的主機上,單位為mm,對精度的要求為(0.1,0.1,0.1),刀具路徑為從點(10,10,-10)到(15,15,-10)。插補模塊接收到這些信息后開始執行插補運算,并將運算后的插補刀具路徑返回給調度軟件,調度軟件模塊將刀具路徑信息再傳給運動控制模塊,運動控制模塊驅動機床完成加工任務。
(2)調度功能。調度軟件模塊除了負責管理各軟件模塊外,還要完成對各模塊的調度任務。任務調度分為兩部分:弱實時任務調度和強實時任務調度。強實時任務調度由運動控制卡完成,弱實時任務調度由調度軟件模塊完成。弱實時任務調度是二級調度,即由調度軟件模塊對數控系統弱實時任務的優先級進行動態控制,而當任務被加載到PC的處理器后仍由操作系統完成。
傳統的數控硬件系統其連接方式固定、封閉,不具備擴展性,且信息傳輸量小,不利于分布式控制,不能滿足開放式數控系統的要求。根據開放式數控系統的要求,硬件結構必須滿足以下幾個條件:①在結構上采用總線式,方便擴展;②采用基于PC的結構,以方便使用計算機領域內的最新的軟硬件技術;③系統配置方便;④具備與其它系統的通信能力,且能夠傳輸較大的信息量。根據這一要求,基于PC的數控系統是目前實現數控系統開放化比較現實的途徑,這種方法能夠利用計算機的軟硬件資源和PC機強大的數據處理能力,來實現數控系統的控制功能。同時,由于PC總線是一種開放性的總線,因此數控系統的硬件體系結構也就具有了一定的開放性、模塊化等特點。開放式數控系統的硬件平臺采用“工業PC+PMAC”的方式,以工業PC為主計算機,以PMAC運動控制卡為從計算機的主從式雙處理器結構。兩個處理器間通過PCI總線交換數據,共同管理整個數控系統。PMAC實現前臺實時運動控制,負責實時任務,如插補計算、速度規劃、實時刀具路徑生成等;工業PC機實現后臺管理及人機界面接口的各種操作,負責非實時任務,如HMI、任務規劃、仿真、故障診斷等。

▲圖4 軟件模塊調用過程

▲圖5 開放式數控系統界面

▲圖6 基于調度軟件的開放式數控系統硬件實物圖
為了驗證本文提出的系統結構,使用Visual C#開發了開放式數控系統的原型系統,其界面如圖5所示。硬件系統如圖6所示。實驗中采用SU-15M教學用三軸銑床,圖 6(a)顯示了實驗用機床實物圖,圖 6(b)顯示了機床控制接線圖,圖6(c)顯示了控制系統的接線圖。實驗結果表明,該系統結構是正確有效的。
(1)在分析當前數控系統缺點的基礎上,對開放式數控系統體系結構進行了需求分析,進一步提出了兼容STEP-NC標準的開放式數控系統的體系結構,并分別對硬件體系結構、軟件體系結構和數據模型進行了詳細闡述。
(2)提出了PC+PMAC運動控制卡的數控系統硬件體系結構,具有開放性好、柔性高、易于實現的優點,無需實時操作系統的支持,控制功能穩定、可靠,是目前較理想的開放式數控系統實施方案。
(3)提出了基于調度軟件的數控系統軟件體系結構,首先將數控系統各任務劃分成軟件模塊,在軟件模塊和運動控制卡之間構建調度軟件,調度軟件負責管理和協調各軟件模塊的運行以及它們與運動控制卡的通信,還負責數控系統與其它系統進行互操作等。調度軟件的引入,簡化了復雜系統的控制任務,有利于構建出更加穩定、可靠的軟件系統。
[1] 李斌.基于構架/構件復用的開放式數控系統研究[D].武漢:華中科技大學,2004.
[2] 游有鵬.開放式數控系統關鍵技術研究 [D].南京:南京航空航天大學,2001.
[3] 李宏偉.開放式數控系統分布式體系結構及其實現策略的研究[D].天津:天津大學,2005.
[4] 謝經明.基于現場總線的開放式數控系統研究[D].武漢:華中科技大學,2003.
[5] Z D Zhou, J M Xie, Y P Chen,et al.The Development of a Fieldbus-based Open-CNC System [J].International Journal of Advanced Manufacturing Technology,2004,23 (7-8):507-513.
[6] 陳良驥,李慧瑩.基于TwinCAT平臺的多軸開放體系結構設計與實現[J].機械制造,2013,51(3):6-9.
[7] X W Xu,S T Newman.Making CNC Machine Tools More Open,Interoperable and Intelligent-a Review of the Technologies[J].Computers in Industry,2006,57:141-152.
[8] Matthieu Rauch,RaphaelLaguionie,Jean-YvesHascoet.An Advanced STEP-NC Controller for Intelligent Machining Processes [J].Robotics and Computer-Integrated Manufacturing,2012,28:375-384.
[9] S H Suh,S U Cheon.A Framework for an Intelligent CNC and Data Model [J].International Journal of Advanced Manufacturing Technology,2002,19(10):727-735.
[10]周剛.基于STEP-NC的數控系統體系結構及其關鍵技術研究[D].杭州:浙江大學,2008.