望诸位专家指点:
车床840D执行指令
N01 M245
N02 M357
执行完语句N01 M245,再执行指令M357,那么怎么理解:
1、数控系统怎么判断是否已经执行完M245指令;
2、查手册发现数控程序指令M245对应DB21.DBX34.0,但是简明调试手册上仅说明该信号为OEM通道信号,查西门子其它手册,也没有发现DB21.DBX34.0具体含义(机床没有进行OEM开发啊)
问题补充:
谢谢指点!另外我想补充下我的疑问:是不是每个M代码执行完成,就将对正在执行的M代码某一个信号进行复位,然后在对即将执行的M代码信号进行置位?下面随机写个程序,如*床正在执行N01程序M3,那么系统怎么判断N01段程序已经执行完成,然后怎么转而执行N02程序段M8
N01 M3
N02 M8
N03 M17
最佳答案
简单的M功能:程序段读到M功能字,送入PLC中,PLC根据所编写的程序进行动作,同时让NC程序停止在当前的段落,直到M功能在PLC中完成,PLC完成后告诉NC已经做完了,NC便继续往下读程序。
例如:N10 M12
N20 G0 X10
.....
程序读到M12指令,发送给PLC,PLC读取后解码,同时PLC把DB21.DBX6.1置位=1,这时你可以在屏幕的上方看到“等待读入使能”。PLC根据解码后的M指令去完成动作,比如某个油缸动作,当油缸推动到位,检测的反馈信号(外部开关量信号)进入PLC,PLC得到信号后表示改指令已经完成了,便复位DB21.DBX6.1=0,程序继续下一条N20的指令动作。
有些厂家会使用超出M99 以后的M 指令,这个有两种办法:
1)、通过OB100来制定,该办法不需要置位复位DB21.DBX6.1,这种方法比较复杂。
2)、读取DB21.DBD70,DB21.DBX58.0的变化,来读出使用的是什么M代码。当然这个办法还需要认为的置位和复位DB21.DBX6.1
提问者对于答案的评价:
谢谢大家的答复!个人觉得:该条建议更为简洁,容易理解,所以就采纳为最佳答案。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc209176.html