要使一个NC程序(xù)不仅仅适(shì)用于(yú)特(tè)定(dìng)数值下(xià)的(de)一次加工,或(huò)者(zhě)必(bì)须要计(jì)算出数值(zhí),两种情况均可以使用计算参(cān)数,你(nǐ)可以在程序运行(háng)时由控制器计算或设所(suǒ)需(xū)要的数值;可以通过操作面板设定参数数值。如果(guǒ)参数已经赋值,则它们可以在程序中对由变(biàn)量确定(dìng) 地址进行赋值。
R0=...
到
R249=...
一共250个计算参数可(kě)供使用。
R0...R99 - 可以自(zì)由(yóu)使用(yòng)
R100...R249 -加工循环传递参数
如果你没有用(yòng)到加工循(xún)环,则这部分(fèn)计算(suàn)参数也同样可以自(zì)由使(shǐ)用(yòng)。
R0=3.5678 R1=-37.3 R2=2 R3=-7 R4=-45678.1234
用指数表示法可以赋值更大的数值范围:
(10-300...10+300).
指数值写在EX符号之(zhī)后;最(zuì)大符号数(shù):10(包括符号和小数点(diǎn)).
EX值(zhí)范围:-300到+300
R0=-0.1EX-5 ;意义:R0=-0.000 0001
R1=1.874EX8 ;意义:R1=187 400 000
注释:一个程序段(duàn)中可以有多个赋(fù)值(zhí)语句;也可以(yǐ)用计算表达式(shì)赋值。
通过给其它的NC地址分(fèn)配(pèi)计算参数或参数表达式(shì),可以增加NC程序(xù)的通用(yòng)性。可以(yǐ)用数值、算术表达式或R参数(shù)对任意NC地址赋值。但对地址N、G和L例外。
赋值时在地址符之后写入符号"="
赋(fù)值(zhí)语句也可以(yǐ)赋值-负号(hào)。
给坐标轴地(dì)址(运行指令)赋值时(shí),要(yào)求有(yǒu)一独立(lì)的程序段。
举例:
N10 G0 X=R2 ;给X轴赋(fù)值
在计算(suàn)参数时也遵(zūn)循通常的数学运算规则。原括号(hào)内的运算优先进行。另外(wài),乘法(fǎ)和除法运算优先于加法和减法(fǎ)运算(suàn)。
1)标记符用于标(biāo)记程序(xù)中所跳转(zhuǎn)的目标程序(xù)段,用跳转功能可以实现程序运行分支。
2)标记符可以(yǐ)自由选取,但必须由2一个字母或数字组成,其中开始(shǐ)两个符号(hào)必须是字母或下划线。
3)跳转目标程序段中标(biāo)记符后面必(bì)须为冒号。标(biāo)记(jì)符位于程序段段(duàn)首。如(rú)果(guǒ)程序段有段号,则标记符紧跟着段号(hào)。
4)在一个程(chéng)序(xù)段(duàn)中,标记(jì)符不能含有其它意义(yì)。
N10 MARKE1:G1 X20 ;MARKE1为标记符,跳(tiào)转目标程序段 ...
TR789:G0 X10 Z20 ;TR789为标记符,跳(tiào)转(zhuǎn)目标(biāo)程(chéng)序段没有段号
NC程(chéng)序在运行(háng)时以写入时的顺序执(zhí)行程序段。
程序在运行时可以通过插入程序跳转(zhuǎn)指令(lìng)改变执行(háng)顺序。
跳(tiào)转(zhuǎn)目标只(zhī)能是有标记符的程序段。此程序段必须位于该程(chéng)序之内。
绝对跳转指(zhǐ)令必(bì)须(xū)占用(yòng)一个独立的程序段。
GOTOF Lable ;先前跳转
GOTOB Lable ;向后跳(tiào)转
AWL 说明
GOTOF 向前跳转(向程序结束的方(fāng)向跳转)
GOTOB 向后跳转(向(xiàng)程序开始的方向跳转(zhuǎn))
Lable 所(suǒ)选(xuǎn)的标(biāo)记符
用(yòng)IF-条件语句表示有(yǒu)条(tiáo)件(jiàn)跳转.如果(guǒ)满足跳(tiào)转(zhuǎn)条(tiáo)件(也就(jiù)是(shì)值(zhí)不(bú)等于零),则进行跳转.跳(tiào)转目标只能(néng)是有(yǒu)标记符的程序(xù)段.该程序段(duàn)必须在(zài)此程(chéng)序(xù)之内.
有条件跳转(zhuǎn)指令要求(qiú)一个(gè)独(dú)立的程序段.在(zài)一个程序段中可以有(yǒu)许多个条件跳转指令.
使(shǐ)用了(le)条件跳转后有时会使(shǐ)程序得到明显(xiǎn)的(de)简化.
IF条件GOTOF Lable ;先(xiān)前跳转
IF条件GOTOB Lable ;向后跳转(zhuǎn)
AWL | 说(shuō)明 |
GOTOF | 向前(qián)跳转(向程序结(jié)束的方向(xiàng)跳转(zhuǎn)) |
GOTOB | 向后跳转(向程序开始(shǐ)的方向(xiàng)跳转(zhuǎn)) |
Lable | 所选的标(biāo)记符 |
IF | 跳转条(tiáo)件导入符 |
条件 | 作为条件的(de)计算参数,计算表达式 |
运(yùn)算符 | 意(yì)义(yì) |
= = | 等(děng)于 |
<> | 不(bú)等 |
> | 大于 |
< | 小于 |
> = | 大于或(huò)等于 |
< = | 小于或等于 |
用(yòng)上(shàng)述(shù)比较运算(suàn)表示跳转条件,计算表达式也(yě)可用于比较运算.
比较运算的结果有两(liǎng)种(zhǒng),一种为"满足(zú)",另(lìng)一种为"不满足"。 "不(bú)满(mǎn)足(zú)"时,该(gāi)运(yùn)算结果值(zhí)为(wéi)零。
R1>1 ;R1大于1
1<R1 ;1小于R1
R1<R2+R3 ;R1小于R2加R3
R6>=SIN(R7*R7) ;R6大(dà)于或等于SIN(R7)2
L1(半(bàn)球):
L2(半球):
效果图:
G54X0Y0Z10F100M03S100
R10=-15 R11=-9.06
L1
R10=15 R11=-9.06
L1
R10=0
L2
G0 X=R10+12.5-4 Y=R11
G1 Z-6 F100
G3 I=4-12.5
G1 X=R10+8 Y=R11
G41 D1 X=R10+4 Y=R11
G2 I-4
G0 Z5
R1=4
R2=90
AAA:
R3=R1*COS(R2)+4+R10
R4=R1*SIN(R2)-R1
G0 X=R3 Y=R11
G1 Z=R4 F300
G2 I=R10-R3
G0 Z1
R2=R2-1
IF R2>=0 GOTOB AAA
G0 Z10
M17
R1=35
R2=15
R3=0
G0 X=R1+R10 Y=R11
G1 Z-5 F100
AAA:
R4=R1*COS(R3)+R10
R5=R2*SIN(R3)+R11
G1 X=R4 Y=R5 F100
R3=R3+1
IF R3<=360 GOTOB AAA
G0 Z5
M17
原则上讲主程序(xù)和(hé)子程序之(zhī)间并(bìng)没有(yǒu)区别。
用子程序编写经常重复(fù)进行的(de)加工(gōng),比(bǐ)如(rú)某一(yī)确定的轮廓形(xíng)状。子程序(xù)位于主程序的一种型式就是加工循(xún)环,加(jiā)工循环(huán)包含一(yī)般(bān)通用的加工工序,诸如(rú)螺纹切削,柸料切削加工等(děng)等。通过给规定的计(jì)算参数赋值就可以实现各(gè)种具体(tǐ)的加工。
子(zǐ)程(chéng)序的(de)结构(gòu)与主程序(xù)的结构(gòu)一样,在子程(chéng)序中也式最后一个程序段中用M2结(jié)束子程序(xù)运行运行(háng)。子程(chéng)序结束后返回主程序。
除了用M2指(zhǐ)令外,还(hái)可以用RET指令结束子程序。
RET要求(qiú)占用一个(gè)独立的程(chéng)序段。
用RET指令结束子程序、返回主程(chéng)序时不会中(zhōng)断G64连续路径运行方式,用M2指令则会中断G64运行方式,并进入停止状态。
为了方便(biàn)地选择某(mǒu)一子程序,必须给子程序取一个(gè)程序名。程序名可以自由选(xuǎn)取,但必须符(fú)合以下规定:
- 开始两个(gè)符号必(bì)须时字(zì)母
- 其它符号为字母,数字或(huò)下划线(xiàn)
- 最多8个字符(fú)
- 没有分隔符
其(qí)方法与主程序(xù)中程序名的选取方法(fǎ)一样(yàng)。
在一(yī)个程序中(主(zhǔ)程序或子程序)可以直(zhí)接用程序名调用子程序。子程序(xù)调(diào)用要求占用一(yī)个独立(lì)的程序段(duàn)。
举例(lì):
N10 L785 P3 ;调用子程序L785
N20 WELLE7 ;调用(yòng)子程(chéng)序WELLE7
如果要求(qiú)多(duō)次(cì)连续地(dì)执行某一子程序,则在(zài)编程时(shí)必须在所调用子程序的(de)程序名后地址P下写入调用(yòng)次数,最大次数可以为9999(P1...P9999)
举例:
N10 L785 P3 ;调用(yòng)子(zǐ)程(chéng)序L785 ,运行3次
子程序(xù)不(bú)仅可以从(cóng)主程序中调用,也可以从其它程序中调用,这(zhè)个(gè)过程称为子程(chéng)序的嵌套。子程(chéng)序的嵌(qiàn)套深度可以为三层,也就是(shì)四级程序界面(包括(kuò)主程序界面) 。
注释:在使用加工循环进(jìn)行加工时,要注意加工循环(huán)程序也同样属于四级程序(xù)界面中的一级。
在子(zǐ)程(chéng)序中可以(yǐ)改(gǎi)变模态有效的G功能,比如G90到G91的变换.在(zài)返回调用程序时请注意(yì)检查一下所有(yǒu)模(mó)态有效的功能指令,并按照要求进行调整。
对(duì)于R参数也需(xū)同样注意,不要无意识地(dì)用上级程序界面中所使用(yòng)的计算参(cān)数来(lái)修(xiū)改(gǎi)下级程序界面的计算(suàn)参数。