机器人现场编程-川崎机器人示教-综合命令.pdf
- 格式:pdf
- 大小:1.20 MB
- 文档页数:10
川崎常用指令表川崎常用指令表一、基本指令1、START:启动的运行。
2、STOP:停止的运行。
3、RESET:重置的状态。
4、PAUSE:暂停的运行。
5、RESUME:恢复的运行。
二、坐标系设置1、BASE:设置的基坐标系。
2、TOOL:设置的工具坐标系。
3、USER:设置的用户坐标系。
三、运动指令1、MOVJ:关节运动指令,以关节角度为运动参数。
2、MOVL:直线运动指令,以目标位置坐标为运动参数。
3、MOVC:圆弧运动指令,以目标位置坐标和插补半径为运动参数。
4、MOVT:工具坐标系下的运动指令,以工具坐标系的目标位置坐标为运动参数。
5、MOVLINC:增量直线运动指令,以增量位置坐标为运动参数。
6、MOVCINC:增量圆弧运动指令,以增量位置坐标和插补半径为运动参数。
7、MOVTINC:工具坐标系下的增量运动指令,以增量位置坐标为运动参数。
四、速度控制指令1、SPEED:设置的运动速度。
2、ACCEL:设置的加速度。
3、DECEL:设置的减速度。
五、力控制指令1、FORCE:设置的力控制模式及参数。
2、NOFORCE:取消的力控制模式。
六、输入输出指令1、DI:读取数字输入信号的状态。
2、DO:控制数字输出信号的状态。
3、:读取模拟输入信号的数值。
4、AO:控制模拟输出信号的数值。
七、数据传输指令1、WT:等待指定条件满足。
2、SIGNAL:发送信号。
3、RECEIVE:接收信号。
八、其他指令1、MESSAGE:显示提示信息。
2、CALL:调用子程序。
3、RET:返回主程序。
4、COMMENT:添加注释。
5、JUMP:无条件跳转到指定位置。
6、IF:条件判断语句。
附件:此处可以添加川崎常用指令的实际示例。
法律名词及注释:1、:根据国家法律法规和标准,指能自动执行工作的多自由度机械装置,具有感知、决策和执行功能。
2、关节角度:各个关节的转动角度。
3、目标位置坐标:执行运动的目标位置的坐标值。
机器人现场编程-川崎机器人的点动简介川崎机器人是一种先进的工业机器人,广泛应用于生产线上的各种工厂和制造业。
其点动功能使得机器人更加灵活和高效,在现场编程中扮演着至关重要的角色。
什么是点动?点动是指机器人通过连续的单步运动,实现对机器人的位置和动作进行微调和控制的一种方式。
通过点动功能,操作员可以方便地通过按下按钮、旋转手柄或使用触摸屏等方式,逐步控制机器人的移动,以实现精确的位置调整和动作指令。
川崎机器人的点动功能川崎机器人具有强大的点动功能,并提供多种不同的控制方式。
以下是几种常见的点动方式:1.按钮控制:川崎机器人配备了多个按钮,用于进行前进、后退、上升、下降等简单的点动操作。
这些按钮布局合理,易于操作员掌握,并且通过简单的按压即可实现机器人的微调。
2.手柄控制:川崎机器人上配备了手柄,通过旋转手柄的方式可以实现更加精确的点动控制。
手柄控制可以在三个方向上进行微调,以实现精确的位置调整和动作控制。
3.触摸屏控制:川崎机器人的触摸屏界面友好且易于操作,提供了丰富的点动功能。
通过触摸屏,操作员可以直接指定机器人的目标位置,并通过简单的手势操作来实现机器人的微调和控制。
点动的应用场景点动在机器人的现场编程中有着广泛的应用场景,以下列举几个常见的应用:1.定位调整:在安装和调试机器人时,经常需要对机器人的位置进行微调,以确保机器人精确达到所需的位置。
通过点动功能,操作员可以通过逐步调整机器人的位置,实现精确的定位调整。
2.动作优化:在机器人的运行过程中,有时需要对机器人的动作进行微调,以达到更好的效果。
比如,在装配线上,机器人需要按照特定的步骤进行装配,通过点动功能,操作员可以针对每个步骤进行微调,以保证装配的准确性和效率。
3.故障排查:在机器人运行时,如果发现某个动作出现错误或异常,点动功能可以帮助操作员对机器人进行调试和排查故障。
通过点动功能,操作员可以逐步调整机器人的动作,以便找出问题所在,并及时进行修复。
川崎机器人程序.PROGRAM a.shijiao() #0;示教程序SPEED 100 ALWAYSACCURACY 1 ALWAYSJMOVE ho;原点JMOVE picaj_t;抓取位置a奇数层起始点JMOVE picao_t;抓取位置a偶数层起始点JMOVE picbj_t;抓取位置b奇数层起始点JMOVE picbo_t;抓取位置b偶数层起始点JMOVE piccj_t;抓取位置c奇数层起始点JMOVE picco_t;抓取位置c偶数层起始点JMOVE picdj_t;抓取位置d奇数层起始点JMOVE picdo_t;抓取位置d偶数层起始点JMOVE puta;放置点aJMOVE putb;放置点bJMOVE putc;放置点cJMOVE putd;放置点dJMOVE gen;躲避点参考高度POINT putaw=SHIFT(puta BY 0,0,100);放置点a准备点POINT putbw=SHIFT(putb BY 0,0,100);放置点b准备点POINT putcw=SHIFT(putc BY 0,0,100);放置点c准备点POINT putdw=SHIFT(putd BY 0,0,100);放置点d准备点JMOVE putaq1;JMOVE putaq2;放置a点倾倒点JMOVE putbq1;JMOVE putbq2;放置b点倾倒点JMOVE putcq1;JMOVE putcq2;放置c点倾倒点JMOVE putdq1;JMOVE putdq2;放置d点倾倒点CALL pointsa_t;抓取位置a各点计算CALL pointsb_t;抓取位置b各点计算CALL pointsc_t;抓取位置c各点计算CALL pointsd_t;抓取位置d各点计算.END.PROGRAM init() #172661;系统参数设定CHECK.HOLD OFFCP ONCYCLE.STOP OFFMESSAGES ONOX.PREOUT ON PREFETCH.SIGINS OFFQTOOL OFFRPS ONSCREEN ONREP_ONCE OFFSTP_ONCE OFF AUTOSTART.PC OFF AUTOSTART2.PC OFF AUTOSTART3.PC OFF AUTOSTART4.PC OFF AUTOSTART5.PC OFF ERRSTART.PC OFFDISPIO_01 OFFAFTER.WAIT.TMR ONZREP2_TOPPEN ONca = 0ca0 = 0cb = 0cb0 = 0cc = 0cc0 = 0cd = 0cd0 = 0WEIGHT 170,0,0,450 acc = 100acc1 = 1sp1=10sp3=30sp5=50sp8=80tim = 1tim1 = 0.5.END.PROGRAM a.main() #0 ;主程序SPEED 100 ALWAYS ACCURACY 500 ALWAYS SIGNAL -9;吸盘关闭HERE ttPOINT/Z tt = gen LMOVE tt;移动到安全位置LMOVE ho;返回原点POINT pupo0=ho BREAKCALL init;系统参数设定CALL dousa;调用动作程序.PROGRAM pointsa_t() #1521;抓取位置a各点计算ca = 010a = ca/7b = INT(a);层数c = b MOD 2;奇偶层判断d = ca MOD 7;每层个数判断z0 = bCALL gaodu;计算每层高度IF c==0 THENCALL pointsja;位置a奇数层位置计算ELSECALL pointsoa;位置a偶数层位置计算ENDIF ca<41 THENca = ca+1GOTO 10ENDRETURN.END.PROGRAM gaodu() #0;每层高度计算CASE z0 OFVALUE 0:z=0VALUE 1:z=-VALUE 2:VALUE 3:z=-VALUE 4:z=-VALUE 5:z=-VALUE 6:z=-END.END.PROGRAM pointsja() #0;位置a奇数层位置计算POINT pica1 = SHIFT(picaj_t BY 0,0,0)CASE d OFVALUE 0:POINT pica[ca] = SHIFT(pica1 BY 0,0,z) POINT picaw[ca] = SHIFT(pica[ca] BY 80,0,150) VALUE 1:POINT pica[ca] = SHIFT(pica1 BY 343.5,0,z) POINT picaw[ca] = SHIFT(pica[ca] BY 100,0,150) VALUE 2:POINT pica[ca] = SHIFT(pica1 BY 645,0,z) POINT picaw[ca] = SHIFT(pica[ca] BY 100,0,150) VALUE 3:POINT pica[ca] = SHIFT(pica1 BY 645,0,z) POINT picaw[ca] = SHIFT(pica[ca] BY 100,0,150)VALUE 4:POINT pica[ca] = SHIFT(pica1 BY 645,0,z)VALUE 5:POINT pica[ca] = SHIFT(pica1 BY 645,0,z) POINT picaw[ca] = SHIFT(pica[ca] BY 100,0,150) VALUE 6:POINT pica[ca] = SHIFT(pica1 BY 645,0,z) POINT picaw[ca] = SHIFT(pica[ca] BY 100,0,150) END.END.PROGRAM pointsoa() #0;位置a偶数层位置计算POINT pica2 = SHIFT(picao_t BY 0,0,0)CASE d OFVALUE 0:POINT pica[ca] = SHIFT(pica2 BY 0,0,z) POINT picaw[ca] = SHIFT(pica[ca] BY 80,0,150) VALUE 1:POINT pica[ca] = SHIFT(pica2 BY 343.5,0,z) POINT picaw[ca] = SHIFT(pica[ca] BY 100,0,150) VALUE 2:POINT pica[ca] = SHIFT(pica2 BY 645,0,z) POINT picaw[ca] = SHIFT(pica[ca] BY 100,0,150) VALUE 3:POINT pica[ca] = SHIFT(pica2 BY 645,0,z) POINT picaw[ca] = SHIFT(pica[ca] BY 100,0,150) VALUE 4:POINT pica[ca] = SHIFT(pica2 BY 645,0,z) POINT picaw[ca] = SHIFT(pica[ca] BY 100,0,150) VALUE 5:POINT pica[ca] = SHIFT(pica2 BY 645,0,z)VALUE 6:POINT pica[ca] = SHIFT(pica2 BY 645,0,z) POINT picaw[ca] = SHIFT(pica[ca] BY 100,0,150) END.END.PROGRAM dousa() #0;动作主程序SPEED 100 ALWAYSACCURACY 500 ALWAYS100ONI 1004 CALL stop;监视停止信号,并调用停止程序IF SIG(1021)==TRUE THENCALL dousal;监视料斗状态,并调用动作程序ENDIF SIG(1022)==TRUE THENCALL dousalENDIF SIG(1023)==TRUE THENCALL dousarENDIF SIG(1024)==TRUE THENCALL dousarENDGOTO 100.END.PROGRAM stop() #0;停止程序SPEED 50 ALWAYS ACCURACY 50 ALWAYSHERE ttPOINT/Z tt = genLMOVE tt;移动到安全位置LMOVE ho;返回原点DOPAUSESIGNAUNTIL SIG(1002).END.PROGRAM dousal() #0;左侧动作程序50IF SIG(1013,1021)==TRUE THEN CALL dousaa1;判断托盘和料斗信号IF ca<41 THENca=ca+1ELSEca=0ENDGOTO 50ENDIF SIG(1013,1022)==TRUE THEN CALL dousaa2IF ca<41 THENca=ca+1ELSEca=0ENDGOTO 50END60IF SIG(1014,1021)==TRUE THEN CALL dousab1IF cb<41 THENcb=cb+1ELSEcb=0ENDGOTO 60ENDIF SIG(1014,1022)==TRUE THEN CALL dousab2IF cb<41 THENcb=cb+1ELSEcb=0ENDGOTO 60ENDRETURN.END.PROGRAM dousar() #0;右侧动作程序70IF SIG(1015,1023)==TRUE THEN CALL dousac3;判断托盘和料斗信号IF cc<41 THENcc=cc+1ELSEcc=0ENDGOTO 70ENDIF SIG(1015,1024)==TRUE THEN CALL dousac4IF cc<41 THENcc=cc+1ELSEcc=0ENDGOTO 70END80IF SIG(1016,1023)==TRUE THEN CALL dousad3IF cd<41 THENcd=cd+1ELSEcd=0ENDGOTO 80ENDIF SIG(1016,1024)==TRUE THEN CALL dousad4IF cd<41 THENcb=cd+1ELSEcd=0ENDGOTO 80ENDRETURN.END.PROGRAM dousaa1() #0;从A托盘取料放到1号料斗SPEED 100 ALWAYS ACCURACY 500 ALWAYSTIMER 1=0;计时器清零200LMOVE pupo0;移动到废料过渡点POINT picaw1=picaw[ca]POINT/Z picaw1=gen;拾取过度点POINT pic=picaw1POINT put=pupo0CALL tuuka1;计算中间点1 JMOVE tupo1;移动到通过点1201IF SIG(1013,1021)==TRUE THEN GOTO 210;判断托盘a及料斗到位信号ELSEBREAKGOTO 201END210LMOVE picaw1;移动到拾取过渡点ACCURACY accLMOVE picaw[ca];抓取准备点PULSE 11,1;吹气CALL kamera(picaw[ca],pica[ca]);调用视觉程序LMOVE picaw[ca];新的准备点ACCURACY acc1SPEED sp5XMOVE pica[ca] TILL 1017;到达抓取点211;再一次判断信号IF SIG(1008) THENCALL stopENDIF SIG(1021)==TRUE THENGOTO 212ELSEGOTO 211END212SIGNAL 9;吸取TWAIT timACCURACY 10SPEED sp8LMOVE picaw[ca]LMOVE picaw1POINT pic=picaw1POINT put=putawCALL tuuka2;计算通过点2POINT putaw1=putawLMOVE tupo2;移动到通过点2 LMOVE putaw1;移动到放置过渡点LMOVE putaw;移动到放置准备点213IF SIG(1021,1025)==TRUE THEN GOTO 214;判断料斗及切刀准备ELSEGOTO 213END214ACCURACY acc1SPEED sp3LMOVE puta;移动到放置a点BREAKPULSE 2,1;切割SWAIT 1026;等待切割到位TWAIT 1LMOVE putaq1TWAIT 0.5LMOVE putaq2TWAIT 0.5LMOVE putaw;移动到放置准备点LMOVE pupolw;移动到废物准备点LMOVE pupol;移动到废物点SIGNAL -9;停止吸取PULSE 10,1;破真空开TWAIT 0.5LMOVE pupolw;移动到废物准备点POINT pupo0=pupolwTYPE TIMER(1);显示循环时间.END.PROGRAM tuuka1() #76243;通过点1计算程序POINT #pic = picDECOMPOSE pic[1] = #picPOINT put0 = AVE_TRANS(put,pic)POINT/Z put0 = genPOINT #put0 = put0DECOMPOSE put[1] = #put00POINT #tupo1 = #PPOINT(put[1],put[2],put[3],pic[4],pic[5],pic[6])POINT tupo1 = #tupo1POINT/Z tupo1 = gen.END.PROGRAM tuuka2() #76243;通过点2计算程序POINT #put = putDECOMPOSE put[1] = #putPOINT put0 = AVE_TRANS(put,pic)POINT/Z put0 = genPOINT #put0 = put0DECOMPOSE pic[1] = #put0POINT #tupo2 = #PPOINT(pic[1],pic[2],pic[3],put[4],put[5],put[6])POINT tupo2 = #tupo2POINT/Z tupo2 = gen.END。