搜档网
当前位置:搜档网 › YAMAHA机器人编程指令集

YAMAHA机器人编程指令集

YAMAHA机器人编程指令集
YAMAHA机器人编程指令集

1.SEND"ENTER ROBOT SPEED"TO ETH

SEND:将读取的文件的数据转发到写入文件。本语句是将"ENTER ROBOT SPEED"(robot的初始速度)写入ETH中。

2.CALL: *Go_Home

CALL:在同一个工程项目程序内跳出本程序去选择另一个程序运行。本语句是跳出正在运行的程序去选择*Go_Home程序运行。

3.GOSUB *COM_PC

GOSUB:跳转选择子程序语句。本语句是在同一程序内跳转选择子程序*COM_PC 运行。

4.*COM_PC、*Go_Home

程序标签。

5.*START_RUN: 标签

GOSUB *COM_PC 选择*COM_PC子程序

'ASPEED I20% 定义外部速度为整数(%)I20 SELECT CASE A0$ 条件选择语句,字符串A0($)CASE"Site" 条件1“site”(位置)

GOSUB *PALLET_TP PALLET_TP(托盘)

CASE"Result" 条件2”result”(结果)

GOSUB *TP_PALLET

CASE"QrCode" 条件3”QrCode”二维码扫描GOSUB *QRCODE

CASE"Laser" 条件4”Laser”镭射检查

'GOSUB *LASER

CASE"GoHome" 条件5“GoHmoe”拍照避让

GOSUB *BIRANG

CASE"GoBack" 条件6 放回原位

GOSUB *GOBACK

CASE ELSE 若无一条件成立,则执行CASE ELSE,然后执行

下一语句

SEND"Command is not found,@"TO CMU 将读出的文

件数据”Command is not found “转发到写入CMU中

PRINT"---------Command is not found---------" PRINT输出语句,输出command is not found

END SELECT 结束条件选择语句

GOTO *START_RUN 跳转语句(GOTO),跳转到*START_RUNBO标签语

6.PMOVE(1,SGI1),Z=0.00

PMOVE语句是托盘移动语句指令,本指令默认为1号机器人,编号为1号托盘,SGI1托盘点位,第三轴(Z轴)抬升到0.00mm。

7.DO(21,20)=&B01

DO:是输出至并行端口,本语句使并行端口DO21置OFF,DO20置ON。

8.DRIVE(3,0.00)

DRIVE:以轴位单位的绝对移动指令。本指令是默认为一号机器人,第三轴(Z轴)

绝对移动量为0.00mm。

9.MOVE P,P1,Z=0.00

MOVE:移动指令。本指令是以PTP移动到P1点并且Z轴抬升到0.00mm。

10.WART_ARM

WART_ARM:等待机器人动作结束指令。

11.LEN(BB$)

LEN:是获取字符串BB$的长度。

12.MID$(BB$,L_NO%,1)

MID$:从指定位置获取字符串。本指令是将BB$的第L_NO%字符开始的1个字符

赋给MID$。

13.VAL(B2$)

VAL:将字符串转换为数值。将字符串表达式B2$里的字符转换为数值。

14.% ,!,$

%:整数!:实数$:字符,字符串

15.DELAY1000

DELAY:延时指令语句。本指令是延时1000ms。

16.MOVE P,P50,Z=0.00,S=25

本语句表示以PTP移动倒是P50点位,并且Z轴抬升到0.00mm的位置,移动速度为25个脉冲单位。

普通命令

1.DIM

DIM:声明数组变量。注意:最多只能声明三维数组

格式:DIM<数组名> <类型%、!、$> (角标)

例:DIM A% (10)…………定义整型一维数组变量A%(0)~A%(10)的11个元素。

DIM C% (2,2),D!(10)……….定义整型数组C%(0,0)~C%(2,2)与实数型数组

D!(0)~D!(10)

DIM B! (2,3,4)……….定义实数型三维数组变量B!(0,0,0)~B!(2,3,4)的60个元素。

2.LET

(1).LET:赋值语句。

格式:[LET] <类型> =<表达式>

[LET]<算术变量>= <表达式>

<并行输出变量>

<内部输出变量>

<机械臂锁定输出变量>

