使用EXTCALL指令可从外部程序存储器(本地驱动、网络驱动、USB驱动)载入零件程序,将它作为子程序执行。如果外部程序包含跳转指令(GOTOF、GOTOB、CASE、FOR、LOOP、WHILE、REPEAT、IF、ELSE、ENDIF等),跳转目标必须位于载入存储器区域内。可以通过MD18360 MM_EXT_PROG_BUFFER_SIZE指令设置载入存储器的大小。在调用外部程序时,无法向该程序传送参数。
在SD42700 $SC_EXT_PROG_PATH设定数据中可以预设外部子程序目录的路径。此路径和EXTCALL中指定的程序路径或者程序标志合在一起,组成了目标程序的完整路径。
(1)编程格式
EXTCALL("<路径/><程序名称>")
(2)指令参数说明
EXTCALL:调用一个外部子程序的指令。
<路径/>:绝对或相对路径说明(可选)。
<程序名称>:设定程序名称时不添加“_N_”前缀。可使用字符“_”或“.”将扩展名(“MPF”、“SPF”)添加在程序名上(可选)。例如"WELLE"或者"WELLE_SPF"。
编写程序时需要注意:
1)在指定路径时可使用以下缩写:
.LOCAL_DRIVE:本地驱动。
.CF_CARD:CF卡。
.USB:前端USB接口CF_CARD和LOCAL_DRIVE可以互换使用。
2)通过USB驱动外部执行,如果需要通过USB接口从外部USB驱动器载入外部子程序,则此处只能使用名为“TCU_1”的接口X203。
(3)编程示例
例 从本地驱动执行主程序。
程序代码 注释
N010 PROC MAIN ;主程序Main.MPF
N020…
N030 EXTCALL("SCHRUPPEN") ;从本地驱动上调用子程序SCHRUPPEN(www.xing528.com)
N040…
N050 M30
外部子程序
N010 PROC SCHRUPPEN
N020 G1 F1000
N030 X=...Y=...Z=...
N040…
…
N9999 M17
编程说明:主程序“Main.MPF”位于NC存储器中,并已选择执行该程序。需要下载的子程序“SCHRUPPEN.SPF”或“SCHRUPPEN.MPF”位于本地驱动器的目录:“/user/sinumerik/data/prog/WKS.DIR/WST1.WPD”下。未设定路径时,必须为此示例设定以下EXTCALL指令:EXTCALL("LOCAL_DRIVE:WKS.DIR/WST1.WPD/SCHRUPPEN")。
(4)编写EXTCALL指令时的注意事项
1)子程序路径的默认设置为:SD42700 $SC_EXT_PROG_PATH="LOCAL_DRIVE:WKS.DIR/WST1.WPD"。
2)EXTCALL调用带绝对路径说明。如果在给定的路径下存在子程序,则在EXTCALL调用后执行子程序。如果不存在该子程序,则中断程序执行。
3)EXTCALL调用带相对路径说明或不带路径说明。根据下列模式查找存在的程序存储器:
①如果在SD42700 $SC_EXT_PROG_PATH中预设了路径说明,则首先从此路径出发查找EXTCALL中的设定(程序名或者相对路径说明)。
②如果没有在预设的路径下找到调用的子程序,则继续从用户存储器的目录查找EXTCALL调用的说明。
③一旦找到子程序,查找结束。如果没有找到子程序,则程序中断。
4)可设定的加载存储器(FIFO缓存器)。在“从外部执行”模式中编辑某个主程序或者子程序时,在NCK中需要有一个加载内存。后装载存储器的大小预设置为30KB,可如同其他存储器相关的机床数据那样,仅由机床制造商根据需求修改。对于所有同时在“从外部执行”模式中被处理的程序而言,必须相应设置一个加载内存。
5)通过复位和上电,可以中断外部的子程序调用,并且清除各自的后装载存储器。选择用于“从外部执行”的子程序在进行复位(RESET)操作或零件程序结束后,选择仍生效。然而通电操作后,选择失效。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。