Easy Rob Program Language


EASY-ROB - Program Language
EASY-ROB Program and Command Language
Easy-Rob-Program-Language.pdf
Overview
(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: "arc.prg" from Workcel file
Example
Program "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.
ERPL - 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.
A click on the button,
activates the
ControlCommands dialog.
Single Step Simulation
Every single motion
command can be executed directly
from the TeachWindow, forward and
www.easy-rob.com 1/8
EASY-ROB - Program Language
from the TeachWindow, forward and
backwards.
Robot Motion Commands
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 - EASY-ROB Command Language
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.
www.easy-rob.com 2/8
EASY-ROB - Program Language
A click on the button,
activates the dialog to insert
ERC commands.
EASY-ROB Command 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]
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]
www.easy-rob.com 3/8
EASY-ROB - Program Language
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
www.easy-rob.com 4/8
EASY-ROB - Program Language
Y_DIRECTION] Value
// value is linewidth, or pointsize or approach length for direction setting
EASY-ROB Example Program
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
Mathematical and Trigonometric Functions
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
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
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.
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.
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°
Last revised on JAN 2001 webmaster@easy-rob.com
www.easy-rob.com 8/8


Wyszukiwarka

Podobne podstrony:
programming languages pl 4
programming languages pl 5
Programming Languages pl (2)
programming languages pl
programming languages pl 3
programming languages pl 1
programming languages pl 2
Programming Languages pl
EASY Programmable Logic Controller h1584g
zestawy cwiczen przygotowane na podstawie programu Mistrz Klawia 6
Międzynarodowy Program Badań nad Zachowaniami Samobójczymi
CSharp Introduction to C# Programming for the Microsoft NET Platform (Prerelease)
Instrukcja Programowania Zelio Logic 2 wersja polska
Program wykładu Fizyka II 14 15
language expressions
roprm ćwiczenie 6 PROGRAMOWANIE ROBOTA Z UWZGLĘDNIENIEM ANALIZY OBRAZU ARLANG

więcej podobnych podstron