在自動循環過程中:
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
----------------------------------
審核編輯 :李倩
-
機器人
+關注
關注
212文章
29421瀏覽量
211301 -
Call
+關注
關注
0文章
9瀏覽量
8406 -
程序
+關注
關注
117文章
3819瀏覽量
82333
原文標題:從FOLGEN程序中如何實現自動回到CELL程序/開始執行FOLGEN程序
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
怎么從應用程序跳回到引導程序?
ARM程序的執行過程詳解
KUKA CELL()程序的分析解讀
stc單片機自動下載程序原理和代碼實現

單片機程序是如何執行的?指令數據寫哪了?

單片機程序是如何執行的:指令數據寫哪了

中斷服務子程序是如何被執行的 ?

PLC程序執行過程

評論