VAL3 Basics Sebastian van Delden USC Upstate

Download Report

Transcript VAL3 Basics Sebastian van Delden USC Upstate

VAL3 Basics
Sebastian van Delden
USC Upstate
[email protected]
What it is?



VAL3 is Stäubli’s current language
Available on the different versions of the CS8
controller.
New teach pendant has also be designed
that supports complete program development
from the pendant…

I.e. you can teach points and write the program all
from the pendant – no need for a computer at all
in many applications!!
Teach Pendant Overview
1.
2.
3.
4.
5.
Mode Button
Arm Power on/off
E-Stop
Movement keys
Movement Mode
(joint/frame/..)
6. Speed adjust
7. Function keys
8. Keyboard
9. Navigation keys
10. Application control
(Run/Pause/..)
11. Enable button (like
dead man)
12. Digital I/O buttons
13. Jog keys
Pendant Menus






Arrow keys for navigation

Up / Down to select items

Right to enter/ expand

Left to collapse
Application manager

Load, save, and edit applications
Task manager

Debugging
Control panel

System status, settings, IO
Calibration

Arm maintenance
Event Log
Manual Mode





Turn on Arm Power
 Arm power button
 Toggle deadman / parking
Move / Hold status
 Must press and hold to get move
Speed
 Restricted to 250 mmps
Deadman
 Active
In Manual mode the arm can be manually jogged around.
Manual Mode: Joint





Move each joint seperately
Simple, easy to understand
Fast large movements of arm
in cell
6 Axis
 Angle for each axis
4 Axis
 Angle for joints 1,2, and 4
 Distance for joint 3
3
4
1
5
2
1
3
6
2
4
Manual Mode: Frame, Tool





Manual movement based on a reference
frame (3D coordinate system)
Coordinated movement of all joints
Allows linear paths or rotations around a
frame‘s axis
Good for Small precise movements
Offset with in frame

Translational


Y+
X, Y, Z
Rotational

Z+
RX, RY, RZ
X+
Manual Mode: Point



Can be used to move to (or
with respect to) a taught point.
Cursor to taught point and
then hold down Move/Hold
Can also be used to
approach points – based on
the tool frame.
2 – press and hold
1
w.r.t tool
frame
Teaching Locations

Press New to create a new location variable

A point location


A joint location




Y-Y-Z Yaw-Pitch-Roll information is stored
Joint angles are stored
After you declare the new variable, to set it press Here
Select tool and frame

Don‘t forget to set a correct tool transformation
which moves the tool frame to an appropriate spot
on the tool
Note: Yaw-Pitch-Roll in VAL3 is Rotation around X-Y-Z
X
Z
X
X
Z
Creating Applications

Applications/projects contain data and instructions used
by the robot to perform its job.

A folder with xml files inside
 A project file (PJX)
 A Data file (DTX)
 Many program/function files (PGX)



Several functions can be written for a project
Stored on a Drive
Loaded into memory to be run
Example program/function PGX file
<?xml version="1.0" encoding="utf-8" ?>
<programList xmlns="ProgramNameSpace" >
<program name="demo" public="false" >
<description />
<paramSection/>
<localSection/>
<source>
<code>
begin
movej(above2,flange,mNomSpeed)
movel(p[0],flange,mNomSpeed)
movel(p[1],flange,mNomSpeed)
movej(above2,flange,mNomSpeed)
movel(p[0],flange,mNomSpeed)
movec(p[2],p[1],flange,mNomSpeed)
movej(above2,flange,mNomSpeed)
waitEndMove()
end
</code>
</source> </program> </programList>
Programs/functions


The application can consist of numerous functions
which can call each other
There are two special ones that are always created for
you when you create a new application:
 start()
 Is the function that always gets called when you
run the program.
 stop()
 Is the function that always gets called when the
program finishes.
 You can place any kind of VAL3 instructions/code in
these functions.
TaskCreate / Call

taskCreate
 Spawns a seperate process
 Several process can be spawned which run in
parrellel to each other
 CPU alternates between all tasks based on some
Priority
 Arguments: function title, priority and function name.


call



taskCreate “some title”, 100, fun()
Transfer program execution to a subroutine.
call fun()
Use taskCreate or call in the start() function to get things
going
Editing Code




Use the menus to create new
programs/functions and edit
code. Example function
Ins. inserts a new line
VAL3 gives you a drop down
menu with VAL3 code...
Sweet!
Or, you can insert pre-defined
variable names(Glo.), etc.
Global Variables

Simple




Num
Bool
String
Structures



Trsf
Joint
Point




Tool
IO




Frame
Config
Dio
Aio
Sio
Saving
Arrays

More then one value


Same name
Numerical index



[]
Starts with 0
Actually all VAL3 variables are arrays

Single value array of 1

No brackets defaults to index 0
Flow Control










taskCreate
call
while
do until
for
if
switch
wait
watch
delay
Operators


Math
 = assignment
 + add, conacate
 - subtract
 * multiply
 / divide
 % modulus
 ! not
Comparisons
 == equal to
 != not equal to
 > greater then
 >= greater then or equal to
 < less then
 <= less then or equal to
Instructions

Some examples
 Abs
 Min
 Max
 Limit
 Power

Left
Right
Mid
Chr
Asc

Size




Motion
pA
pB
pC

Instructions




movej
movel
movec
Stack




stopMove
restartMove
restMotion
waitEndMove
ROBOT MOVEMENT
pD
pE
pA
movej, movel, movej,...
pB
pC
pE
pD
pA
pB
pC
pD
pD
p
p
C
B
MOTION
STACK
p
A
Different types of movement

Point-to-Point

movej(point/joint location, tool, mDesc)




Linear

movel(point location, tool, mDesc)


Move to a location in the most optimal manner – either joint-angle or regular point
The second parameter is the tool frame you should use… So, a tool frame is
provide for every movement command.
mDesc is a parameter that says what kind of movement to do. mNomSpeed is the
built-int variable that refers to normal movement.
Just like movej, but move in a linear motion (straight line
movement.
Circular

movec(point via, point target, tool, mDesc)

Move to target location, but in a circular fashion which
passes through a via point.
Different Types of Movement (cont)

Circular Movement
Executing an Application


Navigate to load from disk or
create a new program and store
it on the built-in harddrive
You‘ll need to be in Local mode
before you can run the program




Keep pressing Mode button to cycle
through the different modes.
Need to re-park teach pendant when
switching between Local and Manual
modes.

Remove the metal bracket from
the back of the pendant and set
the pendant back in it.
Press the Run button and choose
the program to run.
If the program involves movement,
you‘ll also have to press Move/Hold
Stäubli Robotics Studio




Recall that VAL3 software
can also be developed with
Stäubli Robotics Studio
It’s an IDE that runs on a PC
More user friendly that the
teach pendant.
Offline Programming
 Edit
 Test
 Transfer
Using Stäubli Robotics Studio (SRS)




A project can be FTPed
back and forth between the
CS8 and a PC running
SDS.
SDS is a much better
programming IDE and will
make developing complex
projects easier.
Points still need to be
taught using the controller
though…
This example project
named ‘circular’ (to the
right) was started on the
CS8 controller and has a
program called ‘demo’ in it.
Stäubli Robotics Studio


To transfer a project to SDS, you need to establish an FTP connection
Need to know the controller IP address and username and password


This can be found in the menus on the controller.
Enter the information in SDS’s FTP tool:
Stäubli Robotics Studio

Locate the project you would like to transfer
Stäubli Robotics Studio

Open the project in SRS
Stäubli Robotics Studio

Edit code; transfer back went ready