EPSON机器人常用程序和基本数据类型
声明:本媒体部分图片、文章来源于网络,
版权归原作者所有,如有侵权,请与我联系删除。
Local :局部变量(用在同-Functi or内使用的变量)
Module :模块变量(在同-程序内使用的变量)
G1oba1 :全局变量(在同一项目内使用的变量
String 字符
全局变量 globalintegeri、、、.、、byte、、、、、
掉电保持 global preserve integer i
Move是在直线轨道上移动机械臂。
Jump首先将机器人的夹具末端抬起到imZ值,然后水平移动机械臂,在达到目标坐标的
.上空时开始下降动作。
输出 0ni,0.2 脉冲
虚拟输入 setSw i,0n
输入 sw (1) =1
Cz (p1)
Speed功能用于设定PTP动作速度的百分比.
格式: Speed s, [a, b]
说明: s速度设定值; a第三轴上升速度设定值; b第三轴下降速度设定值。
Accel功能用于设定PTP动作加诚速度的百分比。
格式: Acce1 a, b, [c, d, e, f]
说明: a/b 加/诚速度设定值; c/d 第三轴上升加/诚速度设定值;
e/f第三轴下降加/诚速度设定值
2. Go XY(50, 400, 0,0)机械手动作到致=50,Y=400, z=0, U=0
3. Go P1+X (50) ‘机械手动作到1坐标值偏移量为+50的位置
4. Go P1:x (50)“机械手动作到1点对应坐标值为50的位置
Wait Oport(5)返回指定的输出位的状态的函数
并行执行!
与Jump命令-起使用并行处理。在第3关节结束上升移动、而第1、第2、第4关节开始移
动的阶段,打开输出位1。输出位1将在Jump动作完成50%的阶段再次关闭。
Function test
Jump P1!D0; On 1; D50: Of 1
Fend
If then
格式
(1) If条件表达式Then
语句T1
[Elself条件表达式Then]
语句T1.
[EIse]
语句F1.
Endlf
(2)|f条件表达式Then 语句T1 [语句T2..] [Else 语句F1 [语句F2..]]
参数
条件表达式返回真伪值(True/False 的值)的有效条件表达式。真(True) 时返回“0以外
的
数值,伪(False)时返回“0”。(请 参阅下述条件表达式示例。)
语句T1条件表达式的值为真(True)时,也就是满足条件时执行语句。( 可以将多个语
句记述在f.. .Then.. Else 形式的区段中。) .
语句F1条件表达式的值为伪(False) 时,也就是满足条件时执行语句。(可以将多 个
语句记述在If. .Then.. Else 形式的区段中。)
条件表达式中使用True时
常数True的值是-1,由于是Boolean型,在与其他型变量的比较条件中使用时需要注意。
Function main
Integer i
1=3
Ifi=.TrueThen
Print "i=TRUE"
EndIf
Fend
Do loop
Integer i
Do
i=i+1
Wait MemSw(1) = On
Print "okg", i
Wait 1
Loop
DoWhilei<8
Print "i=", i
i =i+1
Speed 8
Go ss
Speed 12
Go yuan
Loop
格式
Do [{ While| Until 条件表达式]
[语句]
[Exit Do]
[语句]
Loop
并且或者,使用下述格式。
Do
[语句]
[Exit Do]
[语句]
Loop [{ While | Until 条件表达式]
Do Loop语句格式中有条件表达式和语句。
条件表达式表示True或False 的数字或字符串表达式。当条件表达式为空(Null) 时,条
件将
作为False来处理。可省略。
语句在条件一致期间或者 在条件一致为 止在条件一致期间或者 到条件一致时为止, 反复
执行1个以上的语句。
说明
作为退出Do.. .Loop的另-种方法,在Do.. Loop中可以随时随地插入Exit Do语句。Exit Do
常在用
于评价If. .Then等几个条件之后使用。如果在If. . Then中使用Exit Do语句,则将控制移至
Loop的
下一语句。
如果在嵌套的Do.. .Loop语句中使用,则Exit Do将控制移至发生循环的上1级循环。
参阅
Fo...Next、Select.. Send
Do使用示例
Do WhileNot Lof(1)
Line Input #1, tLine$
Print tLineS
Loop
换臂
Hand P0, Lefty
Hand pick, Righty
子程序跳转指令
GoSub使用示例
下例为使用GoSub命令转至指定标签并执行几个IO命令后进行返回的简单示例。
Function main
Integer var1, var2
GoSub checkio使用标签执行GoSub
On 1
On 2
Exit Function
checkio:子例程的起始位置
var1 = In(0)
var2 = In(1)
Ifvar1=1Andvar2=1Then
On 1
Else
Off 1
EndIf
Return子例程的结束位置
Fend
跳转指令
GoTo使用示例
下例为使用GoTo命令将控制转至行标签的简单的程序例。
Function main
If Sw(1) = Off Then
GoTo mainAbort
EndIf
Print "Input 1 was On, continuing cycle"
Exit Function
mainAbort:
Print "Input 1 was OFF, cycle aborted!"
Fend
Halt使用示例
下例为通过Xqt启动名为"ficker"的函数后,通过Halt暂停,然后通过Resume恢复的示例。
Function main
Xqt flicker 执行flicker任务
Do
Wait 3执行flicke3秒钟
Halt flicker
Wait 3暂停ficker任务3秒钟
Resume flicker
Loop
Fend
Function flicker
Do
On 1
Wait 0.2
Off 1
Wait 0.2
Loop
Fend
调用子程序
Call使用示例
<File1: MAINPRG>
Function main
Call InitRobot
Fend
<File2: INITPRG>
Function InitRobot
If Motor = Off Then
Motor On
EndIf
Power High
Speed 50
Accel 75, 75
Fend
选择指令
用于根据表达式的值将控制移交给几个语句中的某个语句。
格式
Select式
Case项目
语句
[Case项目
语句]
[Default
语句]
Send
参数
式指定数值或字符串表达式。
项目指定类型与表达式一-致的数值或字符串表达式。
语句指定1个或多个有效的SPEL+语句或多语句。
说明
如果Case语句项目中存在与Select
语句表达式结果一致的内容, 则执行Cae语句后的语句
群。执
行之后,程序控制将移交给Send语句的后续语句。
坊京C据0有项国甘中不在5Se语句表达式结果一致的内容, 则执行Detat询,#
将程序
控制移交给Ssend语句的后续语句。
控制特交物国有项目中设有5sele语句表达式姑果致的内容, 并且省路Der则不进
行任何执行,将程序控制移交给Send语句的下一-语句。
可在Select语句表达式和CASE语句项目中指定常数、变量以及使用And、Or、Xor等的逻
辑运算
符。
参阅
...Then.. Else
Select使用示例
如下所示为简单的Select.. Send 示例。
Function Main
Integer I
Fori=0To10
selec I
Case 0
Off 1;On 2;Jump P1
Case
On 1;Off 2
Jump P2;Move P3;On 3
Case 7
On 4
Default
On 7
Send
Next
Fend
WAIT等待
Wait Sw(0) = On
在等待60.5秒钟之后继续执行
Wait 60.5
'等待输入0变为OFF、输入1变为ON状态
Wait Sw(0) = Off And Sw(1) = On
!等待存储位0变为ON或存储位1变为ON状态
Wait MemSw(0) = On Or MemSw(1) = On
'等待1秒钟,然后将输出1设为ON .
Wait1; On 1
'在输入端口0的低3位变为1之前进行待机
Wait In(0) Mask 7 = 1
等待全局Integer型变量giCounter的值超过10
Wait giCounter > 10
'在全局Long型变量glCheck的值到达30000之前待机10秒钟
Wait glCheck = 30000, 10
Xqt
用于执行由函数名指定的程序并生成任务。
格式
Xqt任务编号,]函数名[(自变量列表)] [, Normal| NoPause| NoEmgAbort]
参数
任务编号以1~32的整数指定要执行任务的任务编号。可省略。
为后台任务时,指定65~80的整数。
函数名指定要执行的函数名。
自变量列表指定调用时赋予函数的自变量列表。存在多个自变量时,请利用逗号进行分隔
可省略。
任务类型可省略。通常省略。
为后台任务时,任务类型指定没有意义。.
Normal生成通常的任务。
NoPause发生Pause语句或Pause输入信号时,以及要在安全门打开的状态下生成不暂停
的任务时进行指定。
NoEmgAbort紧急停止时以及要在发生错误时生成继续处理的任务时指定。
说明
Xqt用于开始指定的函数并立即进行返回。
通常无需任务编号参数。如果省略任务编号,SPEL +则自动在函数上附加任务编号,因此
用户不
必管理任务编号。
.注意
任务类型
通过按任务类型指定NoPause或NoEmgAbort, 可生成监视控制器全体的任务。
但强烈建议在充分理解SPEL+任务的动作和特殊任务的限制事项之后使用这些任务。
EPSON RC+7.0 用户指南“特殊任务”中记载了有关特殊任务的详细说明。
后台任务
通过后台任务执行Xqt命令时,生成的任务也变为后台任务。
通过后台任务执行主函数时,请使用StartMain命令。
EPSON RC+7.0用户指南“特殊任务”中记载了有关后台任务的详细说明。
Xqt使用示例
Function main
Xqt flash 开始任务flash
Xqt Cycle开始任务Cycle
Do
Wait 3执行任务flash 3秒钟.
Halt flash 暂停任务
Wait 3
Resume flash 重新开始任务
Loop
Fend
Function Cycle
Integer i
Fori=1To10
Jump pick
On 1
Wait 2
Jump place
Of 1
Wait 2
Next i
Fend
Function
flash
Do
On 2
Wait 0.2
Of 2
Wait 0.2
Loop
Fend
For
For i=0To
100
print #fileNum, i
Next i
Cls
清除EPSON RC+ 7.0的Run 窗口、操作员窗口或者命令窗口的文本区域。
清除TP的打印面板。
格式
(1) Cls裝置ID
(2) Cls
参数
装置ID21 RC+
24 TP
省略时,显示装置将成为对象。
说明
如果从EPSONRC+7.0的命令窗口的程序执行Cls,将清除命令窗口的文本区域。
如果在程序中执行,将清除由装置ID指定的装置的画面。
如果省略装置ID,将清除显示装置的画面。
Cls使用示例
如果从Run窗口或操作员窗口执行次程序例,在执行Cls后将清除文本区域。
Function main
Integer i
Do
Fori=1To10
Print i
Next i
Wait 3
Cls
Loop
Fend
Pallet矩阵
Function Main
Integer index
Pallet 1, P20, P21, P22, 5, 3
Forindex=1To15
move Pa11et(1, index)
Go Here -Z (56}
Wait 0. 2
Go Here +Z (56}
Next
Fend
画圆
Function ArcTest
Go P100
ArcP101, P102 .
Fend
Are用于在XY平面上以圆弧插补动作将机械臂从当前位置移至指定位置。
Arc3用于在三维平面上以圆弧插补动作将机械臀从当前位置移至指定位置。
了解更多机器人资讯点击:EPSON机器人、爱普生机器人、爱普生SCARA机器人