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


审核编辑 :李倩

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

    关注

    206

    文章

    27033

    浏览量

    201409
  • 程序
    +关注

    关注

    114

    文章

    3631

    浏览量

    79543
  • 焊钳
    +关注

    关注

    0

    文章

    16

    浏览量

    1272

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

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

收藏 人收藏

    评论

    相关推荐

    什么是工业机器人

    各种功能的一种机器。它可以接受人类指挥,也可以按照预先编排的程序运行,现代的工业机器人还可以根据人工智能技术制定的原则纲领行动。 1920年捷克作家卡雷尔·查培克在其剧本《罗萨姆的万能机器人
    发表于 01-19 10:58

    智能语音机器人

    4.安卓手机控制设计; 5.火灾、煤气泄漏检测及GSM报警系统;理论依据:1.传感器在物联网中的应用; 2.短距离无线信号定位; 3.向量空间理论与机器人运动学; 4.人工智能与机器
    发表于 12-02 19:08

    机器人弹钢琴

    各位论坛前辈你们好,我是一名在校的即将升入大二学生,专业课暂时只学了c,电路分析基础和工程制图。我跟另外4个同学正在参加学校的机器人比赛,在机器人创意表演方面,就突发奇想,是否能做一个
    发表于 05-22 17:09

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

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

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

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

    机器人基础书籍

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

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

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

    写字机器人程序

    求一套写字机器人程序,用arduino编写的。怎么实现
    发表于 10-17 15:20

    机器人是什么?

    我们,也就是说,我们手动给他们发出指令。有些非常聪明,因为他们能感知环境,在没有人类干预的情况下工作。下面将给你一个洞察类型的机器人:-自主机器人这些机器人是预先编好
    发表于 03-31 10:31

    K-Bot版本4机器人的设计教程

    印刷电路板的触摸键盘或应用程序来控制。它还向移动设备发送消息。该板控制机器人,并安装Arduino nano微控制器。这个机器人可以以4种不同的方式工作:K-bot模式:通过触摸键盘或
    发表于 08-22 07:43

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

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

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

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

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

    通过中断程序我们可以知道机器人虚拟外部轴的滞后故障是由软PLC的反馈点引起的,说明滞后故障是由软PLC软件监控产生的.
    的头像 发表于 01-18 10:05 2622次阅读
    <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'>sg_fehler</b> ()w

    FESTO焊钳故障报警分析

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

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

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