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