在自动循环过程中:
IF($OUT[PF0]AND VW_CALL_CELL AND ( NOT $PRO_MOVE) AND ($MODE_OP==#EX))THEN
机器人在原位(A15),执行了CALL程序,机器人没有程序执行,处在外部自动状态
CWRITE($CMD,STAT,MODE,"STOP 1") 直接对当前成程序进行控制,程序停止。
CWRITE($CMD,STAT,MODE,"CANCEL 1") 直接对当前成程序进行控制,程序退出。
P_OLD=P_SELECT
CWRITE($CMD,STAT,MODE,"RUN /R1/CELL ()")执行CELL程序
ENDIF
这短语是用来实现执行完Folge程序后由自动回到CELL的功能。
......
------------------------------------------------------
VW (#VW_AUE_WAIT,TRUE)
AUE_WAIT()
BOOL SIMU_START
INT P
$ADVANCE=DEF_ADVANCE –系统规定DEF_ADVANCE=1-因此预执行只能执行1步
IF(VW_INB AND$EXTSTARTTYP)THEN –此处正常不执行
-在CELL中将VW_INB关闭-$EXTSTARTTYP外部启动的状态TRUE/FALSE
N_VW=FALSE
RETURN
ENDIF
$H_POS=$AXIS_ACT-当前轨迹在HOME位
$LOOP_CONT=TRUE –激活模拟功能
$LOOP_MSG[]="KeyWord_WarteFolgestartSRB 发出提示信息:等待Folgestart"
REPEAT –开始执行循环指令
P0_MERKER=TRUE –机器人在HOME位
BITSHIFT=1
P=0
N_VW=FALSE
IF VW_CBY_CELL THEN –在CELL中激活VW_CBY_CELL=TRUE
IF(P_TYPE == 0)THEN -程序控制类型=0 整数控制方式
P = PRG_NR
ELSE
P = LOG_2(PRG_NR) -用于2进制程序号计算
ENDIF
ENDIF
IF(P<>P_OLD)THEN
–给入程序号与经过VW (#VW_AUE_INIT,TRUE)程序后的保存程序号P_OLD是否相同
N_VW=TRUE -不同FOLGEN程序会跳到最后一步
ELSE -相同没有变化
PRG_NR_REFL = PRG_NR -给入程序号发并发出反馈给PLC程序号
ENDIF
IF(P==0) AND VW_INB AND (($MODE_OP==#T1) OR ($MODE_OP==#T2))THEN
-没有给入程序号-在手动模式选择FOLGEN程序时,进行模拟才能启动FOLGEN程序
- VW_INB被在config.dat文件被设定为FALSE
N_VW=FALSE
SIMU_START=TRUE -启动
ELSE
SIMU_START=FALSE
ENDIF
IF((P==0) OR (P==P_OLD)) AND NOT ($LOOP_CONT) AND (($MODE_OP==#T1) OR ($MODE_OP==#T2))THEN
-如果没有程序号给入-或程序号与原来程序号相同 –没有$LOOP_CONT开启模拟-手动状态
N_VW=FALSE
SIMU_START=TRUE 启动模拟
ENDIF
--------
IS_CELL () –显示选择的程序名称是否是从CELL程序中执行跳过来的.
--------
IF NOT VW_CBY_CELL THEN
-如果不是CELL程序执行跳过来的–用于直接选择FOLGEN程序,而没有选择CELL
IF($MODE_OP==#T1) OR ($MODE_OP==#T2)THEN –在手动状态时
N_VW=FALSE
ELSE
VW_CALL_CELL=TRUE
$LOOP_MSG[]="KeyWord_FuerAutomatikCellAnwaehlen " -提示:选择执行CELL程序
WHILE NOT (($MODE_OP==#T1) OR ($MODE_OP==#T2)) -如果恢复到自动模式时才能下行
WAITSEC 0.1 -等待0.1秒
ENDWHILE
$LOOP_MSG[]="KeyWord_WarteFolgestartSRB" -提示: 等待程序启动
ENDIF
ENDIF
---------
OUT_WSLAV=TRUE
OUT_WPROZ=FALSE
WAITSEC 0.001
UNTIL((($IN[SRB]==TRUE) AND (P>0)) OR (N_VW==TRUE)) OR SIMU_START
一直到有E9PLC给出程序启动,有P程序号大于0, SIMU_START模拟才能跳出循环质量
-N_VW==TRUE -程序号发生变化程序号与之前CELL给入的程序号不同
退出循环指令—前提是程序启动给入,没有程序启动就得给模拟。
---------
$LOOP_MSG[]=" "提示空信息
OUT_WSLAV=FALSE
OUT_WPROZ=FALSE
------
IF N_VW==TRUE THEN –有N_VW没有反馈程序号
PRG_NR_REFL = 0
ELSE
P0_MERKER=FALSE
ENDIF
------
$LOOP_CONT=TRUE ---恢复模拟作准备
CHECK_EMI()-----获取EMI记录的内部状态
END
----------------------------------
审核编辑 :李倩
-
机器人
+关注
关注
211文章
28418浏览量
207102 -
Call
+关注
关注
0文章
9浏览量
8327 -
程序
+关注
关注
117文章
3787浏览量
81049
原文标题:从FOLGEN程序中如何实现自动回到CELL程序/开始执行FOLGEN程序
文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论