6.8.4 最大变量、最小变量和变量区域指令(MINVAL,MAXVAL,BOUND)
(1)指令功能 使用指令MINVAL和MAXVAL可以比较两个变量的值。其中的较小值(采用MINVAL时)或较大值(采用MAXVAL时)会作为结果返回。
使用BOUND指令功能可以检查待检变量的值是否在定义的值域内。
(2)编程格式
<较小值>=MINVAL(<变量1>,<变量2>)
<较大值>=MAXVAL(<变量1>,<变量2>)
<返回值>=<BOUND>(<最小>,<最大>,<待检变量>)
(3)指令参数说明
MINVAL:确定两个变量(<变量1>,<变量2>)中的较小值。
MAXVAL:确定两个变量(<变量1>,<变量2>)中的较大值。
BOUND:检查(<待检变量>)是否在已定义的值域(最小与最大)中。
<返回值>:指令BOUND的结果变量。
如果待检变量的值在定义的取值范围内,结果变量为此待检变量。
如果待检变量的值大于最大值,结果变量为取值范围的最大值。
如果待检变量的值小于最小值,结果变量为取值范围的最小值。
如果待检变量的值与值域的阈值(即MINVAL或MAXVAL值)相等,结果变量为待检变量的值。
(4)编程示例
例1 比较函数功能验证。
程序代码 注释
DEF REAL rVar1=10.5,rVar2=33.7,rVar3,rValMin,rValMax,rRetVar
rValMin=MINVAL(rVar1,rVar2) ;rValMin设为值10.5
rValMax=MAXVAL(rVar1,rVar2) ;rValMax设为值33.7
rVar3=19.7 ;赋待检数值
rRetVar=BOUND(rVar1,rVar2,rVar3) ;rVar3在极限值范围内,rRetVar为19.7
rVar3=1.8 ;赋待检数值
rRetVar=BOUND(rVar1,rVar2,rVar3) ;rVar3小于最小值,rRetVar为10.5
rVar3=45.2 ;赋待检数值
rRetVar=BOUND(rVar1,rVar2,rVar3) ;rVar3大于最大值,rRetVar为33.7
rVar3=10.5 ;赋待检数值
rRetVar=BOUND(rVar1,rVar2,rVar3) ;rVar3等于最小值,rRetVar为10.5
rVar3=33.7 ;赋待检数值
rRetVar=BOUND(rVar1,rVar2,rVar3) ;rVar3等于最大值,rRetVar为33.7
例2 对图5-7所示的不通孔进行铣削加工,使用比较指令BOUND的编程方法。
程序代码 注释
N10 R1=0 ;起始深度
N20 R2=-31 ;终止深度
N30 R3=5 ;每层深度
N40 R4=R1-R3 ;第一层深度
N50 T=“16”M06 ;选择并调用直径为16mm的立铣刀
N60 G90 G17 G0 G54 X0 Y0 ;设定加工平面及工件坐标原点
N70 D1 Z50 S1500 M03 M08 ;建立刀具长度补偿及切削参数
N80 Z5 ;移动至安全高度
N90 LA1:G1 Z=R4 F300 ;吃刀量跳转标志,工进切入
N100 G41 X20 F800 ;建立刀具半径补偿
N110 G03 X20 Y0 I-20 J0 ;铣削圆
N120 G1 G40 X0 ;取消刀具半径补偿
N130 IF R4==R2 GOTOF END_1 ;判断,已经完成最终吃刀量后跳转至抬刀程序段
N140 R4=BOUND(-31,0,R4-R3) ;计算并获取下一次吃刀量
N150 IF R4>=R2 GOTOB LA1 ;判断,实际吃刀量与最终位置
N160 END_1:G0 Z100 M09 ;抬刀,返回初始高度
N170 M30 ;程序结束