继续测量的学习,今天学习执行程序来测量工件。
在程序编辑画面中,依次按键”扩展键“-->"测量工件"(HSK6)-->"边沿距离"(VSK2)-->测点(VSK1),下面是可用于测单点的CYCLE978的参数输入界面。
程序如下:
N10 G0 G54 Z100
N20 T="3D_PROBE"
N30 M6
N40 G0 X0 Y0
N50 G0 X-60
N60 G0 Z-10
N70 CYCLE978(0,,,1,-50,5,1,1,1,1,"",,0,1.01,1.01,-1.01,,,,,1,1)
N80 G0 Z100
N90 M02
测点的过程如下:
测量的结果会记录到“_OVR[]”变量中(下表在测量循环手册中是表格4-14)
实际结果:
当然这样看结果很不友好,因此我们可以设置:
SD55613 $SCS_MEA_RESULT_DISPLAY 测量结果图显示选项
=0: 无测量结果图
=1: 测量结果图固定显示8秒。
=3: 显示测量结果图,测量循环会被一个系统自设的M0停止。按下“CYCLE START”后,测量循环会继续,测量结果图被取消。
=4: 只有在输出循环报警61303, 61304, 61305, 61306时,才显示测量结果图。
如果设置SD55613=3,则运行上面程序在测量后会显示:
当然如果测量的点多,可以将测量结果依次记录到文件中,在“测量工件”界面有“测量结果”(VSK8)
点击进入:
测量结果图:在测量后是否显示测量结果
显示模式:测量结果图显示的时间
日志(有“关/开/最后测量”选项):是否记录测量结果
记录类型:有“标准记录”和“用户记录”两种,用户记录就是自己做主记录信息
记录格式:有"文本格式"和"表格格式"
文本格式如下:
表格格式如下:即直接生成CSV文件
记录存储位置:测量结果文件存放在哪个目录
记录文件名称:顾名思义。
标准格式的测量结果文件不过多解释,我们修改下程序:
N10 G0 G54 Z100
N20 T="3D_PROBE"
N30 M6
N40 G0 X0 Y0
N50 G0 X-60
N60 G0 Z-10
N70 CYCLE150(11,10001,"//NC:/MPF.DIR/MEAS4.TXT")
N80 CYCLE978(0,,,1,-50,5,1,1,1,1,"",,0,1.01,1.01,-1.01,,,,,1,1)
N90 Z20
N100 G0 X60
N110 G0 Z-10
N120 CYCLE978(0,,,1,50,5,1,1,2,1,"",,0,1.01,1.01,-1.01,,,,,1,1)
N130 Z20
N140 G0 X0 Y-60
N150 G0 Z-10
N160 CYCLE978(0,,,1,-50,5,1,2,1,1,"",,0,1.01,1.01,-1.01,,,,,1,1)
N170 Z20
N180 G0 X0 Y60
N190 G0 Z-10
N200 CYCLE978(0,,,1,50,5,1,2,2,1,"",,0,1.01,1.01,-1.01,,,,,1,1)
N210 G0 Z100
N220 M02
任意测4个点,如果按”标准格式“显示测量结果(部分):
可以发现中间有很多重复的,没用的信息,因此,我们下面用“用户格式”来记录下测量结果。既然是“用户格式”,就是自己写结果。
系统在PGUD 中预定义了一个 NCK 全局通用的字符串变量字段。
DEF NCK STRING[200] S_PROTTXT[10]
也就是说,可以立即记录 10 行。如果数据不够可以借助GUD定义 “S_USERTXT[n]”,长度任意。本例就4个数据,足够了,但别忘了要自己写数据。修改程序如下:
N10 G0 G54 Z100
N20 T="3D_PROBE"
N30 M6
N40 G0 X0 Y0
N50 G0 X-60
N60 G0 Z-10
N70 CYCLE150(10,10011,"//NC:/MPF.DIR/MEAS4.TXT")
N80 S_prottxt[0]="Measuring test done by Mysinumerik"
N90 S_prottxt[1]="Date:2026.06.28"
N100 S_prottxt[3]="Measure 4 points position"
N110 cycle160
N120 CYCLE978(0,,,1,-50,5,1,1,1,1,"",,0,1.01,1.01,-1.01,,,,,1,1)
N130 S_prottxt[0]="1st point"
N140 S_prottxt[1]="Target position="<<_ovr[1]
N150 S_prottxt[2]="Actual position="<<_ovr[4]
N160 S_prottxt[3]="Difference="<<_ovr[16]
N170 cycle160
N180 S_prottxt[3]="Measure 4 points position"
N190 cycle160
N200 Z20
N210 G0 X60
N220 G0 Z-10
N230 CYCLE978(0,,,1,50,5,1,1,2,1,"",,0,1.01,1.01,-1.01,,,,,1,1)
N240 S_prottxt[0]="2nd point"
N250 S_prottxt[1]="Target position="<<_ovr[1]
N260 S_prottxt[2]="Actual position="<<_ovr[4]
N270 S_prottxt[3]="Difference="<<_ovr[16]
N280 cycle160
N290 Z20
N300 G0 X0 Y-60
N310 G0 Z-10
N320 CYCLE978(0,,,1,-50,5,1,2,1,1,"",,0,1.01,1.01,-1.01,,,,,1,1)
N330 S_prottxt[0]="3rd point"
N340 S_prottxt[1]="Target position="<<_ovr[1]
N350 S_prottxt[2]="Actual position="<<_ovr[4]
N360 S_prottxt[3]="Difference="<<_ovr[16]
N370 cycle160
N380 Z20
N390 G0 X0 Y60
N400 G0 Z-10
N410 CYCLE978(0,,,1,50,5,1,2,2,1,"",,0,1.01,1.01,-1.01,,,,,1,1)
N420 S_prottxt[0]="4th point"
N430 S_prottxt[1]="Target position="<<_ovr[1]
N440 S_prottxt[2]="Actual position="<<_ovr[4]
N450 S_prottxt[3]="Difference="<<_ovr[16]
N460 cycle160
N470 G0 Z100
N480 M02
测量后,记录文件如下:
今天就到这里了
每天学习一点儿!每天思考一点儿!每天进步一点儿!
1.001^365=1.44 !
今天你学习了吗?