Easy Rob Program Language

background image

EASY-ROB - Program Language

www.easy-rob.com

1/8

EASY-ROB Program and Command Language

ERPL - EASY-ROB

Program

Language

Overview

Easy-Rob-Program-Language.pdf

(70KB)

ERPL

EASY-ROB

Program

Language

Covers all necessary motion commands, such as
speed_cp, to set the speed for cp motion
LIN x y z A B C, to move the robots TCP to this locaton in
CP linear mode

ERCL

EASY-ROB

Command

Language

Extension of ERPL, to automate all user interaction

Example
Program

Example Program:

"arc.prg"

from Workcel file

"arc.cel"

in folder

./proj/

MATH

Mathematical and Trigonomic Functions
The Parser for algebraic expressions allows to use
formulars.
Useful for mathematical dependences for passive robot
joints for example, as well when you enter a number in every
dialog.

Teach Window

Easy program generation with the
TeachWindow. No special knowledge
of any EASY-ROB Program Syntax is
necessary.

Single Step Simulation

Every single motion

command can be executed directly
from the TeachWindow, forward and

A click on the

button,

activates the
MotionCommands dialog.

A click on the

button,

activates the
ControlCommands dialog.

background image

EASY-ROB - Program Language

www.easy-rob.com

2/8

ERCL - EASY-ROB

Command

Language

Robot Motion Commands

from the TeachWindow, forward and
backwards.

OV_PRO x [%]
SPEED_CP dx dxe[m/s]
SPEED_PTP v ve[m,deg]
CONFIG n []
TOOL X Y Z A B C [m,deg]
TOOL tagname

EXT_TCP X Y Z A B C [m,deg]
EXT_TCP tagname

BASE X Y Z A B C [m,deg]
BASE tagname
BASE_REL X Y Z A B C [m,deg]

BASE_PRG X Y Z A B C [m,deg]
BASE_PRG_REL X Y Z A B C [m,deg]

HOME n []
PTP X Y Z A B C [m,deg]
PTP_AX q1 .. qn [m,deg]
PTP_AX_REL q1 .. qn [m,deg]
PTP_REL dX dY dZ dA dB dC [m,deg]
PTP tagname

LIN_ORI VARIABLE, FIX, TANGENTIAL, AUX, VARIABLE2, QUATERNION
LIN X Y Z A B C [m,deg]
LIN_REL dX dY Dz dA dB dC [m,deg]
LIN TagName

CIRC_ORI VARIABLE, FIX, TANGENTIAL, AUX, VARIABLE2, QUATERNION
VIA_POS X Y Z A B C [m,deg]
VIA_POS_REL dX dY dZ dA dB dC [m,deg]
VIA_POS TagName
CIRC X Y Z A B C [X2 Y2 Z2] [m,deg]
[X2 Y2 Z2] via point
CIRC_REL dX dY dZ dA dB dC [dX2 dY2 dZ2] [m,deg]
[dX2 dY2 dZ2] via point
CIRC TagName [TagName2]
[TagName2] via point

MSG ""
WAIT x [sec]

CALL fct_name()
FCT fct_name()
ENDFCT

CALL FILE filename

ERCL is an extension of the standard ERPL available in the BASIC Modul
and is useful to create more advanced and effective simulations.
The goal with ERCL is to automate all user interaction, such as enable the
TCP track, enable collision detection, set the simulation and interpolation
step size, render bodies to flat, wire or invisible, move bodies absolute or
relative, change colors, etc.

background image

EASY-ROB - Program Language

www.easy-rob.com

3/8

EASY-ROB Command Language

A click on the

button,

activates the dialog to insert
ERC commands.

ERC SET_DEFAULTS
ERC SIM_STEP x [sec]
ERC CNTRL_STEP x [sec]
ERC SYSTEM_STEP x [sec]
ERC IPO_STEP x [sec]
ERC IPO_LEAD_TIME x [sec]
ERC IPO_LAG_TIME x [sec]

