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
*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
*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。
输入输出控制