數控語言是一種專用程式設計語言,它既具有普通程式設計語言的特點,又具有專用性。它的基本運算單位是語句,語句具有說明型的和執行型的。語句的書寫是通過基本符號的各種合法組合來完成。
數控語言僅僅適用於數控工具機的自動控制,不能用來作科學計算或其他目的。
數控語言主要組成部分:說明、語句和表達式。
說明
數組說明
數組說明的形式是:
形式 | RESRV/數組表 |
其中數組表是由以逗點分開的數組段組成數組段是由數組標識符,後面接一逗點,再跟以算術表達式或算術變數組成。
過程說明
過程說明的形式是:
形式 | 過程首部 |
過程體 | |
過程結束符 |
過程首部的形式是:過程標識符=MACRO/形參表
過程體是:一系列語句
過程結束符是:TERMAC
形參表示形式可以是:(1)空;(2)形參表;(3)形參
辭彙表等價說明
辭彙表等價說明的形式是:
形式 | SYN/等價表 |
其中,等價表的形式是:
標識符,辭彙表字,標識符,辭彙表字,...,二標識符,辭彙表字。
標識符和辭彙表字構成一對,在以後源程式中如果出現某一對偶中的標識符,就表示那個標識符的一切作用都和其對偶中的辭彙表字一樣。
刀具補償計算說明
(1)刀具規格說明:
形式 | CUTTER/r |
CUTTER是刀具說明符,r是刀具半徑值。
(2)公差規格說明:
形式 | 公差說明/數 |
其中公差說明可以是INTOL、UOTTOL、TOLER,他們分別表示允許刀具切割位置是落在工件裡面、外面的公差和重新建立公差,數是允許的最大公差數。
語句
賦值語句
賦值語句的形式是:
形式1 | 變數=算術表達式 |
形式2 | 變數=幾何表達式 |
其中,算術表達式與通常算術表達式類似,而幾何表達式是這個語言的獨特部分,它在後面單獨列出。
刀具定位語句
(1)明顯定位語句
形式1 | 定位動詞/定位方式 |
形式2 | GODLTA/△X△Y |
其中,定位動詞有GOTO、FROM,表示刀具控制點走到那個位置和從那一個位置開始。
定位方式是:①幾何表達式②幾何變數③數,指出運動的位置
形式2指出刀具控制點在原來坐標、位置上各增加2個改變數△x 和△y,增加改變數後的新坐標位置是x+△x,y+△y。
(2)開始連續運動語句
形式1 | GO/限定幾何表達式 |
形式2 | GO/限定幾何表達式,限定幾何表達式 |
限定幾何表達式是下列形式之一:
①刀具接觸說明符 幾何變數
②刀具接觸說明符 幾何表達式
③幾何變數
④幾何表達式
刀具接觸說明符是下列形式之一:
①TO 表示刀具與某線切於內側
②ON 表示刀具在曲線上
③PAST 表示刀具與某線切於外側
④TANTO 表示刀具與某線相切
(3)中間連續運動語句
形式 | 連續運動字/傳動曲線 |
其中,連續運動字為:
GO LET (左轉) GO RGT(右轉)
GO UP(向上) GO DOWN (向下)
傳動曲線是幾何變數或幾何表達式之一
(4)結束運動語句
它的形式與中間連續運動語句一樣,只是它的後面除了FINI語句之外再沒有別的語句。FINI表示整個程式的結束。
時序控制語句
(1)算術轉向語句
形式1 | JUMPTO/標號 |
形式2 | IF(E) 標號1,標號2,標號3 |
形式1:表示遇到這樣的語句的時候,程式無條件地跳到標號所指地語句去
形式2:表示算術表達式E執行完之後,由其值決定轉移的路線。如果E<0,則轉到標號1;如果E=0,轉到標號2;如果E>0,轉到標號3。
(2)結束語句
形式 | FINI |
當遇到這個語句時,整個程式結束。
過程語句
形式1 | CALL/過程標識符 |
形式2 | CALL/過程標識符,形參=實參,...,形參=實參 |
其中,第2種形式的形參是過程說明中定義的形參、實參是變數、數或辭彙表中的字。
過程語句是調用同名的過程說明。
輸入/輸出語句
形式 | 輸入/輸出控制字 |
/設備說明符,I-O表 |
其中輸入輸出控制字是READ(讀)、PUNCH(穿孔)、PRINT(列印),是用來指明譯備種類,設備說明符指出設備編號,一種設備可以有幾個編號,如同是印表機可以有三台,那它就有三個不同編號。I-O表表示輸入輸出變數標識符,也可用表示全部輸入輸出。
表達式
算術表達式
算術表達式與 類似。
幾何表達式
形式 | 幾何形式/參數表 |
幾何形式有:
POINT(點),PLANE(平面),CIRCLE(圓),LINE(線),CYLNDR(圓柱),ELLIPS(橢圓),HYPERS(雙曲),CONE(圓錐),SPHRE(球面),QADRIC(二次曲線)等
參數表是:
數;變數;參數表,修飾字;修飾字,參數表;參數表,參數表;(表達式)等
幾何形式表示幾何元素是什麼類型,由參數表給出幾何形式的位置、大小,以和及其它幾何元素之間的關係。修飾字表示幾何元素和它們之間的關係及其相對位置。
數控語言解釋程式
數控程式由一個個程式段組成,一個程式段由若干個指令字組成,每個指令字是控制數控系統的一個具體指令,它由指令字元 (地址符) 和數值組成。指令字和程式段分別如圖 1 和圖 2 所示。
文法分析
(1)詞法分析
詞法分析是數控程式解釋流程的第一個階段,其主要任務是從左到右逐個字元地讀入數控程式,對構成數控程式的字元流進行掃描和分解,從而識別出一個個單詞,用於語法分析。 這裡所謂的單詞是指邏輯上緊密相連的一組字元,這些字元具有集體含義,是最小的語法的單位。
(2)語法分析
語法分析的任務是在詞法分析的基礎上將單詞系列分解成各類語法短語 ,並判斷它們的組合是否是數控程式的正確句子。 語法分析所依據的是數控語言的語法規則 ,它是數控語言解釋程式的核心部分。
語法分析的工作原理是採用計算機編譯原理中的 LR(1) 分析法,其實現思想是對輸入符號串從左到右進行掃描,並將輸入符號逐個移入一個後進先出棧中,邊移入邊分析,一旦棧頂符號會呈串形成文法的某個句型的句柄時, (該句柄對應某個產生式的右部),就用該產生式的左部非終結符代替相應右部的符號串,這稱為一步歸約,重複這一過程直到歸約到棧中只剩下文法的開始符號時則為分析成功,即確認輸入串是該文法的一個句子。
(3)語義解釋
語義解釋的任務是將數控語言程式解釋成底層模組能夠識別的目標程式,它是數控語言解釋程式中具體實現各種數控語句功能的模組,目標程式的代碼格式由底層模組指定。
實現
數控語言解釋程式由詞法分析、語法分析、語義解釋、表格管理和出錯處理等部分組成,其結構如圖3 所示。詞法分析、語法分析和語義解釋前面已經介紹。表格管理的任務是將數控程式的各種信息保存在不同的表格里,並負責在解釋程式的各個階段查找有關表格。 出錯處理的任務是當發現數控程式的錯誤時,報告錯誤的性質和地點。
在實現過程中,用一個類將數控語言解釋的各個階段模組封裝起來,實現其總體功能,即把數控程式解釋成底層模組能夠識別的目標程式。