发布于 2007-12-03 21:58:13
0楼
M0-M99中的M功能是通过动态的M功能译码来实现的。在NC加工程序中M功能执行的时候,会发出一个信号,传送到PLC的接口,也就是DB21.DBB194-DB21.DBB206,而这些信号,在PLC中只存在一个PLC的扫描周期,所以,一般会使用S指令去置位到某一个地址,比如一个用户定义的数据块中的一位,然后在去进行相应功能的处理。
但是动态M的译码,在接口信号中只给出了0-99,那么100以上的M功能是如何在PLC中实现的呢?这就用到了扩展M功能,DB21.DBD72,所有执行的M功能的数值,就会发送到这个双字节中,在下一个M功能执行以前,他会保持不变。在PLC中我们就可以用这样的方法来实现。比如你要实现M200,Q1.0是M200所要执行的动作:
L 200
L DB21.DBD70
==I
S Q1.0
M功能的数值范围为:0 – 2147483647(max. INT value)
用上面的方法,我在840D上试验过M200000(几个0忘记了反正很多,呵呵)的功能,