文档库 最新最全的文档下载
当前位置:文档库 › ASUP

ASUP

ASUP
ASUP

ASUP异步子程序

PLC实现步骤:

1. 修改OB100中FB1的参数

NCKomm:= TRUE (默认为FALSE)

2. 创建DB100

目的是将程序的路径和程序名保存在数据块中。格式如下:

需要注意,如果要检查此数据块中内容,一定要看“Actual value”列(在编辑画面

下,点击View菜单中的Data View)。

3. 创建FC100

调用FB4和FC9。FB4是将NC程序与中断号建立对应关系;而FC9是在检测到

PLC状态后,触发中断,从而激活异步子程序。

CALL FB 4 , DB101

Req :=I7.7 ?用用户定义键1触发FB4建立NC程序与中断号的关系

PIService:="PI".ASUP ?固定格式

Unit :=1 ?通道1

Addr1 :="asup_int".prog_path ?指定NC程序所在路径

Addr2 :="asup_int".prog_name ?指定NC程序名

Addr3 :=

Addr4 :=

WVar1 :=W#16#1 ?中断号

WVar2 :=W#16#1 ?中断优先级

WVar3 :=W#16#0 ?无LIFTFAST

WVar4 :=W#16#0 ?无BLSYNC

WVar5 :=

WVar6 :=

WVar7 :=

WVar8 :=

WVar9 :=

WVar10 :=

Error :=M100.0 ? FB4出错标志

Done :=M100.1 ? FB4完成标志

State :=MW102 ?状态字

CALL FC 9

Start :=I7.6 ?用用户定义键1触发中断

ChanNo :=1 ?通道号

IntNo :=1 ?中断号

Activ :=M100.2 ?正在执行FC9标志

Done :=M100.3 ?完成标志

Error :=M100.4 ?错误标志

StartErr:=M100.5 ?错误标志

Ref :=MW104 ?参考字(内部用)

4. 调用FC100

在OB1中调用FC100。注意下载时要先下DB100,DB101,FC100,最后下OB1

5. 编写异步子程序ABCD.SPF(程序名任意)

注意:编写完成存盘后,要将其装载到内存中。

6. 激活ASUP

在通道处于reset状态时,按I7.7键,正常情况下M100.1应变为1。(松开I7.7键,即启动信号变为0后,完成标志也会变为0)

这时,在自动方式下,执行某个NC程序,再按I7.6键,异步子程序ABCD.SPF会被调用。(前提ABCD.SPF程序已经被装载到NC内存中)当异步子程序执行完后,自动返回刚才被中断的NC程序,继续执行。

注意:

1.从异步子程序返回后是从被中断的程序段的下一段继续执行!

2.如果想让NC程序从被中断处继续执行,可在异步子程序最后添加REPOSA / REPOSL。

见下例,如果加工程序在N20被异步子程序中断,当异步子程序执行完返回加工

程序时:

若异步子程序没有REPOSA/REPOSL,则加工程序会直接执行N30。

若异步子程序有REPOSA/REPOSL,则各轴会先返回中断点,然后执行加工程序

3.如果想执行完异步子程序后,即停止。可以在异步子程序最后编写个M代码,PLC读到此M代码后,置位DB21.DBX7.7,即PLC复位通道。如:

A DB21.DBX 202.0 ?M64

S DB21.DBX 7.7

NC实现方法一步骤:

如果通过NC实现,一般会用NC快速IO来触发,当然,也可以通过接口信号制作假的NC快速IO。

1.设置MD21210 SETINT_ASSIGN_FASTIN定义快速输入字节,下图中选择NC快速IO 的第二个字节作为中断字节

2.NC程序执行SETINT(4) prio=1 ABCD

3.调用

当NC快速输入的第二字节的位3有信号时,系统会调用并执行ABCD.SPF

注意:

可以通过接口信号制作假的NC快速输入

A I7.7

=DB10.DBX123.3

NC实现方法二步骤:

即通过NC快速输出与输入“短路”的方法实现

1.定义快速输入输出的数量

MD10350 FASTIO_DIG_NUM_INPUTS=2

MD10360 FASTIO_DIG_NUM_OUTPUTS=2

2.把快速输入输出做个短路(NC快速输出第二字节位2与NC快速输入第二字节位2短路) MD10361 FASTIO_DIG_SHORT_CIRCUIT[0]=’H03020302′

3.分配产生程序中断的快速输入 (中断字节)

MD21210 SETINT_ASSIGN_FASTIN=2

4.SETINT (3) PRIO=1 ABCD 定义中断后调用的程序

5.IDS=1 EVERY $AA_IM[X]>10 DO $A_OUT_[11]=1

混合方式方法一:

先由SETINT将中断号和处理子程序做个连接,然后在PLC中,判断当条件满足时调用FC9触发相应中断,系统就会自动调用处理子程序。

混合方式方法二:

先由PLC将中断号和处理子程序做个连接,然后在 NC程序中,判断当条件满足时触发相应中断(参看NC实现方法二),系统就会自动调用处理子程序。

LIFTFAST语句

从轮廓快速回退。可由变量ALF和下列指令指定回退的方向:

LFTXT 回退的平面由路径的切线和刀具方向确定。此代码为默认设置,ALF=1,即向上提刀。LFWP 回退平面是由G17/G18/G19指定的工作平面

G17:X/Y平面,ALF=1X方向回退,ALF=3 Y方向回退

G18:Z/X平面,ALF=1 Z方向回退,ALF=3 X方向回退

G19:Y/Z平面,ALF=1 Y方向回退,ALF=3 Z方向回退

LFPOS由POLFMASK 和POLF指定轴的绝对位置

下图是朝运动方向看去;若有LIFTFAST,G41左刀补7号;G42右刀补3号。

