基于PC的CNC軟件的設計與實現(xiàn)(一)
1.1軟件的總體結(jié)構(gòu)
CNC系統(tǒng)常常作為一個獨立的過程控制單元用于工業(yè)自動化生產(chǎn)過程中,因此它的系統(tǒng)軟件必須完成管理和控制兩大功能。CNC系統(tǒng)是由軟件和硬件組成的,硬件為軟件的運行提供支持環(huán)境。由于硬件和軟件在邏輯上是等價的,由硬件完成的工作原則上也可以由軟件完成。因此軟件的結(jié)構(gòu)取決于軟件和硬件的分工,也取決于軟件本身的工作性質(zhì)。根據(jù)目前該系統(tǒng)的設計,下位機只負責位置伺服控制,因此上位機負責其余的管理工作和控制工作。
數(shù)控軟件的總體結(jié)構(gòu)可以設計成六層,即輸入層,譯碼層,刀補層,協(xié)調(diào)層,監(jiān)控層,設備驅(qū)動層。輸入層是數(shù)控程序。譯碼層將數(shù)控指令解釋成為數(shù)控系統(tǒng)的內(nèi)部數(shù)據(jù)格式。刀補層進行刀具補償。協(xié)調(diào)層將指令分解到數(shù)控系統(tǒng)的各個功能部件。如數(shù)控指令翻譯、輔助功能設備控制和運動控制。監(jiān)控層對于系統(tǒng)當前的狀態(tài)和當前指令的合法性進行檢驗。設備驅(qū)動層直接實現(xiàn)對系統(tǒng)功能部件的控制。
在該數(shù)控系統(tǒng)的軟件中,采用了前后臺型的結(jié)構(gòu)形式,前臺程序即實時中斷程序完成全部的實時功能(包括協(xié)調(diào)層、監(jiān)控層、設備驅(qū)動層),主要是插補功能和系統(tǒng)診斷功能、I/O處理等。后臺程序的主要功能是插補前的準備功能及調(diào)度管理(包括輸入層、譯碼層、刀補層),具體地講,是數(shù)控程序輸入、譯碼、刀具補償、顯示及上述任務之間的調(diào)度管理功能。后臺程序是一個循環(huán)運行程序,在運行過程中,前臺程序(中斷服務程序)不斷插入,共同完成零件加工任務。而位置伺服的任務主要由下位機完成。
在譯碼層和刀補層中,我們采用多任務調(diào)度的方式協(xié)調(diào)系統(tǒng)的工作,進行優(yōu)化后可以最充分地利用系統(tǒng)的資源。加工程序由上位機進行譯碼、刀具補償、速度處理后,得到刀具中心的插補指令數(shù)據(jù),上位機將這些插補指令數(shù)據(jù)和其它的指令數(shù)據(jù)以固定格式存放于一緩沖區(qū)中,每次中斷發(fā)生時,上位機根據(jù)這些指令數(shù)據(jù)進行相應的處理,如果存在插補指令則實時計算出插補數(shù)據(jù),并且送入下位機,下位機從緩沖區(qū)根據(jù)這些數(shù)據(jù)控制相應軸的電機動作。當上位機中的一幀指令數(shù)據(jù)被讀完后,在插補間隙自動計算出新的插補指令數(shù)據(jù),填入緩沖區(qū)。
數(shù)控軟件總體結(jié)構(gòu)圖
在上位機的內(nèi)存中設置若干個插補緩沖區(qū),用標志字指示當前數(shù)據(jù)塊的位置,引導下位機讀取當前指令數(shù)據(jù)。當下位機進行控制時,上位機不斷進行預插補計算,直至所有插補緩沖區(qū)填滿為止,當接收到下位機的中斷信號后,上位機進行實時的插補計算,并且將數(shù)據(jù)送到下位機。采用這樣方式能夠最充分地利用上位機CPU的時間,真正實現(xiàn)并行實時工作。
1.2軟件的具體實現(xiàn)方法
1.2.1軟件的運行環(huán)境和開發(fā)環(huán)境
采用Microsoft Windows 3.1作為開發(fā)環(huán)境,采用Borland C++ 3.1作為編程語言。
1.2.2具體實現(xiàn)方法
啟動畫面的修改
在Windows啟動時,會出現(xiàn)一幅帶有Microsoft標志的啟動畫面,但作為專用數(shù)控系統(tǒng),我們希望能用自己的啟動畫面代替該啟動畫面,顯示具有數(shù)控系統(tǒng)標志的啟動畫面。
文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。