(1)指令功能 TRUNC指令除了可以作为舍尾函数来截取实型数值的整数部分的功能外,还可以实现对实型数值精确度的修正。
在编程中,经常需要编写条件比较判断语句。有时,比较条件判断值的准确度在对高精度加工中的程序流向的精确控制起着关键作用。可设定精度实数型零件程序参数用系统内部的格式描述后显示的数据形式有时不能构成精确的十进制数,在与理想的计算数值进行比较时可能会带来一定的误差,称为相对相等性。为了使这种格式描述所带来的不精确性不影响程序控制流程,因此在比较指令中不检测绝对奇偶性,而是检测一个相对相等性。当与实数型数据比较可能出现不可接受的偏差时,必须另选被称为整型(INT)计算,方法是将运算数和一个精度系数相乘,然后再使用TRUNC指令进行截断。
(2)编程格式 比较错误时的精度补偿:
R1=实数型数据
TRUNC(R1∗1000)
(3)指令参数说明
TRUNC:用来截取与一个精度系数相乘后的运算数。去除小数点后位数,即截取整数部分。所考虑的相对相等性为10-12。
出于兼容性考虑,通过设置机床数据MD10280 $MN_PROG_FUNCTION_MASKBit0=1可以取消相对相等性的检测。
(4)编程示例
例1 对给定的实型数据进行精度检查。
程序代码 注释
…
N30 R1=61.01 R2=61.02 R3=0.01 ;分配初始值
N40 R11=TRUNC(R1∗1000) ;精度补偿
N50 R12=TRUNC(R2∗1000) ;精度补偿
N60 R13=TRUNC(R3∗1000) ;精度补偿
N70 IF ABS(R12-R11)>R13GOTOF ERR_1 ;判断计算精度
;N70 IF ABS(R12-R11)<=R13 GOTOF ERR_1 ;判断计算精度
N80 M30 ;程序结束
N90 ERR_1:SETAL(66000) ;自行设定的报警信息(www.xing528.com)
注:(66000)为用户自行设定的报警信息,如计算精度超差。
例2 得出并且分析两个运算数的商的精度。
程序代码 注释
R1=61.01 R2=61.02 R3=0.01 ;分配初始值
;R6=ABS(((R2-R1)/R3)-1) ;计算精度:R6=5E-13
IF ABS(((R2-R1)/R3)-1)<1.0EX-12 GOTOF FHLER_1 ;判断计算精度,执行跳转
;IF ABS(((R2-R1)/R3)-1)>1.0EX-13 GOTOF FHLER_2 ;判断计算精度,执行跳转
;IF ABS(((R2-R1)/R3)-1)==1.0EX-14 GOTOF FHLER_3 ;判断计算精度,执行跳转
FHLER_1: ;跳转标志
MSG("计算精度小于设定精度") ;提示信息
GOTOF END_1 ;绝对跳转
FHLER_2: ;跳转标志
MSG("计算精度大于设定精度") ;提示信息
GOTOF END_1 ;绝对跳转
FHLER_3: ;跳转标志
MSG("计算精度等于设定精度") ;提示信息
END_1:M0 ;信息停留在屏幕上方,按启动键继续
M30 ;程序结束
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。