如果回退前的程序中用了镜像功能,那么一般设置MD MD21202

$MC_LIFTFAST_WITH_MIRROR=TRUE 即回退方向也镜像。

例:

N10 ALF=1

N20 DILF=20 ?回退距离,如果没有指定,按MD21200 $MC_LIFTFAST_DIST设定移动。N30 SETINT(3) PRIO ABCD FASTLIFT

N40 G0 X0 Y0 Z0

N50 G1 X100 F500

N60 Y100

N70 Z100

N80 M2

若N50激活回退,Z轴增量抬起20mm

若N60激活回退,Z轴增量抬起20mm

若N70激活回退,Z轴增量抬起20mm

例:ALF=2其它程序同上

若N50激活回退,Y,Z同时增量运动,Y朝负向移动,Z朝正向移动。

例:ALF=1 LFWP其它程序同上

若N50激活回退,沿X正向增量移动20mm

BLSYNC语句

处理完当前程序段后,再响应异步子程序

SETINT() PRIO=

SETINT() PRIO= BLSYNC

SETINT() PRIO= LIFTFAST

注意BLSYNC与LIFTFAST不能同时用。

如果不希望异步子程序被单段,可以设置MD10702 $MN_IGNORE_SINGLEBLOCK_MASK的位0=1和位1=1,但单段依然可被SBLON激活。若设置MD20117

$MC_IGNORE_SINGLEBLOCK_ASUP,则单段不会被 SBLON激活。

机床厂编写的ASUP最好放在制造商循环目录下,且程序开头要有SBLOF 和DISPLOF,即关闭单段和关闭程序显示。

例:PROC ASUB1 SBLOF DISPLOF

这样就可以保证异步子程序作为一个语句执行,而不会被中断。

相关机床数据

MD11600 $MN_BAG_MASK

位0 =0 加工程序被异步子程序中断后,即执行异步子程序时可切换操作方式。

=1 加工程序被异步子程序中断后,即执行异步子程序时不能切换操作方式,报警16927。位1 =1 位0=1时也可切换(???)

MD11602 $MN_ASUP_START_MASK

位0:异步子程序可自身启动,即未执行加工程序时可激活异步子程序,如在JOG方式下激活异步子程序。设置此位需要选项功能

位1:允许在轴未会参考点的情况下激活异步子程序

位2:在读入使能被禁止时(即加工程序处于等待状态,不能继续执行,多数是在机床辅助功能未完成时,如正在执行换刀动作)也可激活异步子程序。

位3:在ASUP中可点动。注意:只适用于单通道系统,且只能用于在未执行程序而激活ASUP 的情况下。

MD11604 $MN_ASUP_START_PRIO_LEVEL定义了ASUP的优先级

推荐设置:

MD11600 $MN_BAG_MASK = 3

MD11602 $MN_ASUP_START_MASK = 7

MD11604 $MN_ASUP_START_PRIO_LEVEL = 7

MD11610 MN_ASUP_EDITABLE

=0:用户循环目录_N_CUS_DIR下的子程序ASUP.SPF不响应RET和REPOS

=1:用户循环目录_N_CUS_DIR下的子程序ASUP.SPF响应RET;不响应REPOS(系统处理)

=2:用户循环目录_N_CUS_DIR下的子程序ASUP.SPF响应REPOS;不响应RET(系统处理)

在异步子程序中,通过判别系统变量$AC_ASUP的每一位,可知道是什么原因导致激活用户ASUP的。

例:

在执行加工程序时被异步子程序中断,$AC_ASUP=2

在JOG方式下,直接激活异步子程序,$AC_ASUP=4

特殊的异步子程序PROG_EVENT.SPF

顾名思义,就是当发生了某个事件,系统会自动调用某个设定的子程序,用于对事件做出相应的处理。这里所说的事件有如下几个:

?程序启动

?程序结束

?操作面板上的复位

?NC系统上电

具体对那个事件做出响应呢?由MD20108 $MC_PROG_EVENT_MASK 来选择Bit0 = 1: 响应“程序启动”

Bit1 = 1: 响应“程序结束”

Bit2 = 1: 响应“操作面板上的复位”

Bit3 = 1: 响应“NC系统上电”

有了事件,那处理事件的程序呢?默认的程序名是PROG_EVENT.SPF,它存放在

F:/dh/_N_CMA_DIR/(制造商循环目录)目录下。当然也可以放在F:/dh/_N_CUS_DIR/(用户循环目录)或F:/dh/_N_CST_DIR/(标准循环目录)目录下。如果想改成其它程序名,需要修改MD11620 $MN_PROG_EVENT_NAME. 简单做个实验:

1.编写PROG_EVENT.SPF程序在制造商循环目录下(Manufact. cycles)创建

PROG_EVENT.SPF程序。(注意其它目录中有没有相同的程序名)内容如下:

IF ($P_PROG_EVENT==1)

MSG(“this is program start”)

ENDIF

IF ($P_PROG_EVENT==2)

MSG(“this is program end”)

ENDIF

IF ($P_PROG_EVENT==3)

MSG(“this is reset on OP”)

ENDIF

IF ($P_PROG_EVENT==4)

MSG(“this is NC power up”)

ENDIF

M00

M17

存盘并装载(LOAD)。

2.设置机床数据MD20108 $MC_PROG_EVENT_MASK=F

3.效果这样,当你按程序启动键,程序结束的时候,按面板上的复位键或是NC上电完成,系统都会调用PROG_EVENT.SPF程序,这样在屏幕上方,你就能看到不同的提示。注:详细内容,如限制等,请参考光盘资料基本功能K1章节的2.7.11小节。

欢迎访问CNC知识共享网站:https://www.wendangku.net/doc/f53687813.html,

相关文档