0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

KUKAC4机器人焊钳拉拽程序分析sg_fehler ()w

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 2023-05-05 10:16 次阅读

我们在很多时候都会遇到机器人的虚拟外部轴滞后故障报警,它的报警时如何发出的呢?

报警中的滞后故障:

SZMsg(MsgNr :IN) ---伺服钳报警信息程序

SWITCH MsgNr 控制号

CASE 1

SWITCH $SoftPlcint[21] 软PLC反馈信息

CASE 1

USER_MSG.MSG_TXT[]="SZ1 Schleppfehler im Programmbetrieb, Quittierung in Single-Step erforderlich !"

程序模式下SZ1滞后错误,需要单步确认!

......

CASE 2

SWITCH $SoftPlcint[21] 软PLC反馈信息

CASE 1

USER_MSG.MSG_TXT[]="SZ1 Schleppfehler im Programmbetrieb"

SZ1程序模式下的跟随错误

.......

CASE 3

SWITCH $SoftPlcint[21] 软PLC反馈信息

CASE 1

USER_MSG.MSG_TXT[]="SZ1 Schleppfehler, Warte bis kein Schleppfehler !"

SZ1跟随错误,等到没有跟随错误!

....

--产生报警的程序设置—-

GLOBALINTERRUPTDECL 8 WHEN $softplcbool[5] DO SZIntR(7)中断程序激活滞后故障,$softplcbool[5]触发中断程序.

通过中断程序我们可以知道机器人虚拟外部轴的滞后故障是由软PLC的反馈点引起的,说明滞后故障是由软PLC软件监控产生的.

IF NOT $OUT[O_SZ1_FRG] AND (abs($softplcreal[1])>max_sf) AND ($softplcint[1]>0)THEN

BRAKE 机器人程序停止,机器人运动立刻停止

IF ANTEIN_MERKER AND $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滞后错误,需要单步确认!

WHILE Handbetrieb==FALSE 关闭手动准备

ENDWHILE

IF(nRintMsgHandle[1] > 0)Then

MSG_DEL= Clear_KrlMsg (-99) ;清除故障信息

nRintMsgHandle[1]=-1

ENDIF

ENDIF

IF NOT F_Handbetrieb THEN 没有故障手动标识位

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.下面我们以气伺服焊钳为例进行分析:

IF SZ_VORHANDEN OR MIT_NZ1_Serv OR MIT_NZ2_Serv THEN

SZ_VORHANDEN使用伺服焊钳 虚拟轴 ,或者是伺服铆钳1和伺服铆钳2

---机器人手动时的拉拽故障被触发--

IF $OUT[O_R_Hand] AND TAST_AKTIV_1 AND NOT $OUT[O_SZ1_t_auf] AND NOT $OUT[O_SZ1_t_zu] AND NOT Temp_Komb_1 THEN

A11机器人手动,如果测试点动功能激活,没有A719和A720的焊钳点动控制激活,

Temp_Komb_1=false

TAST_AKTIV_1=FALSE 测试功能激活

WAITSEC 0.4 等待

$OUT[O_SZ1_FRG]=FALSE A715焊钳功能激活

schleppfehler=TRUE 激活拉拽故障

sf_prog_status=#user_act # user_act:操作确认键时的滞后误差

$OUT[O_SZ1_SPos_g]=FALSE A716 使用位置有效

ENDIF

... ...

IF schleppfehler THEN ---- schleppfehler滞后变量被激活

Behandlung_schleppfehler() 跟踪错误的处理

ELSE

SetSollPos(TRUE);空运行

IF $softplcbool[5] THEN PLC ---第五位是拉拽故障.

sg_fehler()

ENDIF

ENDIF

5baac93a-eacb-11ed-90ce-dac502259ad0.png

sg_fehler ()

FOR SZNr=1 To 7 -----17

FrgSZ=FctFrgSZ(SZNr)焊钳1A715激活焊钳控制功能

IF($softplcint[SZNr]<>0) AND NOT FrgSZ AND NOT $power_fail THEN

