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