一个SPEL+程序包括有函数,变量和宏指令,每一个程序以.PRG的扩展名保持到对应的项目里(Project)。
一个项目至少包含有一个程序和一个main函数。
函数以Function开始,Fend结束,函数名可以使用最多32个字符的半角英文数字和下划线,不区分大小写,但是不可以使用以数字和下划线开始的名称或SPEL+关键字。
SPEL+中有3种不同的变量:
• Local : 局部变量(用在同一Function内使用的变量)
• Module : 模块变量(在同一程序内使用的变量)
• Global : 全局变量(在同一项目内使用的变量)
变量有多种数据类型,使用前先说明类型,格式为:数据类型变量名。例如:Integer i,定义变量i为整型数据。另外,代入的数据和变量的类型必须一致。在下表中列出SPEL+ 语言中使用的数据类型。
使机械手动作的指令叫作动作指令。 可分为:PTP动作指令,CP动作指令,Curves动作指令,Joint动作指令。
类型 | 指令 | 说明 |
PTP | Go、Jump、BGo、TGo | 是经过机械手结构上最容易活动的路径到达目标位臵的动作命令 |
CP | Move、Arc、Arc3\Jump3/Jump3CP、 Bmove、TMove、CVMove | 指定机械手到达目标位臵运动轨迹的指令 |
NOTE: * CP模式,即Continuous Path 连续路径模式。 * 指定PTP动作指令和Joint动作指令的速度和加/减速度时,使用SPEED指令和ACCEL指令。指定CP模式动作指令时,使用使用SPEEDS指令和ACCELS指令。
PTP(Pose To Pose)动作,是与其动作轨迹无关,以机械手的工具顶端为目标位臵使其动作的动作方法。PTP动作,使用各关节上配置的电动机,使机械手通过最短的路径到达目标位置。 优点:运动速度快,缺点:运动轨迹无法预测。指定PTP动作速度和加/减速,使用SPEED指令和ACCEL指令。
Go 指令 功能:全轴同时的PTP动作,动作的轨迹是各关节分别对从当前的点到目标坐标进行插补。
格式:Go 目标坐标 示例:
1. Go P1 ´机械手动作到P1点
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的位置
Jump 指令
功能:通过“门形动作”使手臂手臂从当前位臵移动至目标坐标。
格式:Jump 目标坐标
示例:
1. Jump P1 ´机械手以“门形动作”动作到P1点
2. Jump P1 LimZ -10 ´以限定第三轴目标坐标Z=-10的门形动作移动到P1点
3. Jump P1:Z(-10)LimZ -10 ´以限定第三轴目标坐标Z=-10的门形动作移动到P1点位臵Z坐标值为-10的位置
NOTE: Go与Jump的区别Jump与Go都是使机械手手臂用PTP动作移动的命令。但是Jump有Go没有的一个功能。Jump将机械手的手部先抬起至LimZ 值,然后使手臂水平移动,快要到目标坐标上空的时候使其下降移动。此动作的标准是可以更准确地避开障碍物这一点,更重要的是通过吸附、配置动作,提高作业的周期时间。
🎠🎠🎠🎠🎠🎠🎠🎠🎠🎠🎠🎠🎠🎠🎠🎠🎠🎠🎠🎠🎠🎠🎠🎠🎠
CP(Continuous Path )指令可以指定机械手到达目标位臵的运动轨迹。 优点:轨迹可以控制,匀速动作。缺点:速度慢。 指定Linear动作速度和加/减速度,使用SPEEDS指令和ACCELS指令。
🧑
Move 指令
功能:以直线轨迹将机械手从当前位置移动到指定目标位置。全关节同时启动,同时停止。
格式:Move 目标坐标
示例:Move P1 ´机械手以直线轨迹动作到P1点
NOTE: Move与Go的区别到达目标点时的手臂的姿势重要的时候使用Go命令,但是比控制动作中的手臂的轨迹重要的时候,使用Move 命令。在SCARA机械手只有Z轴上下动作时,Go与Move的轨迹一样。
🧑
Arc和Arc3 指令
功能:Arc 在XY平面上以圆弧插补动作。
Arc3 在3D空间里以圆弧插补动作。
格式:Arc 经过坐标,目标坐标
说明:将机械手从当前位臵到目标坐标,通过经过坐标用圆弧插补动作活动时使用。从所给的3点(当前坐标、经过坐标、目标坐标)自动演算圆弧插补轨道,并沿着此轨道移动机械手直至目标坐标为止。
示例:Arc P2,P3
NOTE: 即使目标坐标在机械手的动作范围内,一旦在Move或Arc运动轨迹超过允许动作范围外,机械手会突然停止,给伺服电机带来撞击,有产生故障的危险。为了防止这样的事发生,请在高速执行之前先以低速进行动作范围确认。
🧑
Jump3/Jump3CP指令
功能将手臂用3 维门形动作移动。Jump3是两个CP动作与1个PTP动作的组合
格式Jump3 退避坐标,接近开始坐标,目标坐标
示例Jump3 P1,P2,P3´从当前位臵经过保存坐标P1,接近坐标P2运动到目标坐标P3。
NOTE:
1、Jump不能用于6轴机械手,6轴机械手只能使用Jump3和Jump3 CP指令
2、Jump3CP指令用法与Jump3类似,不同在于Jump3CP是3个CP动作的组合
3、SCARA机械手Z轴上升或下降动作时,使用Jump指令可以提高运动速度
🧑
BMove 在指定的局部坐标系(Local)上执行偏移直线插补动作。没有指定局部坐标系时,以局部0(基准坐标系)为基准,进行进行偏移PTP 动作。
TMove 在当前的工具坐标系上执行偏移直线插补动作。
CVMove 用Curve 命令执行定义的自由曲线CP 动作。CVMove 执行设定控制器硬盘上的文件名的文件数据的自由曲线CP 动作。此文件必须事先用Curve 命令制作。
🎠🎠🎠🎠🎠🎠🎠🎠🎠🎠🎠🎠🎠🎠🎠🎠🎠🎠🎠🎠🎠🎠🎠🎠🎠
PTP指令的速度设定
Speed 功能用于设定PTP动作速度的百分比
格式:Speed s,[a,b]
说明:s 速度设定值;a 第三轴上升速度设定值;b 第三轴下降速度设定值。
示例:
1. Speed 80
2. Speed 80,40,30
Accel 功能用于设定PTP动作加减速度的百分比。
格式:Accel a,b,[c,d,e,f]
说明:a/b 加/减速度设定值;c/d 第三轴上升加/减速度设定值; e/f 第三轴下降加/减速度设定值
示例:1. Accel 80,80 2. Accel 80,80,30,30,60,60
🎠
CP指令的速度设定
SpeedS 功能用于设定CP动作速度值
格式:SpeedS 速度设定值
说明:表1 为不同机型对应的速度设定值范围
示例:SpeedS 800 ´CP动作的速度设置为800mm/s
AccelS功能用于设定CP动作加减速度值
格式:AccelS 加速设定值,[减速设定值]
说明:表1 为不同机型对应的加减速度设定值范围
示例:AccelS 800 ´加减速度均为800mm/S²