APP下载

M指令在西门子系统中的编制和使用

2018-05-31南京高速齿轮制造有限公司江苏211100赵红淑

金属加工(冷加工) 2018年5期
关键词:代码指令程序

■ 南京高速齿轮制造有限公司 (江苏 211100) 赵红淑

我们在数控系统(西门子)中大量使用M指令,比如M3是主轴正转、M5主轴停转等常规通用指令,也有制造商自己开发的某些特定功能或动作的M指令。特别是加工中心换刀程序中写有多个M指令,每一步的动作都有特定的M代码完成,并且有先后顺序,出故障时还能停止,往往还伴有报警。那么这些M指令是怎么编写的,在使用时又是如何做到条件检测的,本文将就这一问题进行讨论。

1. M0-M99动态M功能

在NC程序中M功能执行时(以840D系统为例),会触发一个信号,该信号会传送到PLC接口,通过840D的调试手册可以查出该信号(DB2x.DBX294.0-DB2x.DBX206.3),而这些信号,在PLC中只存在一个扫描周期,所以一般会使用S指令,置位某个地址然后去驱动某个动作。

程序段如下(以通道1为例):

N010 G0 X0 M10 //启动冷却指令M10

...

N080 M11 //当NC程序运行到此步时,M11关闭冷却

在PLC程序中我们编写如下程序:

A DB21.DBX195.2 //M10执行时在nck程序的通道1中编辑,激活一个PLC扫描周期

S Q0.0 //冷却泵启动(Q0.0为控制泵接触器的输出信号)

A DB21.DBX195.3 //M11执行时在nck程序的通道1中编辑,激活一个PLC扫描周期

R Q0.0 //冷却泵停止

实际上我们很多M指令是“闭环”的,就是指令执行后还要检测执行有没到位信号或者压力信号等,若不到位就无法执行下一步,一直停在该M指令处。这就需要PLC或者NC对指令进行处理了。

PLC的处理方法是在执行动作的同时将“读入使能禁止”(DB21.DBX6.1)激活,同时检测反馈信号,当反馈信号正常时再复位该“读入使能禁止”,此时该M指令就完成“闭环”反馈,执行下一步了。如在某程序中有个松刀动作M20,要求松刀不到位时不能执行下一步,程序如下:

A DB21.DBX196.4 //M20执行时在nck程序的通道1中编辑,激活一个PLC扫描周期

S Q0.1 //驱动松刀电磁阀

S DB21.DBX6.1 //同时激活“读入使能禁止”

A Q0.1

A I0.1 //检测松刀到位信号

R DB21.DBX6.1 //到位后,复位该信号,NC程序继续执行

除了用这种PLC程序做检测外还可以结合NC的IF语句做判断,这在加工中心的换刀程序中大量使用。如某龙门加工中心换刀程序中有段程序:

M93 //刀库门开

_TT: _MM[0]=$A_DBB[80] //Y、Z轴运动条件:开门到位

IF _MM[0]==0 GOTOB _TT

G153 G01 G90 Y=$MA_FIX_POINT_POS[1,AX2] F=HIGHSPEED

G153 G01 G90 Z=$MA_FIX_POINT_POS[1,AX3] F=HIGHSPEED

程序中IF语句就是用来检测开门信号的,如果不到位,Y、Z轴是不能运动的,否则有撞门风险,$A_DBB[80]主要是通过如图1所示的PLC实现的。我们能够清晰的看到以下的逻辑,执行M93后激活DB21.DBX205.5,从而通过M110.7激活开门的气阀Q41.0(Network66),同时Network67在检测信号,当开门信号到位,关门信号脱开时,把1传送给DB91.DBB80。

再通过如图2所示的PLC,用OB1调用FC21把DB91.DBB0开始的200个字节,都写入$A_DBB[0]开始的200个字节里。这样就实现了$A_DBB[80]能够检测开门信号有没到位的功能了。

2. 静态M功能

该M指令的接口信号地址类型和块编号功能由OEM厂家自行定义,它和PLC地址没有标准对应关系,如M99=125实现开门动作,PLC编写如下:

A(

L 99L

DB21.DBW68 ==D)

//比较读入的M静态指令是不

M99

A(L 125 L DB21.DBD70==D)

//比较读入的是不是125

A DB21.DBX58.0

S DBxx.DBXxx.x //确定了执行的M99=125后驱动某个地址

图1

图2

在NC通道执行时99被存入DB21.DBW68的地址中,该变量定义为整形变量。在执行时将125存入DB21.DBD70的地址中,该变量定义为实数变量。还有关键信号DB21.DBX58.0,该变量在M功能代码改变时跳变,信号保持一个PLC周期,可以用它锁存M功能代码读取瞬间的代码数值,以保证存入数据不出错。当NC读入的程序段执行M99=125时激活最后的DBxx.DBXxx.x地址,然后通过这个地址可以做后续的逻辑编写,比如驱动开门,再做开门信号的检测等等。

以上为方便理解,只是简单写出了主要的原理和思路,真正运用时还需要考虑转换数据类型等,部分比较值肯定用索引地址和间接指针寻址代入减少代码使用,逻辑保护也要加强很多。

[1] 熊熙. 数控加工实训教程 [M]. 北京:化学工业出版社,2003.

[2] 王爱玲,武文革,辛志杰,等.现代数控机床 [M]. 北京:国防工业出版社,2009.

[3] 邱言龙,李文菱. 数控机床维修技术 [M]. 北京:中国电力出版社,2014.

猜你喜欢

代码指令程序
《单一形状固定循环指令G90车外圆仿真》教案设计
试论我国未决羁押程序的立法完善
创世代码
创世代码
创世代码
创世代码
“程序猿”的生活什么样
英国与欧盟正式启动“离婚”程序程序
创卫暗访程序有待改进
中断与跳转操作对指令串的影响