簡介
統一數字控制語言簡稱統一數控語言。數控語言是一種專用程式設計語言,它既具有普通程式設計語言的特點,又具有專用性。它的基本運算單位是語句,語句具有說明型的和執行型的。語句的書寫是通過基本符號的各種合法組合來完成。數控語言僅僅適用於數控工具機的自動控制,不能用來作科學計算或其他目的。
功能代碼
字元與代碼
字元是用來組織、控制或表示數據的一些符號,如數字、字母、標點符號、數學運算符等。國際上廣泛採用兩種標準代碼:
1、ISO國際標準化組織標準代碼
2、EIA美國電子工業協會標準代碼
字
在數控加工程式中,字是指一系列按規定排列的字元,作為一個信息單元存儲、傳遞和操作。字是由一個英文字母與隨後的若干位十進制數字組成,這個英文字母稱為地址符。
如:“X2500”是一個字,X為地址符,數字“2500”為地址中的內容。(FANUC系統中,地址中的值如果帶小數點,表示是毫米單位,如果不帶小數點,表示是微米單位。如X2500. 表示X坐標2500毫米 X2500 表示X坐標2500微米)。
字的功能
組成程式段的每一個字都有其特定的功能含義,以下為詳細介紹。
1、順序號字N
順序號又稱程式段號或程式段序號。順序號位於程式段之首,由順序號字N和後續數字組成。其作用為校對、條件跳轉、固定循環等。使用時應間隔使用,如N10 N20 N30„„(程式號只是起標記作用,沒有實際的意義)
2、準備功能字G
準備功能字的地址符是G,又稱為G功能或G指令,是用於建立工具機或控制系統工作方式的一種指令。G00~G99。
3、尺寸字
尺寸字用於確定工具機上刀具運動終點的坐標位置。 其中,第一組 X,Y,Z,U,V,W,P,Q,R 用於確定終點的直線坐標尺寸;第二組 A,B,C,D,E 用於確定終點的角度坐標尺寸;第三組 I,J,K 用於確定圓弧輪廓的圓心坐標尺寸。在一些數控系統中,還可以用P指令暫停時間、用R指令圓弧的半徑等。
4、進給功能字F
進給功能字的地址符是F,又稱為F功能或F指令,用於指定切削的進給速度。對於車床,F可分為每分鐘進給和主軸每轉進給兩種,對於其它數控工具機,一般只用每分鐘進給。F指令在螺紋切削程式段中常用來指令螺紋的導程。
5、主軸轉速功能字S
主軸轉速功能字的地址符是S,又稱為S功能或S指令,用於指定主軸轉速。單位為r/min。
6、刀具功能字T
刀具功能字的地址符是T,又稱為T功能或T指令,用於指定加工時所用刀具的編號,如T01。對於數控車床,其後的數字還兼作指定刀具長度補償和刀尖半徑補償用,如T0101。
7、輔助功能字M
輔助功能字的地址符是M,後續數字一般為1~3位正整數,又稱為M功能或M指令,用於指定數控工具機輔助裝置的開關動作,如M00~M99。
程式格式
一個數控加工程式是若干個程式段組成的。程式段格式是指程式段中的字、字元和數據的安排形式。
1、程式開始符、結束符
程式開始符、結束符是同一個字元,ISO代碼中是%,EIA代碼中是EP,書寫時要單列段。
2、程式名
程式名有兩種形式:一種是英文字母O(%或P)和1~4位正整數組成;另一種是由英文字母開頭,字母數字多字元混合組成的程式名(如TEST1 等)。一般要求單列一段。
3、程式主體
程式主體是由若干個程式段組成的。每個程式段一般占一行。
4、程式結束
程式結束可以用M02或M30指令。一般要求單列一段。
加工程式的一般格式舉例:
% // 開始符
O2000 // 程式名
N10 G54 G00 X10.0 Y20.0 M03 S1000 // 程式主體
N20 G01 X60.0 Y30.0 F100 T02 M08
N30 X80.0
N200 M30 // 程式結束
% // 結束符
說明
數組說明
數組說明的形式是:RESRV/數組表
其中數組表是由以逗點分開的數組段組成數組段是由數組標識符,後面接一逗點,再跟以算術表達式或算術變數組成。
過程說明
過程說明的形式是包括過程首部、過程體、過程結束符
過程首部的形式是:過程標識符=MACRO/形參表;
過程體是:一系列語句;
過程結束符是:TERMAC;
形參表示形式可以是:(1)空;(2)形參表;(3)形參。
辭彙表等價說明
辭彙表等價說明的形式是:SYN/等價表
其中,等價表的形式是:
標識符,辭彙表字,標識符,辭彙表字,...,二標識符,辭彙表字。
標識符和辭彙表字構成一對,在以後源程式中如果出現某一對偶中的標識符,就表示那個標識符的一切作用都和其對偶中的辭彙表字一樣。
解釋程式
數控程式由一個個程式段組成,一個程式段由若干個指令字組成,每個指令字是控制數控系統的一個具體指令,它由指令字元 (地址符) 和數值組成。指令字和程式段分別如下圖所示。
文法分析
(1)詞法分析
詞法分析是數控程式解釋流程的第一個階段,其主要任務是從左到右逐個字元地讀入數控程式,對構成數控程式的字元流進行掃描和分解,從而識別出一個個單詞,用於語法分析。 這裡所謂的單詞是指邏輯上緊密相連的一組字元,這些字元具有集體含義,是最小的語法的單位。
(2)語法分析
語法分析的任務是在詞法分析的基礎上將單詞系列分解成各類語法短語 ,並判斷它們的組合是否是數控程式的正確句子。 語法分析所依據的是數控語言的語法規則 ,它是數控語言解釋程式的核心部分。
語法分析的工作原理是採用計算機編譯原理中的 LR(1) 分析法,其實現思想是對輸入符號串從左到右進行掃描,並將輸入符號逐個移入一個後進先出棧中,邊移入邊分析,一旦棧頂符號會呈串形成文法的某個句型的句柄時, (該句柄對應某個產生式的右部),就用該產生式的左部非終結符代替相應右部的符號串,這稱為一步歸約,重複這一過程直到歸約到棧中只剩下文法的開始符號時則為分析成功,即確認輸入串是該文法的一個句子。
(3)語義解釋
語義解釋的任務是將數控語言程式解釋成底層模組能夠識別的目標程式,它是數控語言解釋程式中具體實現各種數控語句功能的模組,目標程式的代碼格式由底層模組指定。
實現
數控語言解釋程式由詞法分析、語法分析、語義解釋、表格管理和出錯處理等部分組成,其結構如圖3 所示。詞法分析、語法分析和語義解釋前面已經介紹。表格管理的任務是將數控程式的各種信息保存在不同的表格里,並負責在解釋程式的各個階段查找有關表格。 出錯處理的任務是當發現數控程式的錯誤時,報告錯誤的性質和地點。
在實現過程中,用一個類將數控語言解釋的各個階段模組封裝起來,實現其總體功能,即把數控程式解釋成底層模組能夠識別的目標程式。