Epson机器人编程初级阶(一)
EPSON控制柜类型:
RC700可控制,除一体机和LS系列以外的所有机型。
RC90 为LS系列专用控制器。
机器人系统具有三种操作模式:TEACH,AUTO,TSET
TEACH:该模式可电动机器人及示教电位置,机器人将在低速率下运行
AUTO:外部
TSET:调试
机器人常用控制指令:
关节插补:GO, JUMP 直线插补:MOVE, 圆弧插补:ARC,ARC3 运行速度设定:Speed,SpeedS 回待机点:HOME 托盘运算:Pallet 跳转:GoTo,If Then Else 循环:For... Next,Do...Loop 调用子程序:GoSub,Call 等待:wait 停止:END,Halt 输入输出信号:Sw,On/Off,Out/in
Go点对点运动比move直线插补要快,move要多轴同步因此慢,Go的运行轨迹不是直线,Go不能替代直线。
Go
语法:Go p Go p1:机械手手动到P1点 Go XY(50,400,0,0):机械手接收指令动作到x=50,y=400,z=0,u=0 Go p1+X(50):机械手动作到p1点,偏移+50的位置(相对定位) Go p1:X(-50):机械手动作到p1点,偏移-50的位置(绝对定位) Go p1 /L:机械手动作到p1点,使用左手轴 Go Here +Z(50):在当前Z轴上偏移50,Here当前点
同一个点位置有两个姿态可以到达,因此需要在点位置数据中设置Hand:Lefty/Righty
Home
回到起始点位置。起始点可自行配置,移动到指定点后,读取目前位置。然后调用Home,先配置后使用。用于避开障碍,防止撞机。
Jump
点到点跳跃运动,以门型弧度升高运动,防止Z轴碰撞。门型高度可以在Arch设置中设置高度,默认C0 = 30mm。示例:JUMP P1 C0
Jump语法: Jump p1 :机械手以门型动作到p1点 Jump p1 Limz -10:Z轴从当前点上抬10毫米后平移到p1点上方再下降到p1点 Jump p1: z(-50) LimZ -10:从当前点上抬到-10的位置,移动到p1点绝对位置-50 Jump p1 !DO; On1; D50; Off 1! 表示:在p1动作开始时打开输出1,在运行到p1动作50%时关闭输出1
Move
以直线轨迹将机械手从当前位置移动到指定的目标。
语法: move p1
在SCARA机械手只有Z轴上下动作时,Go与Move的轨迹一样。
变量的类型(作用域)
在一段程序中有效叫模块变量
全局变量 Global String BFH1$; 字符串变量后面加$符号
仅在当前程序中有效叫局部变量
数据类型
Boolean,
Byte,
Double,
int32,
integer,
Real(单精度浮点型),
String,
UByte,
UInt32,
UShort,其中U表示无符号(+/-)
Arc
在XY平面上以圆弧插补动作
Arc3
在3D空间里以圆弧插补动作
注意是圆弧动作,不是整圆,机器人完成圆的动作最少需要2个主要步骤
示例:画整个圆指令
Go p1
Arc p2,p3
Arc p4,p1
注意:一旦在Move或Arc运动轨迹超过允许动作范围外,机械手会突然停止,给伺服电机带来撞机,有可能产生事故。为了防止故障,请在高速执行之前以低速进行动作范围确认。
Here
用于将机器人当前所在位置示教到位置变量中
P1 = Here:当当前位置带入P1
如果点动太慢,可以设置加快速度,再读取。
where
显示当前系统的相关坐标值
For...Next
循环,之间一连串的语句执行指定次数
语法: For A1 = 1 To 4 Move P(A1) Next
CX、CY、CZ、CU、CV、CW指令
功能:用于获取当前点的X、Y、Z、U、V、W的坐标
语法: A1=CX(here):获取当前点X坐标赋值给A1
JTran 指令
功能:单独移动一个关节语法:JTran 关节编号,移动量 示例:JTran 1,20:表示第一个关节移动正20度
Speed
点到点动作速度设定
Speed 80:表示80mm/s动作速度 Speed 80,40,30:表示80动作速度,Z轴上升速度40,下降速度30 Speeds 轨迹速度设定 Speeds 80:表示轨迹动作的速度为800mm/s
Accel
点到点加减速度设定
语法: Accel a,b,[c,d,e,f] a/b表示加/减速度,c/d第三轴加/减速度 Accel 80,80,30,30,60,60
Accels
轨迹动作加减速度
语法:Accels 加减速度设定值 示例:Accels 500 加减速度均为500mm/s
Call
回调函数
IO端口控制:
打开指定输出位:
语法:On 输出位,时间[单位秒,最小有效单位为0.01秒] 示例:On 1,0.5
关闭指定输出位:
语法:Off 输出位,时间[单位秒] 示例:Off 1,0.5
位组合输出(8位)
语法:Out 字节号,输出数据 示例:Out 0,0 将0~7位全部关闭
位组合输入(8位)
语法:In(字节号)=输出数据 示例:wait int(0)=0 等待0~7全部关闭 字节0对应0~7的位,1对应8~15,以此类推最大到255
Sw
返回指定的输入位状态
语法:Sw(输入位编号) 示例:Wait Sw(1) = On 待机到1开启
仿真示例:
走一个正方形:
1.编写代码:
Function main Integer A1 P1 = Here P2 = P1 +X(100) P3 = P2 +Y(100) P4 = P1 +Y(100) For A1 = 1 To 4 Move P(A1) Next Move P1 Fend
2.设置要模拟的机器人
点击设置 >> 控制器 >> 机器人 >> 更改
3.选择机器人型号
依次选择机器人类型(品牌)>> 序列 >> 型号 ,最后点击确定。会进入重启控制器的进度条,等待完成。
4.点击Simulator机器人仿真
除了机器人左边绿线区域其他都可以删掉,只留下机器人。
5.点击模拟器设置
可以进行一些运动轨迹的样式设置等等,方便追踪观察。
6.打开电源
机器人管理,控制面板,打开电机开关
7.步进示教调整
因为此时的模拟机器人是一个完全展开的状态,XY轴都是最大值。是不能直接运行的。
我们首先调动-Z轴,再调动-X轴,再调动+Y。使得模拟机器人的可运行轨迹足够支持代码中100*100的运行范围。移动速度太慢,我们可以设置步进距离。
8.运行代码
打开运行窗口,选择运行函数
点击开始,可以看到右边红色实线绘制出了一个100*100的矩形