YAMAHA机器人编程指令集_第1页
YAMAHA机器人编程指令集_第2页
YAMAHA机器人编程指令集_第3页
YAMAHA机器人编程指令集_第4页
YAMAHA机器人编程指令集_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1.SENDENTERROBOTSPEEDTOETHSEND:将读取的文件的数据转发到写入文件。本语句是将ENTERROBOTSPEED(robot的初始速度)写入ETH中。CALL:*Go_HomeCALL:在同一个工程项目程序内跳出本程序去选择另一个程序运行。本语句是跳出正在运行的程序去选择*Go_Home程序运行。GOSUB*COM_PCGOSUB:跳转选择子程序语句。本语句是在同一程序内跳转选择子程序*COM_PC运行。*COM_PC、*Go_Home程序标签。*START_RUN:GOSUB*COM_PCASPEEDI20%SELECTCASEA0$CASESiteGOSUB*PAL

2、LET_TPCASEResultGOSUB*TP_PALLETCASEQrCodeGOSUB*QRCODECASELaserGOSUB*LASERCASEGoHome标签选择*COM_PC子程序定义外部速度为整数(%)I20条件选择语句,字符串A0($)条件1“site”(位置)PALLET_TP(托盘)条件2”result”(结果)条件3QrCode二维码扫描条件4Laser”镭射检查条件5“GoHmoe”拍照避让GOSUB*BIRANGCASEGoBack条件6放回原位GOSUB*GOBACKCASEELSE若无一条件成立,则执行CASEELSE,然后执行下一语句SENDCommandis

3、notfound,TOCMU将读出的文件数据”Commandisnotfound“转发到写入CMU中PRINTCommandisnotfoundPRINT输出语句,输出commandisnotfoundENDSELECT结束条件选择语句GOTO*START_RUN跳转语句(GOTO),跳转至U*START_RUNBO标签语句PMOVE(1,SGI1),Z=0.00PMOVE语句是托盘移动语句指令,本指令默认为1号机器人,编号为1号托盘,SGI1托盘点位,第三轴(Z轴)抬升到0.00mm。DO(21,20)=&B01DO:是输出至并行端口,本语句使并行端口DO21置OFF,DO20置ON。DRI

4、VE(3,0.00)DRIVE:以轴位单位的绝对移动指令。本指令是默认为一号机器人,第三轴(Z轴)绝对移动量为0.00mm。MOVEP,P1,Z=0.00MOVE:移动指令。本指令是以PTP移动到P1点并且Z轴抬升到0.00mm。WART_ARMWART_ARM:等待机器人动作结束指令。LEN(BB$)LEN:是获取字符串BB$的长度。MID$(BB$,L_NO%,1)MID$:从指定位置获取字符串。本指令是将BB$的第L_NO%字符开始的1个字符赋给MID$。VAL(B2$)VAL:将字符串转换为数值。将字符串表达式B2$里的字符转换为数值。%,!,$%:整数!:实数$:字符,字符串DELA

5、Y1000DELAY:延时指令语句。本指令是延时1000ms。MOVEP,P50,Z=0.00,S=25本语句表示以PTP移动倒是P50点位,并且Z轴抬升到0.00mm的位置,移动速度为25个脉冲单位。普通命令DIMDIM:声明数组变量。注意:最多只能声明三维数组格式:DIM数组名类型、!、$(角标)例:DIMA%(10)定义整型一维数组变量A%(0)A%(10)的11个元素。DIMC%(2,2),D!(10)定义整型数组C%(0,0)C%(2,2)与实数型数组D!(0)D!(10)DIMB!(2,3,4)定义实数型三维数组变量B!(0,0,0)B!(2,3,4)的60个元素。LET(1).L

6、ET:赋值语句。格式:LET类型=表达式LETV算术变量=V表达式V并行输出变量V内部输出变量V机械臂锁定输出变量V定时输出变量V串行输出变量例:A!=B!+1B%(1,2,3)=INT(10.88)DO2()=&B00101101MO(21,20)=2LO(00)=1TO(01)=0SO12()=255(2).LET:字符串赋值语句格式:LET字符串变量=字符串表达式例:A$=”YAMAHA”B$=”ROBOT”C$=A$+”-+“B$Resulrt:YAMAHA-ROBOT.LET:坐标点赋值语句格式:LET坐标点变量=坐标点表达式将坐标点20与坐标点5分别加例:Pl=P10将坐标点10赋

