欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    最新ABB机器人编程程序解析.docx

    • 资源ID:34630504       资源大小:947.81KB        全文页数:49页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    最新ABB机器人编程程序解析.docx

    Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateABB机器人编程程序解析ABB机器人编程程序解析 ABB机器人编程1程序解析:1、此程序是典型的ABB机器人官方编程思路与方法,分为主程序,初始化例行程序和轨迹程序。2、思路清晰,结构编排明确,方便使用者阅读。%  VERSION:1  LANGUAGE:ENGLISH%MODULE MainModule    PERS tooldata tGripper:=TRUE,0,0,100,1,0,0,0,25,0,0,10,1,0,0,0,0,0,0;      PERS wobjdata WobBox:=FALSE,TRUE,"",1,1,1,0,0,0,0,0,0,0,1,0,0,0;    CONST robtarget pPointA:=1,1,1,1,1,1,1,-1,0,0,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;   CONST robtarget pPointB:=1,1,1,1,1,1,1,-1,0,0,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;   CONST robtarget PHome:=1,1,1,1,1,1,1,-1,0,0,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;      PERS loaddata load_Empty:=1,0,0,0,1,0,0,0,0,0,0;    PERS loaddata load_Box:=20,0,0,0,1,0,0,0,0,0,0;  以上是固定的数据存放位置。      PROC main()         主程序,是一个程序的开始    rInitial;    Accset 60,60;     此部分其实可放入到rInitial中去,这样管理起来更方便    velset 100,100;   此部分其实可放入到rInitial中去,这样管理起来更方便   WHILE TRUE DO         rBox;             在此指令后插入0.3秒的等待指令,防止CPU过负荷的情况出现。   ENDWHILE  ENDPROC  PROC rInitial()      SetDo DOGrip,0;     WaitDI DIGripReleased,1;        MoveJ pHome, v300, z50, tGripper;    ENDPROC PROC rBox()  MoveJ offs(pPointA,0,200,500), v1500, z100,tGripper;   MoveJ offs(pPointA,0,200,0), v1500, z50,tGripper;   A:    TPErase;    IF DIAllowPick=1  THEN    WaitTime 0;   ELSEIF DIAllowPick=0 THEN    TPWrite "Signal of AllowPick no ready,Please Check!"       GOTO A;   ENDIF        MoveL pPointA,v800, fine, tGripper;    SetDo DOGrip,1;   WaitDI DIGripPicked,1;   Gripload load_Box;         这一句很重要的,设定机器人的实际负荷情况,有利于机器人伺服控制的优化   MoveJ offs(pPointA,0,0,500), v1000, z100, tGripper;        MoveJ offs(pPointB,0,0,200), v1000, z50, tGripperWObj:=WobBox;      MoveL pPointB, v1000, fine, tGripperWObj:=WobBox;   SetDo DOGrip,0;   WaitDI DIGripReleased,1;    Gripload load_Empty;   MoveL offs(pPointB,0,200,0), v800, z50, tGripperWObj:=WobBox;   MoveJ offs(pPointB,0,200,500), v1500, z100, tGripperWObj:=WobBox;   ENDPROCENDMODULEABB机器人编程02程序解析:1、此程序编写的思路是完全按照比赛题目中的要求的进行,就是按步就班式的2、思路清晰,结构编排明确,方便使用者阅读。3、有相应的写屏信息提示,方便操作员对机器人运行状态的了解。4、有一点小问题,就是缺少初始化的部分。 MODULEMainModule    CONSTrobtargetPHOME:=1149.87,13.55,451.35,0.729477,0.0748599,0.679603,0.0199765,0,0,0,1,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;    CONSTrobtargetPA:=250.14,-652.34,650.90,0.429093,0.468557,-0.496153,0.591749,-1,0,-2,1,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;    CONSTrobtargetP20:=250.14,-652.35,828.56,0.429091,0.468538,-0.496163,0.591756,-1,0,-3,1,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;    CONSTrobtargetP30:=695.24,18.14,826.55,0.0377066,-0.677588,0.0913591,-0.728771,0,0,-2,1,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;    CONSTrobtargetP40:=1227.51,18.14,826.55,0.0377092,-0.677583,0.0913642,-0.728774,0,0,-3,1,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;    CONSTrobtargetPB:=1227.52,18.15,424.02,0.0377092,-0.677591,0.0913577,-0.728767,0,0,-2,1,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;    PROCmain()                          在主程序里,过于臃肿,将具体功能尽量细分到例行程序        TPErase;        MoveJPHOME,v1000,z50,tool0;        OpenGripper;        WaitTime5;        WHILEtrueDO        IFPLC=1THEN        TPErase;        TPWrite"Warning! Begin to move the new staff."        WaitTime1;        ClkResetclock1;        ClkStartclock1;        MovFromAtoB;        ClkStopclock1;        reg1:=ClkRead(clock1);        TPErase;        TPWrite"Goods handling in place, it take (time in second): "Num:=reg1; 运行时间的显示        WaitTime5;        ELSETPErase;        TPWrite"Waiting for new goods."    运行状态的提醒        WaitDIPLC,1;        ENDIF        ENDWHILE    ENDPROC    PROCOpenGripper()       将对夹具的控制做在一个例行程序里,方便管理        SetG0;        ResetG1;    ENDPROC    PROCCloseGripper()     将对夹具的控制做在一个例行程序里,方便管理        SetG1;        ResetG0;    ENDPROC    PROCMovFromAtoB()        MoveJP30,v1000,z50,tool0;        MoveJP20,v1000,z50,tool0;        MoveLPA,v50,fine,tool0;        WaitTime1;        CloseGripper;        WaitTime1;        MoveJP20,v50,z50,tool0;        MoveJP30,v1000,z50,tool0;        MoveJP40,v1000,z50,tool0;        MoveLPB,v50,fine,tool0;        WaitTime1;        OpenGripper;        WaitTime1;        MoveLP40,v50,z50,tool0;        MoveJP30,v1000,z50,tool0;        MoveJPHOME,v1000,z50,tool0;    ENDPROCENDMODULE ABB机器人编程03程序解析:1、此程序是典型的ABB机器人官方编程思路与方法,分为主程序,初始化例行程序和轨迹程序。2、思路清晰,结构编排明确,方便使用者阅读。3、但有点要注意的初始化例行程序只在开始时,执行一次,正常运行时,不再执行。但此程序是每个循环都会进行一次初始化,是有点问题的。 PROC main()        InitAll;           此初始化程序应与循环执行的程序隔离开,使用WHILE指令        Circle;        WaitTime 0.5;       ENDPROC    PROC InitAll()          Reset Do_fixOn;          WaitDIOn          ConfJOn;          ConfLOn;          VelSet 80, 1000;          AccSet 70,70;          MoveJ PHome, v150, fine, Tool0WObj:=Wobj2;          RETURN;         ENDPROC                    PROC Circle()         MoveJ Home, v60, z0, Tool0WObj:=Wobj2;         waitDI;         work;         reset waitDI                 MoveJ Home, v150, fine, Tool0WObj:=Wobj2;        ENDPROC                             PROC fixopen()         Set Do_fixopen;        ENDPROC       PROC fixclose()        Reset Do_fixclose;        ENDPROC           PROC Work()         MOVEJ A0  v150, z10, Tool0WObj:=Wobj2;         fixopen;         waittime 2;         MOVEL A1  v30, fine,Tool0WObj:=Wobj2;         fixclose;         waittime 2;         MOVEJ B0  v150, z10, Tool0WObj:=Wobj2;         MOVEj B1  v30, fine,Tool0WObj:=Wobj2;         fixopen;         waittime 2;         MoveJ PHome, v150, fine, Tool0WObj:=Wobj2;    ENDPROCABB机器人编程04程序解析:1、此程序是典型的ABB机器人官方编程思路与方法。2、思路清晰,结构编排明确,方便使用者阅读。3、此程序有一个亮点,就是有一个回等待点的例行程序rMoveHome,这个好处在于可以在手动状态下,就能方便的回到机器人的等待位置。4、有足够的写屏信息,很好地提示运行状态。  PROC Main()    rInitial;  rMoveHome;  While True Do  Velset 100,3000;     AccSet 70, 70;  rpickworkpiece;    rplaceworkpiece;   endwhile   proc rpickworkpiece; if workpiece=false MoveJ pickup, v2000, z5, too10;    A:    TPErase;        IF DI10_pickup=1  THEN             (pickup为PLC发来拾取信号)    WaitTime 0;     ELSEIF DI10_pickup=0 THEN    TPWrite "PLC-pickup signal no ready."       GOTO A;    ENDIF  MoveJ Offs(pickup,0,0,300), v500, z200, too10;  SetDo DO10_pickup1,1;  wait time  1;  workpiece=ture  endif endproc    proc rplaceworkpiece;  if workpiece=ture  MoveJ placemiddle, v2000, z5, too10;   MoveJ placeworkpiece, v2000, z5, too10;  MoveJ Offs(placeworkpiece,0,0,300), v500, z200, too10;  SetDo DO10_pickup1,0;    A:    TPErase;        IF DI10_pickon=1  THEN             (pickon为PLC检测已放好信号)    WaitTime 0;     ELSEIF DI10_pickup=0 THEN    TPWrite "PLC-pickON signal no ready."       GOTO A;     workpiece=false    ENDIF  endproc        PROC rInitial()    TpReadFk nInput,"Is the pack_machine ready","","","","No","Yes"(机器是否准备好)      If nInput=4 Then        bReady:=False;         stop;      ElseIF nInput=5 then        bReady:=True;      ENDIF         bFirstPickBoard:=True;  TpReadFk nInput,"Do you want to place workpiece","","","","No","Yes"(机器人抓头是否工件)     If nInput=4 Then        workpiece:=False;     ElseIF nInput=5 then        workpiece:=True;     ENDPROC                PROC rMoveHome()   (定义原点)      此例行程序可以方便地回到等待位置     MoveJ pHome, v500, z50, tGripper; ENDPROC ABB机器人编程05程序解析:1、此程序是典型的ABB机器人官方编程思路与方法。2、思路清晰,结构编排明确,方便使用者阅读。3、此程序共分了3个程序模块,清楚地将不同用途的语句分开,方便阅读,这种编程在进行一些复杂系统的编程是非常有用的。4、里面编程中运用了很多编程技巧,节省了机器人示教的时间,如使用OFFS功能。5、在写屏信息提示方面也非常丰富。6、此程序非常适合大家的参考与提高。7、有一个小问题,缺少搬运重要的负荷重量设定数据。 MODULE Data   此模块专门用于存放程序数据的 !target  CONST jointtarget home_pos := 0, 0, 0, 0, 90, 0, 9E9, 9E9, 9E9, 9E9, 9E9, 9E9 ; CONST jointtarget delta_pos := 2, 2, 2, 2, 2, 2, 9E9, 9E9, 9E9, 9E9, 9E9, 9E9 ; CONST jointtarget jhome := 0, 0, 0, 0, 90, 0, 9E9, 9E9, 9E9, 9E9, 9E9, 9E9 ; PERS robtarget roFetch:=2000,0,233.483269239532,0,0,1,0,0,0,0,0,9E9,9E9,9E9,9E9,9E9,9E9; PERS robtarget roDeFetch:=2000,1000,233.483269239532,0,0,1,0,0,0,0,0,9E9,9E9,9E9,9E9,9E9,9E9; VAR wzstationary home; VAR shapedata joint_space; VAR num nu_inhome; VAR bool flag1:=FALSE;ENDMODULE %   VERSION: 1   LANGUAGE: ENGLISH%MODULE CalibData     此模块用于存放需要设定的程序数据 TASK PERS tooldata Tooldata_1:=TRUE,0,0,1000,1,0,0,0,1,0,0,1,1,0,0,0,0,0,0; TASK PERS wobjdata Workobject_1:=FALSE,TRUE,"",0,0,0,1,0,0,0,0,0,0,1,0,0,0; ENDMODULE  MODULE MainModulePROC main()CheckHome;CheckGriper;Production;ENDPROCPROC CheckHome() IF DOutput(do_inhome) = 1 THEN  nu_inhome := 1; ELSE    nu_inhome :=0; ENDIF TEST nu_inhome CASE 0 : GoHome; CASE 1 : RETURN; DEFAULT : TPWrite "error" Stop; ENDTESTENDPROCPROC CheckGriper() IF di_griperclosed = 1 THEN  ControlGriper; ELSE  RETURN; ENDIFENDPROCPROC Production() WHILE TRUE DO WaitUntil di_plc=1; MoveL Offs(roFetch,0,0,500),v1000,z100,Tooldata_1WObj:=Workobject_1; 利用OFFS此功能,减少示教 MoveL roFetch,v1000,fine,Tooldata_1WObj:=Workobject_1; CloseGriper; MoveL Offs(roFetch,0,0,500),v1000,z100,Tooldata_1WObj:=Workobject_1; MoveL Offs(roDeFetch,0,0,500),v1000,z100,Tooldata_1WObj:=Workobject_1; MoveL roDeFetch,v1000,fine,Tooldata_1WObj:=Workobject_1; OpenGriper; MoveL Offs(roDeFetch,0,0,500),v1000,z100,Tooldata_1WObj:=Workobject_1; ENDWHILEENDPROCPROC CloseGriper() flag1:=FALSE; Reset do_opengriper; Set do_closegriper; WaitDI di_griperclosed, 1MaxTime:=3TimeFlag:=flag1; WHILE flag1=TRUE DO     TPWrite"CANN'T CLOSE GRIPER"     StopNoRegain;    ENDWHILEENDPROCPROC OpenGriper() flag1:=FALSE; Set do_opengriper; Reset do_closegriper; WaitDI di_griperopend, 1MaxTime:=3TimeFlag:=flag1; WHILE flag1=TRUE DO     TPWrite"CANN'T OPEN GRIPER"     StopNoRegain;    ENDWHILEENDPROCPROC DEF_Zone()                          对机器人是否在等待位进行检测WZHomeJointDef Inside, joint_space, home_pos, delta_pos;WZDOSetStat, homeInside, joint_space, do_inhome, 1;!RETURN;ENDPROCPROC GoHome()         VAR btnres answer;    VAR string my_message2:= "",""    CONST string my_buttons2:="MOVE TO HOME","STOP PRG"  丰富的写屏指令     my_message1:="RBT IS IN SAFETY POSITION"      my_message2:="OR CANNOT MOVE AUTOMATICALLY"      answer:= UIMessageBox (      Header:="RBT IS IN SAFETY AREA TO MOVE ON HOME?"      MsgArray:=my_message      BtnArray:=my_buttons      Icon:=iconWarning);      IF answer=2 THEN    EXIT;        !StopNoRegain;      ELSE    MoveAbsJ jhomeNoEOffs, v100, z5, Tooldata_1;      ENDIFENDPROCPROC ControlGriper() VAR btnres answer;    VAR string my_message2:= "",""    CONST string my_buttons2:="OPEN GRIPER","STOP PRG"   丰富的写屏指令     my_message1:="GRIPER IS NOT EMPTY"      my_message2:="OR SENSOR IS WRONG"      answer:= UIMessageBox (      Header:="OPEN THE GRIPER?"      MsgArray:=my_message      BtnArray:=my_buttons      Icon:=iconWarning);      IF answer=2 THEN    EXIT;        !StopNoRegain;      ELSE     OpenGriper;      ENDIFENDPROCENDMODULE-

    注意事项

    本文(最新ABB机器人编程程序解析.docx)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开