技术论坛

 回复:求助:怎样自定义M功能

返回主题列表
作者 主题
chen11201
侠圣

经验值:3740
发帖数:627
精华帖:3
楼主    2007-11-08 18:12:01
主题:求助:怎样自定义M功能
各位大侠:
本人想自定义一个新的M功能,先在s7中建一个数据块DB336(举个例子,且此数据块不是西门子标准数据块),并在此数据块中定义DB336.DBX0.0为M336.然后在NC中怎么定义或编程,数据块DB336才能被NC调用,然后在NC程序中输入M336就能实现相应的功能呢?
RICHARDS
游侠

经验值:527
发帖数:245
精华帖:3
    2007-12-03 21:58:13
精华帖  主题:回复:求助:怎样自定义M功能
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忘记了反正很多,呵呵)的功能,
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。