7、值给坐标点1P20=P20+P5上各个元素,并赋值给P20P30=P30P3将坐标点30至坐标点3分别减去各个元素,并赋值给P30P80=P70*4将坐标点70的各元素乘以4,并赋值给P80P60=P5/3将坐标点5的各元素乘以1/3,并赋值给P60(4).移位赋值语句格式:LET移位变量=移位表达式例:S1=S0将位移0赋值给位移1S2=S1+S0将位移1与位移0分别加上每个元素,并赋值给位移2REMREM:插入标注。REM或以后的字符被视作注释。不执行注释语句。也可写入行的中间。例:REM*MAINPROGRAM*字符串操作CHR$CHR$:计算带有指定字符编码的字符。例:A$=CHR$(

8、65)将A赋值给A$即:65在ASCCII表中对应的是A,CHR$意为将数值对应的ASCCII表中的字符赋给字符串人$的作用。LEFT$LEFT$:从一个字符串左端抽出n个字符赋给另一个字符串。例:B$=LEFT$(A$,4)将A$中的最左端的4个字符抽出赋給B$。RIGHT$RIGHT$:从一个字符串右端抽出n个字符赋給另一个字符串。例:B$=RIGHT$(A$,4)将A$中的最右端的4个字符抽出赋給B$。LENLEN:获取字符串的长度。格式:LEN(字符串表达式)即:返回V字符串表达式中表示的字符串长度(字节数)。例:B=LEN(A$)MID$(BB$,L_NO%,1)MID$:从指定位置

9、获取字符串。本指令是将BB$的第L_NO%字符开始的1个字符赋给MID$。VALVAL:将字符串转化为数值。I4%=VAL(B5$)将B5$里的值转化为实际的数值赋给14%。7.STR$STR$:将数值转化为字符串。将V表达式中指定的值转换为字符串。V表达式中可指定整数型及实数型的数值。格式:B$=STR$(10.01)将数值10.01转化为字符串赋給B$。8.ORDORD:获得指定字符串的起始字符的字符编码。即计算字符编码。计算V字符串表达式起始字符的字符编码。例:A=ORD(B)将66(=&H42)赋值给A。字符“B”在ASCCII表中对应的数值为66。坐标点、坐标、位移坐标CHANGEC

10、HANGE:对指定的机器人的机械手进行切换。通过CHANGE进行V机器人编号指定机器人的机械手的切换。指定为OFF时,表示无机械手设定。V机器人编号可以省略。当进行省略时,机器人1被指定。在切换机械手之前,请利用HAND语句对机械手进行定义。格式:CHANGEv机器人编号Hn/OFF例:HANDH1=0150.00.0HANDH2=-500020.000.0P1=150.00300.000.000.000.000.00CHANGEH2更改为机械手2MOVEP,P1机械手2的前端向Pl移动CHANGEH1更改为机械手1MOVEP,Pl机械手1的前端向P1移动HALTHANDHAND:对指定机器人

11、的机械手进行定义。定义语句:HANDV机器人编号Hn=V第1参数V第2参数V第3参数R选择语句:CHANGEV机器人编号Hn前提水平多关节机器人时.未指定第四参数R时。机械手(工装治具)是固定在基准第二机械臂前端的。第一参数:机械手n基准点与基准第二机械臂基准点之间的脉冲偏移量。逆时针方向为+脉冲。第二参数:机械手n基准点与基准第二机械臂基准点之间的长度差(mm)。第三参数:机械手n的Z轴的偏移量(mm)。例:HANDH1=0150.00.0HANDH2=-500020.000.0P1=150.00300.000.000.000.000.00CHANGEH2更改为机械手2MOVEP,P1机械手