ERC TRACK ON,OFF
ERC DYNAMICS ON,OFF
ERC STOP_SWE ON,OFF
ERC COLLISION ON,OFF
ERC STOP_COLLISION ON,OFF
ERC ROBOTJOINTS ON,OFF
ERC ROBOTPOSITIONS ON,OFF
ERC PRG_WIN ON,OFF
ERC FLOOR ON,OFF
ERC FLOOR_RENDER ON,OFF
ERC EXT_TCP ON,OFF
ERC ORTHOGRAFIC ON,OFF
ERC DISPLAY_ROBOT ON,OFF
ERC DISPLAY_ROBOT_COORSYS ON,OFF
ERC DISPLAY_TOOL ON,OFF
ERC DISPLAY_BODYS ON,OFF
ERC TCP_COORSYS ON,OFF
ERC BASE_COORSYS ON/OFF
ERC CREATE_TARGET_TAGS ON/OFF
ERC RESET_ALL_POSITIONS_JOINTS ON/OFF
ERC NO_DECEL ON/OFF
ERC GRAFIC_UPDATE ON/OFF
ERC DISPLAY_TAGS ON/OFF
ERC STATUS_OUTPUT ON/OFF [1-at simstep,2-at target pose] [flnname] [fct# 0-12]

ERC RENDER FLAT
ERC RENDER WIRE
ERC RENDER BBOX ON,OFF
ERC RENDER BODY [ROBOT,TOOL] bodyname WIRE
[FLAT,BBOXWIRE,BBOXFLAT,INVISIBLE]
ERC RENDER BODY_GRP [ROBOT_GRP,TOOL_GRP] WIRE
[FLAT,BBOXWIRE,BBOXFLAT,INVISIBLE]

background image

EASY-ROB - Program Language

www.easy-rob.com

4/8

ERC COLOR BODY [ROBOT,TOOL] bodyname color
ERC COLOR BODY_GRP [ROBOT_GRP,TOOL_GRP] color
ERC COLOR TRACK [TRACK_DYN] color
ERC COLOR TAG color
color = [BLUE, GREEN, CYAN, RED, MAGENTA, BROWN, LIGHTGRAY, DARKGRAY,
LIGHTBLUE,
LIGHTGREEN, LIGHTCYAN, LIGHTRED, LIGHTMAGENTA, YELLOW, WHITE]

ERC STOP
ERC RESET JOINTPOSITION
ERC SAVE JOINTPOSITION

ERC LOAD TOOL fln
ERC LOAD VIEW fln
ERC LOAD ROBOT fln
ERC LOAD BODY fln
ERC LOAD RECORDING fln
ERC LOAD ENVIRONMENT fln | DEFAULT

ERC SHOW_IMAGE er_image.bat ""
ERC ESSI ON,OFF [speed scale value] [size scale value]
ERC EAI ON,OFF [speed scale value] [size scale value]
ERC RUN_RECORDING [recordingfile.rec]

ERC MOVE BODY bodyname XYZ ABC [m,deg]
ERC MOVE BODY bodyname TagName
ERC MOVE TOOL bodyname XYZ ABC [m,deg]
ERC MOVE TOOL bodyname TagName
ERC MOVE ROBOT bodyname XYZ ABC [m,deg]
ERC MOVE ROBOT bodyname TagName

ERC MOVE_REL BODY bodyname dXdYdZ dAdBdC [m,deg]
ERC MOVE_REL TOOL bodyname dXdYdZ dAdBdC [m,deg]
ERC MOVE_REL ROBOT bodyname dXdYdZ dAdBdC [m,deg]
ERC MOVE_REL BODY_GRP bodyname dXdYdZ dAdBdC [m,deg]
ERC MOVE_REL TOOL_GRP bodyname dXdYdZ dAdBdC [m,deg]
ERC MOVE_REL ROBOT_GRP bodyname dXdYdZ dAdBdC [m,deg]
ERC MOVE_REL LIST listname dXdYdZ dAdBdC [m,deg]

ERC BASE BODY bodyname
ERC BASE TCP

ERC VIEW steps n
ERC VIEW hither x
ERC VIEW yonder x
ERC VIEW screen x
ERC VIEW zweight x
ERC VIEW zoom x
ERC VIEW zoom_in x
ERC VIEW zoom_out x
ERC VIEW tcp_rot_tcp ABC
ERC VIEW tcp_rot_world ABC
ERC VIEW world_rot_base ABC
ERC VIEW world_rot_world ABC

ERC GRAB BODY ’bodyname’
ERC GRAB BODY_GRP
ERC RELEASE BODY ’bodyname’
ERC RELEASE BODY_GRP

ERC ROBOT_BASE XYZ ABC [m,deg]
ERC ROBOT_BASE tagname
ERC ROBOT_BASE_REL XYZ ABC [m,deg]

ERC LIST NEW listname [bodyname]
ERC LIST DELETE listname
ERC LIST ADD listname bodyname
ERC LIST REMOVE listname bodyname

ERC JOINT_WEIGHT 0 or 1 for number of joints
ERC MASK_VECTOR [0,1] for X Y Z A B C
ERC SWE_NEG swe1 ... swen negative software endswitches [m,deg]
ERC SWE_POS swe1 ... swen positive software endswitches [m,deg]

ERC_CMD: ERC TAGS PREFIX prefixname
!ERC_CMD: ERC TAGS DELETE tagname
ERC_CMD: ERC TAGS DELETE ALL

ERC TRACK_TYPE LINE [POINT, LINE_Z_DIRECTION, Z_DIRECTION, X_DIRECTION,
Y_DIRECTION] Value

background image

EASY-ROB - Program Language

www.easy-rob.com

5/8

EASY-ROB Example Program

Mathematical and Trigonometric Functions

Y_DIRECTION] Value
// value is linewidth, or pointsize or approach length for direction setting

