事件触发的子程序

已锁定

迅影

  • 帖子

    285
  • 精华

    4
  • 被关注

    35

论坛等级:侠圣

注册时间:2012-12-19

黄金 黄金 如何晋级?

事件触发的子程序

3174

12

2022-08-27 08:17:29

说说特殊的子程序--事件触发的子程序。

这里所说的事件是“程序启动”“程序停止”“通道复位”等,系统在这些事件发生时可以调用固定的子程序去做处理,这个子程序名为“PROG_EVENT.SPF”

MD20108 $MC_PROG_EVENT_MASK 的每一位对应一个事件,例:若位1=1,当“零件程序结束”时,系统会触发调用PROG_EVENT.SPF

为了在PROG_EVENT.SPF程序中区分不同的事件,系统提供了变量$P_PROG_EVENT:

$P_PROG_EVENT=1 是“程序启动”事件

$P_PROG_EVENT=2 是“程序结束”事件

$P_PROG_EVENT=3 是“通道复位”事件

$P_PROG_EVENT=4 是“系统上电”事件

$P_PROG_EVENT=5 程序段搜多后输出动作程序段后

具体用法,举例说明:

在用户循环下,创建名为PROG_EVENT.SPF子程序,内容如下:

PROC PROG_EVENT DISPLOF

IF ($P_PROG_EVENT==1)

    msg("program start event")

    m0

    msg()

    RET

ENDIF

IF ($P_PROG_EVENT==2)

    msg("program stop event")

    m0

    RET

ENDIF

m17

设置MD20108$MC_PROG_EVENT_MASK=3H(即对程序启动和程序停止事件响应)(需要multiple mode actions选项M43)

当按下程序启动键后,屏幕显示:

当程序结束后,屏幕显示:

还有一些相关数据:

MD11620 $MN_PROG_EVENT_NAME 是被事件触发的子程序的程序名,默认的程序名是PROG_EVENT.SPF

MD11622 $MN_PROG_EVENT_PATH是这个子程序放在那里

    MD11622=0: 表示子程序放在/_N_CMA_DIR 目录下,即制造商循环目录

    MD11622=1: 表示子程序放在/_N_CUS_DIR目录下,即用户循环目录

    MD11622=2: 表示子程序放在/_N_CST_DIR目录下,即标准循环目录

   MD11622=3: 首先查找/_N_CUS_DIR,再查找/_N_CMA_DIR最后查找/_N_CST_DIR。这里可以看出用户目录优先。

最后,请注意:

- 通常,事件触发的子程序是机床制造商使用的

- 在标准循环目录下,也有PROG_EVENT.SPF子程序而且具有一定的功能,所以不建议在制造商循环目录和用户循环目录下,再创建PROG_EVENT.SPF。


事件触发的子程序 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SINUMERIK

共有25809条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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