12、2的前端向P1移动CHANGEH1更改为机械手1MOVEP,P1机械手1的前端向P1移动HALT指定第四参数冷时R轴为伺服时,成为从R轴旋转中心偏移的机械手。第一参数:设R轴的当前位置为0.00时,正交坐标+x与机械手n之间的角度,逆时针为正度数。第二参数:机械手n的长度(mm)0。第三参数:机械手n的偏移量mm。LOCx、LOCy、LOCz、LOCr以轴位单位或者以位移数据为要素单位来设定或者获取坐标点数据。格式:LOCX坐标点表达式/位移表达式=表达式例:LOCX(P10)=A(1)将P10的第一轴(x轴)数据变更为数组A(1)的值。LOCY(S1)=B将S1的第二轴(Y轴)数据变更为B的

13、值。(A1)=LOCX(P10)将P10的第一轴的数据赋給数组A(1)oB=LOCY(S1)将位移数据的第二轴数据赋給BoJTOXY/XYJOTJTOXY:以轴单位制转换,将脉冲转换成毫米。将关节坐标数据转化为指定机器人的正交坐标数据。例:P10=JTOXY(WHERE)将当前位置数据转化成正交坐标数据。XYJOT:将正交坐标数据(mm)转化为轴坐标数据(脉冲)。将坐标点变量的正交数据转化为指定机器人的关节坐标数据。例:P10=XYJOT(P10)LEFTY/RIGHTYLEFTY:将水平多关节机器人的手系系统设置为左手系。此命令对水平多关节机器人有效。RIGHTY:将水平多关节机器人的手系系

14、统设置为手系。此命令对水平多关节机器人有效。格式:LEFTY(机器人编号)注:机器人编号可以省略。例:RIGHTYMOVEP,P1LEFTYMOVEP,P1RIGHTYHALTPn/SnPn:在程序中定义点位坐标。Sn:在程序中定义位移坐标。6.SHIFTSHIFT:设置位移坐标。格式:机器人编号(位移变量)例:SHIFTS1MOVEP,P1SHIFTSAMOVEP,P2HALT分支命令FORNEXTFORNEXT:反复执行FOR的下一条语句至NEXT的上一条语句,直至变量超过指定值为止,将跳出循环,执行下一条语句。格式:FOR控制变量=开始值T0结束值STOP步骤命令区NEXT控制变量例:F

15、ORA=1TO10MOVEP,P1MOVEL,P2MOVEP,P3PRINT“YAMAHA”;ANEXTAHALTGOSUBRETURNGOSUBRETURN:通过GOSUB跳转到标签子程序,并执行标签子程序,在通过RETURN返回到主程序继续执行。格式:MAINGOSUB标签HALT标签RETURN例:*ST:MOVEP,P0GOSUB*CLOSEHANDMOVEP,P1GOSUB*OPENHANDGOTO*STHALTSUBROUTINE*CLOSEHAND:DO(20)=1RETURN*OPENHAND:DO(20)=0RETURN3.GOTOGOTO:无条件跳转至标签所指定的语句。格式

16、:MAIN标签GOTO标签例:MAINROUTINE*ST:MOVEP,P0,P1IFDI(20)=1THENGOTO*FINENDIFGOTO*ST*FIN:HALT4.IF(1).IF:更据条件分支控制流程。格式:MAINIF条件表达式THEN标签/命令语句ELSE标签/命令语句HALT例:MAINROUTINE*ST:MOVEP,P0,P1IFDI(20)=1THEN*L1DI(20)为1时,则跳转至*L1DO(20)=1DELAY100*L1:IFDI(21)=1THEN*STELSE*FINDI(21)为1时,则跳转至*ST。如果不是,则跳转至*FIN*FIN:HALT(2).区块I

17、F语句IFTHENELSEIFFHENELSEENDIF例:MAINROUTINE*ST:MOVEP,P0,P1IFDI(21,20)=1THENDO(20)=1DELAY100WAITDI(20)=0ELSEIFDI(21,20)=2THENDELAY100ELSEGOTO*FINENDIFGOTO*ST*FIN:HALT5.ONGOTOONGOTO:根据条件跳转至标签所指定的行。例:MAINROUTINE*ST:ONDI3()GOTO*L1,*L2,*L3根据DI3()的值跳转至*LI*L3GOTO*ST返回*STHALTSUBROUTINE*L1:MOVEP,P10,Z=0GOTO*ST

