资源描述
Local : 局部变量(用在同一Function内使用的变量)
Module : 模块变量(在同一程序内使用的变量)
Global : 全局变量(在同一项目内使用的变量
String 字符
全局变量 global integer i、、、、、、byte、、、、、
掉电保持 global preserve integer i
Move是在直线轨道上移动机械臂。
Jump 首先将机器人的夹具末端抬起到LimZ 值,然后水平移动机械臂,在达到目标坐标的上空时开始下降动作。
输出 On i,0.2 脉冲
虚拟输入 setSw i, On
输入 sw(1)=1
Cz(p1)
Speed 功能用于设定PTP动作速度的百分比
格式:Speed s,[a,b]
说明:s 速度设定值;a 第三轴上升速度设定值;b 第三轴下降速度设定值。
Accel 功能用于设定PTP动作加减速度的百分比。
格式:Accel a,b,[c,d,e,f]
说明:a/b 加/减速度设定值;c/d 第三轴上升加/减速度设定值;
e/f 第三轴下降加/减速度设定值
2. Go XY(50, 400, 0, 0) ´机械手动作到X=50,Y=400,Z=0,U=0
3. Go P1+X(50) ´机械手动作到P1点X坐标值偏移量为+50的位置
4. Go P1:X(50) ´机械手动作到P1点对应X坐标值为50的位置
Wait Oport(5) 返回指定的输出位的状态的函数
并行执行! !
与Jump 命令一起使用并行处理。在第3 关节结束上升移动、而第1、第2、第4 关节开始移动的阶段,打开输出位1。输出位1 将在Jump 动作完成50%的阶段再次关闭。
Function test
Jump P1 !D0; On 1; D50; Off 1!
Fend
If then
格式
(1) If 条件表达式 Then
语句T1
[ElseIf 条件表达式 Then]
语句T1.
[Else]
语句F1.
EndIf
(2) If 条件表达式 Then 语句T1 [;语句T2...] [Else 语句F1 [;语句F2...]]
参数
条件表达式 返回真伪值(True/False 的值)的有效条件表达式。真(True)时返回“0”以外的
数值,伪(False)时返回“0”。(请参阅下述条件表达式示例。)
语句T1 条件表达式的值为真(True)时,也就是满足条件时执行语句。(可以将多个语
句记述在If...Then...Else 形式的区段中。)
语句F1 条件表达式的值为伪(False)时,也就是满足条件时执行语句。(可以将多个
语句记述在If...Then...Else 形式的区段中。)
条件表达式中使用True 时
常数 True 的值是-1,由于是Boolean 型,在与其他型变量的比较条件中使用时需要注意。
Function main
Integer i
i = 3
If i = True Then
Print "i=TRUE"
EndIf
Fend
Do loop
Integer i
Do
i = i + 1
' Wait MemSw(1) = On
Print "okg", i
Wait 1
Loop
Do While i < 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 级循环。
参阅
For...Next、Select...Send
Do 使用示例
Do While Not Lof(1)
Line Input #1, tLine$
Print tLine$
Loop
换臂
Hand P0, Lefty
Hand pick, Righty
子程序跳转指令
GoSub 使用示例
下例为使用GoSub 命令转至指定标签并执行几个I/O 命令后进行返回的简单示例。
Function main
Integer var1, var2
GoSub checkio '使用标签执行GoSub
On 1
On 2
Exit Function
checkio: '子例程的起始位置
var1 = In(0)
var2 = In(1)
If var1 = 1 And var2 = 1 Then
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 启动名为“flicker”的函数后,通过Halt 暂停,然后通过Resume 恢复的示例。
Function main
Xqt flicker '执行flicker 任务
Do
Wait 3 '执行flicke3 秒钟
Halt flicker
Wait 3 '暂停flicker 任务3 秒钟
Resume flicker
Loop
Fend
Function flicker
Do
On 1
Wait 0.2
Off 1
Wait 0.2
Loop
Fend
调用子程序
Call 使用示例
<File1: MAIN.PRG>
Function main
Call InitRobot
Fend
<File2: INIT.PRG>
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 语句表达式结果一致的内容,则执行Case 语句后的语句群。执
行之后,程序控制将移交给Send 语句的后续语句。
如果Case 语句项目中不存在与Select 语句表达式结果一致的内容,则执行Default 语句,并将程序
控制移交给Send 语句的后续语句。
如果Case 语句项目中没有与Select 语句表达式结果一致的内容,并且省略Default,则不进行任何执
行,将程序控制移交给Send 语句的下一语句。
可在Select 语句表达式和CASE 语句项目中指定常数、变量以及使用And、Or、Xor 等的逻辑运算
符。
参阅
If…Then…Else
Select 使用示例
如下所示为简单的Select...Send 示例。
Function Main
Integer I
For i = 0 To 10
Select I
Case 0
Off 1;On 2;Jump P1
Case 3
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
Wait 1; 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
For i = 1 To 10
Jump pick
On 1
Wait .2
Jump place
Off 1
Wait .2
Next i
Fend
Function flash
Do
On 2
Wait 0.2
Off 2
Wait 0.2
Loop
Fend
For
For i = 0 To 100
Print #fileNum, i
Next i
Cls
清除EPSON RC+ 7.0 的Run 窗口、操作员窗口或者命令窗口的文本区域。
清除TP 的打印面板。
格式
(1) Cls #装置ID
(2) Cls
参数
装置ID 21 RC+
24 TP
省略时,显示装置将成为对象。
说明
如果从EPSON RC+ 7.0 的命令窗口的程序执行Cls,将清除命令窗口的文本区域。
如果在程序中执行,将清除由装置ID 指定的装置的画面。
如果省略装置ID,将清除显示装置的画面。
Cls 使用示例
如果从Run 窗口或操作员窗口执行次程序例,在执行Cls 后将清除文本区域。
Function main
Integer i
Do
For i = 1 To 10
Print i
Next i
Wait 3
Cls
Loop
Fend
Pallet 矩阵
Function Main
Integer index
Pallet 1, P20, P21, P22, 5, 3
For index = 1 To 15
move Pallet(1, index)
Go Here -Z(56)
Wait 0.2
Go Here +Z(56)
Next
Fend
画圆
Function ArcTest
Go P100
Arc P101, P102
Fend
Arc 用于在XY 平面上以圆弧插补动作将机械臂从当前位置移至指定位置。
Arc3 用于在三维平面上以圆弧插补动作将机械臂从当前位置移至指定位置。
展开阅读全文