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