條件轉(zhuǎn)移是宏程序的核心功能之一,它可以根據(jù)我們的要求來改變程序運行的方向,配合比較表達式可以實現(xiàn)條件轉(zhuǎn)移,即可某種特定的情況下才發(fā)生轉(zhuǎn)移 通俗來說條件轉(zhuǎn)移就是當程序中的某個條件被滿足或不滿足的條件,程序可以發(fā)生轉(zhuǎn)移,指定跳到程序中的任意一行繼續(xù)運行程序。 此文中我僅解釋GOTO和IF的用法,條件轉(zhuǎn)移還有WHILE語句,我個人建議初學者最好養(yǎng)成僅使用IF和GOTO來編寫宏程序,因為在某些系統(tǒng)中WHILE語句是選配功能,如果機床沒有購買此項功能,將無法使用,另外IF和GOTO是所有系統(tǒng)都支持的,也可以這樣認為當你使用IF和GOTO編寫的宏程序在格式可以在任何數(shù)控系統(tǒng)上運行(國際上來說)。 以下文中_底劃線符號為空格,在宏程序中某些地方必須插入空格,若沒有空格系統(tǒng)將會報警格式 不正確 GOTO_N** 無條件轉(zhuǎn)移 *代表順序號 實例解釋 O0001 N1 G00 X30.0 Z2.50 N2 GOTO N4 N3 G00 X0.0 Z0.0 N4 M30 以上程序當執(zhí)行N2段后直接跳過N3繼續(xù)執(zhí)行N4 IF_[ 表達式 ]_GOTO N** 條件轉(zhuǎn)移 或 IF_[ 表達式 ]_N** *代表順序號 當方括號內(nèi)的條件表達式為真或者說滿足條件時,將跳轉(zhuǎn)至方括號后的N行繼續(xù)執(zhí)行程序,否則繼續(xù)往下執(zhí)行程序 實例解釋 O0001 #1=0 N1 G97 M3 S500 N2 T101 N3 G00 X0.0 Z0.0 M08 N666 IF [#1 EQ 0] N12 N4 G01 X10.0 F0.15 G99 N5 Z-10.0 N6 X20.0 N7 Z-20.0 N8 X30.0 N9 Z-30.0 N10 X40.0 N11 G00 X150 Z100.0 N12 M30 以上程序從N1執(zhí)行到N666后條件判斷#1變量等于0滿足條件,所以程序跳轉(zhuǎn)到N12行,直接結(jié)束程序。若將#1的值改為一個不等于0的數(shù),程序?qū)腘1依次執(zhí)行至N12 從上述例子可以看出條件轉(zhuǎn)移的特點,若條件滿足即跳轉(zhuǎn),如果條件不滿足相當于沒有N666行程序段。 因為已經(jīng)初步的知道了宏程序核心三大要素了,以下僅用三個核心要素知識 點編寫一個簡單的宏程序 以FUNAC 18I為例,廣州數(shù)控系統(tǒng)同樣適用 O0003 #1=30.0(起始直徑) #2=-20.0(長度) #3=1.0(每刀切削量,直徑指定) #4=20.0(結(jié)束直徑) G97 G99 G40 T0101 M08 G97 S1200 G00 X#1 Z10.0 Z2.5 N1 #1=#1-#3 G00 X#1 G01 Z#2 F0.15 U0.5 W0.25 G00 Z2.5 IF[#1 LE #4] N2 GOTO N1 N2 #1=#4 IF[#1 LT #4] N2 GOTO N1 N2 G00 X150.0 Z100.0 M30 上述程序?qū)⒁粋€直徑30的外圓車至20.0長度20.0,每刀直徑車1.0,車至20.0后退刀,結(jié)束程序 經(jīng)過這篇文章和前面的一篇大家應該能寫出一個簡單的宏程序,如果還不能反復看這二個篇文章,可以懂的。只要讀懂這二篇肯定要寫出簡單的宏程序 。 下篇文章我會講宏程序真正在哪些情況才能發(fā)揮出真正的作用及優(yōu)勢 |
|