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