|
條件轉(zhuǎn)移是宏程序的核心功能之一,它可以根據(jù)我們的要求來改變程序運(yùn)行的方向,配合比較表達(dá)式可以實(shí)現(xiàn)條件轉(zhuǎn)移,即可某種特定的情況下才發(fā)生轉(zhuǎn)移 通俗來說條件轉(zhuǎn)移就是當(dāng)程序中的某個(gè)條件被滿足或不滿足的條件,程序可以發(fā)生轉(zhuǎn)移,指定跳到程序中的任意一行繼續(xù)運(yùn)行程序。 此文中我僅解釋GOTO和IF的用法,條件轉(zhuǎn)移還有WHILE語句,我個(gè)人建議初學(xué)者最好養(yǎng)成僅使用IF和GOTO來編寫宏程序,因?yàn)樵谀承┫到y(tǒng)中WHILE語句是選配功能,如果機(jī)床沒有購買此項(xiàng)功能,將無法使用,另外IF和GOTO是所有系統(tǒng)都支持的,也可以這樣認(rèn)為當(dāng)你使用IF和GOTO編寫的宏程序在格式可以在任何數(shù)控系統(tǒng)上運(yùn)行(國際上來說)。 以下文中_底劃線符號為空格,在宏程序中某些地方必須插入空格,若沒有空格系統(tǒng)將會報(bào)警格式 不正確 GOTO_N** 無條件轉(zhuǎn)移 *代表順序號 實(shí)例解釋 O0001 N1 G00 X30.0 Z2.50 N2 GOTO N4 N3 G00 X0.0 Z0.0 N4 M30 以上程序當(dāng)執(zhí)行N2段后直接跳過N3繼續(xù)執(zhí)行N4 IF_[ 表達(dá)式 ]_GOTO N** 條件轉(zhuǎn)移 或 IF_[ 表達(dá)式 ]_N** *代表順序號 當(dāng)方括號內(nèi)的條件表達(dá)式為真或者說滿足條件時(shí),將跳轉(zhuǎn)至方括號后的N行繼續(xù)執(zhí)行程序,否則繼續(xù)往下執(zhí)行程序 實(shí)例解釋 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的值改為一個(gè)不等于0的數(shù),程序?qū)腘1依次執(zhí)行至N12 從上述例子可以看出條件轉(zhuǎn)移的特點(diǎn),若條件滿足即跳轉(zhuǎn),如果條件不滿足相當(dāng)于沒有N666行程序段。 因?yàn)橐呀?jīng)初步的知道了宏程序核心三大要素了,以下僅用三個(gè)核心要素知識 點(diǎn)編寫一個(gè)簡單的宏程序 以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ū)⒁粋€(gè)直徑30的外圓車至20.0長度20.0,每刀直徑車1.0,車至20.0后退刀,結(jié)束程序 經(jīng)過這篇文章和前面的一篇大家應(yīng)該能寫出一個(gè)簡單的宏程序,如果還不能反復(fù)看這二個(gè)篇文章,可以懂的。只要讀懂這二篇肯定要寫出簡單的宏程序 。 下篇文章我會講宏程序真正在哪些情況才能發(fā)揮出真正的作用及優(yōu)勢 |
|
|