咱们正在良多时间皆会遇到机器人的虚构内部轴滞后毛病报警它的报警时若何收回的呢?
报警中的滞后毛病:
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
快递分拣机器人系统设计快递分拣机器人工作原理视频黄人包裹分拣机器人