在自動循環(huán)過程中:
IF($OUT[PF0]AND VW_CALL_CELL AND ( NOT $PRO_MOVE) AND ($MODE_OP==#EX))THEN
機器人在原位(A15),執(zhí)行了CALL程序,機器人沒有程序執(zhí)行,處在外部自動狀態(tài)
CWRITE($CMD,STAT,MODE,"STOP 1") 直接對當前成程序進行控制,程序停止。
CWRITE($CMD,STAT,MODE,"CANCEL 1") 直接對當前成程序進行控制,程序退出。
P_OLD=P_SELECT
CWRITE($CMD,STAT,MODE,"RUN /R1/CELL ()")執(zhí)行CELL程序
ENDIF
這短語是用來實現(xiàn)執(zhí)行完Folge程序后由自動回到CELL的功能。
......
------------------------------------------------------
VW (#VW_AUE_WAIT,TRUE)
AUE_WAIT()
BOOL SIMU_START
INT P
$ADVANCE=DEF_ADVANCE –系統(tǒng)規(guī)定DEF_ADVANCE=1-因此預執(zhí)行只能執(zhí)行1步
IF(VW_INB AND$EXTSTARTTYP)THEN –此處正常不執(zhí)行
-在CELL中將VW_INB關閉-$EXTSTARTTYP外部啟動的狀態(tài)TRUE/FALSE
N_VW=FALSE
RETURN
ENDIF
$H_POS=$AXIS_ACT-當前軌跡在HOME位
$LOOP_CONT=TRUE –激活模擬功能
$LOOP_MSG[]="KeyWord_WarteFolgestartSRB 發(fā)出提示信息:等待Folgestart"
REPEAT –開始執(zhí)行循環(huán)指令
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 整數(shù)控制方式
P = PRG_NR
ELSE
P = LOG_2(PRG_NR) -用于2進制程序號計算
ENDIF
ENDIF
IF(P<>P_OLD)THEN
–給入程序號與經(jīng)過VW (#VW_AUE_INIT,TRUE)程序后的保存程序號P_OLD是否相同
N_VW=TRUE -不同F(xiàn)OLGEN程序會跳到最后一步
ELSE -相同沒有變化
PRG_NR_REFL = PRG_NR -給入程序號發(fā)并發(fā)出反饋給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開啟模擬-手動狀態(tài)
N_VW=FALSE
SIMU_START=TRUE 啟動模擬
ENDIF
--------
IS_CELL () –顯示選擇的程序名稱是否是從CELL程序中執(zhí)行跳過來的.
--------
IF NOT VW_CBY_CELL THEN
-如果不是CELL程序執(zhí)行跳過來的–用于直接選擇FOLGEN程序,而沒有選擇CELL
IF($MODE_OP==#T1) OR ($MODE_OP==#T2)THEN –在手動狀態(tài)時
N_VW=FALSE
ELSE
VW_CALL_CELL=TRUE
$LOOP_MSG[]="KeyWord_FuerAutomatikCellAnwaehlen " -提示:選擇執(zhí)行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模擬才能跳出循環(huán)質(zhì)量
-N_VW==TRUE -程序號發(fā)生變化程序號與之前CELL給入的程序號不同
退出循環(huán)指令—前提是程序啟動給入,沒有程序啟動就得給模擬。
---------
$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記錄的內(nèi)部狀態(tài)
END
----------------------------------
審核編輯 :李倩
-
機器人
+關注
關注
210文章
28129瀏覽量
205894 -
Call
+關注
關注
0文章
9瀏覽量
8319 -
程序
+關注
關注
116文章
3766瀏覽量
80772
原文標題:從FOLGEN程序中如何實現(xiàn)自動回到CELL程序/開始執(zhí)行FOLGEN程序
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論