<定时输出变量>

<串行输出变量>

例:A!=B!+1

B% (1, 2, 3) =INT (10.88)

DO2 ( ) =&B00101 101

MO (21, 20) =2

LO (00) =1

TO (01) =0

SO12 ( ) =255

(2).LET:字符串赋值语句

格式:[LET] <字符串变量> = <字符串表达式>

例:A$=”YAMAHA”

B$=”ROBOT”

C$=A$+”- +“B$

Resulrt: YAMAHA-ROBOT

(3).LET:坐标点赋值语句

格式:[LET]<坐标点变量> = <坐标点表达式>

例:P1 =P10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 将坐标点10 赋值给坐标点1

P20=P20+P5 . . . . . . . . . . . . . . . . . . . . . . . . . 将坐标点20 与坐标点5 分别加

上各个元素,并赋值给P20

P30=P30–P3 . . . . . . . . . . . . . . . . . . . . . . . . . . 将坐标点30 至坐标点3 分别减去各个元素,并赋值给P30

P80=P70*4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 将坐标点70 的各元素乘以4,并赋值给P80

P60=P5/3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 将坐标点5 的各元素乘以1/3,并赋值给P60

(4).移位赋值语句

格式:[LET] <移位变量> = <移位表达式>

例:S1=S0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 将位移0 赋值给位移1

S2=S1+S0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 将位移1 与位移0 分别加上每个元素,并赋值给位移2

3.REM

REM:插入标注。

REM 或"’" 以后的字符被视作注释。不执行注释语句。"’" 也可写入行的中间。例:REM *** MAIN PROGRAM ***

字符串操作

1.CHR$

CHR$:计算带有指定字符编码的字符。

例:A$ = CHR$(65)……………….将A赋值给A$ 即:65在ASCCII表中对应的是A,CHR$意为将数值对应的ASCCII表中的字符赋给字符串A$的作用。

2.LEFT$

LEFT$:从一个字符串左端抽出n个字符赋给另一个字符串。

例:B$ = LEFT$(A$,4)………………..将A$中的最左端的4个字符抽出赋給B$。

3.RIGHT$

RIGHT$:从一个字符串右端抽出n个字符赋給另一个字符串。

例:B$ =RIGHT$(A$,4)………………..将A$中的最右端的4个字符抽出赋給B$。

4.LEN

LEN:获取字符串的长度。

格式:LEN(<字符串表达式>)

即:返回<字符串表达式>中表示的字符串长度(字节数)。

例:B=LEN(A$)

5.MID$(BB$,L_NO%,1)

MID$:从指定位置获取字符串。本指令是将BB$的第L_NO%字符开始的1个字符赋给MID$。

6.VAL

VAL:将字符串转化为数值。

I4%=VAL(B5$)……………………………..将B5$里的值转化为实际的数值赋给I4%。

7.STR$

STR$:将数值转化为字符串。

将<表达式>中指定的值转换为字符串。<表达式>中可指定整数型及实数型的数值。

格式:B$=STR$ (10.01)………………将数值10.01转化为字符串赋給B$。

8.ORD

ORD:获得指定字符串的起始字符的字符编码。即计算字符编码。计算<字符串表达式>起始字符的字符编码。

例:A=ORD ("B") . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 将 66 (=&H42 ) 赋值给A。字符“B”在ASCCII表中对应的数值为66。

坐标点、坐标、位移坐标

1.CHANGE

CHANGE:对指定的机器人的机械手进行切换。

通过CHANGE 进行<机器人编号>指定机器人的机械手的切换。

指定为OFF 时,表示无机械手设定。<机器人编号>可以省略。当进行省略时,机器人1 被指定。

在切换机械手之前,请利用HAND 语句对机械手进行定义。

格式:CHANGE [<机器人编号>] Hn/OFF

例:HAND H1= 0 150.0 0.0

HAND H2= –5000 20.00 0.0

P1=150.00 300.00 0.00 0.00 0.00 0.00

CHANGE H2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

更改为机械手2

MOVE P, P1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 机械手2 的前端向P1 移动(1)

CHANGE H1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 更改为机械手1

MOVE P, P1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 机械手1 的前端向P1 移动(2)

