在2018年7月22日,我寫了一篇名為《 》。這是後臺反饋的數據,如圖所示。
在明白了什麼是變量後,本文結合編程案例(車銑),主要講解一下宏程序中的表達式和控制指令。
1.什麼是宏程序中的表達式
用運算符連接起來的常數,宏變量構成表達式,必須封閉在括號中
如:#[#1+#2-12],175/SQRT[2] * COS[55 ];
到這裡,可能部分讀者看不懂這兩個表達式的含義了。這是因為計算機它也有自己的語言,簡單的說乘法符號是"×",這是我們能看懂的,但是計算機看不懂,它只能看懂"*"表示乘法,所以我們在編程時就要採用電腦能識別的語言如:3×3,應該寫成3*3。因此大家在進行學習宏程序編程之前,先要把計算機的語言和咱們的識別的語言做一個簡介,如下圖所示。
· 例如:2+5,可這樣編寫#1=10 #2=5 #3=#1+#2
· 例如:#1 LT 5 表示 #1小於5;
· 例如:求100的根,√100可編寫為#1=SQRT[100]
· 例如:正弦函數,#i=SIN[#j];
在數控車編程中,運用比較多的是條件運算和函數運算
2.控制指令
在程序中可用GOTO語句和IF語句改變控制執行順序,一般共有三種類型:
· GOTO 語句——無條件分支(轉移)
· IF語句——條件分支;if…,then…
· WHILE語句—— 循環;while…
今天主要講解一下IF和GOTO語句
在IF後指定一條件,當條件滿足時,轉移到順序號為n的程序段,不滿足則執行下一程序段。
圖片的意思通俗點講:#1如果大於等於10時則執行N2行開始及以下的程序段,否則就不執行,轉而執行別的程序
比如說,咱們以求1~5這5個數的和,為例,把上面的流程圖理解一下!
O1;
#1=0; 表示和
#2=1;表示加數
N1 IF[#2 GT 5] GOTO2;相加條件,當#2為6時就不滿足條件,跳到N2所在行
#1=#1+#2;相加為1+2+3+4+5
#2=#2+1;下一加數,#2分別為1,2,3,4,5
GOTO1 返回N1,繼續判別是否滿足條件
N2 M30;結束
也可以這樣修改,效果是一樣的
#1=0; 表示和
#2=1;表示加數
N1#1=#1+#2;相加為1+2+3+4+5
#2=#2+1;下一加數,#2分別為1,2,3,4,5
IF[#2 GT 5] GOTO1;如果#2小於等於5時時一直返回到N1,當#2為6時則執行下面的程序,也就是M30程序結束。
M30;結束
3.案例講解(車,銑)
最後,咱們以一個數控車床外圓加工為例,進一步鞏固前面所講的知識及如何運用。
例如:加工φ40外圓每次去除4毫米,背吃刀量為2mm
主要參考程序:
…
#1=48
N1G01X#1F0.1
Z-20
G0X52
Z2
#1=#1-4;第一刀48,第二刀44,第三刀40
IF[#1 LT 40]GOTO1,當#1大於或等於40時都會返回到N1所在的程序
G0Z100
M5M30
咱們再以銑床銑削一個平面為例
要求:採用環切加工去餘量,平面銑削2mm,直徑為12mm的立銑刀
主要參考程序:
…
G01Z-2 F500;銑削2mm
#1=40
N1G01X-#1Y-#1F200;從外往內銑削
Y#1
X#1
Y-#1
X-#1
#1=#1-10
IF[#1GT 10]GOTO1
G0Z200
M5M30
今天主要是講解了宏程序中的表達式和控制指令,並結合三個案例進行了講解。特別說明一下,上篇文章有個網友的留言還算是比較中肯的,如果你能把今天所講的知識能搞明白的化,其它的問題就遊刃而解了,但是這有一個前提條件即對加工對象要建立合理正確的數學模型,編程人員要有一定的數學基礎,尤其是解析幾何知識。
好吧,今天就這樣吧!下次再說,祝好!
閱讀更多 zny850210 的文章