![c95a15614a03bf8f0b8ca456b981a380.png](https://i-blog.csdnimg.cn/blog_migrate/e74d3c2a492897a6233c24b41f9d705b.jpeg)
通常我们见到的M99都出现在子程序的结尾,用来结束子程序并返回到主程序。
![81d020a806985681f960a2ba46b1f1d3.png](https://i-blog.csdnimg.cn/blog_migrate/b0fee69b1a141d2c4a1005e786c801e1.jpeg)
但M99这个代码的功能远不止如此。
除了我们常见的返回主程序的功能,M99可以实现循环和跳转功能。
在自动化加工时,我们可以利用机器人或者送料机保持机器的持续加工状态,实现“熄灯工厂”。
当操作人员准备好了原料,机器人会根据程序的设定及时的进行原料和半成品的装卸工作。因为这个动作是重复性的,所以我们的加工程序也需要重复的执行,自动的打开机床的防护门,等待加工材料的装卸,自动的关上防护门,重新执行加工代码……
![21ed0f267ec23da58b5b86ac92275d6e.png](https://i-blog.csdnimg.cn/blog_migrate/2a2ea944b9898514a132a645356d4f73.jpeg)
这时,我们就会用到M99的循环功能。是否再次执行加工代码,需要等待机器人或者送料机的信号。
根据原材料在送料机或者机器人中的设定,一旦托盘或者送料机处于待料状态,这个加工程序将会有条件的停止,而不是无限循环执行。
M99用在主程序的结尾,会让整个加工程序循环执行;
用在子程序的结尾,则会返回到主程序。
![2658d55f6c26c001e30de09a9a529501.png](https://i-blog.csdnimg.cn/blog_migrate/fbe6fa5757413a47bed0fba7e6b86983.jpeg)
在使用M99的跳转功能前,有一点要特别提醒:
*不要使用重复的行号*
不管是利用GOTOnnnn还是M99 Pnnnn,都会无条件的跳转到Nnnnn这一行上。一旦程序里出现多个Nnnnn行,控制系统将会跳转到它们中的任意一行上,这对加工来说非常危险,所以设置独一无二的行号非常重要。
要跳过大量的代码我们会用到跳转功能,如果我只想跳过程序里的几行代码,我该怎么办?
相信在下面的视频里,你能找到答案。
哈斯小贴士063-用M99实现循环,跳转和返回