HALT

2.HAND

HAND:对指定机器人的机械手进行定义。

定义语句:

HAND[<机器人编号>]Hn= <第1 参数><第2 参数><第3 参数>[R]选择语句:

CHANGE[<机器人编号>]Hn

前提水平多关节机器人时

(1).未指定<第四参数>R时。

机械手(工装治具)是固定在基准第二机械臂前端的。

<第一参数>:机械手n基准点与基准第二机械臂基准点之间的脉冲偏移量。逆时针方向为+脉冲。

<第二参数>:机械手n基准点与基准第二机械臂基准点之间的长度差(mm)。<第三参数>:机械手n的Z轴的偏移量(mm)。

例:HAND H1= 0 150.0 0.0

HAND H2= –5000 20.00 0.0

P1=150.00 300.00 0.00 0.00 0.00 0.00

CHANGE H2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .更改为机械手2

MOVE P, P1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 机械手2 的前端向P1 移动(1)

CHANGE H1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 更改为机械手1

MOVE P, P1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 机械手1 的前端向P1 移动(2)

HALT

(2).指定<第四参数>R时

R 轴为伺服时,成为从R 轴旋转中心偏移的机械手。

<第一参数>:设R轴的当前位置为0.00时,正交坐标+x与机械手n之间的角度,逆时针为正度数。

<第二参数>:机械手n的长度(mm)>0。

<第三参数>:机械手n的偏移量mm。

3.LOCx、LOCy、LOCz、LOCr

以轴位单位或者以位移数据为要素单位来设定或者获取坐标点数据。

格式:LOCX<坐标点表达式>/<位移表达式>=<表达式>

例:LOCX(P10)=A(1)…………………将P10的第一轴(x轴)数据变更为数组A(1)的值。

LOCY(S1)=B……………………….将S1的第二轴(Y轴)数据变更为B的值。

(A1)=LOCX(P10)…………………将P10的第一轴的数据赋給数组A(1)。

B=LOCY(S1)……………………….将位移数据的第二轴数据赋給B。

4.JTOXY/XYJOT

JTOXY:以轴单位制转换,将脉冲转换成毫米。

将关节坐标数据转化为指定机器人的正交坐标数据。

例:P10=JTOXY(WHERE)…………将当前位置数据转化成正交坐标数据。XYJOT:将正交坐标数据(mm)转化为轴坐标数据(脉冲)。

将坐标点变量的正交数据转化为指定机器人的关节坐标数据。

例:P10=XYJOT(P10)

5.LEFTY/RIGHTY

LEFTY:将水平多关节机器人的手系系统设置为左手系。此命令对水平多关节机器人有效。

RIGHTY:将水平多关节机器人的手系系统设置为手系。此命令对水平多关节机器人有效。

格式:LEFTY(机器人编号) 注:机器人编号可以省略。

例:RIGHTY

MOVE P,P1

LEFTY

MOVE P,P1

RIGHTY

HALT

5.Pn/Sn

Pn:在程序中定义点位坐标。

Sn:在程序中定义位移坐标。

6.SHIFT

SHIFT:设置位移坐标。

格式:<机器人编号> (位移变量)

例:SHIFT S1

MOVE P,P1

SHIFT S[A]

MOVE P,P2

HALT

分支命令

1.FOR~NEXT

FOR~NEXT:反复执行FOR的下一条语句至NEXT的上一条语句,直至变量超过指定值为止,

将跳出循环,执行下一条语句。

格式:FOR<控制变量> =<开始值>TO<结束值> [STOP<步骤>]

<命令区>

NEXT[<控制变量>]

例:FOR A=1 TO 10

MOVE P,P1

MOVE L,P2

MOVE P,P3

PRINT “YAMAHA”;A

NEXT A

HALT

2.GOSUB~RETURN

GOSUB~RETURN:通过GOSUB跳转到标签子程序,并执行标签子程序,在通过RETURN返回到主程序继续执行。

格式:MAIN

.

.

.

GOSUB <标签>

.

.

HALT

<标签>

.

.

RETURN

例:

*ST:

MOVE P, P0

GOSUB *CLOSEHAND

MOVE P, P1

GOSUB *OPENHAND