Program:

arc.cel

PROGRAMFILE
! prgfln ..\proj\my_proj\arc.prg
Config 1
base_prg 0 0 0 0 0 0
base 0 0 0 0 0 0
speed_ptp 90.0
PTP 0.8800 -0.4750 0.3000 -0.0004 180.0000 60.00
PTP 0.8800 -0.4750 0.3000 180.0000 0.0000 55.00
PTP 0.7741 -0.9853 0.7619 97.0490 -11.65 -127.45
PTP 0.5000 0.0000 0.4600 180.0000 0.0000 -90.0000
wait 1.0
speed_cp 0.05
base 0 0 0.2275 0 0 0
LIN 0.5000 0.0000 0.10 180.0000 0.0000 -90.0000
LIN 0.9000 -0.5000 0.10 180.0000 0.0000 -90.0000
LIN 1.0 -0.5000 0.0 180.0000 0.0000 -90.0000
speed_cp 0.1
LIN 1.0 0.2000 0.0 180.0000 0.0000 -90.0000
LIN 1.0 0.3000 0.0 0.0000 180.0000 45.0000
LIN 1.0 0.3000 0.0 10.0000 170.0000 45.0000
speed_cp 0.05
LIN 1.0 0.3000 0.1 10.0000 170.0000 45.0000
! backside
LIN 1.0 0.3000 0.1 170.0000 -10.0000 45.0000
LIN 1.0 0.3000 -0.0275 170.0000 -10.0000 45.0000
LIN 1.0 0.3000 0.1 170.0000 -10.0000 45.0000
LIN 1.02 0.3000 0.1 10.0000 170.0000 45.0000
LIN 1.0 0.3000 0.1 10.0000 170.0000 45.0000
LIN 1.0 0.3200 0.1 10.0000 170.0000 45.0000
LIN 1.0 0.3000 0.1 10.0000 170.0000 45.0000
LIN 1.0 0.3000 0.0 10.0000 170.0000 45.0000
speed_cp 0.1
LIN 0.5000 0.3000 0.0 10.0000 180.0000 0.0000
wait 2.0
LIN 0.5000 0.200 0.1 0.0000 180.0000 0.0000
wait 1.0
ENDPROGRAMFILE

Important:
- All expressions starts with an ’=’ equal sign.
- Nesting of functions and white spaces are allowed
- All argument have to be in bracket ’(’ ’)’
- Upper and lower cases will be converted into upper cases

background image

EASY-ROB - Program Language

www.easy-rob.com

6/8

Value Input Dialog: Result X= 0.405= 0.880-0.475

Trigonometric Functions
Example: =sin((45/3+15)*rad()) result: 0.5

sin
cos
tan
asin
acos
atn

atan

Mathematical Functions
Example: =exp(1) result: 2.7183
=log(exp(1)) result: 1

exp
log
int
sqr
sqrt
abs
rnd
fact

EASY-ROB Functions
DOF (Degree of Freedom)
- Functions return the current joint value for the current loaded robot

The DOF Functions are very usefull to define mathematical dependencies between
passive- and active joints. Supposed the robot kinmatic is described based on
UNIV- or DH-notation

Examples:
=dof(1) returns the desired joint value from robot axis number 1
=dof(4) returns the desired joint value from robot axis number 4
=dof1(0) returns the desired (nominal) joint value from robot axis number 1
=dof1(1) returns the dynamic joint value from robot axis number 1
(If dynamic is disabled ’OFF’, dof1(0) is equal dof1(1))
dof
dof1
dof2
dof3
dof4
dof5
dof6
dof7
dof8
dof9
dof10
dof11
dof12

The TCP Functions return the current TCP location for the current loaded robot
with respect to the robot base ’b’ and the world ’i’ coorsys frame.
base: ’b’ => bTCPw = inq_bTw();
world: ’i’ => iTCPw = inq_iTb() * inq_bTw();

