Easy Rob Program Language
Easy Rob Program Language
Easy Rob Program Language
Teach Window
Easy program generation with the A click on the button,
TeachWindow. No special knowledge activates the
of any EASY-ROB Program Syntax is MotionCommands dialog.
necessary.
www.easy-rob.com 1/8
EASY-ROB - Program Language
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
MSG ""
WAIT x [sec]
CALL fct_name()
FCT fct_name()
ENDFCT
www.easy-rob.com 2/8
EASY-ROB - Program Language
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]
www.easy-rob.com 3/8
EASY-ROB - Program Language
ERC STOP
ERC RESET JOINTPOSITION
ERC SAVE JOINTPOSITION
www.easy-rob.com 4/8
EASY-ROB - Program Language
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
www.easy-rob.com 5/8
EASY-ROB - Program Language
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
www.easy-rob.com 6/8
EASY-ROB - Program Language
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.
jntoff
jntsign
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.
pi
deg
rad
www.easy-rob.com 7/8
EASY-ROB - Program Language
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°
www.easy-rob.com 8/8