GOTO *ST

HALT

’SUB ROUTINE

*CLOSEHAND:

DO (20) = 1

RETURN

*OPENHAND:

DO (20) = 0

RETURN

3.GOTO

GOTO:无条件跳转至标签所指定的语句。

格式:MAIN

.

.

<标签>

.

.

GOTO<标签>

例:’MAIN ROUTINE

*ST :

MOVE P , P0, P1

IF DI (20) = 1 THEN

GOT O *FIN

ENDIF

GOT O *ST

*FIN:

HALT

4.IF

(1).IF:更据条件分支控制流程。

格式:

MAIN

.

.

IF<条件表达式>THEN<标签>/<命令语句>ELSE<标签>/<命令语句>

.

.

HALT

例:’MAIN ROUTINE

*ST:

MOVE P, P0, P1

IF DI (20) =1 THEN *L1 . . . . . . . . . . DI (20) 为1 时,则跳转至*L1

DO (20) =1

DELAY 100

*L1:

IF DI (21) =1 THEN *ST ELSE *FIN

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DI (21) 为1 时,则跳转至*ST。如果不是,

则跳转至*FIN

*FIN:

HALT

(2).区块IF语句

IF<条件表达式1>THEN

<命令区1>

ELSEIF<条件表达式2>FHEN

<命令区2>

ELSE

<命令区3>

ENDIF

例:’MAIN ROUTINE

*ST:

MOVE P, P0, P1

IF DI (21, 20) = 1 THEN

DO (20) = 1

DELAY 100

WAIT DI (20) =0

ELSEIF DI (21, 20) =2 THEN

DELAY 100

ELSE

GOTO *FIN

ENDIF

GOTO *ST

*FIN:

HALT

5.ON~GOTO

ON~GOTO:根据条件跳转至标签所指定的行。

例:

’MAIN ROUTINE

*ST:

ON DI3 ( ) GOT O *L1,*L2,*L3 . . . . . . 根据DI3 ( ) 的值跳转至*L1 ?*L3

GOTO *ST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 返回*ST

HALT

’SUB ROUTINE

*L1:

MOVE P, P10, Z=0

GOTO *ST

*L2:

DO (30) = 1

GOTO *ST

*L3:

DO (30) = 0

GOTO *ST

6.WHILE~WEND

WHILE~WEND:在条件成立时,反复执行WHILE与WEND之间的语句;在条件不成立时,则跳出WHILE~WEND的循环,执行WEND的下一跳语句;在条件一次都不成立的时候,则WHILE~WEND语句则一次都不执行,直接执行WEND语句的下一条语句。

格式:WHILE<条件表达式>

<命令区>

WEND

例:A=0

WHILE DI3(0)=1

A=A+1

MOVE P,P1

MOVE P,P2

PRINT “COUNTER=”;A

WEND

NALT

错误控制指令

1.ON ERROR GOTO

ON ERROR GOTO:在发生错误时跳转到指定的标签。

含义:在执行机器人语言程序时发生了错误,不停止程序,跳转至标签指定位置处理错误例程,然后将继续执行。

格式:

1:ON ERROR GOTO <标签>

2:ON ERROR GOTO 0

例:

ON ERROR GOT O *ER1

FOR A = 0 TO 9

P [A+10] = P [A]

NEXT A

*L99: HALT

’ERROR ROUTINE

*ER1:

IF ERR = &H0604 THEN *NEXT1 . . . . . . . . . . . . . . . 确认是否发生了[Point doesn't

exist]的错误

IF ERR = &H0606 THEN *NEXT2 . . . . . . . . . . . . . . . 确认是否发生了[Subscript out of

range]的错误

ON ERROR GOT O 0 . . . . . . . . . . . . . . . . . . . . . . 显示错误并停止执行

*NEXT1:

RESUME NEXT . . . . . . . . . . . . . . . . . . . . . . 跳转至错误发生行的下一行继续执行

*NEXT2:

RESUME *L99 . . . . . . . . . . . . . . . . . . . . . . . . 跳转至标签*L99 并继续执行

2.RESUME

RESUME:错误恢复处理后恢复执行程序从。

含义:进行错误恢复处理后,恢复执行程序。

