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