val3 basics
DESCRIPTION
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… - PowerPoint PPT PresentationTRANSCRIPT
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. Mode Button2. Arm Power on/off3. E-Stop4. Movement keys5. Movement Mode
(joint/frame/..)6. Speed adjust7. Function keys8. Keyboard9. Navigation keys10.Application control
(Run/Pause/..)11.Enable button (like
dead man)12.Digital I/O buttons13.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
1
2
3 4
5
6
1
2
3
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 X, Y, Z
Rotational RX, RY, RZ
Z+
Y+
X+ Z
X
Y
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.
1
2 – press and hold
w.r.t tool frame
Teaching Locations Press New to create a new location
variable A point location
Y-Y-Z Yaw-Pitch-Roll information is stored
A joint location 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
100 mm
tool
poi
nter
Tool
flan
ge
X
Z
Z
X
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.
taskCreate “some title”, 100, fun()
call 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
Frame Config
Tool
IO 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
Instructions movej movel movec
Stack stopMove restartMove restMotion waitEndMove
pA
pBpC
pDpEpA
pBpC
pDpE
pA
pB
pD
pC
movej, movel, movej,...
pA
pB
pC
pD
MOTION STACK
ROBOT MOVEMENT
Different types of movement Point-to-Point
movej(point/joint 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.
Linear movel(point location, tool, mDesc)
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