按照程序恢复启动的位置有3种方法:

(1):RESUME 从错误错误原因命令开始恢复启动程序。

(2):RESUME 从错误原因的下一个命令开始恢复启动程序。

(3):RESUME 从显示有标签行的命令开始恢复启动程序。

格式:

1.RESUME NEXT

2.RESUME <标签>

3.ERR/ERL

ERR:获取错误编码。

ERL:获取错误发生行编码。

格式:

ERR <任务编码>

ERL <任务编码>

程序控制

1.CALL

CALL:调用子过程。

含义:调用SUB~END SUB语句中定义的子过程。CALL标签中所指定的名称与SUB 所定义的名称相同。

(1).在实参中指定的常量和表达式为值传递;

(2).在实参中指定的变量和数组元素时为传递,如果在实参前面加上ERF则变为引用传递。

(3). 在实参中指定了所有数组(数组名后面带有 ( ) )时,将变为引用传递。

格式:CALL <标签> ( <实参>,<实参>)

例1:

X%=4

Y%=5

CALL *COMPARE ( REF X%,REF Y% )

HALT

’SUB ROUTINE: COMP ARE

SUB *COMPARE ( A%, B% )

IF A% <B% THEN

A%=B%

B%=TEMP%

ENDIF

END SUB

例2;

I = 1

CALL *TEST ( I )

HALT

’SUB ROUTINE: TEST

SUB *TEST

X = X + 1

IF X <15 THEN

CALL *TEST ( X )

ENDIF

END SUB

2.HALT

HALT:停止程序并复位。

含义:直接停止程序并进行复位。HALT执行后重新启动程序时,程序将从一开始进行执行。

格式:HALT <表达式>/<字符串>

例:

’MAIN ROUTINE

*ST :

MOVE P , P0, P1

IF DI (20) = 1 THEN

GOT O *FIN

ENDIF

GOT O *ST

*FIN:

HALT "PROGRAM FIN"

3.HALTALL

HALTALL:停止并复位所有程序。

含义:直接停止并复位所有程序,当HALTALL停止复位后重新启动时,将从主程序或者任务一种最后执行的程序的最前端开始执行。

格式:HALTALL<表达式>/<字符串>

例:

’MAIN ROUTINE

*ST:

MOVE P ,P0,P1

IF DI (20)= 1 THEN

ENDIF

GOTO *ST

*FIN:

HAL TALL “PROGRAM FIN

4.HOLD

HOLD:暂停程序。

含义:直接暂停程序。重新启动程序时,从HOLD语句的下一句开始执行。

格式:HOLD <表达式>/<字符串>

例:

’MAIN ROUTINE

*ST:

MOVE P, P0, P1

IF DI (20) =1 THEN

HOLD "PROGRAM ST OP"

ENDIF

GOTO *ST

HALT

5.HOLDALL

HOLDALL:暂停所有的程序。

含义:暂停所有的程序。当重新启动时,执行了HOLDALL 的程序将从语句的下一行开始执行,其它程序则将从中断的执行行开始重新运行。

例:

SAMPLE

’MAIN ROUTINE

*ST:

MOVE P ,P0,P1

IF DI (20)=1 THEN

HOLD “PROGRAM STOP”

ENDIF

GOTO *ST

HALT

6.SWI

SWI:切换执行程序。

含义:切换执行程序,并在执行编译后从第一行开始执行。虽然切换程序时,输出变量的状态不会变化,但动态变量及数组变量将被清除。

格式:SWI <程序名>

任务控制

1.START

START:启动新的任务。

格式:

START <程序名称>,Tn , P

P Gm

m :程序编号 ...........................0 ?99

n :任务编号 ............................1 ?16

p :任务优先级 ........................1 ?64

含义:根据任务n、优先顺序p 启动指定程序。

当省略任务编号n 时,未启动任务中编号最小的任务将会被自动指定。当省略任务优先顺序p 时,将默认为32。省略了任务优先级p 时,为32。

数字越小,优先级越高;数字越大,优先级越低(高1 ~低:64)。

当任务优先级较高的任务处于RUNNING 状态时,优先级较低的任务也将保持着READY状态。

例:

