本次主要介绍下M功能实现,该部分内容分三次讲述,M功能实现主要有以下几种方法。
1
宏定义
该方法与PLC无关,不参与接口信号的处理,简单来说,用于类似于替代工作。
例如:
建立UGUD宏程序
DEFINE M89 AS G90G0X100Y100
运行M89, 系统相当于执行G90G0X100Y100,
此时PLC并没有收到1信号,M205.2=0(我们以一个简单的PLC示例来演示,);
2
隐含预处理M功能:MD10713
通过参数设置的M功能,不仅能够实现M功能的PLC输出,同时实现STOPRE的功能
如下图所示,在执行程序后,从N40开始停止预读(N40之后白色背景,代表目前NC没有预读,而N30之前是灰色背景,代表系统已经预读/执行完毕),当执行完N30之后,PLC有输出。
那么预处理有和无有什么作用呢?
我们重新编程程序,不含预处理的,如下图,在左图正在运行的程序中,在N20增加一句R0=0,用以清0;N80增加一句R0=1用以赋值,但是,目前程序运行在N30,而此时R0的值已经为1了。也就是说在我们运行N30时,已经预读到后面的语句,这在我们连续加工中非常重要,再次不进行展开讲述。
为了读到正确的R值,我们在N80前面增加一句M88,此时R0在M88之前就不会被赋值为1了。
3
主轴复位功能M功能:MD10714
该功能主要用于程序结束时,主轴旋转不停止,即程序结束但是主轴不停转;
例如:MD10714=32时,执行M3S1000 M32的状态;
与主轴相关的,不在DB21.DBB194~207中解析,因此,DB21.DBX198.0=0,但是DB21.DBD70=32
4
换刀子程序M6
大多情况下,在换刀中,通过M6来执行换刀子程序(例如L6,前提MD22550=1)。该功能是通过MD10715和MD10716来实现,在MD10715参数输入M值6,执行子程序通过MD10716来实现。同样的道理,可以在MD10715其他索引值输入其他M功能值,执行子程序在MD10716对应的索引值中设置。
MD10715[0]=6
MD10716[0]=L6
当执行M6时,系统执行L6;
但是,由于机床带有刀库管理功能,因此M6并不会输出到DB21的接口信号中。
5
换刀M代码
该功能用于换刀M代码,由MD22560来实现。例如,当MD22560=99即,换刀是否生效,需要M99来决定。
例如:下左图为执行T2M99前;右下图为执行后的状态。
同样,PLC也不会收到高电平信号
我们下章继续讲述M功能的实现方式。
点击卡片,和我们一起分享数控机床的使用经验和技巧