当前位置:CGXi协作机器人 > 协作机器人 >
数控切割分拣机器人,KUKAC4机器人焊钳拉拽程序分析sg_fehler ()w
时间:2022-12-07 来源:未知 点击: 152次
分拣机器人能不能识别商品种类物流分拣机器人视频

咱们正在良多时间皆会遇到机器人的虚构内部轴滞后毛病报警它的报警时若何收回的呢?

报警中的滞后毛病:

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

快递分拣机器人系统设计快递分拣机器人工作原理视频黄人包裹分拣机器人
Copyright © 2002-2030 苏州昊瓦智能装备科技有限公司鄂ICP备2023010222号-2 苏州昊瓦智能网站地图sitemap.xml tag列表