START ,T2,33

*ST:

MOVE P, P0, P1

GOTO *ST

HALT

程序名称:SUB_PGM

*SUBPGM:

‘SUBTASK ROUTINE

*SUBTASK:

P100 = WHERE

IF LOCZ (P100) > 10000 THEN

DO (20) = 1

ELSE

DO (20) = 0

ENDIF

GOTO *SUBPGM

EXIT TASK

2.CUT

CUT:强制结束正在运行的程序和暂停运行的程序。无法结束当前任务。

格式:CUT <程序号(Tn)>

3.EXIT TASK

EXIT TASK:结束当前正在执行的任务。

4.RESTART

RESTART:从新启动暂停中的其他任务。

格式:RESTART<程序名称(Tn/PGm)>

例:

START ,T2,33

*ST:

MOVE P, P0, P1

GOTO *ST

HALT

程序名称:SUB_PGM

*SUBPGM:

‘SUBTASK ROUTINE

*SUBTASK:

P100 = WHERE

IF LOCZ (P100) > 10000 THEN

DO (20) = 1

ELSE

DO (20) = 0

ENDIF

GOTO *SUBPGM

EXIT TASK

4.SUSPEND

SUSPEND:暂停正在执行中的其它任务。

时间指令

1.DATE$

DATE$:获取日期。

含义:通过yyyy/mm/dd(年/月/日)等字符串来表式日期,通过悬挂盒来显示。例:

A$=DATE$

PRINT DATE$

HALT

2.TCOUNTER

TCOUNTER:定时器,计数器。

含义:从TCOUNTER复位开始计数,每隔1ms输出计数值。值计数至65535时,还回0。例:

MOVE P, P0

WAIT ARM

RESET TCOUNTER

MOVE P, P1

WAIT ARM

A = TCOUNTER

PRINT TCOUNTER . . . . . . . . . . . . . . . . . . . . . . . 在手持编程器上显示进入P0 至P1 公差为止的移动时间

3.TIME$

TIME:获取当前时间。

含义:通过hh:mm:ss(时/分/秒)形式的字符串来表示当前时间。

例:

A$=TIME$

PRINT TIME$

4.TIMER

TIMER:获取当前时间。

含义:通过上午0 点开始的秒获取当前时间。

可用于程序运行时间的测量等用途。

时间的设置在系统模式的初始处理中进行。

例:

A%=TIMER

FOR B=1 TO 10

MOVE P, P0

MOVE P, P1

NEXT

A%=TIMER-A%

PRINT A%/60; " :" ; A% MOD 60

HALT

机器人动作指令

1.CHANGE

CHANGE:切换机械手。

3.DRIVE

DRIVE:以轴为单位进行绝对移动。

4.DRIVEI

DRIVEI:以轴为单位进行相对移动。

5.HAND

HAND:机械手定义。

6.LEFTY

LEFTY:将水平多关节机器人的手系设定为左手系。

7.RIGHTY

RIGHTY:将水平多关节机器人手系设定为右手系。

8.MOTOR

MOTOR:控制马达电源状态。

含义:(1)ON ............开启马达电源。也可同时开启所有机器人的伺服。

(2) OFF ........... 关闭马达电源。同时关闭所有机器人的伺服,并且进行动态制动。带制动器的轴进行制动并且锁定。

(3) PWR..........仅开启马达电源。

9.SERVO

SERVO:控制伺服状态对指定机器人中指定轴或所有轴的伺服ON / OFF 状态进行

控制。

含义:控制指定编号的轴或所有轴的伺服ON / OFF。

当指定了<轴编号>时,仅以指定轴作为对象;当未指定时,则以所有全轴作为对象。

?ON ................. 伺服使能。未指定轴时,马达电源也将开启。

?OFF ................ 伺服禁止并启用动力制动。带有制动器的轴将进行制动并锁定。未指定轴时,马达电源也将关闭。

?FREE .............. 伺服禁止并解除动力制动。带有制动器的轴也将解除制动。未指定轴时,

马达电源也将关闭。

例:

SERVO ON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 开启所有轴的伺服。

SERVO OFF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 针对关闭所有轴伺服且附带制动器的轴,其制动器将被锁定。