$softplcint[1]=7伺服焊钳 焊钳没有激活控制 $power_fail电源故障

schleppfehler=TRUE 激活拉拽故障变量

IF $PRO_STATE1==#P_ACTIVE THEN 程序激活

sf_prog_status=#prg_motion程序运行中出现的滞后误差

ELSE; 程序状态是不激活

IF NOT $EXT THEN

SetSollPos(FALSE)

ENDIF

IF NOT $COULD_START_MOTION THEN

显示机器人是否可以移动/机器人不在移动

IF(IOCTL("IBusDrv",3,0)==1) AND NOT $power_fail THEN

"IBusDrv" interbus网络驱动这里值不使用,没有电源故障

sf_prog_status=#driveoff_motion

驱动装置关断时的滞后误差

ErrSZNr = SZNr 记录发出故障信息用的恶故障的钳号

SyncMoveMessage(18, #QuitMsg, ErrSZNr);

故障信息:钳子处于非法位置

ErrSZNr =-1

ENDIF

ELSE 显示机器人可以移动

IF NOT $power_fail THEN 没有电源故障

sf_prog_status=#man_motion 用运行驱动装置时的滞后误差

MsgNum=6

ENDIF

ENDIF

ENDIF

InvDestPos=FctDestPos(SZNr) E773目标位置无效

IF InvDestPos THEN

ErrSZNr= SZNr

SyncMoveMessage(19, #QuitMsg, ErrSZNr); 发出故障信息:目标位置无效

ErrSZNr=-1

sf_prog_status=#dest_invalid

ENDIF;目标位置无效

ENDIF

ENDFOR

;产生讯息

IF MsgNum > 0 THEN 发出报警信息

ErrSZNr=SZNr

SyncMoveMessage(MsgNum, #StateMsg, ErrSZNr)

RemMsgNum=MsgNum

ErrSZNr=-1

ENDIF

END

;ENDFOLD

-----------------------------------------

DEFFCTBOOL FctFrgSZ(SZNr:IN)

INT SZNr

BOOL FctFrgSZVal

SWITCH SZNr

CASE 1

FctFrgSZVal=$OUT[O_SZ1_FRG] 焊钳1的A715激活焊钳控制功能

CASE 2

FctFrgSZVal=$OUT[O_SZ2_FRG]

CASE 3

FctFrgSZVal=$OUT[O_SZ3_FRG]

CASE 4

FctFrgSZVal=$OUT[O_NZ1_FRG]

CASE 5

FctFrgSZVal=$OUT[O_NZ2_FRG]

CASE 6

FctFrgSZVal=$OUT[O_CZ1_FRG]

CASE 7

FctFrgSZVal=$OUT[O_CZ2_FRG]

ENDSWITCH

RETURN(FctFrgSZVal)

ENDFCT

;ENDFOLD

-------------------------------------

DEF Behandlung_schleppfehler()跟踪错误的处理

BOOL bRet

IF(async_active==FALSE) AND NOT $power_fail THEN

SWITCH sf_prog_status

CASE #man_motion 用运行驱动装置时的滞后误差

Fahrt_SG_Istpos() 异步行进到实际位置

CASE #prg_motion 程序运行中出现的滞后误差

IF $ROB_STOPPED THEN 机器人停止

IF $EXT==FALSE THEN 外部自动关闭

SetSollPos(FALSE) 关闭实际位置有效A716

IF $softplcbool[6] THEN

Fahrt_SG_Istpos()异步行进到实际位置

ELSE

schleppfehler=FALSE

sf_prog_status=#SZ_io无滞后误差

ENDIF

ELSE

IF $COULD_START_MOTION THEN显示机器人是否可以移动/机器人不在移动

SetSollPos(TRUE) A716发出实际位置有效

IF $softplcbool[6]==FALSE THEN 没有故障反馈点

schleppfehler=FALSE

sf_prog_status=#SZ_io

ENDIF

ENDIF

ENDIF

ENDIF

CASE #driveoff_motion 驱动装置关断时的滞后误差

IF $EXT==FALSE THEN 外部自动关闭

SetSollPos(FALSE)

Fahrt_SG_Istpos()

ELSE

IF $COULD_START_MOTION THEN显示机器人是否可以移动/机器人不在移动

SetSollPos(TRUE)

IF $softplcbool[6]==FALSE THEN

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无滞后误差

IF NOT $softplcbool[5] AND NOT $softplcbool[6] THEN

schleppfehler=FALSE

ENDIF

ENDSWITCH

ENDIF

SWITCH $ASYNC_STATE 同步系统状态

CASE #BUSY 正在工作

async_active=TRUE

CASE #IDLE ; 异步运动完成

IF async_active THEN

schleppfehler = FALSE

sf_prog_status=#SZ_io

SetSollPos(TRUE)

async_active=FALSE

ENDIF

CASE #CANCELLED 取消

async_active=FALSE

ENDSWITCH

;

END

;ENDFOLD

异步行进到实际位置判断

DEF Fahrt_SG_Istpos()

INT SZNr, i

E6AXIS zielpos

; 到当前位置的异步驱动

IF $COULD_START_MOTION AND $ROB_STOPPED THEN

FOR SZNr=1 To 7

IF $softplcint[SZNr]<>0 THEN

SWITCH $softplcint[SZNr]

CASE 7 伺服焊钳1

zielpos.E1=IstPosCalc(SZNr)获得机器人虚拟轴实际位置

pos_outofsoftend=Outofsoftend(zielpos.E1, 7)

判断伺服焊钳实际位置是否超程,并发出提示信息

CASE 8伺服焊钳2

zielpos.E2=IstPosCalc(SZNr)获得机器人虚拟轴实际位置

pos_outofsoftend=Outofsoftend(zielpos.E2, 8)

判断伺服焊钳实际位置是否超程,并发出提示信息

CASE 9伺服焊钳3

zielpos.E3=IstPosCalc(SZNr)获得机器人虚拟轴实际位置

pos_outofsoftend=Outofsoftend(zielpos.E3, 9)

判断伺服焊钳实际位置是否超程,并发出提示信息

CASE 10伺服NZ铆钳1

zielpos.E4=IstPosCalc(SZNr)获得机器人虚拟轴实际位置

pos_outofsoftend=Outofsoftend(zielpos.E4, 10)

判断伺服焊钳实际位置是否超程,并发出提示信息

CASE 11伺服NZ铆钳2

zielpos.E5=IstPosCalc(SZNr)获得机器人虚拟轴实际位置

pos_outofsoftend=Outofsoftend(zielpos.E5, 11)

判断伺服焊钳实际位置是否超程,并发出提示信息

CASE 12伺服CZ铆钳1

zielpos.E6=IstPosCalc(SZNr)获得机器人虚拟轴实际位置

pos_outofsoftend=Outofsoftend(zielpos.E6, 12)

判断伺服焊钳实际位置是否超程,并发出提示信息

DEFAULT

HALT

ENDSWITCH

ENDIF

IF pos_outofsoftend THEN位置超出极限设置

goto FctEnd调步到结尾

ENDIF

ENDFOR

FOR i = 1 TO 6

$ACC_EXTAX[i]=100提前运行中外部轴的加速度

$VEL_EXTAX[i]=100提前运行中外部轴的轴速度

ENDFOR

IF $ROB_CAL AND NOT pos_outofsoftend THEN

掌握所有机器人轴后,将设置此输出

asyptp zielpos 如果不超程执行PTP外部虚拟轴的实际位置

ENDIF

FctEnd:

ENDIF

END

设置额定位置有效

DEF SetSollpos(SollState : IN)

Bool SollState 激活位置有效

IF SollState THEN

$OUT[O_SZ1_SPos_g]=TRUE A716焊钳位置有效

$OUT[O_SZ2_SPos_g]=TRUE 二号钳位置有效

$OUT[O_SZ3_SPos_g]=TRUE 三号钳位置有效

IF MIT_NZ1_Serv THEN如果伺服有钉铆钳1

$OUT[O_NZ1_SPos_g]=TRUE位置有效

ENDIF

IF MIT_NZ2_Serv THEN如果伺服有钉铆钳2

$OUT[O_NZ2_SPos_g]=TRUE位置有效

ENDIF

IF MIT_CZ1_Serv THEN如果伺服无钉铆钳1

$OUT[O_CZ1_SPos_g]=TRUE位置有效

ENDIF

IF MIT_CZ2_Serv THEN如果伺服无钉铆钳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

IF MIT_NZ1_Serv THEN

$OUT[O_NZ1_SPos_g]=FALSE

ENDIF

IF MIT_NZ2_Serv THEN

$OUT[O_NZ2_SPos_g]=FALSE

ENDIF

IF MIT_CZ1_Serv THEN

$OUT[O_CZ1_SPos_g]=FALSE

ENDIF

IF MIT_CZ2_Serv THEN

$OUT[O_CZ2_SPos_g]=FALSE

ENDIF

ENDIF

END

;ENDFOLD

;

DEFFCTBOOL FctDestPos(SZNr:IN)反馈焊钳位置无效

INT SZNr

BOOL FctDestPosVal

SWITCH SZNr

CASE 1

FctDestPosVal=$IN[I_SZ1_F_Ziel] E773目标位置无效

CASE 2

FctDestPosVal=$IN[I_SZ2_F_Ziel]

CASE 3

FctDestPosVal=$IN[I_SZ3_F_Ziel]

CASE 4

FctDestPosVal=$IN[I_NZ1_F_Ziel]

CASE 5

FctDestPosVal=$IN[I_NZ2_F_Ziel]

CASE 6

FctDestPosVal=$IN[I_CZ1_F_Ziel]

CASE 7

FctDestPosVal=$IN[I_CZ2_F_Ziel]

ENDSWITCH

RETURN(FctDestPosVal)函数反馈值

ENDFCT

整体上说明当虚拟外部轴报滞后故障时,其主要是由软PLC的反馈点$softplcbool[5]来控制的.

;ENDFOLD

;ENDFOLD


审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器人
    +关注

    关注

    211

    文章

    28418

    浏览量

    207076
  • 程序
    +关注

    关注

    117

    文章

    3787

    浏览量

    81037
  • 焊钳
    +关注

    关注

    0

    文章

    16

    浏览量

    1388

原文标题:KUKAC4机器人焊钳拉拽程序分析sg_fehler ()w

文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    机器人焊接技术在车身焊接工艺的应用

    不断提高的要求。伺服点焊机器人系统包括机器人本体、机器人控制器、中频点焊控制器、自动电极修磨机和伺服点焊钳等。伺服焊枪的优点是传统气动焊机无法比拟的,其最大的特点是以伺服装置代替气动装
    发表于 09-12 17:04

    机器人焊接技术在车身焊接工艺的应用

    系统包括机器人本体、机器人控制器、中频点焊控制器、自动电极修磨机和伺服点焊钳等。伺服焊枪的优点是传统气动焊机无法比拟的,其最大的特点是以伺服装置代替气动装置,按照预先编制的程序,由伺服
    发表于 11-01 11:25

    机器人基础书籍

    列举部分学习过程中接触的部分书籍,部分有中文版,部分有更新版本。1.机器人基础书籍适合入门的书籍:机器人机器人建模规划与控制机器人学、机器
    发表于 05-22 06:53

    发那科2000iB机器人焊接时出现焊点整体偏移故障维修

    生产情况一样,并且机器人没有任何故障报警。发那科2000iB/210F机器人焊接时出现焊点整体偏移故障维修原因:根据机器人故障讲述,导致此种机器人故障原因可能是:①
    发表于 09-07 15:40

    机器人主气缸C50气管连接说明

    这次焊钳的气管接错,没有造成焊钳故障报警,但是在焊钳进行夹紧时出现卡顿现象。在作机器人E1轴移动时报
    的头像 发表于 06-28 10:54 5853次阅读

    FESTO气伺服焊钳气管接错后故障分析

    这次焊钳的气管接错,没有造成焊钳故障报警,但是在焊钳进行夹紧时出现卡顿现象.在作机器人E1轴移动时报
    的头像 发表于 07-13 10:01 2824次阅读
    FESTO气伺服<b class='flag-5'>焊钳</b>气管接错后故障<b class='flag-5'>分析</b>

    KUKAC4大众版机器人报&quot;伺服焊钳的滞后故障分析&quot;如何解决

    SchleppfehlerimProgrammbetrieb, Quittierung in Single-Step erforderlich !"–故障需要单步复位- . . . . . .在出现焊钳不控制,切超出
    的头像 发表于 01-03 15:20 7556次阅读
    <b class='flag-5'>KUKAC4</b>大众版<b class='flag-5'>机器人</b>报&quot;伺服<b class='flag-5'>焊钳</b>的滞后故障<b class='flag-5'>分析</b>&quot;如何解决

    KUKAC2机器人程序备份如何操作

    最近出了C4机器人我又捡起了C2机器人的维修工作,由于本身对C2的接触时间不久就开始学习了C4机器人,因此很多时候没有C
    的头像 发表于 12-23 16:41 8898次阅读

    读取KUKAC4.8.3系统机器人轴参数

    读取KUKAC4.8.3系统机器人轴参数!用于测量电极的磨损量.   GLOBAL DEF SGL_GET_CONTACT_POS ()       SWITCH SG
    的头像 发表于 01-04 17:54 3096次阅读

    KUKAC4机器人焊钳程序分析sg_fehler ()w

    通过中断程序我们可以知道机器人虚拟外部轴的滞后故障是由软PLC的反馈点引起的,说明滞后故障是由软PLC软件监控产生的.
    的头像 发表于 01-18 10:05 3181次阅读
    <b class='flag-5'>KUKAC4</b><b class='flag-5'>机器人</b><b class='flag-5'>焊钳</b><b class='flag-5'>拉</b><b class='flag-5'>拽</b><b class='flag-5'>程序</b><b class='flag-5'>分析</b><b class='flag-5'>sg_fehler</b> ()<b class='flag-5'>w</b>

    关于KUKAC4机器人测量工具坐标的作用浅析

    BASE坐标用来确定机器人空间上的坐标点,而TOOL则用来确定机器人以什么样的姿态去这个轨迹点。
    的头像 发表于 04-25 17:36 5554次阅读
    关于<b class='flag-5'>KUKAC4</b><b class='flag-5'>机器人</b>测量工具坐标的作用浅析

    FESTO焊钳故障报警分析

    这次焊钳的气管接错,没有造成焊钳故障报警,但是在焊钳进行夹紧时出现卡顿现象.在作机器人E1轴移动时报
    的头像 发表于 08-15 10:16 1669次阅读

    KUKA机器人组态电伺服焊钳应用

    机器人的焊接控制器的通讯连接力的输入点 SG_Force_WT_S[1]=793 起始字节 SG_Force_WT_E[1]=800 结束字节 SG_GunForce=
    发表于 09-20 11:27 674次阅读

    ​KUKA机器人固定焊钳的铣削控制

    KUKA机器人固定焊钳的铣削控制
    的头像 发表于 04-13 11:36 853次阅读

    KUKAC4机器人首次开机启动

    1.首次开机启动,电池的电源线(X305)是没有接的,需要插上,X305. 检查机器人本体接线. 接线检查完毕,打开开关,顺时针方向,首次开机时间比较长,耐心等待. 机器人第一次上电,示教器有时会
    的头像 发表于 05-29 14:19 725次阅读
    <b class='flag-5'>KUKAC4</b><b class='flag-5'>机器人</b>首次开机启动