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

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

3天内不再提示

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

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 作者:机器人及PLC自动化 2021-01-18 10:05 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

报警中的滞后故障:

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

caf6a822-5711-11eb-8b86-12bb97331649.png

sg_fehler ()

FOR SZNr=1 To 7 -----1到7轴

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

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]来控制的.

责任编辑:lq

;ENDFOLD

;ENDFOLD

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

    关注

    213

    文章

    30626

    浏览量

    219703
  • plc
    plc
    +关注

    关注

    5045

    文章

    14454

    浏览量

    483699
  • 焊钳
    +关注

    关注

    0

    文章

    16

    浏览量

    1507

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RK3576机器人核心:三屏异显+八路摄像头,重塑机器人交互与感知

    瑞芯微RK3576 AIoT处理器处理器凭借其卓越的多屏异显与8路摄像头接入能力,为机器人领域带来革新。米尔电子MYD-LR3576开发板实测数据显示,在高负载下CPU占用仅34%,完美实现多路视觉
    发表于 10-29 16:41

    小萝卜机器人的故事

    经过我的申请, 马老师发放了, 小萝卜机器人的, 开发权限, 原来的小萝卜公司, 因为经营不善倒闭, 作为科研产品, 几个技术对此惋惜, 自掏腰包, 要让小萝卜机器人, 再生, 每次听到小萝卜说
    发表于 10-23 05:24

    工业机器人的特点

    机器人是关键。工业互联网是通过端上的数据传输,经过大数据分析和云计算处理,再进行智能化决策的一整个过程,其中端的数据传输是基础。工业互联网的端包括机器人、传感器等一切线下连接端口。因此发展工业
    发表于 07-26 11:22

    利用PLC调用ABB机器人程序号教程

    PP TO MAIN 程序是用来使机器人里的程序回到 MAIN 主程序的。
    的头像 发表于 07-04 15:34 5238次阅读
    利用PLC调用ABB<b class='flag-5'>机器人</b><b class='flag-5'>程序</b>号教程

    轮式移动机器人电机驱动系统的研究与开发

    【摘 要】以嵌入式运动控制体系为基础,以移动机器人为研究对象,结合三轮结构轮式移动机器人,对二轮差速驱动转向自主移动机器人运动学和动力学空间模型进行了分析和计算,研究和设计了自主移动
    发表于 06-11 14:30

    明远智睿SSD2351开发板:语音机器人领域的变革力量

    的四核1.4GHz处理器具备强劲的运算性能,能够高效处理语音机器人运行过程中的复杂任务。语音识别和合成需要大量的计算资源,该处理器可以快速对语音信号进行分析、处理和转换。在实时语音交互场景中,无论是
    发表于 05-28 11:36

    盘点#机器人开发平台

    地瓜机器人RDK X5开发套件地瓜机器人RDK X5开发套件产品介绍 旭日5芯片10TOPs算力-电子发烧友网机器人开发套件 Kria KR260机器人开发套件 Kria KR260-
    发表于 05-13 15:02

    【「# ROS 2智能机器人开发实践」阅读体验】机器人入门的引路书

    ROS的全称:Robot Operating System 机器人操作系统 ROS的 目的 :ROS支持通用库,是通信总线,协调多个传感器 为了解决机器人里各厂商模块不通用的问题,让机器人快速开发
    发表于 04-30 01:05

    【「# ROS 2智能机器人开发实践」阅读体验】+内容初识

    讲解了如何在 ROS 2 中实现机器人的运动控制,包括速度控制、位置控制等。通过编写运动控制节点,可以接收来自上层的控制指令,如速度指令或目标位置指令,然后通过底层的驱动程序控制机器人的电机,实现
    发表于 04-27 11:24

    爱普生可编程晶振SG8201CJ和SG8200CJ在胃镜机器人领域发挥重要作用

    检查胃部疾病。与传统胃镜相比,胃镜机器人具有更高的舒适性和精确性。它通过微型化技术和机器人操控系统,实现了对胃部的全面检查,同时减少了患者的痛苦。爱普生晶振SG8
    的头像 发表于 04-10 15:44 441次阅读
    爱普生可编程晶振<b class='flag-5'>SG</b>8201CJ和<b class='flag-5'>SG</b>8200CJ在胃镜<b class='flag-5'>机器人</b>领域发挥重要作用

    名单公布!【书籍评测活动NO.58】ROS 2智能机器人开发实践

    资格! 从 PC 到智能手机,下一个更大的计算平台是什么? 最佳答案可能是 机器人 ! 如果设想成真,则需要有人为机器人“造脑”,即打造适配的计算平台及操作系统。 就像以计算机为平台的计算机时代,和以
    发表于 03-03 14:18

    【「具身智能机器人系统」阅读体验】2.具身智能机器人的基础模块

    具身智能机器人的基础模块,这个是本书的第二部分内容,主要分为四个部分:机器人计算系统,自主机器人的感知系统,自主机器人的定位系统,自主机器人
    发表于 01-04 19:22

    【「具身智能机器人系统」阅读体验】2.具身智能机器人大模型

    需要专业程序员进行繁琐的编程工作,这种方式不仅效率低下,还限制了机器人的应用场景。例如,在我们大学工程实训课程中使用的数控机床,需要人为设定起点、终点、移动方向和移动距离等参数,自动化程度非常有限。而
    发表于 12-29 23:04

    【「具身智能机器人系统」阅读体验】+初品的体验

    的快速发展,相关人才的需求也在不断增加,通过阅读该书可以帮助大家系统性地了解和分析当前具身智能机器人系统的发展现状和前沿研究,为未来的研究和开发工作提供指导。此外,本书还可以为研究人员和工程师提供具体
    发表于 12-20 19:17

    《具身智能机器人系统》第1-6章阅读心得之具身智能机器人系统背景知识与基础模块

    要给AI这个聪明的“头脑”装上一副“身体”。这个“身体”可以是一部手机,可以是一台自动驾驶汽车。而人形机器人则是集各类核心尖端技术于一体的载体,是具身智能的代表产品。与传统的软件智能体不同,具身智能
    发表于 12-19 22:26