机器人FOLGE程序是如何被调用激活的呢?

描述

1.在CALL中调用已建立FOLGE程序.

SPS

SPS

2.CALL调用FOLGE程序:

PGNO = PRG_NR $IN[1] TO $IN[8]

Folgestarten打开Folge程序

-程序启动-

SWITCH  P_TYPE -程序使用类型选择

CASE 0 ;-以整数形式接受发出程序号

SWITCH PGNO

CASE 10-如程序满足选择程序10

FOLGE10()-执行程序10

CASE 124

FOLGE124()

CASE 125

FOLGE125()

ENDSWITCH

3.程序启动控制环路:

SPS

DEF FOLGE10() -程序名

   SPS_N=-1

   VW (#VW_AUE_INIT,TRUE) -进行初始化- M254= M255 保存PLC给过来的程序号

   - M255=true-

   PENTER:-跳转标志名

INTERRUPTDECL 10 WHEN $CYCFLAG[254]==FALSE DO VW(#FB_STOP,TRUE)

INTERRUPTON 10

-只要M254没有那么立即执行VW(#FB_STOP,TRUE)开行条件程序

 -只能满足条件M245/M255,或者发出模拟信号才能推出VW(#FB_STOP,TRUE)程序

   INT10=TRUE

PTP VB=10% VE=0% ACC=100% RobWzg=1 Base=0 SPSTrig=0[1/100s] P

1: A15 = EIN  -发出在原位

2: SPSMAKRO0 = EIN

         SPS_FERTIG=FALSE

INTERRUPTDECL 10 WHEN $CYCFLAG[254]==FALSE DO VW(#FB_STOP,TRUE)

INTERRUPTON 10-开行条件程序开始启动

         INT10=TRUE

VW(#VW_INIT,TRUE)

         VW_USR_R (#USR_INIT)-对USR_R进行初始化

TRIGGERWHENDISTANCE=1 DELAY=-0.1 DO P0_MERKER=TRUE

         VW_MPARA_ACT=P0_D

         Act_P1 = P0

         Act_P2 = P0

         VW(#MPARA,TRUE)–执行轨迹的设置

         SPS_FERTIG=FALSE

TRIGGERWHENDISTANCE=1 DELAY=0 DO SPS_TRIG(1)PRIO=-1

-执行SPS语句程序-

PTP P0-执行轨迹程序

         $ADVANCE=1 -提前执行1条轨迹行

WAITFOR SPS_FERTIG  -中断预执行指令,等待SPS指令结束,SPS指令结束才能程序下行。

Warte auf Folgenstart

      VW (#VW_AUE_WAIT,TRUE)

一直到有E9PLC给出程序启动,给入程序号与执行CELL时给的程序号是否相同,

IF N_VW==TRUE THEN

GOTO PEXIT –向下跳转

ENDIF

-- FOLGE 10 - AU491_1 CN Schweissen --

-- UP 101 - Kappenfraesen --

PTP VB=100% VE=0% ACC=100% RobWzg=1 Base=0 SPSTrig=0[1/100s] PU

......

PTP VB=100% VE=0% ACC=100% RobWzg=1 Base=0 SPSTrig=0[1/100s] P

   VW (#VW_AUE_END,TRUE)

-发出A14机器人程序在最后一点-等待PLC程序号给入0-发出机器人程序号0-关闭A14

GOTO PENTER -向上跳转

   PEXIT:

END

SPS






审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分