和M代码相关的有如下参数:

系统定义的辅助功能由下面参数设定:

下面找一组M代码看看这些参数的含义:


MD22080定义了辅助功能的输出时机:
位0=1在一个OB1周期后正常应答
位1=1以OB40快速应答
位2=1无预定义的辅助功能
位3=1不输出给PLC
位4=1在PLC给出应答后主轴动作位
5=1轴运动前输出
位6=1轴运动期间输出
位7=1在程序段末尾输出
位8=1在执行程序段查找方式1,2,4后不输出
位9=1在执行程序段查找方式5 (SERUPRO)期间记录
位10=1在执行程序段查找方式5 (SERUPRO)期间不输出
位11=1在执行程序段查找方式5(SERUPRO)期间通道通用的辅助功能
位12=1通过同步动作输出
位13 = 1 隐含的辅助功能
位14 = 1 激活M01
位15 = 1 在试车时不输出
位16 = 1 关闭冲压
位17 = 1 启用冲压
位18 = 1 冲压
那么,刚才例子中的81H= 1000 0001B(位0和位7为“1”),即:
位0=1在一个OB1周期后正常应答
位7=1在程序段末尾输出而那个21H= 0010 0001B(位0和位5为“1”),即:
位0=1在一个OB1周期后正常应答
位5=1轴运动前输出
综合来看,系统定义的辅助功能组1包含M0,M1,M2,M17,M30和M6,它们都是只需要正常应答;M0,M1,M2,M17,M30在程序段末尾输出,M6在轴运动前输出
例1:执行下面NC程序:
$AN_SLTRACE=1
G4F1
G1 G91 x10 F1000 M1
G4F1
M32
得到下面图形,可以看到M1是在程序段末尾(X轴运动后)输出的。

例2:
执行下面NC程序:
$AN_SLTRACE=1
G4F1
G1 G91 x10 F1000 M6
G4F1
M32
得到下面图形,可以看到M6是在X轴运动前输出的。

注意:如果使用了M代码替代子程序(即设置了MD10715和MD10716),在上面示波器曲线中不会出现M6!
(未完待续)