1、在CALL中调用已建立的FOLGE程序。
2.CALL调用FOLGE程序:
PGNO=PRG_NR$IN[1]TO $IN[8]
FolgestartenOpen Folge 程序
-程序开始-
SWITCH P_TYPE - 程序使用类型选择
CASE 0 ;-接受整数形式的发出程序号
开关PGNO
案例10 - 如果程序满足选择程序10
FOLGE10()-执行程序10
案例124
福尔格124()
案例125
福尔格125()
末端开关
3.程序启动控制循环:
DEF FOLGE10() - 程序名称
SPS_N=-1
VW (#VW_AUE_INIT,TRUE) -初始化- M254=M255 保存PLC给定的程序号
- M255=真-
PENTER:-跳转标志名称
INTERRUPTDECL 10 当$CYCFLAG[254]==FALSE DO VW(#FB_STOP,TRUE)
中断10
-只要M254不立即执行VW(#FB_STOP,TRUE)启动条件程序
- 仅当满足条件M245/M255 或发送模拟信号时,才能启动VW (#FB_STOP,TRUE) 程序。
INT10=真
PTP VB=10% VE=0% ACC=100% RobWzg=1 基础=0 SPSTrig=0[1/100s] P
1: A15=EIN - 现场签发
2: SPSMAKRO0=EIN
SPS_FERTIG=假
当$CYCFLAG[254]==FALSE DO VW(#FB_STOP,TRUE) 时,中断DECL 10
INTERRUPTON 10-打开条件程序启动
INT10=真
大众(#VW_INIT,真)
VW_USR_R (#USR_INIT)-初始化USR_R
TRIGGERWHENDISTANCE=1 延迟=-0.1 DO P0_MERKER=TRUE
VW_MPARA_ACT=P0_D
Act_P1=P0
Act_P2=P0
VW(#MPARA,TRUE)——执行轨迹设置
SPS_FERTIG=假
TRIGGERWHENDISTANCE=1 DELAY=0 DO SPS_TRIG(1)PRIO=-1
-执行SPS语句程序-
PTP P0-执行轨迹程序
$ADVANCE=1 - 提前执行1 条跟踪行
WAITFOR SPS_FERTIG - 中断预执行指令并等待SPS 指令结束,然后程序才能停止运行。
福尔根斯塔瓦特
大众(#VW_AUE_WAIT,TRUE)
直到E9PLC给出程序启动为止,给出的程序号是否与执行CELL时给出的程序号相同?
如果N_VW==TRUE 那么
GOTO PEXIT 跳下来
万一
-- FOLGE 10 - AU491_1 CN 瑞士--
-- UP 101 - 卡彭弗拉森--
PTP VB=100% VE=0% ACC=100% RobWzg=1 基础=0 SPSTrig=0[1/100s] PU
.
PTP VB=100% VE=0% ACC=100% RobWzg=1 基础=0 SPSTrig=0[1/100s] P
大众(#VW_AUE_END,TRUE)
- 最后一点发出A14机器人程序- 等待PLC程序号输入0 - 发出机器人程序号0 - 关闭A14
GOTO PENTER - 跳起来
PEXIT:
结尾
审稿人:刘庆