1.在CALL中调用已建立FOLGE程序.
2.CALL调用FOLGE程序:
PGNO = PRG_NR$IN[1]TO $IN[8]
Folgestarn打开Folge程序
-程序启动-
SWITCH P_TYPE -程序使用类型选择
CASE 0 ;-以整数形式接受发出程序号
SWITCH PGNO
CASE 10-如程序满足选择程序10
FOLGE10()-执行程序10
CASE 124
FOLGE124()
CASE 125
FOLGE125()
ENDSWITCH
3.程序启动控制环路:
DEF FOLGE10() -程序名
SPS_N=-1
VW (#VW_AUE_INIT,TRUE) -进行初始化- M254= M255 保存给过来的程序号
- 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-执行轨迹程序
$VANCE=1 -提前执行1条轨迹行
WTFOR SPS_FERTIG -中断预执行指令,等待SPS指令结束,SPS指令结束才能程序下行。
Warte auf Folgenstart
VW (#VW_AUE_WAIT,TRUE)
一直到有E9PLC给出程序启动,给入程序号与执行CELL时给的程序号是否相同,
N_VW==TRUE THEN
GOTO PEXIT –向下跳转
ENDIF
-- FOLGE 10 - AU491_1 CN Schweissen --
-- UP 101 - Kenfraesen --
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