淺談基于CNC 的軟PLC 虛擬機(jī)中元件庫(kù)的研究論文
0 引言
數(shù)控是用數(shù)字信息對(duì)機(jī)械運(yùn)動(dòng)和自動(dòng)化加工過(guò)程進(jìn)行控制的技術(shù),是現(xiàn)代國(guó)家制造業(yè)信息化水平和國(guó)際競(jìng)爭(zhēng)能力的象征,已有50 多年的發(fā)展歷史。如今,隨著市場(chǎng)競(jìng)爭(zhēng)日趨激烈,被加工零件的精益求精及微型計(jì)算機(jī)的迅猛發(fā)展,軟PLC 發(fā)展成為進(jìn)一步提高數(shù)控技術(shù)、實(shí)現(xiàn)數(shù)控系統(tǒng)開(kāi)放化的重要手段。軟PLC 能夠充分利用工業(yè)控制計(jì)算機(jī)( IPC) 或嵌入式計(jì)算機(jī)( EPC) 的硬件和軟件資源,改變傳統(tǒng)硬件PLC繁瑣、呆板的缺點(diǎn),全部用軟件靈活地來(lái)實(shí)現(xiàn)數(shù)控功能。
1 軟PLC 虛擬機(jī)系統(tǒng)
在數(shù)控機(jī)床運(yùn)行過(guò)程中,PLC 是機(jī)床本體與數(shù)控裝置之間的橋梁。它根據(jù)CNC 內(nèi)部標(biāo)志以及機(jī)床的各控制開(kāi)關(guān)、檢測(cè)元件、運(yùn)行部件的狀態(tài),按照程序設(shè)定的控制邏輯,完成對(duì)刀庫(kù)運(yùn)動(dòng)、換刀機(jī)構(gòu)、冷卻液等的控制功能。
1. 1 軟PLC
軟PLC 采取基于虛擬機(jī)的解決方案,分為開(kāi)發(fā)系統(tǒng)和運(yùn)行系統(tǒng)兩部分。開(kāi)發(fā)系統(tǒng)實(shí)際上就是編程器,完成調(diào)試和編譯工作。運(yùn)行系統(tǒng)是軟PLC 的核心,完成輸入處理、程序執(zhí)行、輸出處理等工作。
1. 2 軟PLC 虛擬機(jī)
軟PLC 虛擬機(jī)是相對(duì)我們平常所用的實(shí)際的計(jì)算機(jī)而言的一個(gè)概念,它是一個(gè)假想的模擬實(shí)際計(jì)算機(jī)進(jìn)行工作的軟件系統(tǒng),由編譯器、解釋執(zhí)行器、元件庫(kù)和管理模塊組成,可以完成對(duì)圖文件的編譯、中間代碼生成和解釋執(zhí)行,對(duì)PLC 文件的加載和執(zhí)行。其中,元件庫(kù)提供了梯形圖元件的相關(guān)信息,作為一個(gè)單獨(dú)的模塊可動(dòng)態(tài)升級(jí),可根據(jù)用戶(hù)的需要進(jìn)行裁減。這種架構(gòu)給PLC 虛擬機(jī)帶來(lái)了極大的`靈活性和可擴(kuò)展型,是數(shù)控系統(tǒng)實(shí)現(xiàn)開(kāi)放化的關(guān)鍵技術(shù)。
2 軟PLC 中元件庫(kù)模塊的研究
2. 1 元件及元件庫(kù)
梯形圖中的觸點(diǎn)、線圈和用方框表示的功能塊,把這些繪圖元素叫做“元件”。由于“元件”在梯形圖中作為梯形圖的繪圖元素,因此元件中包括其所具有的自身參數(shù)( 輸入?yún)?shù)、輸出參數(shù)) 和功能函數(shù)( 邏輯行為) 。
所有的元件按照一定的分類(lèi)規(guī)則組合在一起,稱(chēng)元件的組合為元件庫(kù)。元件庫(kù)是軟PLC 虛擬機(jī)中獨(dú)立的模塊,包含元件的繪圖信息和行為信息,提供了一組對(duì)外訪問(wèn)的接口,其它模塊通過(guò)這些接口獲取希望獲得的信息。
2. 2 元件庫(kù)的數(shù)據(jù)結(jié)構(gòu)
由于標(biāo)準(zhǔn)中規(guī)定的元件數(shù)量較多,為了便于信息查找,可對(duì)其建模過(guò)程采用按類(lèi)型分組的策略,功能相近的元件分在同一個(gè)元件組中,采用的數(shù)據(jù)結(jié)構(gòu)是鏈表。每個(gè)元件庫(kù)包含一個(gè)元件組鏈表,該鏈表的結(jié)點(diǎn)為元件組的信息,每個(gè)元件組又包含一個(gè)元件鏈表,結(jié)點(diǎn)為元件。2. 3 開(kāi)發(fā)語(yǔ)言及編程工具的選擇
開(kāi)發(fā)元件庫(kù),可以選擇當(dāng)今業(yè)界流行的C + + 語(yǔ)言,C + + 是C 的派生,是C 的超集,是一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言( Object - Oriented Programming Language,OOPL) ,具有封裝性、繼承性、多態(tài)性等獨(dú)到之處,使程序結(jié)構(gòu)更加清晰,更易于擴(kuò)充和維護(hù),更加靈活,程序設(shè)計(jì)者能更好地理解和管理龐大的復(fù)雜程序。
3 標(biāo)準(zhǔn)元件庫(kù)的創(chuàng)建
3. 1 實(shí)現(xiàn)原則
元件庫(kù)創(chuàng)建的過(guò)程中,采用了C + + 標(biāo)準(zhǔn)程序庫(kù),提供了容器和泛性算法。比如: 實(shí)現(xiàn)元件庫(kù)模型中的實(shí)體類(lèi)時(shí),使用了標(biāo)準(zhǔn)庫(kù)中提供的元素,包括pair、wstring 等類(lèi)型和list、vector 等容器,直接調(diào)用容器類(lèi)提供的成員函數(shù),不但避免了自己設(shè)計(jì)鏈表、動(dòng)態(tài)數(shù)組等數(shù)據(jù)結(jié)構(gòu)容易產(chǎn)生的錯(cuò)誤,而且對(duì)軟件的可靠性有了很大的提高,大大提高了開(kāi)發(fā)效率和程序質(zhì)量。
3. 2 元件庫(kù)的組類(lèi)
元件的信息分成兩部分描述。一部分為靜態(tài)信息,包括繪圖信息和參數(shù)信息,抽象出元件基類(lèi)CBaseUnit,具體的元件類(lèi)都繼承自元件基類(lèi),例如元件ID、元件大小、元件名稱(chēng)和參數(shù)表等屬性的初始化和描述; 另一部分為動(dòng)態(tài)信息,也就是元件的行為信息,抽象出行為抽象基類(lèi)CDictate,具體元件行為的描述都繼承自該類(lèi),例如純虛函數(shù)Run。通過(guò)兩部分信息結(jié)合,完成對(duì)元件描述和類(lèi)型聲明。
由于元件較多,所以采取了分組策略,將標(biāo)準(zhǔn)中規(guī)定的功能相關(guān)的元件放在一組當(dāng)中,產(chǎn)生元件組。對(duì)元件組類(lèi)的聲明可以如下:
class CUnitGroup
{
public:
CUnitGroup( ) ;
virtual ~ CUnitGroup( ) ;
void AddUnit ( CBaseUnit * pUnit) ; / /向元件組中添加元件
成員函數(shù)定義略……
private:
unsigned int m_nID; / /組ID
std: : wstring m_szName; / /組名稱(chēng)
std: : list < CBaseUnit* > Units m_units; / /元件
組中包含元件鏈表
} ;
元件組實(shí)例對(duì)象可以通過(guò)調(diào)用AddUnit 成員函數(shù)向元件組添加元件,使得元件組中成員變量鏈表的節(jié)點(diǎn)是元件對(duì)象的指針,對(duì)元件的操作可通過(guò)遍歷元件組來(lái)實(shí)現(xiàn)。
3. 3 標(biāo)準(zhǔn)元件庫(kù)的實(shí)現(xiàn)
標(biāo)準(zhǔn)元件庫(kù)中共包括觸點(diǎn)組、線圈組、程序控制組、計(jì)數(shù)器指令組、定時(shí)器指令組、數(shù)學(xué)運(yùn)算組、邏輯運(yùn)算組等多個(gè)元件組,將標(biāo)準(zhǔn)中的元件按功能分配到相應(yīng)的元件組中。在元件庫(kù)中需要將具體的元件組組織起來(lái),并且通過(guò)公有接口提供給系統(tǒng)中的其它模塊。針對(duì)元件庫(kù)的功能出元件庫(kù)基類(lèi)CBaseUnitTempl,在該類(lèi)中包含成員變量std: : list < CUnitGroup *> namedUnitGroups,該成員變量把元件組的指針作為鏈表的節(jié)點(diǎn),可以把元件組對(duì)象的指針存放在該鏈表對(duì)象namedUnitGroups 中。此外,該基類(lèi)主要包含了一組虛函數(shù),標(biāo)準(zhǔn)元件庫(kù)繼承該基類(lèi),并對(duì)繼承的接口進(jìn)行重寫(xiě),元件庫(kù)中接口按功能主要分為以下4類(lèi):
( 1) 元件庫(kù)信息相關(guān)接口,包括獲取元件庫(kù)ID號(hào)、是否是標(biāo)準(zhǔn)元件庫(kù)等接口。
( 2) 元件組信息相關(guān)接口,包括獲取元件組名稱(chēng)、各個(gè)元件組中元件的數(shù)量、創(chuàng)建新的元件組等接口。
( 3) 判斷元件類(lèi)型的接口,包括判斷元件是否為直線、是否為觸點(diǎn)等接口。
( 4) 元件信息相關(guān)的接口,包括獲取元件參數(shù)類(lèi)型、獲取元件大小、獲取元件名稱(chēng)等接口。
4 總結(jié)
開(kāi)放式數(shù)控系統(tǒng)是當(dāng)今數(shù)控技術(shù)的發(fā)展方向,軟PLC 因具有更好的數(shù)據(jù)處理能力、網(wǎng)絡(luò)通訊能力和開(kāi)放的體系結(jié)構(gòu),將傳統(tǒng)的硬PLC 替而代之。筆者以FANUC 數(shù)控系統(tǒng)作為硬件平臺(tái),對(duì)軟PLC 技術(shù)進(jìn)行分析,尤其是元件庫(kù)模塊進(jìn)行了研究設(shè)計(jì),提出了新的解決方案,解決了傳統(tǒng)封閉式數(shù)控系統(tǒng)兼容性差、功能不易擴(kuò)展等問(wèn)題,提高數(shù)控系統(tǒng)的開(kāi)放性、降低成本。
【淺談基于CNC 的軟PLC 虛擬機(jī)中元件庫(kù)的研究論文】相關(guān)文章:
淺談基于PLC 在懸掛輸送鏈同步控制中的應(yīng)用論文10-26
淺談PLC的前景和未來(lái)論文05-01
淺談基于移動(dòng)搜索的網(wǎng)頁(yè)設(shè)計(jì)優(yōu)化研究論文10-21
淺談基于CATIA 的方程曲線設(shè)計(jì)建模研究論文10-25
嵌入式系統(tǒng)中軟外設(shè)的研究論文11-04
淺談基于Web 服務(wù)的高校系統(tǒng)集成的研究論文10-21
淺談基于SOA架構(gòu)的客運(yùn)調(diào)度系統(tǒng)的研究與實(shí)現(xiàn)論文10-15