CNC系統的硬件開放性結構表現在如下幾方面:a.組成系統的基本單元都是工業級模塊,互相之間的硬件接口都符合國際通行標準,具有很好的兼容性和互換性,個別模塊的增減和更換不涉及系統的其他部分;b.IPC和PC完全兼容,使基于IPC的CNC系統能充分利用PC高度開放性的資源,所謂CNC系統的開放性是建立在PC開放性基礎上的;c.PLC的內部變量、輸入和輸出變量全部對串行口和用戶開放,變量之間的邏輯關系可根據不同的需要在線獨立編程。具有開放性結構的CNC系統軟件為了保證控制系統的開放性,將整個控制程序分為兩層:內核層基于實時控制基本硬件單元的軟件模塊,對內控制硬件,對外輸出和接受數據,模塊之間互相獨立;外殼層是聯系內核層各個模塊的紐帶,硬件單元的工作任務由其分配和調度。內外層之間的信息數據通過如下系統公共數組變量傳遞:T內軌跡的進給增量L;砂輪中心位置絕對坐標計數器N;工作臺絲桿螺母反向間隙常數J;PLC輸入繼電器開關量X;PLC輸出繼電器開關量Y;PLC輔助輸出繼電器開關量M;鍵盤操作面板開關量K;曲線軌跡文件的文件名數組F。以上L,N,J為32位長整型數組;F為字符串數組;X,Y,M和K為布爾型數組。
外殼層外殼層即主程序只涉及實時性要求不高的任務,主要由以下兩大模塊組成:CRT顯示模塊。其主要功能是在CRT上以圖形和文字的形式動態顯示各個公共數組單元當前的狀態,即仿真LED計數器和工件動畫對應N,仿真的各種顏色指示燈對應X和Y,仿真的操作面板按鈕對應K等。分析命令調度任務模塊。其主要功能是掃描數組K的各個單元代表的鍵盤操作命令,根據K(i)的值去分配或撤銷任務,分配任務時使有關數組為給定的非零值,撤銷任務時使有關數組為零值。內核層內核層全部由獨立于主程序的硬件觸發中斷服務子程序組成,主要有以下三個模塊:插補器輸出模塊。位置控制器每隔T申請中斷一次。PLC通信模塊。相對于CPU,X和Y是只讀存儲器,M是只寫存儲器;相對于PLC,X和M是只讀存儲器,Y是只寫存儲器;因此,通信中斷程序的具體任務就是PLC內的輸入、輸出開關量拷貝到CPU中的X和Y數組,將CPU內的M數組值拷貝到PLC中的輔助繼電器,即定時動態刷新X,Y和M數組。鍵盤命令模塊。該模塊的任務是將鍵盤的開關狀態動態地映射到K數組中,形成可執行命令。和前兩個模塊的不同之處在于該中斷不是定時的,而是由鍵盤按鍵狀態變化觸發的。重新定義PC鍵盤以傳感器方式工作,一旦發生中斷,服務程序根據預先的定義,將對應的開關狀態轉換為對應的K(i)值。K(i)的取值根據定義分為跟隨器和觸發器兩類。
CNC系統實時性的保證,系統的工作循環周期系統的硬件一旦確定,控制過程的實時性是靠執行硬件中斷保證的。整個系統的工作循環周期為T。為保證實時性,在理想情況下,要求CNC系統在T內完成如下工作:執行一次插補并輸出pi和ni的子程序,設所需時間為T1;執行一次PLC通信程序,刷新X,Y和M,設所需時間為T2;執行一次鍵盤通信程序,刷新K,設所需時間為T3;主程序分析命令、調度任務一次,刷新一次CRT顯示屏,設所需時間為T4。顯然,系統對實時性的要求應滿足T1+T2+T3+T4