SERVO FREE (3) . . . . . . . . . . . . . . . . . . . . . . . . . . 第3 轴(Z 轴)伺服禁止,并解除制动。

10.MOVE

MOVE:指定机器人的所有轴进行绝对移动。

11.MOVEI

MOVEI:指定机器人的所有轴进行相对移动。

例:

MOVEI P, P0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 主机器人轴向相对当前位置加上P0 中指定的移动量位置进行PTP 移动。

12.ORIGIN

ORIGIN:执行指定机器人中轴的原点复归动作。

获取状态

1.ABSRPOS

ABSRPOS:获取机器参照。

含义:计算指定机器人的指定轴的机台参考值(返回原点的方式仅

为标记方式时有效)。

格式:ABSRPOS[<机器人编号>](<轴编号>)

例:

A=ABSRPOS (4)......... 将机器人1 中第4 轴的机台参考值赋给变量A。

2.ARMCND

ARMCND:获取机械手的当前机械臂状态。

含义:对水平多关节型机器人赋予当前机械臂的状态。

当机械臂状态为右手系统时为1,左手系统时为2。

此函数仅在使用水平多关节型机器人时有效。

格式:ARMCND[<机器人编号>]

例:

A=ARMCND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 将机器人1 的当前机械臂状态赋值给变量A

IF A=1 THEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 右手系统状态

MOVE P, P100, Z=0

ELSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 左手系统状态

MOVE P, P200, Z=0

ENDIF

3.ARMSEL

ARMSEL:设定/获取机械手的当前手系统选择。

含义:设定水平多关节型机器人的当前手系统选择。

当所选手系统为右手系统时为1,左手系统时为2。

此函数仅在使用水平多关节型机器人时有效。

格式:ARMSEL[<机器人编号>]<表达式>

例:

A=ARMSEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 赋予机器人1 的机械臂类型值

IF A=1 THEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 机械臂类型为右手系统

MOVE P, P100, Z=0

ELSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 机械臂类型为左手系统

MOVE P, P200, Z=0

ENDIF

4.ARMTYP

ARMTYP:获取指定机器人的手系统设定。

含义:设定/ 获取程序复位时的手系统。

当所选手系统为右手系统时为1,左手系统时为2。

此函数仅在使用水平多关节型机器人时有效。

格式:ARMTYP[<机器人编号>]<表达式>

例:A=ARMTYP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

赋予机器人1 的机械臂类型值

IF A=1 THEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 机械臂类型为右手系统

MOVE P, P100, Z=0

ELSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 机械臂类型为左手系统

MOVE P, P200, Z=0

ENDIF

HALTALL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 程序复位

5.WAIT ARM

WART ARM:等待指定机器人的轴动作结束。

含义:等待<机器人编号>指定机器人的轴动作完成(定位于公差内)。

当存在<轴编号>的指定时,指定机器人的指定轴成为对象;当无指定时,指定机器

人的所有轴成为对象

<机器人编号> ...................... 1 ~ 4

<轴编号> ............................. 1 ~ 6

格式:WAIT ARM[<机器人编号>][(<轴编号>)

例:

WAIT ARM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 等待机器人1 的动作结束。

WAIT ARM[2](2) . . . . . . . . . . . . . . . . . . . . . . . . 等待机器人2 中第2 轴的动作结束。

6.WHERE

WHERE: 通过关节坐标(脉冲)读出指定机器人机械臂的当前位置。

含义:获取机械臂当前位置(脉冲坐标)。

根据关节坐标获取<机器人编号>指定机器人的机械臂的当前位置。<机器人编号>可以省略。当进行省略时,机器人1 被指定。

例:P10=WHERE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 将当前位置的脉冲坐标值赋值给P10。

7.WHRXY

WHRXY: 通过正交坐标获取机械臂当前位置。

含义:根据正交坐标获取<机器人编号>指定机器人的机械臂的当前位置。<机器人编号>可以省略。当进行省略时,机器人1 被指定。

当为YK500TW 机器人时,还要获取X 机械臂转数信息和Y 机械臂转数信息。

例:P10=WHRXY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 将机器人1 的当前位置直行坐标值赋给P10。

输入输出控制

相关主题