数控加工尺寸时大时小(数控加工中的M和H参数)
数控加工尺寸时大时小(数控加工中的M和H参数)bEnable:使能功能块。Interpolator:插补功能块的实例名称。程序中可以通过使用功能块SMC_GetMParameters查看运行系统中M代码的参数值。如图2-75所示。所有使用的参数可以在解码的同时进行分析并存储在SMC_OUTQUEUE缓冲区的SMC_GEOINFO结构中。图2-75 SMC_GetMParameters功能块功能块的各个管脚定义,如下:
CNC的M码功能
M代码是DIN66025中的附加功能,可以进行二进制输出的设定,启动另一个动作。当M码被执行时,G代码程序会停止在当前位置,直到插补功能块的M码确认输入被激活时,程序才会继续执行。
在M代码中,可以使用关键字K和L同时进行两个参数的处理,如设置主轴的转速等,均可使用这两个参数来进行设定。通过使用O$xxx$可以同时处理更多参数使用变量类型SMC_M_PARAMETERS,如图2-74所示。
图2-74 SMC_M_PARAMETERS结构体参数
程序中可以通过使用功能块SMC_GetMParameters查看运行系统中M代码的参数值。如图2-75所示。所有使用的参数可以在解码的同时进行分析并存储在SMC_OUTQUEUE缓冲区的SMC_GEOINFO结构中。
图2-75 SMC_GetMParameters功能块
功能块的各个管脚定义,如下:
Interpolator:插补功能块的实例名称。
bEnable:使能功能块。
bMActive:M代码被执行。
dK:M代码中的K参数的数值。
dL:M代码中的L参数的数值。
MParameters:M代码中的O参数的SMC_M_PARAMETERS结构体类型中的dP1参数的数值。
M代码的使用语法,如下:
M K L O
M:M代码的功能序号,M>0。
K:参数,LREAL。
L:参数,LREAL。
O:SMC_M_PARAMETERS结构体参数。
程序示例,如图2-76所示。
图2-76 M代码的使用
当G代码被执行时,SMC_Interpolator功能块的wM输出管脚为当前M代码值,执行至M代码时,G代码不再继续执行,wM字中会包含当前的M代码值,可以借助此变量处理逻辑程序,当需要继续执行时,触发bAcknM即可进行下一步G代码的执行,同时,wM中的值被清零。
在执行G04指令时,wM中的值会变为-1,G04执行完毕后,自动清零。
当G代码被全部执行完成后, wM中的值会变为-1,表示G代码文件执行完成。
以图2-76中的程序来进行分析,M代码的动作结果,如下:
执行N000时,SMC_Interpolator功能块的wM输出管脚为0。
执行N010时,SMC_Interpolator功能块的wM输出管脚为1,执行完N010后,G代码暂停,等待M代码的逻辑动作处理完成,当SMC_Interpolator功能块的bAcknM输入管脚为TRUE时,G代码继续执行。
执行N020时,SMC_Interpolator功能块的wM输出管脚为0。
执行N030时,SMC_Interpolator功能块的wM输出管脚为2,执行完N030后,G代码暂停,等待M代码的逻辑动作处理完成,当SMC_Interpolator功能块的bAcknM输入管脚为TRUE时,G代码继续执行。
执行N040时,SMC_Interpolator功能块的wM输出管脚为0。
执行N050时,SMC_Interpolator功能块的wM输出管脚为3,执行完N050后,G代码暂停,等待M代码的逻辑动作处理完成,当SMC_Interpolator功能块的bAcknM输入管脚为TRUE时,G代码继续执行。
执行N060时,SMC_Interpolator功能块的wM输出管脚为0。
执行N070时,SMC_Interpolator功能块的wM输出管脚为4,执行完N070后,G代码暂停,等待M代码的逻辑动作处理完成,当SMC_Interpolator功能块的bAcknM输入管脚为TRUE时,G代码继续执行。
执行N080时,SMC_Interpolator功能块的wM输出管脚为0。
执行N090时,SMC_Interpolator功能块的wM输出管脚为5,执行完N090后,G代码暂停,等待M代码的逻辑动作处理完成,当SMC_Interpolator功能块的bAcknM输入管脚为TRUE时,G代码继续执行。
执行N100时,SMC_Interpolator功能块的wM输出管脚为0,执行完N100后,wM输出管脚为-1,表示G代码文件执行完成。
2.12 CNC的H码功能
H代码是DIN66025中的开关功能,它允许程序对二进制基于路径的开关进行操作,通常情况下,开关的第一个数字必须被指定(“H<序号>”),然后定义开关位置,可以是通过关键字“L<位置>”定义的绝对位置或者关键字“O<位置>”定义的相对位置。
H码功能允许的语法,如下:
Gxx H O/L
H:H功能的序号,序号范围为1-32,超过此范围的序号不被记录;如果序号为正数,如H1,则H功能表示开关1打开;序号为负数,如H-1,则H功能表示开关1关闭。
O:对象[0..1]的相对位置,0:起点,1:终点。
L:插补线段的绝对位置,非X/Y坐标的位置;L>0:到起点的位置,L<0:到终点的位置。
程序示例,如图2-77所示。
图2-77 H代码的使用
如图2-77所示,图中的绿色圆点表示为H代码的动作位置。
当G代码被执行时,SMC_Interpolator功能块的dwSwitches(DWORD,双字)输出管脚为当前H代码值,其Bit0~Bit31的状态分别对应H代码的H1~H32。SMC_Interpolator功能块的iLastSwitch(INT,整数)输出管脚为最后一个H代码的序号,当H代码开关打开时,此变量的数值是增加的,否则是减少的。
N000 E500 E-500 F100
本行定义加速度,减速度以及工作速度。
N010 G01 X100 Y100 H1 L100 F50
本行为直线插补,从起点(0 0)定位至终点(100 100),H1 L100表示为在直线线段的绝对位置100时H代码开关1输出为TRUE,F50为工作速度。
N020 G01 X200 Y100 H-1 L50 F50
本行为直线插补,从起点(100 100)定位至终点(200 100),H-1 L50表示为在直线线段的绝对位置50时H代码开关1输出为FALSE,F50为工作速度。
N030 G01 X200 Y200 H2 O0.5 F50
本行为直线插补,从起点(200 100)定位至终点(200 200),H2 O0.5表示为在直线线段的50%处开始H代码开关2输出为TRUE,F50为工作速度。
N040 G01 X0 Y200 H-2 O0.75 F50
本行为直线插补,从起点(200 200)定位至终点(0 200),H-2 O0.75表示为在直线线段的75%处开始H代码开关2输出为FALSE,F50为工作速度。
N050 G01 X0 Y0 H3 L50 H-3 L-50 F50
本行为直线插补,从起点(0 200)定位至终点(0 0),H3 L50表示为在直线线段的绝对位置50时H代码开关3输出为TRUE,H-3 L-50表示为在直线线段的绝对位置离终点50处H代码开关3输出为FALSE,F50为工作速度。
H代码功能常应用于加工过程的换刀机构,在加工不同的路径时,选择不同的刀具。