子程序调用1

已锁定

迅影

  • 帖子

    284
  • 精华

    4
  • 被关注

    34

论坛等级:侠圣

注册时间:2012-12-19

钻石 钻石 如何晋级?

子程序调用1

2871

6

2022-09-06 10:20:43

SINUMERIK的程序管理中分为三个目录:零件程序、子程序和工件,如下图:

零件程序目录下的文件后缀名都是“.MPF”,通常也叫做主程序;子程序目录下的文件后缀名都是“.SPF”;工件目录下就复杂了,工件目录下的子目录一般对应一个工件,原则上和这一工件相关的主程序、子程序、刀具数据、零偏数据以及工艺文件等都放在一起,目的是为了方便数据管理,以后再加工这个零件的话,非常方便。

在实际使用中,经常会用到主程序调用子程序的情况,这个简单吗?可简单可复杂,子程序种类也很多:有不带参数的子程序,带参数的子程序,可重复使用的子程序也可以叫循环(这里又有标准循环,机床厂循环和用户循环),还有特殊的叫异步子程序,事件触发的子程序。咱们这里先介绍机床用户可能用到的子程序,且听我慢慢道来:


不带参数的子程序调用

这个简单,举个例子,在主程序中编写mymain.mpf:

    mysub

    M30

再在子程序中编写mysub.spf:

    msg("子程序显示")

    M0

    M17

然后,在自动方式下,选择mymain.mpf,执行。显示如下:

主程序和子程序间可以借助R参数或者全局用户数据(GUD)传递数据,当然这种方式程序的可读性不好,而且参数容易搞混,所以如果有参数要传递,建议使用带参数的子程序。

2. 带参数的子程序调用

主程序mymain.mpf:

EXTERN mysub2(real,real)

G0 X0 Y0

mysub2(100,200)

M30

子程序mysub2.spf:

PROC mysub2(real x_pos, real y_pos)

G01 X=x_pos Y0 F5000

X=x_pos Y=y_pos

X0 Y=y_pos

X0 Y0

M17

这里有几个地方要注意:

- 带参数的子程序必须用EXTERN在主程序中声明

- 子程序中以PROC开头定义子程序的形参数据类型,在PROC后还可以通过下面语句定义:

-SAVE:” 进入子程序时保存现场(如生效的G代码),子程序执行完后,再恢复现场

- SBLOF/SBLON:进入子程序后,禁止/允许单段

-DISPLOF/DISPLON:禁止/允许显示子程序程序段

-DISPLOF ACTBLOCNO:禁止显示子程序程序段时,若程序出错会显示出错程序段号

例:PROC mysub2(real x_pos, real y_pos) SAVE DISPLOF ACTBLOCNO


主程序在调用子程序时给实参的这种参数传递方式,使子程序更易读,也更通用。

机床厂会编写子程序实现机床的某一功能,机床用户可以编写子程序实现某一特定加工,我们把这种经常重复利用的、有特定目的的子程序,称之为“循环”,循环有专门的存放目录,如下图所示,其中:

“标准循环”目录存放的是西门子的标准车削、铣削等工艺循环

“制造商循环”目录存放的是机床厂为这台机床编写的循环,比如换刀循环

“用户循环”目录应该是机床用户自己编写的一些循环

如要找到循环的目录,查看循环,首先要有权限(系统有7级权限,目的是实现专人专事,避免发生安全事故)。如果有权限,进入“调试”区域,按“系统数据”软键,用光标键找到“NC数据”目录,回车,选择“循环”目录,回车。

警告:不能随意删除“制造商循环”和“用户循环”目录下的程序,否则可能导致机床故障!


子程序调用1 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SINUMERIK

共有25500条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。