□ 李 麗 □ 房立金 □ 王國勛
1.沈陽城市建設(shè)學(xué)院 交通與機(jī)械工程系 沈陽 110167
2.東北大學(xué) 機(jī)械工程與自動(dòng)化學(xué)院 沈陽 110819
3.沈陽理工大學(xué) 機(jī)械工程學(xué)院 沈陽 110159
數(shù)控系統(tǒng)體系結(jié)構(gòu)是數(shù)控技術(shù)的關(guān)鍵技術(shù)之一。目前多數(shù)數(shù)控系統(tǒng)普遍存在一些缺點(diǎn):①系統(tǒng)硬件結(jié)構(gòu)封閉且硬件平臺(tái)缺乏柔性;②系統(tǒng)軟件不開放,可重構(gòu)性差;③在編程語言方面,仍然使用G/M代碼,它只包含刀具運(yùn)動(dòng)信息,不包含任何其它信息,無法與CAD/CAM實(shí)現(xiàn)集成,無法實(shí)現(xiàn)智能化,而且加工代碼與其它系統(tǒng)不兼容。為了解決這些缺點(diǎn),近年來,數(shù)控系統(tǒng)體系結(jié)構(gòu)的研究逐漸成為研究熱點(diǎn)。李斌[1]對(duì)基于構(gòu)件的開放式數(shù)控系統(tǒng)進(jìn)行了研究。游有鵬[2]、李宏偉[3]、謝經(jīng)明[4]、Z D Zhou[5]對(duì)基于現(xiàn)場(chǎng)總線的開放式數(shù)控系統(tǒng)進(jìn)行了研究。 陳良驥[6]等人對(duì)基于PC平臺(tái)研究了開放式系統(tǒng)的軟硬件體系結(jié)構(gòu)。X W Xu[7]提出了一種基于STEP-NC分布式支持互操作的數(shù)控系統(tǒng)體系結(jié)構(gòu)。Matthieu Rauch[8]等人針對(duì)智能制造過程提出了基于STEP-NC的控制器結(jié)構(gòu)。S H Suh[9]對(duì)智能數(shù)控系統(tǒng)的框架和數(shù)據(jù)模型進(jìn)行了研究。以上研究只針對(duì)數(shù)控系統(tǒng)本身體系結(jié)構(gòu),而未考慮開放式數(shù)控系統(tǒng)的復(fù)雜性問題。
隨著STEP-NC標(biāo)準(zhǔn)的制定和日益完善,基于STEP-NC的開放式數(shù)控系統(tǒng)能夠解決當(dāng)前數(shù)控系統(tǒng)所存在的問題[10],因此,研究基于STEP-NC的開放式數(shù)控系統(tǒng)對(duì)于數(shù)控技術(shù)的發(fā)展具有重要意義。筆者從數(shù)控系統(tǒng)硬件平臺(tái)、軟件結(jié)構(gòu)、加工數(shù)據(jù)模型3個(gè)方面進(jìn)行了深入研究,提出了一種既兼容STEP-NC標(biāo)準(zhǔn)、又基于調(diào)度軟件的數(shù)控系統(tǒng)體系結(jié)構(gòu),在滿足數(shù)控系統(tǒng)開放性需求的同時(shí),簡化了數(shù)控系統(tǒng)的開發(fā)任務(wù)。
STEP-NC(STandard for the Exchange of Product Model Data for Numeric Control),全稱為“數(shù)控領(lǐng)域的產(chǎn)品模型數(shù)據(jù)交換標(biāo)準(zhǔn)”,它是產(chǎn)品模型數(shù)據(jù)交換標(biāo)準(zhǔn)STEP (STandard for the Exchange of Product Model Data)標(biāo)準(zhǔn)向數(shù)控領(lǐng)域內(nèi)的擴(kuò)展。STEP-NC的目的是實(shí)現(xiàn)CAD/CAM與CNC系統(tǒng)之間,以及不同CNC系統(tǒng)之間的信息交換和共享。與G/M代碼不同,STEPNC是基于完整描述加工對(duì)象和現(xiàn)場(chǎng)加工過程的模型,包括零件信息描述、工件毛坯信息描述、刀具信息描述、加工操作和策略描述等。通過易于理解的、易于智能診斷和控制的描述方式,詳細(xì)而簡潔地描述零件信息及其制造過程。STEP-NC的出現(xiàn),從根本上改變了數(shù)控系統(tǒng)開放式、智能化發(fā)展的現(xiàn)狀,實(shí)現(xiàn)了CAD/CAM/CNC的信息集成。
使用G/M代碼的數(shù)控系統(tǒng)與上游CAD/CAM數(shù)據(jù)格式不兼容,信息只能實(shí)現(xiàn)從CAD/CAM到數(shù)控系統(tǒng)的單向流動(dòng),而且容易造成數(shù)據(jù)丟失,無法實(shí)現(xiàn)智能加工。而以STEP-NC作為數(shù)據(jù)模型的控制系統(tǒng)與上游CAD/CAM的STEP格式兼容,設(shè)計(jì)數(shù)據(jù)可無損地傳輸?shù)紺NC系統(tǒng),并且可實(shí)現(xiàn)數(shù)據(jù)的雙向交換,滿足智能化加工的信息需求。因此,對(duì)于開放式智能化的數(shù)控系統(tǒng),必須滿足對(duì)STEP-NC數(shù)據(jù)格式的兼容。
要實(shí)現(xiàn)數(shù)控系統(tǒng)真正的開放,必須在數(shù)控系統(tǒng)軟件、硬件和加工數(shù)據(jù)模型3個(gè)方面做到真正的開放,需滿足以下要求。
(1)系統(tǒng)軟件的結(jié)構(gòu)必須具有開放性,并且允許用戶通過較簡單的方法進(jìn)行二次開發(fā),以便用戶定制自己的特殊功能,同時(shí)可減輕設(shè)計(jì)負(fù)擔(dān),提高設(shè)計(jì)效率。
(2)在數(shù)據(jù)加工模型方面,必須使用一種新的加工數(shù)據(jù)模型代替?zhèn)鹘y(tǒng)的G/M代碼,實(shí)現(xiàn)CAD/CAM/CNC的無縫集成與數(shù)據(jù)共享,并且為實(shí)現(xiàn)數(shù)控系統(tǒng)的智能化加工奠定基礎(chǔ)。
(3)在數(shù)控系統(tǒng)的硬件平臺(tái)方面,目前比較可行的方法是基于PC平臺(tái)實(shí)現(xiàn),可以充分利用PC軟硬件發(fā)展的最新成果,同時(shí)具有一定的開放性。
▲圖1 STEP-NC數(shù)控系統(tǒng)層次結(jié)構(gòu)
▲圖2 基于調(diào)度軟件的數(shù)控系統(tǒng)層次結(jié)構(gòu)
根據(jù)開放式數(shù)控系統(tǒng)的需求及特點(diǎn),本文提出了既兼容STEP-NC標(biāo)準(zhǔn)、又基于調(diào)度軟件模塊的開放式數(shù)控系統(tǒng)的體系結(jié)構(gòu),與傳統(tǒng)數(shù)控系統(tǒng)不同,兼容STEP-NC標(biāo)準(zhǔn)的開放式數(shù)控系統(tǒng)相當(dāng)于增加了CAPP/CAM系統(tǒng)的部分功能,因此具有更多的模塊,且模塊與模塊之間相互關(guān)聯(lián),形成復(fù)雜的系統(tǒng)結(jié)構(gòu)。在這些模塊中,有強(qiáng)實(shí)時(shí)性模塊、弱實(shí)時(shí)性模塊和非實(shí)時(shí)性模塊,系統(tǒng)需對(duì)這些模塊進(jìn)行實(shí)時(shí)任務(wù)調(diào)度,以實(shí)現(xiàn)數(shù)控系統(tǒng)的功能,因此系統(tǒng)的控制任務(wù)更加繁重。為了減輕系統(tǒng)的控制任務(wù),簡化系統(tǒng)設(shè)計(jì),本文提出調(diào)度軟件的概念,負(fù)責(zé)系統(tǒng)中各模塊的實(shí)時(shí)調(diào)度與任務(wù)處理。
數(shù)控系統(tǒng)通??煞譃?個(gè)層次:智能控制層、運(yùn)動(dòng)控制層、設(shè)備控制層、物理設(shè)備層,如圖1所示。其中智能控制層和運(yùn)動(dòng)控制層包含插補(bǔ)、加工過程控制、智能控制、軌跡規(guī)劃等軟件模塊,設(shè)備控制層負(fù)責(zé)各運(yùn)動(dòng)軸伺服控制以及PLC、輸入/輸出控制等,物理設(shè)備層是指數(shù)控機(jī)床。
在軟件模塊層和設(shè)備控制層之間插入調(diào)度軟件模塊,使軟件模塊和設(shè)備控制層(運(yùn)動(dòng)控制模塊)、數(shù)控機(jī)床分離,其結(jié)構(gòu)示意如圖2所示。調(diào)度軟件模塊負(fù)責(zé)管理和調(diào)度所有軟件模塊,并通過運(yùn)動(dòng)控制模塊控制機(jī)床運(yùn)動(dòng)完成特定的任務(wù)。
調(diào)度軟件模塊的管理及調(diào)度功能的實(shí)現(xiàn)是通過3個(gè)子模塊實(shí)現(xiàn)的,即任務(wù)管理調(diào)度模塊、軟件模塊信息庫、任務(wù)序列庫。任務(wù)管理調(diào)度子模塊負(fù)責(zé)管理和調(diào)度各個(gè)軟件模塊;軟件模塊信息庫中保存了本系統(tǒng)中各個(gè)軟件模塊的信息,包括模塊名、模塊位置信息、輸入/輸出參數(shù)等信息;任務(wù)序列庫中保存了完成某個(gè)具體任務(wù)所需的所有軟件模塊和執(zhí)行順序信息。軟件模塊信息庫和任務(wù)序列庫都由任務(wù)管理調(diào)度模塊訪問和維護(hù),當(dāng)任務(wù)管理調(diào)度模塊接收到外部輸入的某一任務(wù)時(shí),從任務(wù)序列庫中提取出任務(wù)序列,再從軟件模塊信息庫中提取信息,執(zhí)行相應(yīng)的軟件模塊,完成給定任務(wù),如圖3所示。下面分別對(duì)3個(gè)子模塊進(jìn)行詳細(xì)論述。
3.1.1 軟件模塊信息庫
▲圖3 調(diào)度軟件功能結(jié)構(gòu)圖
軟件模塊信息庫中存儲(chǔ)了整個(gè)系統(tǒng)中所有軟件模塊的信息,為了便于查找與調(diào)用,每個(gè)模塊存儲(chǔ)格式為名稱、IP地址、輸入/輸出參數(shù)、功能說明等。每個(gè)軟件模塊都是獨(dú)立的,可能來自不同的供應(yīng)商,軟件模塊具有兩個(gè)特征:①可替換性。每個(gè)軟件模塊可被實(shí)現(xiàn)相同功能的其它模塊代替,如插補(bǔ)模塊,使用DDA插補(bǔ)算法的插補(bǔ)模塊可被使用Bresenham算法的插補(bǔ)模塊替換。②支持網(wǎng)絡(luò)化調(diào)用。軟件模塊可通過網(wǎng)絡(luò)被其它系統(tǒng)的調(diào)度軟件模塊調(diào)用,為了滿足開放式數(shù)控系統(tǒng)對(duì)于可重構(gòu)性的需求,軟件模塊信息庫中的軟件模塊可進(jìn)行添加、刪除、替換等操作。因此,用戶可使用已有的軟件模塊迅速構(gòu)建出自己的數(shù)控系統(tǒng),大大減少了數(shù)控系統(tǒng)開發(fā)周期,同時(shí)也簡化了系統(tǒng)的開發(fā)流程。
3.1.2 任務(wù)序列庫
任務(wù)序列庫描述了怎樣完成操作者或其它系統(tǒng)請(qǐng)求的任務(wù),它描述完成給定任務(wù)的所有信息,包括軟件模塊的調(diào)用序列以及與運(yùn)動(dòng)控制卡及控制器、操作者的通信等信息。例如,操作者請(qǐng)求了一個(gè)零件的加工任務(wù),則任務(wù)序列為智能控制軟件模塊負(fù)責(zé)加工軌跡規(guī)劃,運(yùn)動(dòng)控制模塊負(fù)責(zé)生成運(yùn)動(dòng)指令,運(yùn)動(dòng)控制卡負(fù)責(zé)執(zhí)行加工程序驅(qū)動(dòng)機(jī)床完成加工。
3.1.3 任務(wù)管理調(diào)度子模塊
任務(wù)管理調(diào)度子模塊實(shí)現(xiàn)對(duì)軟件模塊的管理、調(diào)用、調(diào)度等功能,管理功能體現(xiàn)為對(duì)軟件模塊信息庫和任務(wù)序列庫的管理和維護(hù)。當(dāng)系統(tǒng)中添加新的軟件模塊時(shí),任務(wù)調(diào)度子模塊負(fù)責(zé)將該模塊的信息按照一定的格式添加到軟件模塊信息庫中,方便系統(tǒng)的調(diào)用,同時(shí),將與新模塊有關(guān)的任務(wù)序列進(jìn)行更新或添加到任務(wù)序列庫中。調(diào)用功能和調(diào)度功能是任務(wù)管理調(diào)度子模塊的核心功能,分別介紹如下。
(1)調(diào)用功能。當(dāng)系統(tǒng)要完成某項(xiàng)任務(wù)時(shí),首先從任務(wù)序列庫中查找完成該項(xiàng)任務(wù)所需的任務(wù)序列,然后從任務(wù)序列中提取需要執(zhí)行的軟件模塊,執(zhí)行該軟件模塊,完成所需任務(wù)。執(zhí)行軟件模塊時(shí),首先從軟件模塊信息庫中查找該軟件模塊的信息,包括模塊名、模塊位置、模塊輸入?yún)?shù)等信息,然后將模塊所需的信息傳入,軟件模塊接收到輸入?yún)?shù)后開始執(zhí)行,最后將執(zhí)行結(jié)果返回給任務(wù)調(diào)度管理子模塊,任務(wù)調(diào)度管理子模塊將執(zhí)行結(jié)果輸出給其它模塊。以插補(bǔ)模塊為例對(duì)調(diào)用過程進(jìn)行說明,如圖4所示。調(diào)度軟件模塊從軟件模塊信息庫中查找插補(bǔ)模塊信息后,將任務(wù)中的相關(guān)要求和參數(shù)傳給插補(bǔ)模塊,例如:模塊名為插補(bǔ),模塊位置為10.98.24.2,表示該模塊位于IP地址為10.98.24.2的主機(jī)上,單位為mm,對(duì)精度的要求為(0.1,0.1,0.1),刀具路徑為從點(diǎn)(10,10,-10)到(15,15,-10)。插補(bǔ)模塊接收到這些信息后開始執(zhí)行插補(bǔ)運(yùn)算,并將運(yùn)算后的插補(bǔ)刀具路徑返回給調(diào)度軟件,調(diào)度軟件模塊將刀具路徑信息再傳給運(yùn)動(dòng)控制模塊,運(yùn)動(dòng)控制模塊驅(qū)動(dòng)機(jī)床完成加工任務(wù)。
(2)調(diào)度功能。調(diào)度軟件模塊除了負(fù)責(zé)管理各軟件模塊外,還要完成對(duì)各模塊的調(diào)度任務(wù)。任務(wù)調(diào)度分為兩部分:弱實(shí)時(shí)任務(wù)調(diào)度和強(qiáng)實(shí)時(shí)任務(wù)調(diào)度。強(qiáng)實(shí)時(shí)任務(wù)調(diào)度由運(yùn)動(dòng)控制卡完成,弱實(shí)時(shí)任務(wù)調(diào)度由調(diào)度軟件模塊完成。弱實(shí)時(shí)任務(wù)調(diào)度是二級(jí)調(diào)度,即由調(diào)度軟件模塊對(duì)數(shù)控系統(tǒng)弱實(shí)時(shí)任務(wù)的優(yōu)先級(jí)進(jìn)行動(dòng)態(tài)控制,而當(dāng)任務(wù)被加載到PC的處理器后仍由操作系統(tǒng)完成。
傳統(tǒng)的數(shù)控硬件系統(tǒng)其連接方式固定、封閉,不具備擴(kuò)展性,且信息傳輸量小,不利于分布式控制,不能滿足開放式數(shù)控系統(tǒng)的要求。根據(jù)開放式數(shù)控系統(tǒng)的要求,硬件結(jié)構(gòu)必須滿足以下幾個(gè)條件:①在結(jié)構(gòu)上采用總線式,方便擴(kuò)展;②采用基于PC的結(jié)構(gòu),以方便使用計(jì)算機(jī)領(lǐng)域內(nèi)的最新的軟硬件技術(shù);③系統(tǒng)配置方便;④具備與其它系統(tǒng)的通信能力,且能夠傳輸較大的信息量。根據(jù)這一要求,基于PC的數(shù)控系統(tǒng)是目前實(shí)現(xiàn)數(shù)控系統(tǒng)開放化比較現(xiàn)實(shí)的途徑,這種方法能夠利用計(jì)算機(jī)的軟硬件資源和PC機(jī)強(qiáng)大的數(shù)據(jù)處理能力,來實(shí)現(xiàn)數(shù)控系統(tǒng)的控制功能。同時(shí),由于PC總線是一種開放性的總線,因此數(shù)控系統(tǒng)的硬件體系結(jié)構(gòu)也就具有了一定的開放性、模塊化等特點(diǎn)。開放式數(shù)控系統(tǒng)的硬件平臺(tái)采用“工業(yè)PC+PMAC”的方式,以工業(yè)PC為主計(jì)算機(jī),以PMAC運(yùn)動(dòng)控制卡為從計(jì)算機(jī)的主從式雙處理器結(jié)構(gòu)。兩個(gè)處理器間通過PCI總線交換數(shù)據(jù),共同管理整個(gè)數(shù)控系統(tǒng)。PMAC實(shí)現(xiàn)前臺(tái)實(shí)時(shí)運(yùn)動(dòng)控制,負(fù)責(zé)實(shí)時(shí)任務(wù),如插補(bǔ)計(jì)算、速度規(guī)劃、實(shí)時(shí)刀具路徑生成等;工業(yè)PC機(jī)實(shí)現(xiàn)后臺(tái)管理及人機(jī)界面接口的各種操作,負(fù)責(zé)非實(shí)時(shí)任務(wù),如HMI、任務(wù)規(guī)劃、仿真、故障診斷等。
▲圖4 軟件模塊調(diào)用過程
▲圖5 開放式數(shù)控系統(tǒng)界面
▲圖6 基于調(diào)度軟件的開放式數(shù)控系統(tǒng)硬件實(shí)物圖
為了驗(yàn)證本文提出的系統(tǒng)結(jié)構(gòu),使用Visual C#開發(fā)了開放式數(shù)控系統(tǒng)的原型系統(tǒng),其界面如圖5所示。硬件系統(tǒng)如圖6所示。實(shí)驗(yàn)中采用SU-15M教學(xué)用三軸銑床,圖 6(a)顯示了實(shí)驗(yàn)用機(jī)床實(shí)物圖,圖 6(b)顯示了機(jī)床控制接線圖,圖6(c)顯示了控制系統(tǒng)的接線圖。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)結(jié)構(gòu)是正確有效的。
(1)在分析當(dāng)前數(shù)控系統(tǒng)缺點(diǎn)的基礎(chǔ)上,對(duì)開放式數(shù)控系統(tǒng)體系結(jié)構(gòu)進(jìn)行了需求分析,進(jìn)一步提出了兼容STEP-NC標(biāo)準(zhǔn)的開放式數(shù)控系統(tǒng)的體系結(jié)構(gòu),并分別對(duì)硬件體系結(jié)構(gòu)、軟件體系結(jié)構(gòu)和數(shù)據(jù)模型進(jìn)行了詳細(xì)闡述。
(2)提出了PC+PMAC運(yùn)動(dòng)控制卡的數(shù)控系統(tǒng)硬件體系結(jié)構(gòu),具有開放性好、柔性高、易于實(shí)現(xiàn)的優(yōu)點(diǎn),無需實(shí)時(shí)操作系統(tǒng)的支持,控制功能穩(wěn)定、可靠,是目前較理想的開放式數(shù)控系統(tǒng)實(shí)施方案。
(3)提出了基于調(diào)度軟件的數(shù)控系統(tǒng)軟件體系結(jié)構(gòu),首先將數(shù)控系統(tǒng)各任務(wù)劃分成軟件模塊,在軟件模塊和運(yùn)動(dòng)控制卡之間構(gòu)建調(diào)度軟件,調(diào)度軟件負(fù)責(zé)管理和協(xié)調(diào)各軟件模塊的運(yùn)行以及它們與運(yùn)動(dòng)控制卡的通信,還負(fù)責(zé)數(shù)控系統(tǒng)與其它系統(tǒng)進(jìn)行互操作等。調(diào)度軟件的引入,簡化了復(fù)雜系統(tǒng)的控制任務(wù),有利于構(gòu)建出更加穩(wěn)定、可靠的軟件系統(tǒng)。
[1] 李斌.基于構(gòu)架/構(gòu)件復(fù)用的開放式數(shù)控系統(tǒng)研究[D].武漢:華中科技大學(xué),2004.
[2] 游有鵬.開放式數(shù)控系統(tǒng)關(guān)鍵技術(shù)研究 [D].南京:南京航空航天大學(xué),2001.
[3] 李宏偉.開放式數(shù)控系統(tǒng)分布式體系結(jié)構(gòu)及其實(shí)現(xiàn)策略的研究[D].天津:天津大學(xué),2005.
[4] 謝經(jīng)明.基于現(xiàn)場(chǎng)總線的開放式數(shù)控系統(tǒng)研究[D].武漢:華中科技大學(xué),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平臺(tái)的多軸開放體系結(jié)構(gòu)設(shè)計(jì)與實(shí)現(xiàn)[J].機(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的數(shù)控系統(tǒng)體系結(jié)構(gòu)及其關(guān)鍵技術(shù)研究[D].杭州:浙江大學(xué),2008.