咱們正在良多時間皆會遇到機器人的虛構內部軸滯后毛病報警它的報警時若何收回的呢?
報警中的滯后毛病:
SZMsg(MsgNr:IN)---伺服鉗報警信息順序
SWITCHMsgNr節制號
CASE1
SWITCH$SoftPlcint[21]硬PLC反應信息
CASE1
USER__TXT[]="SZ1SchleppfehlerimProgrammbetriebQuittierunginSingle-Steperforderlich!"
順序形式下SZ1滯后毛病,須要單步確認!
......
CASE2
SWITCH$SoftPlcint[21]硬PLC反應信息
CASE1
USER__TXT[]="SZ1SchleppfehlerimProgrammbetrieb"
SZ1順序形式下的追隨毛病
.......
CASE3
SWITCH$SoftPlcint[21]硬PLC反應信息
CASE1
USER__TXT[]="SZ1SchleppfehlerWartebiskeinSchleppfehler!"
SZ1追隨毛病,比及不追隨毛病!
....
--發生報警的順序設置—-
GLOBALINTERRUPTDECL8WHEN$softplcbool[5]DOSZIntR(7)中止順序激活滯后毛病$softplcbool[5]觸發中止順序.
經由過程中止順序咱們可以曉得機器人虛構內部軸的滯后毛病是由硬PLC的反應面惹起的解釋滯后毛病是由硬PLC軟件監控發生的.
IFNOT$OUT[O_SZ1_FRG]AND(abs($softplcreal[1])max_sf)AND($softplcint[1]0)THEN
BRAKE機器人順序終止機器人運動連忙終止
IFANTEIN_MERKERAND$softplcbool[5]THEN
ANTEIN_MERKER正在斷開機器人順序驅動PLC提醒毛病
nRintMsgHandle[2]=SZMsg(2)收回提示信息SZ1順序形式下的追隨毛病
WAITFOR$softplcbool[6]==FALSE守候不硬PLC的提示信息
SF_Vorwarnung=FALSE預警
WAITFOR$IN[I_SZ1_IPos_g]守候E716地位無效
IF(nRintMsgHandle[2]0)Then反應值是整數
MSG_DEL=Clear_KrlMsg(-99);消除提現形態信息
nRintMsgHandle[2]=-1
ENDIF
ELSE機器人順序正在履行進程中
IF(Handbetrieb==FALSE)THEN若是機器人不是內部自動形式被認為是手動籌備
F_Handbetrieb=TRUE毛病手動標識位
IF($softplcint[1]0)THEN有內部軸被利用
$OUT[O_SZ1_F_Schl]=TRUE---A131焊鉗推拽毛病PLC反應面
ENDIF
nRintMsgHandle[1]=SZMsg(1)
收回提示信息:順序形式下SZ1滯后毛病,須要單步確認!
WHILEHandbetrieb==FALSE關閉手動籌備
ENDWHILE
IF(nRintMsgHandle[1]0)Then
MSG_DEL=Clear_KrlMsg(-99);消除毛病信息
nRintMsgHandle[1]=-1
ENDIF
ENDIF
IFNOTF_HandbetriebTHEN不毛病手動標識位
nRintMsgHandle[1]=SZMsg(1)
收回提示信息:順序形式下SZ1滯后毛病,須要單步確認!
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利用伺服焊鉗虛構軸或許是伺服鉚鉗1跟伺服鉚鉗2
---機器人手動時的推拽毛病被觸發--
IF$OUT[O_R_Hand]ANDTAST_AKTIV_1ANDNOT$OUT[O_SZ1_t_auf]ANDNOT$OUT[O_SZ1_t_zu]ANDNOTTemp_Komb_1THEN
A11機器人手動若是測試點動功用激活不A719跟A720的焊鉗點動節制激活
Temp_Komb_1=false
TAST_AKTIV_1=FALSE測試功用激活
WAITSEC0.4守候
$OUT[O_SZ1_FRG]=FALSEA715焊鉗功用激活
schleppfehler=TRUE激活推拽毛病
sf_prog_status=#user_act#user_act:操縱確認鍵時的滯后偏差
$OUT[O_SZ1_SPos_g]=FALSEA716利用地位無效
ENDIF
......
IFschleppfehlerTHEN----schleppfehler滯后變量被激活
Behandlung_schleppfehler()跟蹤毛病的處置懲罰
ELSE
SetSollPos(TRUE);空運轉
IF$softplcbool[5]THEN硬PLC---第五位是推拽毛病.
sg_fehler()
ENDIF
ENDIF
sg_fehler()
FORSZNr=1To7-----1到7軸
FrgSZ=FctFrgSZ(SZNr)焊鉗1的A715激活焊鉗節制功用
IF($softplcint[SZNr]0)ANDNOTFrgSZANDNOT$power_failTHEN
$softplcint[1]=7伺服焊鉗焊鉗不激活節制$power_fail電源毛病
schleppfehler=TRUE激活推拽毛病變量
IF$PRO_STATE1==#P_ACTIVETHEN順序激活
sf_prog_status=#prg_motion程序運行中呈現的滯后偏差
ELSE;順序形態是沒有激活
IFNOT$EXTTHEN
SetSollPos(FALSE)
ENDIF
IFNOT$COULD_START_MOTIONTHEN
顯現機器人是不是可以挪動/機器人沒有正在挪動
IF(IOCTL("IBusDrv"30)==1)ANDNOT$power_failTHEN
"IBusDrv"interbus收集驅動這里值沒有利用不電源毛病
sf_prog_status=#driveoff_motion
驅動安裝關斷時的滯后偏差
ErrSZNr=SZNr紀錄收回毛病信息用的惡毛病的鉗號
SyncMoveMessage(18#QuitMsgErrSZNr);
毛病信息:鉗子處于合法地位
ErrSZNr=-1
ENDIF
ELSE顯現機器人可以挪動
IFNOT$power_failTHEN不電源毛病
sf_prog_status=#man_motion用運轉驅動安裝時的滯后偏差
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
;發生訊息
IFMsgNum0THEN發出報警信息
ErrSZNr=SZNr
SyncMoveMessage(MsgNum#StateMsgErrSZNr)
RemMsgNum=MsgNum
ErrSZNr=-1
ENDIF
END
;ENDFOLD
-----------------------------------------
DEFFCTBOOLFctFrgSZ(SZNr:IN)
INTSZNr
BOOLFctFrgSZVal
SWITCHSZNr
CASE1
物料分揀機器人FctFrgSZVal=$OUT[O_SZ1_FRG]焊鉗1的A715激活焊鉗節制功用
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用運轉驅動安裝時的滯后偏差
Fahrt_SG_Istpos()異步前進到實際地位
CASE#prg_motion程序運行中呈現的滯后偏差
IF$ROB_STOPPEDTHEN機器人終止
IF$EXT==FALSETHEN內部自動關閉
SetSollPos(FALSE)關閉實際地位無效A716
IF$softplcbool[6]THEN
Fahrt_SG_Istpos()異步前進到實際地位
ELSE
schleppfehler=FALSE
sf_prog_status=#SZ_io無滯后偏差
ENDIF
ELSE
IF$COULD_START_MOTIONTHEN顯現機器人是不是可以挪動/機器人沒有正在挪動
SetSollPos(TRUE)A716收回實際地位無效
IF$softplcbool[6]==FALSETHEN不毛病反應面
schleppfehler=FALSE
sf_prog_status=#SZ_io
ENDIF
ENDIF
ENDIF
ENDIF
CASE#driveoff_motion驅動安裝關斷時的滯后偏差
IF$EXT==FALSETHEN內部自動關閉
SetSollPos(FALSE)
Fahrt_SG_Istpos()
ELSE
IF$COULD_START_MOTIONTHEN顯現機器人是不是可以挪動/機器人沒有正在挪動
SetSollPos(TRUE)
IF$softplcbool[6]==FALSETHEN
schleppfehler=FALSE
湖北高速分揀機器人sf_prog_status=#SZ_io
ENDIF
ENDIF
ENDIF
CASE#dest_invalid因為方針地位有效招致的滯后偏差
Fahrt_SG_Istpos()
CASE#user_act操縱確認鍵時的滯后偏差
Fahrt_SG_Istpos()
CASE#SZ_io無滯后偏差
IFNOT$softplcbool[5]ANDNOT$softplcbool[6]THEN
schleppfehler=FALSE
ENDIF
ENDSWITCH
ENDIF
SWITCH$ASYNC_STATE同步體系形態
CASE#BUSY正在事情
async_active=TRUE
CASE#IDLE;異步運動實現
IFasync_activeTHEN
schleppfehler=FALSE
sf_prog_status=#SZ_io
SetSollPos(TRUE)
async_active=FALSE
ENDIF
CASE#CANCELLED勾銷
async_active=FALSE
ENDSWITCH
;
END
;ENDFOLD
異步前進到實際地位斷定
DEFFahrt_SG_Istpos()
INTSZNri
E6AXISzielpos
;到以后地位的異步驅動
中國快遞分揀機器人逆天IF$COULD_START_MOTIONAND$ROB_STOPPEDTHEN
FORSZNr=1To7
IF$softplcint[SZNr]0THEN
SWITCH$softplcint[SZNr]
CASE7伺服焊鉗1
=IstPosCalc(SZNr)取得機器人虛構軸實際地位
pos_outofsoftend=Outofsoftend(7)
斷定伺服焊鉗實際地位是不是超程并收回提示信息
CASE8伺服焊鉗2
=IstPosCalc(SZNr)取得機器人虛構軸實際地位
pos_outofsoftend=Outofsoftend(8)
斷定伺服焊鉗實際地位是不是超程并收回提示信息
CASE9伺服焊鉗3
=IstPosCalc(SZNr)取得機器人虛構軸實際地位
pos_outofsoftend=Outofsoftend(9)
斷定伺服焊鉗實際地位是不是超程并收回提示信息
CASE10伺服NZ鉚鉗1
=IstPosCalc(SZNr)取得機器人虛構軸實際地位
pos_outofsoftend=Outofsoftend(10)
斷定伺服焊鉗實際地位是不是超程并收回提示信息
物流分揀機器人設計說明書CASE11伺服NZ鉚鉗2
=IstPosCalc(SZNr)取得機器人虛構軸實際地位
pos_outofsoftend=Outofsoftend(11)
斷定伺服焊鉗實際地位是不是超程并收回提示信息
CASE12伺服CZ鉚鉗1
=IstPosCalc(SZNr)取得機器人虛構軸實際地位
pos_outofsoftend=Outofsoftend(12)
斷定伺服焊鉗實際地位是不是超程并收回提示信息
DEFAULT
HALT
ENDSWITCH
ENDIF
IFpos_outofsoftendTHEN地位超越極限設置
gotoFctEnd調步到末端
ENDIF
ENDFOR
FORi=1TO6
$ACC_EXTAX[i]=100提早運轉中內部軸的加速度
$VEL_EXTAX[i]=100提早運轉中內部軸的軸速率
ENDFOR
IF$ROB_CALANDNOTpos_outofsoftendTHEN
把握一切機器人軸后,將設置此輸出
asyptpzielpos若是不超程履行PTP內部虛構軸的實際地位
ENDIF
FctEnd:
ENDIF
END
設置額外地位無效
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不激活地位無效便關閉焊鉗或鉚鉗的地位節制
$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)反應焊鉗地位有效
INTSZNr
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)函數反應值
ENDFCT
整體上解釋當虛構內部軸報滯后毛病時其次要是由硬PLC的反應面$softplcbool[5]去節制的.
;ENDFOLD
;ENDFOLD
分揀機器人上市龍頭快遞分揀機器人分解圖順豐分揀機器人視頻