川崎机器人常用指令表
- 格式:pdf
- 大小:109.07 KB
- 文档页数:1
川崎机器人signal常用命令一、监控指令1 、 EXECUTE 程序名, 执行循环数, 步骤编号运行main函数2、 abort在当前步骤完成后,停止机器人运动。
如果机器人在运动中,则机器人在完成当前的运动后,停止运动。
可以用continue指令恢复机器人程序继续运行。
3、 Hold立即停止机器人运动,马达Motor不会关断可以用continue指令恢复机器人程序继续运行。
4、 kill如果机器人程序因为 abort等命令停止了运动,可以用kill初始化堆栈。
kill初始化堆栈后,continue命令将无效。
5、CONTINUE NEXT程序在一个步骤或一个运动的执行过程中停止:CONTINUE 重新启动程序并重新执行被中断的步骤。
CONTINUE NEXT 在程序停止的步骤的下一个步骤处重新开始执行。
程序执行在一个步骤或一个运动完成后停止:CONTINUE 和CONTINUE NEXT 从所完成的步骤紧接的下一个步骤处,重新执行程序,不考虑NEXT。
程序因WAIT、SWAIT 或TWAIT 命令而暂停时:CONTINUE NEXT 指令跳过上面的命令,从下一步骤开始继续执行。
6、do执行单条命令例如>DO JMOVE safe ↵机器人以关节插补动作移动到位姿“safe”。
>DO HOME ↵机器人以关节插补动作移动到原点位置(HOME 位置)。
7、here用当前的位姿,来指定一个位姿变量>HERE #pick 定义机器人的当前位姿为“#pick”(关节位移值) >HERE place 定义机器人的当前位姿为“place” (变换值)HERE plate+object 定义机器人的当前位姿为“object ”,此位姿变量相对于位姿“plate”(复合变换值)。
如果“plate”未定义则出错。
8、Point>POINT pick1=pick 将“pick”的变换值赋值给“pick1”的变换值,并显示此值以供修改。
川崎常用指令表川崎常用指令表1.运动指令1.1 直线运动指令1.1.1 LIN 命令说明:该指令用于让执行直线运动,并可指定目标点、速度和加速度等参数。
语法:LIN X,Y,Z,A,B,C,V,ACC示例:LIN 1000,500,300,0,0,0,100,1000参数说明:- X, Y, Z:目标点在 X、Y、Z 轴上的坐标值;- A, B, C:目标点的姿态(欧拉角);- V:运动速度;- ACC:加速度。
1.1.2 PTPL 命令说明:该指令用于让执行直线运动,并可指定目标点、速度和加速度等参数,但姿态保持不变。
语法:PTPL X,Y,Z,V,ACC示例:PTPL 1000,500,300,100,1000参数说明:- X, Y, Z:目标点在 X、Y、Z 轴上的坐标值;- V:运动速度;- ACC:加速度。
1.2 旋转运动指令1.2.1 CIR 命令说明:该指令用于让按照圆弧路径执行旋转运动,并可指定圆心坐标、目标点坐标、速度和加速度等参数。
语法:CIR Xc,Yc,Zc,Xe,Ye,Ze,V,ACC示例:CIR 1000,500,300,2000,1000,500,100,1000参数说明:- Xc, Yc, Zc:圆心坐标;- Xe, Ye, Ze:目标点坐标;- V:运动速度;- ACC:加速度。
1.2.2 PTPR 命令说明:该指令用于让按照旋转角度执行旋转运动,并可指定旋转轴、旋转角度、速度和加速度等参数。
语法:PTPR A,VR,ACC示例:PTPR 90,100,1000参数说明:- A:旋转角度;- VR:旋转速度;- ACC:加速度。
2.控制指令2.1 停止指令2.1.1 STOP 命令说明:该指令用于让停止当前运动。
语法:STOP示例:STOP2.1.2 HALT 命令说明:该指令用于紧急停止,立即停止当前运动,并关闭系统。
语法:HALT示例:HALT2.2 IO 控制指令2.2.1 DO 命令说明:该指令用于控制数字输出口,可设置开关状态为开或关。
川崎常用指令表川崎常用指令表一、基本指令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、目标位置坐标:执行运动的目标位置的坐标值。
川崎机器人跳转goto命令示教示例
摘要:
1.川崎机器人简介
2.跳转goto 命令的作用
3.跳转goto 命令的示教示例
4.跳转goto 命令的优势和应用场景
正文:
【1.川崎机器人简介】
川崎机器人(Kawasaki Robotics)是一家专注于工业机器人领域的日本公司,其产品广泛应用于各种制造业生产线。
川崎机器人以其出色的性能、稳定的可靠性和先进的技术而闻名于世。
【2.跳转goto 命令的作用】
在川崎机器人的示教过程中,跳转goto 命令是一种十分实用的功能。
它可以让机器人在执行过程中,根据特定的条件跳转到指定的位置,从而实现更高效、更精确的生产作业。
【3.跳转goto 命令的示教示例】
以下是一个跳转goto 命令的示教示例:
首先,需要设定跳转条件,例如:当机器人检测到某个特定的物体或者到达某个特定的位置时,执行跳转命令。
然后,设定跳转目标,即机器人跳转后需要执行的任务或者位置。
最后,在示教过程中,让机器人按照设定的条件和目标进行跳转,并确保其能够准确地执行跳转后的任务。
【4.跳转goto 命令的优势和应用场景】
跳转goto 命令的优势主要体现在其能够提高生产效率和准确性,同时降低人工干预的成本。
在工业生产中,这种命令可以广泛应用于各种需要精确控制和优化流程的场景,例如:装配、焊接、搬运等。
川崎程序示例川崎程序示例1、简介1.1 概述1.2 适用范围1.3 目标读者2、环境准备2.1 工作站设置2.2 工具软件安装2.3 通信配置3、常用指令3.1 运动指令3.1.1 直线运动指令3.1.2 圆弧运动指令3.2 IO控制指令3.3 变量操作指令3.4 条件判断指令3.5 循环指令4、程序编写与调试4.1 新建程序4.2 编写程序4.3 编译程序4.4 程序调试5、高级功能5.1 异常处理5.2 线程控制5.3 自定义函数5.4 资源管理6、附件附件1:示例程序代码附件2:通信配置文件附注:1、本文所涉及的法律名词及注释:- 川崎:川崎重工的工业产品线,包括各种类型和规格的机械臂。
- 程序编写:利用专门的编程语言,编写控制程序,实现各种操作和功能。
- 运动指令:控制进行各种方式的运动,如直线运动、圆弧运动等。
- IO控制指令:控制的输入输出接口,实现与外部设备的通信和控制。
- 变量操作指令:对程序中使用的变量进行操作,包括存储、读取、修改等。
- 条件判断指令:根据条件的成立与否,决定程序的执行分支。
- 循环指令:重复执行特定的程序段,实现循环控制功能。
- 异常处理:处理程序运行过程中发生的异常情况,保证程序的可靠性和稳定性。
- 线程控制:控制程序的多线程执行,实现并发和同步的需求。
- 自定义函数:根据需求,自行定义函数,提高程序的模块化和可复用性。
- 资源管理:管理程序中所使用的资源,如变量、IO接口等。
2、本文档涉及附件:- 附件1:示例程序代码,包含常见功能和应用示例,方便读者理解和参考。
- 附件2:通信配置文件,包含设置川崎与工作站的通信参数,用于确保正确的数据传输。
川崎机器人程序.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。
一、各坐标系下的手动操作⑴打开电源、气源(总电源、变压器箱电源、控制器电源、机器人气泵)。
⑵【A】+【运行】右上角[RUN]灯亮按【暂停】,[RUN] -> [HOLD]灯亮。
⑶【A】+【马达开】右上角[MOTOR]灯亮。
⑷手动速度选择:按【手动速度】选择2或3(速度1-2-3-4-5-1循环切换)。
⑸坐标系选择:关节坐标(JOINT)/基坐标(BASE)/工具坐标(TOOL)可循环切换,首先选择关节坐标(亦称各轴坐标)。
⑹握杆握下:握杆轻握,听到“咔”声响,表示握杆成功。
⑺机器人移动:按下X-/X+、Y-/Y+ 、Z-/Z+ 、RX-/RX+、RY-/RY+ 、RZ-/RZ+ ,机器人将分别移动各个轴;⑻坐标系变换为基坐标(BASE)和工具坐标(TOOL),再分别执行上述⑺的操作,同时记录下各运行动作状态。
记录表格:二、三点位置示教和再现⑴开机、示教准备(参见各坐标系下的手动操作)⑵【A】+【程序】,输入文件名,如:20151111 。
⑶示教一个点,按【记录】键,记录位置1 同理再记录位置2、位置3 。
⑷将示教开关打到【REPEAT】注:控制器和示教器上均要打到[REPEAT]⑸再现。
运行【A】+【马打开】,【A】+【运转】,【A】+【循环启动】(指示灯判断)。
⑹运行模式选择步骤连续/步骤单步,再现连续/再现一次。
⑺再现结束按【暂停】或“紧急停止”按钮或开关打到示教。
三、再现模式下动作命令的执行机器人可以执行各种单个的动作,各种命令在软键盘输入画面上输入,在命令前加"DO”命令标识,按[ENTER]软键盘(参见下图)执行。
下面列举常见的动作命令:①对齐命令-ALIGN⑴打到再现模式、马达开、运转⑵【菜单】-[键盘]⑶> DO ALIGN 回车⑷再回到示教模式,准备下一步操作技巧:输入命令历史记录[CTRL+L] 键切换②存储当前位置到P1点中-HERE⑴打开一个文件⑵【菜单】-[键盘]⑶> here p1 回车,会显示X、Y、Z、O、A、T各轴的坐标位置值,提示:变更吗?(放弃请按RETURN键)再回车,即保存了当前位置到P1位置中,在程序中就可以直接使用P1了。
码垛程序一般常见语言说明●SPEED/SP 速度ALWAYS指定下一条动作命令的运动速度,若追加ALWAYS则此命令指定的速度值将持续到执行下一条SPEED命令为止。
程序速度通常以百分比(0.01%~100%)指定,也可以通过指定速度单位MM/S(毫米/秒)或MM/MIN(毫米/分)来指定绝对速度。
示例:SPEED 50 将下一条运动的速度指定为最大速度的50%SPEED 100 将下一条运动的速度指定为最大速度SPEED 200 将下一条运动的速度指定为最大速度(速度超过100%时被看作为100%)SPEED 20MM/S ALWAYS 工具坐标系原点的速度被指定为20MM/S,直到它被另一SPEED命令改变。
SPEED 6000MM/MIN 将下一条运动中工具坐标系原点的速度被指定为6000MM/MINSPEED 5S 设定下一条机器人运动的速度,使其在5S中到达SPEED 100MM/S,50 指定下一条运动的速度。
到达目标位姿所需时间长者优先●ACCURACY/ACCU 距离ALWAYS指定下一条动作命令中判断机器人位姿时的精度,若追加ALWAYS则此命令指定的精度值将持续到执行下一条ACCURACY命令为止。
其中参数距离的单位为毫米。
示例:ACCURACY 50 ALWAYS 将所有后继运动命令的精度范围设定为50毫米。
●BREAK/BRE暂停程序中的下一步骤的执行,直到当前机器人运动完成后再继续。
示例:……LMOVE aBREAKSIGNAL 9……上述命令当机器人移动到a点时,输出外部信号9为ON。
如果去掉BREAK命令,则有可能机器人在向a点运动的过程中(未达到a点时),提前输出外部信号9。
●JMOVE/JM 位姿变量LMOVE/LM 位姿变量移动机器人到指定位姿JMOVE:机器人以关节插补动作移动LMOVE:机器人以直线插补动作移动示例:JMOVE #pick 以关节插补移动到关节位移值“#pick”描述的位姿。