18、*L2:DO(30)=1GOTO*ST*L3:DO(30)=0GOTO*STWHILEWENDWHILEWEND:在条件成立时,反复执行WHILE与WEND之间的语句;在条件不成立时,则跳出WHILEWEND的循环,执行WEND的下一跳语句;在条件一次都不成立的时候,则WHILEWEND语句则一次都不执行,直接执行WEND语句的下一条语句。格式:WHILE条件表达式命令区WEND例:A=0WHILEDI3(0)=1A=A+1MOVEP,P1MOVEP,P2PRINT“COUNTER=”;AWENDNALT错误控制指令1.ONERRORGOTOONERRORGOTO:在发生错误时跳转到指定的标签

19、。含义:在执行机器人语言程序时发生了错误,不停止程序,跳转至标签指定位置处理错误例程,然后将继续执行。格式:1:ONERRORGOTO标签2:ONERRORGOTO0例:ONERRORGOTO*ER1FORA=0TO9PA+10=PANEXTA*L99:HALTERRORROUTINE*ER1:IFERR=&H0604THEN*NEXT1确认是否发生了Pointdoesntexist的错误IFERR=&H0606THEN*NEXT2确认是否发生了Subscriptoutofrange的错误ONERRORGOTO0显示错误并停止执行*NEXT1:RESUMENEXT跳转至错误发生行的下一行继续执

20、行*NEXT2:RESUME*L99跳转至标签*L99并继续执行RESUMERESUME:错误恢复处理后恢复执行程序从。含义:进行错误恢复处理后,恢复执行程序。按照程序恢复启动的位置有3种方法:(1):RESUME从错误错误原因命令开始恢复启动程序。(2):RESUME从错误原因的下一个命令开始恢复启动程序(3):RESUME从显示有标签行的命令开始恢复启动程序。格式:RESUMENEXTRESUME标签ERR/ERLERR:获取错误编码。ERL:获取错误发生行编码。格式:ERR任务编码ERL任务编码程序控制CALLCALL:调用子过程。含义:调用SUBENDSUB语句中定义的子过程。CALL

21、标签中所指定的名称与SUB所定义的名称相同。(1).在实参中指定的常量和表达式为值传递;(2).在实参中指定的变量和数组元素时为传递,如果在实参前面加上ERF则变为引用传递。(3).在实参中指定了所有数组(数组名后面带有()时,将变为引用传递。格式:CALL标签(实参,实参)例1:X%=4Y%=5CALL*COMPARE(REFX%,REFY%)HALTSUBROUTINE:COMPARESUB*COMPARE(A%,B%)IFA%B%THENTEMP%=A%A%=B%B%=TEMP%ENDIFENDSUB例2;I=1CALL*TEST(I)HALTSUBROUTINE:TESTSUB*TES

22、TX=X+1IFX15THENCALL*TEST(X)ENDIFENDSUBHALTHALT:停止程序并复位。含义:直接停止程序并进行复位。HALT执行后重新启动程序时,程序将从一开始进行执行。格式:HALT表达式/字符串例:MAINROUTINE*ST:MOVEP,P0,P1IFDI(20)=1THENGOTO*FINENDIFGOTO*ST*FIN:HALTPROGRAMFINHALTALLHALTALL:停止并复位所有程序。含义:直接停止并复位所有程序,当HALTALL停止复位后重新启动时,将从主程序或者任务一种最后执行的程序的最前端开始执行。格式:HALTALL表达式/字符串例:MAI

23、NROUTINE*ST:MOVEP,P0,P1IFDI(20)=1THENGOTO*FINENDIFGOTO*ST*FIN:HALTALL“PROGRAMFINHOLDHOLD:暂停程序。含义:直接暂停程序。重新启动程序时,从HOLD语句的下一句开始执行。格式:HOLD表达式/字符串例:MAINROUTINE*ST:MOVEP,P0,P1IFDI(20)=1THENHOLDPROGRAMSTOPENDIFGOTO*STHALTHOLDALLHOLDALL:暂停所有的程序。含义:暂停所有的程序。当重新启动时,执行了HOLDALL的程序将从语句的下一行开始执行,其它程序则将从中断的执行行开始重新运行。例:SAMPLEMAINROUTINE*ST:MOVEP,P0,P1IFDI(20)=1THENHOLD“PROGRAMSTOP”ENDIFG

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论