第5章
一、选择题
- 答案: B。i5数控系统中例如程序段号就不能用R参数赋值,例如N=R1这种用法就是错误的。
- 答案:D。使用DEF定义变量时可以连续定义变量,例如DEF 类型 名称1 [=数值1],名称2 [=数值2],名称3 [=数值3],……。
- 答案D。
- 答案:D。解析:若条件满足,则执行IF到ELSE之间的程序语句段,执行完后直接跳跳到ENDIF后续执行,直到程序结束。若条件不满足,则跳转到ELSE之后,执行ELSE-ENDIF语句之间的程序语句段,直到程序结束。
- 答案:B。解析:ABS为绝对值,R4=ABS(-30),因此R4=30。
- 答案:D。解析:WHILE后面应该跟一个表达式,而不是赋值语句,在i5系统中,一个“=”表示赋值,两个“=”表示等于的意思,因此应该写成R1==10。
- 答案:C,解析:X最终位置是900,循环了从0开始到8结束,一共9次。当R1>=9时程序会跳出循环,结束,不会报警。
- 答案: AD。数组的赋值有SET和REP两种方法,SET是按顺序赋值,REP是整体赋初值。
二、判断题
- 答案:错误。解析:如果DEFAULT指令没有被编程,在这种情况下紧跟在CASE指令之后的程序段将成为跳转目标。
- 答案:错误。解析:i5系统变量属性分多种,有的系统变量只有只读属性,有的系统变量可以接受程序中写入操作,比如刀偏和零偏的系统参数可以写入,而系统当前刀号只支持读取,不支持写入。
- 答案:正确。解析:在参数子程序中,参数的传递有按值传递和按地址传递两种,按值传递的参数仅作为输入参数,在被调用子程序中参与计算,即使其值发生变化也不反馈回上层子程序中;按地址传递的参数作为输入输出参数,在被调用子程序中参与计算后,其值将重新返回至上层子程序。为实现参数的按地址传递,只需在被调用子程序的对应参数前加上“VAR”关键字即可。
- 答案:正确。解析:IF语句后面的表达式如果成立,那么执行后面的程序,如果表达式不成立执行ELESE后面的程序,因此如果IF后面表达式不成立而且没有ELSE语句,那么会直接跳出ENDIF,执行ENDIF后面的语句。
- 答案:错误。解析:不一定必须是相同类型的变量才能进行运算,如果是不同的类型,系统内部会进行一定的转化,比如字符型变量与整型变量的求和,系统会把整型变量会转化为ASCII值进行运算。
三、编程题
- 参考加工程序:
N10 G54 G90 G94
N20 T1 M06
N30 M3 S1000
N40 G0 X-70 Y0 Z100
N50 G0 Z5
N60 G1 Z0 F500
N70 R1=5 ;定义工件倒圆角半径
N80 R2=6 ;定义刀具半径
N90 R3=0 ;定义初始角度变量
N100 WHILE R3<=90 ;当R3<=90时执行该循环
N110 R4=R1-R1*COS(R3) ;刀具切削深度位置
N120 R5=R2-R1+R1*SIN(R3) ;刀具中心到工件轮廓距离
N130 G01 Z=-R4 ;刀具运动到切削深度位置
N140 $T_TRADIUS_D1[1]=2*R5 ;将2*R5的值赋值给T1D1的刀具直径值
N150 G1 G42 X-45 Y0 F10000 D1 ;引入刀尖半径补偿
N160 G02 X-25 CR=10 ;圆弧切入
N170 G01 Y-20 RND=10 ;轮廓段
N180 X25 RND=10
N190 Y20 RND=10
N200 X-25 RND=10
N210 G1 Y0
N220 G2 X-45 Y0 CR=10 ;圆弧切出
N230 G1 G40 X-65 Y0 ;取消刀补
N240 R3=R3+1 ;角度值更新
N250 ENDWHILE ;循环结束
N260 G00 Z100
N270 M02
- 参考加工程序:
编程思路,通过设定刀具半径补偿变量偏置轮廓加工腔体或凸台。
$T_TRADIUS_Dn[T]为刀具直径的系统变量,D表示刀沿号,T表示刀具号。例如T1D1的刀具几何直径可表示为$T_TRADIUS_D1[1]
具体编程如下:
主程序:SQ
T1D1M6
S1000 M03
G90 G54 G40 G00 Z100
G00 X0 Y0
G00 Z3
R1=2
WHILE R1<=10
R2=10
WHILE R2<=60
G01 Z=-R1 F100
$T_TRADIUS_D1[1]=R2 ;将刀具直径赋值给R2
D1
CALL sq ;调用子程序sq
R2=R2+16
ENDWHILE
R1=R1+2
ENDWHILE
G00 Z100
M30
子程序:sq.iso
G41 G01 Y30
G01 X-26 Y30
G03 X-26 Y-30 CR=30
G01 X26 Y-30
G03 X26 Y30 CR=30
G01 X0 Y30
G40 G01 X0 Y0
RET