Examples:
=tcpx(0) returns the desired TCP location in X direction w.r.t. ’b’
=tcpx(1) returns the dynamic TCP location in X direction w.r.t. ’b’
=tcpix(0) returns the desired TCP location in X direction w.r.t. ’i’
=tcpix(1) returns the dynamic TCP location in X direction w.r.t. ’i’
(If dynamic is disabled ’OFF’, tcp?(0) is equal tcp?(1))

tcpx
tcpy

background image

EASY-ROB - Program Language

www.easy-rob.com

7/8

tcpy
tcpz
tcpix
tcpiy
tcpiz

The ROBB Functions return the Robots Base position for the current loaded robot
with respect to the world coorsys frame ’i’ => iROBBb = inq_iTb();

Examples: =robbx() returns the Robot base position in X direction w.r.t. ’i’
=robby() returns the Robot base position in y direction w.r.t. ’i’

robbx
robby
robbz

The Robot Joint-Offset und Joint-Sign - Functions return the offset value
for each joint and the sign/direction. The JointSign is always +1 or -1.

Examples: =jntoff(1) returns joint offset from robot axis number 1
=jntsign(3) returns joint sign from robot axis number 3

jntoff
jntsign

Access Functions to the lengths of the passive joints

Examples:
=lp0x(2) returns length (X component) from passiv joint #2 from the last joint
= inq_kin_achs_T0_passiv(1)->p[0];
=lp0y(1) returns length (Y component) from passiv joint #1 from the last joint
= inq_kin_achs_T0_passiv(0)->p[1];
=lp0z(4) returns length (Z component) from passiv joint #4 from the last joint
= inq_kin_achs_T0_passiv(3)->p[2];

=lpx(2) returns length (X component) from passiv joint #2 to the next joint
= inq_kin_achs_T_passiv(1)->p[0];
=lpy(1) returns length (Y component) from passiv joint #1 to the next joint
= inq_kin_achs_T_passiv(0)->p[1];
=lpz(4) returns length (Z component) from passiv joint #4 to the next joint
= inq_kin_achs_T_passiv(3)->p[2];

Zero (0) is returned if the number of passive robot joints is less than specified.

/************************ Conversation Functions ************************/

To convert units, etc.

Examples: =pi() result: 3.1415926
=deg() result: 57.3
=rad() result: 0.01745

pi
deg
rad

/************************ Parameter and Triangle Functions **************/

Argument-Parameter Functions ’P’, to store a value ’x’ as an argument for the
triangle functions.

pa(x) - 1st argument
pb(x) - 2nd argument
pc(x) - 3rd argument
pd(x) - 4th argument
pe(x) - 5th argument

The Triangle Functions allows to calculate
miscellaneous angle and side length of a triangle.
A triangle a completely defined with three values.

background image

EASY-ROB - Program Language

www.easy-rob.com

8/8

Last revised on JAN 2001

webmaster@easy-rob.com

assa()
Input: pa=gamma pb=B pc=C
Output: alfa
Usage: pa=gamma= 45°, pb=B= 1, pc=C= 1
alfa =assa(pa(45*rad())+pb(1)+pc(1))*DEG()
Result: alfa = 90°

assa2()
Input: pa=gamma pb=B pc=C
Output: beta
Usage: pa=gamma= 45°, pb=B= 1, pc=C= 1
beta =assa2(pa(45*rad())+pb(1)+pc(1))*DEG()
Result: beta = 45°

asss()
Input: pa=gamma pb=B pc=C
Output: A
Usage: pa=gamma= 45°, pb=B= 1, pc=C= 1
A=asss(pa(45*rad())+pb(1)+pc(1))
Result: A = 1.41421 = sqrt(2)
A = sqrt(3) = asss(pa(30*rad())+pb(1)+pc(1))

sssa()
Input: pa=A pb=B pc=C
Output: alfa, opposite angle from A
Usage: pa=A=sqrt(3), pb=B= 1, pc=C= 1
alfa=sssa(pa(sqrt(3))+pb(1)+pc(1))*DEG()
Result: alfa = 120°

sasssa()
Input: pa=A pb=delta pc=B pd=C pe=D
Output: alfa, opposite angle from A
Usage: pa=A=1, pb=delta=90°, pc=B=1, pd=C= 1, pe=D= 1.5
alfa=sasssa(pa(1)+pb(90*rad())+pc(1)+pd(1)+pe(1.5))*DEG()
Result: alfa = 119.62°


Wyszukiwarka

Podobne podstrony:

więcej podobnych podstron