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

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

    关注

    206

    文章

    26820

    浏览量

    201025
  • plc
    plc
    +关注

    关注

    4964

    文章

    12135

    浏览量

    454092
  • 焊钳
    +关注

    关注

    0

    文章

    16

    浏览量

    1269

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

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

收藏 人收藏

    评论

    相关推荐

    【开源项目】Emo:基于树莓派 4B DIY 能笑会动的桌面机器人

    adafruit-circuitpython-servokit 进入代码文件夹(Code),并执行以下命令启动程序: python3 final.py 现在你的 Emo 机器人已经开始运行了!当你对他说一些话时,他会分析您的语
    发表于 12-26 15:18

    LabVIEW的六轴工业机器人运动控制系统

    LabVIEW开发六轴工业机器人运动控制系统 本项目开发了一个高效的工业机器人控制系统,重点关注于运动学算法和轨迹规划算法的实现和测试。LabVIEW作为一个关键技术,在项目中扮演了核心角色
    发表于 12-21 20:03

    机器人编程需要什么软件?

    机器人编程需要什么软件
    发表于 11-01 07:34

    Arduino教学机器人的使用教程

    本文档的主要内容详细介绍的是Arduino教学机器人的使用教程
    发表于 09-27 06:53

    ai人工智能机器人

    的运营成本、人力成本还在不断提高(如:办公场地的租金、员工的工资、社保公积金、节假日福利等)。 如今的智能电话机器人,每天的电话拨打量可达800-1000通,相比人工提高了3-5倍,大大缩短了名单的筛选
    发表于 09-21 11:09

    伺服焊钳机器人做EMZ的程序分析

    外部轴的反馈值的偏差范围不得小于5 ABS取绝对值,因此我们可以认定,焊钳在进行关闭时开口是10mm,不能使理论值和实际值偏差超过1mm
    发表于 09-01 10:21 336次阅读
    伺服<b class='flag-5'>焊钳</b><b class='flag-5'>机器人</b>做EMZ的<b class='flag-5'>程序</b><b class='flag-5'>分析</b>

    profinet转ethernet网关连接发那科机器人配置案例

    本案例是西门子1200PLC通过PROFINET转EtherNet网关连接发那科搬运机器人配置案例。所需设备:西门子1200PLC、Profinet转EtherNet IP网关、Fanuc机器人
    发表于 08-03 17:58

    如何快速地让机器人投入生产

    步进电机,我们可以提供的是几个半转或1/4,1/8转。 而机器人电脑,自动处理这些数据,我们要处理的是手指的空间位置,也就是xyz坐标。 然后处理夹具的开关。 所以,我们日常程序必须备份。这些
    发表于 06-06 16:18

    更换C型焊钳上的变压器

    C-50 焊钳上的变压器  C-8000 焊钳上的变压器  第 1 步:切断机器人焊钳电流,释放压力并排出气动元件的气体。  第 2 步:将带焊钳
    的头像 发表于 05-31 09:10 442次阅读
    更换C型<b class='flag-5'>焊钳</b>上的变压器

    KUKAC4机器人首次开机启动

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

    浅谈儿童陪护机器人

    儿童陪护机器人越来越受到人们的关注,其中转动控制是其重要组成部分之一。步进电机芯片作为一种常用的控制芯片,被广泛应用于儿童陪护机器人中的转动控制。本文将从步进电机芯片的工作原理、优势和应用场景等方面
    发表于 05-11 15:12

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

    GLOBALINTERRUPTDECL 8 WHEN $softplcbool[5] DO SZIntR(7)中断程序激活滞后故障,$softplcbool[5]触发中断程序.
    的头像 发表于 05-05 10:16 627次阅读
    <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

    扫地机器人是如何实现液位检测的

    口上面,当机器人开始加水时,传感器会检测水位并将数据发送到一个微处理器。微处理器会根据清水箱的容量,来判断是否需要再次填充水。如果水位已满,机器人将停止加水。污水箱中也有水位传感器,但这个传感器测量
    发表于 04-15 11:21

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

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

    如何实现拥有强悍功能智能巡检机器人

    及环境监测机器人系统能够通过高清摄像头实时监视现场环境,通过外接温、湿度传感器等来采集设备现场的湿度温度、有害气体浓度等信息,通过4G、5G上传至云端;(2) 全自动巡检根据自身时间设定或云端远程
    发表于 04-12 15:49