题外话:上一次的Epson工业机器人体验只是初入门运行了一遍Epson软件自带的demo,这一次对Epson的语法进行一次入门。
TIP:机械手类似人手,如果你让它运行到了一个刁钻的角度,他就动不了了,所以在进行机械手操作时,不仅要注意机械手的活动范围,周围的障碍物,还要注意机械手在这个角度下的特定轴是否可以转动。
1.概述
SPEL+类似BASIC语言。
(哈,BASIC这么古老的语言我也不清楚,你是类似有什么用?可能听起来更亲切一点?)
2.程序结构
结构 | 内容 |
---|---|
包含: | ① 函数 ② 变量 ③ 宏指令 |
后缀名: | .PRG |
最小单元: | 程序,main函数 |
函数: | Function开始,Fend结束 |
程序示例:
MAIN.PRG
Function Main
Call Func1
Integer i 局部变量
….
Fend
3.变量
SPEL+中有三种不同的变量1
-Local:局部变量(同一Function)
-Module:模块变量(同一程序)
-Global:全局变量(同一项目)
4.动作指令(important)
使机械手运动的指令叫做动作指令。
种类:PTP动作指令,CP动作指令,Curves动作指令,Joint动作指令。
类型 | 指令 | 说明 |
---|---|---|
PTP | Go,Jump,BGo,TGo | 最容易活动的路径到达命令(难道不是点到点?) |
CP | Move,Arc,Arc3,Jump3/Jump3CP,Bmove,TMove,CVMove | 制定机械手到达末表位置运动轨迹的指令 |
TIPS:
CP模式,即Continuous Path 连续路径模式。
指定PTP动作指令和Joint动作指令的速度和加/减速度时,使用SPEED指令和ACCEL指令
。指定CP模式动作指令时,使用SPEEDS指令和ACCELS指令。
包括指令:Go,Jump,BGo,TGo
PTP(Point To Point)动作,与运动轨迹无关,通过最短路径。
优点:运行速度快。
缺点:轨迹无法预测。
功能:全轴同时的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 P‘机械手以“门型动作”运动到P1点’
2Jump P1 LimZ
-10 ‘以限定第三轴目标坐标 Z=-10的门型动作移动到P1点,如下图
3. Jump P:Z(-10) LimZ -10 ‘以限定第三轴目标坐标Z=-10的门型动作移动到P1点位置,Z坐标值为-10的位置。’
TIPS:Jump将机械手抬至LimZ值,然后使手臂水平移动,快到目标上空时使其下降移动。
包含指令:Move,Arc,Arc3,Jump3/Jump3CP,BMove,TMove,CVMove
CP(Continuous Path) 指令可以指定机械手到达目标位置的运动轨迹。
优点:轨迹可以控制,匀速动作。
缺点:速度慢。
加减速度请使用SPEEDS和ACCELS指令。
Move指令
功能:以直线轨迹将机械手从当前位置移动到指定目标位置。全关节同时启动,同时停止。
格式:Move 目标坐标
示例:Move P1
TIPS: 手臂姿势重要时请使用Go命令,手臂轨迹重要时请使用Move命令。只有Z轴上下运动时,Go与Move的轨迹一样。
Arc和Arc3指令
功能:Arc在XY平面上以圆弧插补动作。Arc3在3D空间里以圆弧插补动作。
格式:Arc经过坐标,目标坐标
说明:机械手从当前位置到目标坐标,通过圆弧运动经过两个点的位置。
示例:Arc P2,P3
弧形运动
TIPS:实际运行机器时请先使用低速进行动作范围确认,主要是因为有些位置在机械手的活动范围内,但是在特定的动作中不一定可以到达这些点。
Jump3/Jump3CP指令
功能:三维的门型运动, Jump3是两个CP运动和一个PTP运动组合而成。(有什么用?自己想想)
格式: Jump3 退避坐标,接近开始坐标,目标坐标
示例:Jump3 P1, P2, P3 ‘从当前位置经过保存坐标P1,接近坐标P2运动到目标坐标P3.如图
3d门型运动图
TIPS:
1.Jump不能用于6轴机械手,6轴机械手要使用Jump3和Jump3CP指令
2.Jump3CP 是3个CP动作的组合。
3.SCARA机械手z轴上升或者下降动作时,使用Jump指令可以提高运动速度。
BMove,TMove,CVMove指令(哦,这些是什么?以后再怼吧,咱先机械手动起来再说。)
机械手运动可少不了速度因素,接下来讲一下速度的设置吧。
指令 | 描述 |
---|---|
SPeed | 设定PTP运动速度(百分比格式?) |
格式 | Speed s,[a,b] |
说明 | s为速度,a为第三轴上升速度(其它轴呢?),b为第三轴下降速度 |
实例 | Speed 80 |
Accel | PTP加减速度值百分比 |
格式 | Accel a, b, [c,d,e,f] |
说明 | a/b加减速度,c/d第三轴上升加减速度,e/f[自己想] |
示例 | Accel 80,80 |
指令 | 描述 |
---|---|
SpeedS | 设定CP动作速度 |
格式 | SpeedS 速度设定值 |
说明 | 不同机型对应的速度设定值范围(有图,在下面) |
示例 | SpeedS 800 |
AccelS | 设定CP加减速度 |
格式 | AccelS 加速设定值,[减速设定值] |
说明 | (同一个图) |
示例 | AccelS 800 |
Function main //定义方法名称
Integer i //定义一个变量
Motor On //开电机,不打开电源,玩个蛇?
Power High //设定功率。高功率,低功率,跑的快还是慢呢?
Speed 100,50,10 //设置一波速度
//各种命令走你。。
Fend //结束喽,yeah