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