咱們正在良多時間皆會遇到機(jī)器人的虛構(gòu)內(nèi)部軸滯后毛病報(bào)警它的報(bào)警時若何收回的呢?
報(bào)警中的滯后毛病:
SZMsg(MsgNr:IN)---伺服鉗報(bào)警信息順序
SWITCHMsgNr節(jié)制號
CASE1
SWITCH$SoftPlcint[21]硬PLC反應(yīng)信息
CASE1
USER__TXT[]="SZ1SchleppfehlerimProgrammbetriebQuittierunginSingle-Steperforderlich!"
順序形式下SZ1滯后毛病,須要單步確認(rèn)!
......
CASE2
SWITCH$SoftPlcint[21]硬PLC反應(yīng)信息
CASE1
USER__TXT[]="SZ1SchleppfehlerimProgrammbetrieb"
SZ1順序形式下的追隨毛病
.......
CASE3
SWITCH$SoftPlcint[21]硬PLC反應(yīng)信息
CASE1
USER__TXT[]="SZ1SchleppfehlerWartebiskeinSchleppfehler!"
SZ1追隨毛病,比及不追隨毛?。?/p>
....
--發(fā)生報(bào)警的順序設(shè)置—-
GLOBALINTERRUPTDECL8WHEN$softplcbool[5]DOSZIntR(7)中止順序激活滯后毛病$softplcbool[5]觸發(fā)中止順序.
經(jīng)由過程中止順序咱們可以曉得機(jī)器人虛構(gòu)內(nèi)部軸的滯后毛病是由硬PLC的反應(yīng)面惹起的解釋滯后毛病是由硬PLC軟件監(jiān)控發(fā)生的.
IFNOT$OUT[O_SZ1_FRG]AND(abs($softplcreal[1])max_sf)AND($softplcint[1]0)THEN
BRAKE機(jī)器人順序終止機(jī)器人運(yùn)動連忙終止
IFANTEIN_MERKERAND$softplcbool[5]THEN
ANTEIN_MERKER正在斷開機(jī)器人順序驅(qū)動PLC提醒毛病
nRintMsgHandle[2]=SZMsg(2)收回提示信息SZ1順序形式下的追隨毛病
WAITFOR$softplcbool[6]==FALSE守候不硬PLC的提示信息
SF_Vorwarnung=FALSE預(yù)警
WAITFOR$IN[I_SZ1_IPos_g]守候E716地位無效
IF(nRintMsgHandle[2]0)Then反應(yīng)值是整數(shù)
MSG_DEL=Clear_KrlMsg(-99);消除提現(xiàn)形態(tài)信息
nRintMsgHandle[2]=-1
ENDIF
ELSE機(jī)器人順序正在履行進(jìn)程中
IF(Handbetrieb==FALSE)THEN若是機(jī)器人不是內(nèi)部自動形式被認(rèn)為是手動籌備
F_Handbetrieb=TRUE毛病手動標(biāo)識位
IF($softplcint[1]0)THEN有內(nèi)部軸被利用
$OUT[O_SZ1_F_Schl]=TRUE---A131焊鉗推拽毛病PLC反應(yīng)面
ENDIF
nRintMsgHandle[1]=SZMsg(1)
收回提示信息:順序形式下SZ1滯后毛病,須要單步確認(rèn)!
WHILEHandbetrieb==FALSE關(guān)閉手動籌備
ENDWHILE
IF(nRintMsgHandle[1]0)Then
MSG_DEL=Clear_KrlMsg(-99);消除毛病信息
nRintMsgHandle[1]=-1
ENDIF
ENDIF
IFNOTF_HandbetriebTHEN不毛病手動標(biāo)識位
nRintMsgHandle[1]=SZMsg(1)
收回提示信息:順序形式下SZ1滯后毛病,須要單步確認(rèn)!
IF(nRintMsgHandle[1]0)Then
MSG_DEL=Clear_KrlMsg(-99);消除毛病信息
nRintMsgHandle[1]=-1
ENDIF
ENDIF
ENDIF
ENDIF
;ENDFOLD
Schleppfehler滯后偏差!除伺服焊鉗中借可以針對伺服有釘鉚鉗NZ跟無釘伺服鉚鉗CZ.上面咱們以氣伺服焊鉗為例停止剖析:
IFSZ_VORHANDENORMIT_NZ1_ServORMIT_NZ2_ServTHEN
SZ_VORHANDEN利用伺服焊鉗虛構(gòu)軸或許是伺服鉚鉗1跟伺服鉚鉗2
---機(jī)器人手動時的推拽毛病被觸發(fā)--
IF$OUT[O_R_Hand]ANDTAST_AKTIV_1ANDNOT$OUT[O_SZ1_t_auf]ANDNOT$OUT[O_SZ1_t_zu]ANDNOTTemp_Komb_1THEN
A11機(jī)器人手動若是測試點(diǎn)動功用激活不A719跟A720的焊鉗點(diǎn)動節(jié)制激活
Temp_Komb_1=false
TAST_AKTIV_1=FALSE測試功用激活
WAITSEC0.4守候
$OUT[O_SZ1_FRG]=FALSEA715焊鉗功用激活
schleppfehler=TRUE激活推拽毛病
sf_prog_status=#user_act#user_act:操縱確認(rèn)鍵時的滯后偏差
$OUT[O_SZ1_SPos_g]=FALSEA716利用地位無效
ENDIF
......
IFschleppfehlerTHEN----schleppfehler滯后變量被激活
Behandlung_schleppfehler()跟蹤毛病的處置懲罰
ELSE
SetSollPos(TRUE);空運(yùn)轉(zhuǎn)
IF$softplcbool[5]THEN硬PLC---第五位是推拽毛病.
sg_fehler()
ENDIF
ENDIF
sg_fehler()
FORSZNr=1To7-----1到7軸
FrgSZ=FctFrgSZ(SZNr)焊鉗1的A715激活焊鉗節(jié)制功用
IF($softplcint[SZNr]0)ANDNOTFrgSZANDNOT$power_failTHEN
$softplcint[1]=7伺服焊鉗焊鉗不激活節(jié)制$power_fail電源毛病
schleppfehler=TRUE激活推拽毛病變量
IF$PRO_STATE1==#P_ACTIVETHEN順序激活
sf_prog_status=#prg_motion程序運(yùn)行中呈現(xiàn)的滯后偏差
ELSE;順序形態(tài)是沒有激活
IFNOT$EXTTHEN
SetSollPos(FALSE)
ENDIF
IFNOT$COULD_START_MOTIONTHEN
顯現(xiàn)機(jī)器人是不是可以挪動/機(jī)器人沒有正在挪動
IF(IOCTL("IBusDrv"30)==1)ANDNOT$power_failTHEN
"IBusDrv"interbus收集驅(qū)動這里值沒有利用不電源毛病
sf_prog_status=#driveoff_motion
驅(qū)動安裝關(guān)斷時的滯后偏差
ErrSZNr=SZNr紀(jì)錄收回毛病信息用的惡毛病的鉗號
SyncMoveMessage(18#QuitMsgErrSZNr);
毛病信息:鉗子處于合法地位
ErrSZNr=-1
ENDIF
ELSE顯現(xiàn)機(jī)器人可以挪動
IFNOT$power_failTHEN不電源毛病
sf_prog_status=#man_motion用運(yùn)轉(zhuǎn)驅(qū)動安裝時的滯后偏差
MsgNum=6
ENDIF
ENDIF
ENDIF
InvDestPos=FctDestPos(SZNr)E773方針地位有效
IFInvDestPosTHEN
ErrSZNr=SZNr
SyncMoveMessage(19#QuitMsgErrSZNr);收回毛病信息:方針地位有效
ErrSZNr=-1
sf_prog_status=#dest_invalid
ENDIF;方針地位有效
ENDIF
ENDFOR
;發(fā)生訊息
IFMsgNum0THEN發(fā)出報(bào)警信息
ErrSZNr=SZNr
SyncMoveMessage(MsgNum#StateMsgErrSZNr)
RemMsgNum=MsgNum
ErrSZNr=-1
ENDIF
END
;ENDFOLD
-----------------------------------------
DEFFCTBOOLFctFrgSZ(SZNr:IN)
INTSZNr
BOOLFctFrgSZVal
SWITCHSZNr
快遞分揀機(jī)器人結(jié)構(gòu)圖CASE1
FctFrgSZVal=$OUT[O_SZ1_FRG]焊鉗1的A715激活焊鉗節(jié)制功用
分揀機(jī)器人agv系統(tǒng)CASE2
FctFrgSZVal=$OUT[O_SZ2_FRG]
CASE3
FctFrgSZVal=$OUT[O_SZ3_FRG]
CASE4
FctFrgSZVal=$OUT[O_NZ1_FRG]
CASE5
FctFrgSZVal=$OUT[O_NZ2_FRG]
CASE6
FctFrgSZVal=$OUT[O_CZ1_FRG]
CASE7
FctFrgSZVal=$OUT[O_CZ2_FRG]
ENDSWITCH
RETURN(FctFrgSZVal)
ENDFCT
;ENDFOLD
-------------------------------------
DEFBehandlung_schleppfehler()跟蹤毛病的處置懲罰
BOOLbRet
IF(async_active==FALSE)ANDNOT$power_failTHEN
SWITCHsf_prog_status
CASE#man_motion用運(yùn)轉(zhuǎn)驅(qū)動安裝時的滯后偏差
Fahrt_SG_Istpos()異步前進(jìn)到實(shí)際地位
CASE#prg_motion程序運(yùn)行中呈現(xiàn)的滯后偏差
IF$ROB_STOPPEDTHEN機(jī)器人終止
IF$EXT==FALSETHEN內(nèi)部自動關(guān)閉
SetSollPos(FALSE)關(guān)閉實(shí)際地位無效A716
IF$softplcbool[6]THEN
Fahrt_SG_Istpos()異步前進(jìn)到實(shí)際地位
ELSE
schleppfehler=FALSE
sf_prog_status=#SZ_io無滯后偏差
ENDIF
ELSE
IF$COULD_START_MOTIONTHEN顯現(xiàn)機(jī)器人是不是可以挪動/機(jī)器人沒有正在挪動
SetSollPos(TRUE)A716收回實(shí)際地位無效
IF$softplcbool[6]==FALSETHEN不毛病反應(yīng)面
schleppfehler=FALSE
sf_prog_status=#SZ_io
ENDIF
ENDIF
ENDIF
ENDIF
CASE#driveoff_motion驅(qū)動安裝關(guān)斷時的滯后偏差
IF$EXT==FALSETHEN內(nèi)部自動關(guān)閉
SetSollPos(FALSE)
Fahrt_SG_Istpos()
ELSE
IF$COULD_START_MOTIONTHEN顯現(xiàn)機(jī)器人是不是可以挪動/機(jī)器人沒有正在挪動
SetSollPos(TRUE)
IF$softplcbool[6]==FALSETHEN
schleppfehler=FALSE
sf_prog_status=#SZ_io
ENDIF
ENDIF
ENDIF
CASE#dest_invalid因?yàn)榉结樀匚挥行д兄碌臏笃?/p>
Fahrt_SG_Istpos()
CASE#user_act操縱確認(rèn)鍵時的滯后偏差
Fahrt_SG_Istpos()
CASE#SZ_io無滯后偏差
IFNOT$softplcbool[5]ANDNOT$softplcbool[6]THEN
schleppfehler=FALSE
ENDIF
ENDSWITCH
ENDIF
SWITCH$ASYNC_STATE同步體系形態(tài)
CASE#BUSY正在事情
async_active=TRUE
CASE#IDLE;異步運(yùn)動實(shí)現(xiàn)
IFasync_activeTHEN
schleppfehler=FALSE
sf_prog_status=#SZ_io
SetSollPos(TRUE)
async_active=FALSE
ENDIF
CASE#CANCELLED勾銷
async_active=FALSE
ENDSWITCH
;
END
;ENDFOLD
異步前進(jìn)到實(shí)際地位斷定
DEFFahrt_SG_Istpos()
INTSZNri
E6AXISzielpos
;到以后地位的異步驅(qū)動
IF$COULD_START_MOTIONAND$ROB_STOPPEDTHEN
FORSZNr=1To7
IF$softplcint[SZNr]0THEN
SWITCH$softplcint[SZNr]
CASE7伺服焊鉗1
=IstPosCalc(SZNr)取得機(jī)器人虛構(gòu)軸實(shí)際地位
pos_outofsoftend=Outofsoftend(7)
斷定伺服焊鉗實(shí)際地位是不是超程并收回提示信息
CASE8伺服焊鉗2
=IstPosCalc(SZNr)取得機(jī)器人虛構(gòu)軸實(shí)際地位
pos_outofsoftend=Outofsoftend(8)
斷定伺服焊鉗實(shí)際地位是不是超程并收回提示信息
CASE9伺服焊鉗3
=IstPosCalc(SZNr)取得機(jī)器人虛構(gòu)軸實(shí)際地位
pos_outofsoftend=Outofsoftend(9)
斷定伺服焊鉗實(shí)際地位是不是超程并收回提示信息
CASE10伺服NZ鉚鉗1
=IstPosCalc(SZNr)取得機(jī)器人虛構(gòu)軸實(shí)際地位
pos_outofsoftend=Outofsoftend(10)
斷定伺服焊鉗實(shí)際地位是不是超程并收回提示信息
CASE11伺服NZ鉚鉗2
=IstPosCalc(SZNr)取得機(jī)器人虛構(gòu)軸實(shí)際地位
pos_outofsoftend=Outofsoftend(11)
斷定伺服焊鉗實(shí)際地位是不是超程并收回提示信息
CASE12伺服CZ鉚鉗1
=IstPosCalc(SZNr)取得機(jī)器人虛構(gòu)軸實(shí)際地位
pos_outofsoftend=Outofsoftend(12)
斷定伺服焊鉗實(shí)際地位是不是超程并收回提示信息
DEFAULT
HALT
ENDSWITCH
ENDIF
IFpos_outofsoftendTHEN地位超越極限設(shè)置
gotoFctEnd調(diào)步到末端
ENDIF
ENDFOR
FORi=1TO6
$ACC_EXTAX[i]=100提早運(yùn)轉(zhuǎn)中內(nèi)部軸的加速度
$VEL_EXTAX[i]=100提早運(yùn)轉(zhuǎn)中內(nèi)部軸的軸速率
ENDFOR
IF$ROB_CALANDNOTpos_outofsoftendTHEN
把握一切機(jī)器人軸后,將設(shè)置此輸出
asyptpzielpos若是不超程履行PTP內(nèi)部虛構(gòu)軸的實(shí)際地位
ENDIF
FctEnd:
ENDIF
END
設(shè)置額外地位無效
DEFSetSollpos(SollState:IN)
BoolSollState激活地位無效
IFSollStateTHEN
$OUT[O_SZ1_SPos_g]=TRUEA716焊鉗地位無效
$OUT[O_SZ2_SPos_g]=TRUE二號鉗地位無效
$OUT[O_SZ3_SPos_g]=TRUE三號鉗地位無效
IFMIT_NZ1_ServTHEN若是伺服有釘鉚鉗1
$OUT[O_NZ1_SPos_g]=TRUE地位無效
ENDIF
IFMIT_NZ2_ServTHEN若是伺服有釘鉚鉗2
$OUT[O_NZ2_SPos_g]=TRUE地位無效
ENDIF
IFMIT_CZ1_ServTHEN若是伺服無釘鉚鉗1
$OUT[O_CZ1_SPos_g]=TRUE地位無效
ENDIF
IFMIT_CZ2_ServTHEN若是伺服無釘鉚鉗2
$OUT[O_CZ2_SPos_g]=TRUE地位無效
ENDIF
ELSE不激活地位無效便關(guān)閉焊鉗或鉚鉗的地位節(jié)制
$OUT[O_SZ1_SPos_g]=FALSE
$OUT[O_SZ2_SPos_g]=FALSE
$OUT[O_SZ3_SPos_g]=FALSE
IFMIT_NZ1_ServTHEN
$OUT[O_NZ1_SPos_g]=FALSE
ENDIF
IFMIT_NZ2_ServTHEN
$OUT[O_NZ2_SPos_g]=FALSE
ENDIF
IFMIT_CZ1_ServTHEN
$OUT[O_CZ1_SPos_g]=FALSE
ENDIF
IFMIT_CZ2_ServTHEN
$OUT[O_CZ2_SPos_g]=FALSE
ENDIF
ENDIF
END
;ENDFOLD
;
DEFFCTBOOLFctDestPos(SZNr:IN)反應(yīng)焊鉗地位有效
INTSZNr
京東倉儲自動分揀機(jī)器人BOOLFctDestPosVal
SWITCHSZNr
CASE1
FctDestPosVal=$IN[I_SZ1_F_Ziel]E773方針地位有效
CASE2
FctDestPosVal=$IN[I_SZ2_F_Ziel]
CASE3
FctDestPosVal=$IN[I_SZ3_F_Ziel]
CASE4
FctDestPosVal=$IN[I_NZ1_F_Ziel]
CASE5
FctDestPosVal=$IN[I_NZ2_F_Ziel]
CASE6
FctDestPosVal=$IN[I_CZ1_F_Ziel]
CASE7
FctDestPosVal=$IN[I_CZ2_F_Ziel]
ENDSWITCH
RETURN(FctDestPosVal)函數(shù)反應(yīng)值
ENDFCT
整體上解釋當(dāng)虛構(gòu)內(nèi)部軸報(bào)滯后毛病時其次要是由硬PLC的反應(yīng)面$softplcbool[5]去節(jié)制的.
;ENDFOLD
;ENDFOLD
全自動快遞分揀機(jī)器人快遞分揀機(jī)器人課程設(shè)計(jì)快遞分揀機(jī)器人多少錢一臺