您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > FANUC机器人程序员A-讲义6(第六章)
程序员A课程——指令上海发那科机器人有限公司2021年1月6日星期三2一、程序编辑界面二、指令的编辑三、指令第六章指令程序一览画面3存储器剩余容量程序名称属性一、编辑界面4程序编辑画面当前执行的程序及执行行号程序运行状态示教坐标系速度倍率当前编辑的程序名程序指令程序结束标记一、编辑界面5在光标前插入空白行,可同时插入几行删除程序语句,可选择删除的范围复制/黏贴程序语句,复制一次,可黏贴多次检索程序指令的要素(如IO、R[i]等)替换程序指令要素使位置号码依序排列显示/隐藏IO指令或寄存器指令的注解撤销最后上一步操作将程序指令注解化或者解除注解化二、指令的编辑6机器人不运行备注指令备注功能二、指令的编辑7休息片刻Restforawhile8指令动作指令控制指令1:JP[1]100%FINE2:CP[2]P[3]2000mm/secCNT1003:LP[4]2000mm/secFINERegisters,I/O,IF,SELECT,WAIT,JMP/LBLCALL,OFFSET,UTOOL_NUM……三、指令9行号@:Robot就位标记位置信息(目的点)运动类型(轨迹)运行速度定位类型附加指令三、指令1、动作指令10运动类型J(关节动作):不进行轨迹控制/姿势控制L(直线动作,含回转动作):进行轨迹控制/姿势控制C(圆弧动作):进行轨迹控制/姿势控制运动类型三、指令关节动作11J(关节动作):不进行轨迹控制/姿势控制用于过渡点,不会因为奇异点而中断速度单位可用:%,sec,msec三、指令12L(直线动作,含回转动作):进行轨迹控制/姿势控制直线动作遇到奇异点会发出MOTN-023报警速度单位可用:mm/sec,cm/min,sec,msec三、指令回转动作13L(直线动作,含回转动作):进行轨迹控制/姿势控制遇到奇异点会发出MOTN-023报警速度单位用:deg/sec三、指令圆弧动作14遇到奇异点会发出MOTN-023报警速度单位用:mm/sec,cm/min,sec,msecC(圆弧动作):进行轨迹控制/姿势控制三、指令15@:Robot就位标记位置信息(目的点)P[i]:位置变量——局部变量PR[i]:位置寄存器——全局变量i=1~1500i=1~100慎用!位置信息三、指令16参考坐标系为:USER0和TOOL1P[2]在USER0中的坐标位置TOOL1相对USER0的旋转角度此数据决定Robot在P[2]的姿态在P[2]位置时,机器人各轴的度数三、指令17执行程序时,需要使当前的有效工具坐标系号和用户坐标系号与该点所记录的坐标信息一致。P点所记录的坐标系号当前有效的坐标系号注意三、指令18以当前有效坐标系为参考坐标请注意:使用PR[i]时,需提前声明其参考的USER和TOOL坐标系号,否则可能引起错误甚至危险的发生!三、指令19三、指令20运行速度速度倍率实际的运行速度=运行速度X速度倍率三、指令运行速度21定位类型FINE:精准定位CNT0~100:连续定位类型P2FINE、CNT0定位类型P1P3CNT100CNT30三、指令22三、指令注意:绕开工件的运动使用CNT,可使Robot的运动更连贯;当Robot手抓姿态突变时,会浪费时间;而逐渐变化时,Robot可以运动得更快。编程技巧1.用一个合适的姿态示教开始点;2.用一个与开始点差不多的姿态示教结束点;3.在开始点与结束点之间示教机器人,观察手抓的姿态是否逐渐变化;4.不断调整,尽可能使机器人的姿态不要突变。23J5=0°及附近特点机器人只能进行关节运动;若进行直线或圆弧,将会出现报警:MOTN-023处理方法1.示教中,用JOINT(关节)坐标将J5轴调开0°,按RESET复位报警即可;2.运行程序时,可将动作类型改为J或者修改机器人姿态,以避开奇异点;也可使用腕关节动作指令Wjnt。奇异点三、指令24附加指令例:ACC加减速倍率指令Wjnt手腕关节动作指令附加指令三、指令25创建程序激活UF和UT坐标系修改标准动作指令(模板)示教机器人并记录位置测试程序轨迹结束修改位置或轨迹合格?是否编程流程操作示例(画圆弧)三、指令261、寄存器指令Registers2、I/O(信号)指令I/O3、条件比较指令IF4、条件选择指令SELECT5、待命指令WAIT6、跳转/标签指令JMP/LBL7、呼叫指令CALL8、偏移条件指令OFFSET9、工具坐标系调用指令UTOOL_NUM10、用户坐标系调用指令UFRAME_NUM11、其他指令Miscellaneous2、控制指令三、指令271、寄存器指令Registers(1)寄存器R[i](2)位置寄存器PR[i](3)位置寄存器要素指令PR[i,j]i=1~200i=1~100i=1~100;j=1~6三、指令28(1)寄存器R[i]寄存器支持“=”(赋值),“+”,“-”,“*”,“/”四则运算和多项式。R[i]=Constant(常数)R[i](寄存器的值)PR[i,j](元素寄存器的值)DI[i](信号的状态)Timer[i](程序计时器的值)例子:R[1]=0R[1]=R[1]+1R[2]=DI[1]三、指令29(2)位置寄存器PR[i]位置寄存器支持“=”(赋值),“+”,“-”。PR[i]=PR[i]P[i]LPOS(当前位置的直角坐标值)JPOS(当前位置的关节坐标值)UFRAME[i](用户坐标系i的值)例子:PR[1]=LPOSPR[1]=P[1]UTOOL[i](工具坐标系i的值)示例:回HOME程序三、指令30(3)位置寄存器要素指令PR[i,j]PR[i,j]=PR[i]的第j个要素(坐标值)LPOS(直角)JPOS(关节)PR[2,1]=XPR[2,4]=WPR[2,2]=YPR[2,5]=PPR[2,3]=ZPR[2,6]=RPR[2,1]=J1PR[2,4]=J4PR[2,2]=J2PR[2,5]=J5PR[2,3]=J3PR[2,6]=J6三、指令31程序案例1USER0执行该行程序时,将机器人当前位置保存至PR[11]中,并且以直角(或关节)坐标形式显示出来。计算四个点的位置。运动指令,Robot根据以上计算得到的位置走出轨迹。思考:如以PR[13]为依据,如何算PR[14]?PR[14]=PR[13]PR[14,1]=PR[13,1]-100三、指令1:PR[11]=LPOS2:PR[12]=PR[11]3:PR[12,1]=PR[11,1]+1004:PR[13]=PR[12]5:PR[13,2]=PR[12,2]+1006:PR[14]=PR[11]7:PR[14,2]=PR[11,2]+1008:JPR[11]100%FINE9:LPR[12]2000mm/secFINE10:LPR[13]2000mm/secFINE11:LPR[14]2000mm/secFINE12:LPR[11]2000mm/secFINE[END]32思考题请用坐标计算的方式编程,让机器人画出一个半径为100mm的圆(参考坐标为:UF0,UT1)。三、指令r=100mm33I/O指令用来改变信号输出状态和接收输入信号。R[i]=DI[i]DO[i]=(Value)Value=ON发出信号Value=OFF关闭信号DO[i]=PULSE,(Width)Width=脉冲宽度(0.1to25.5秒)机器人信号(RI/RO)指令,模拟信号(AI/AO)指令,群组信号(GI/GO)指令的用法和数字信号指令类似。三、指令2、I/O(信号)指令I/O34程序案例2IO指令的应用实例——搬运工件1:JPR[1:HOME]100%FINE2:LP[1]2000mm/secCNT503:LP[2]2000mm/secFine4:RO[1]=ON5:WAIT0.5sec6:LP[1]2000mm/secCNT507:LP[3]2000mm/secCNT508:LP[4]2000mm/secFINE9:RO[1]=OFF10:WAIT0.5sec11:LP[3]2000mm/secCNT5012:LPR[1:HOME]2000mm/secFINE手抓动作,抓取工件手抓动作,放置工件三、指令35休息片刻RestforawhileIF〈条件1〉and(条件2)and(条件3)……36and:与or:或最多可连接5个条件3、条件比较指令IFIF条件满足,JMPLBL[i]/Call子程序R[i]I/O跳转至标签i处调用子程序IF〈条件1〉or(条件2)or(条件3)……三、指令37程序案例3IF指令的应用实例——循环条件控制1:JPR[1:HOME]1000mm/secFINE2:R[1]=03:LBL[1]4:LP[1]1000mm/secFINE5:LP[2]1000mm/secFINE6:LP[3]1000mm/secFINE7:LP[4]1000mm/secFINE8:R[1]=R[1]+19:IFR[1]3,JMPLBL[1]10:JPR[1:HOME]1000mm/secFINEENDP[1]P[2]P[3]P[4]PR[1:HOME]循环3次寄存器清0计算运行次数小于3次,跳至标签1标签1第1次第2次第3次三、指令ELSE,JMPLBL[i]/Call子程序SELECTR[i]=值1,JMPLBL[i]/Call子程序38跳转至标签i处调用子程序4、条件选择指令SELECT=值2,JMPLBL[i]/Call子程序=值3,JMPLBL[i]/Call子程序…三、指令只能用寄存器R[i]进行条件选择否则,跳转至标签i/调用子程序39程序案例4SELECT指令的应用实例1:JPR[1:HOME]100%FINE2:LP[1]2000mm/secCNT503:SELECTR[1]=1,CALLJOB15:=2,CALLJOB25:=3,CALLJOB36:ELSE,JMPLBL[10]7:LP[1]2000mm/secCNT508:JPR[1:HOME]100%FINE9:END10:LBL[10]11:R[100]=R[100]+1END开始Robot就位R[1]=?JOB1JOB2JOB3Robot回HOME结束R[100]计数1其他32三、指令405、待命指令WAIT可以在所指定的时间,或条件得到满足之前使程序的执行待命。WAIT时间WAIT条件满足R[i]I/O例子:WAIT2secWAITDI[1]=ONWAITR[1]3WAITDI[1]=ONANDDI[2]=ONWAITR[1]=3ORR[2]=4WAIT〈条件1〉and(条件2)and(条件3)……WAIT〈条件1〉or(条件2)or(条件3)……and:与or:或最多可连接5个条件三、指令如需要人工干预时,可以通过按【FCTN】(功能)键后,显示右图画面,选择7【RELEASEWAIT】(解除等待)跳过等待语句,并在下个语句处等待。使用等待超时跳转指令。41三、指令当程序在运行中遇到不满足条件的等待语句,会一直处于等待状态。可采取以下处理措施:42等待超时设置WAIT……,TIMEROUTLBL[i]$WAITTMOUT=n设置超时时间:n*10msec等待超时,跳转至LBL[i]三、指令43程序案例5开始Robot就位2秒内机床门开?(DI[101]=ON)执行机床内取件程序UL_MC1Robot回HOME结束发出报警等待超时应用实例1:JPR[1:HOME]100%FINE2:LP[1]2000mm/secCNT503:LP[2]2000mm/secFINE4:$WAITTIMOUT=2005:WAITDI[101]=ON,TIMEOUTLBL[999]6:CALLUL_MC17:DO[100]=ON8:END9:LBL[999]10:LP[1]2000mm/secCNT5011:LPR[1:HOME]2000mm/secFINE12:UALM[1]END发出取件完成信号DO[100]YESNO(超时)三、指令设置超时时间
本文标题:FANUC机器人程序员A-讲义6(第六章)
链接地址:https://www.777doc.com/doc-7378496 .html