Title: VAL3 Basics
1VAL3 Basics
- Sebastian van Delden
- USC Upstate
- svandelden_at_uscupstate.edu
2What it is?
- VAL3 is Stäublis 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!!
3Teach Pendant Overview
- Mode Button
- Arm Power on/off
- E-Stop
- Movement keys
- Movement Mode (joint/frame/..)
- Speed adjust
- Function keys
- Keyboard
- Navigation keys
- Application control (Run/Pause/..)
- Enable button (like dead man)
- Digital I/O buttons
- Jog keys
4Pendant 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
5Manual 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.
6Manual 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
7Manual 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 frames
axis - Good for Small precise movements
- Offset with in frame
- Translational
- X, Y, Z
- Rotational
- RX, RY, RZ
8Manual Mode Point
2 press and hold
- 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
w.r.t tool frame
9Teaching 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
- Dont 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
10Creating 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
11Example program/function PGX file
lt?xml version"1.0" encoding"utf-8"
?gt ltprogramList xmlns"ProgramNameSpace" gt
ltprogram name"demo" public"false" gt
ltdescription /gt ltparamSection/gt
ltlocalSection/gt ltsourcegt ltcodegt
begin movej(above2,flange,mNomSpeed)
movel(p0,flange,mNomSpeed) movel(p1,flange,m
NomSpeed) movej(above2,flange,mNomSpeed)
movel(p0,flange,mNomSpeed) movec(p2,p1,fla
nge,mNomSpeed) movej(above2,flange,mNomSpeed)
waitEndMove() end lt/codegt
lt/sourcegt lt/programgt lt/programListgt
12Programs/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.
13TaskCreate / 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
14Editing 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.
15Global Variables
- Simple
- Num
- Bool
- String
- Structures
- Trsf
- Joint
- Point
- Frame
- Config
- Tool
- IO
- Dio
- Aio
- Sio
- Saving
16Arrays
- 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
17Flow Control
- taskCreate
- call
- while
- do until
- for
- if
- switch
- wait
- watch
- delay
18Operators
- Math
- assignment
- add, conacate
- - subtract
- multiply
- / divide
- modulus
- ! not
- Comparisons
- equal to
- ! not equal to
- gt greater then
- gt greater then or equal to
- lt less then
- lt less then or equal to
19Instructions
- Some examples
- Abs
- Min
- Max
- Limit
- Power
- Left
- Right
- Mid
- Chr
- Asc
- Size
20Motion
- Instructions
- movej
- movel
- movec
- Stack
- stopMove
- restartMove
- restMotion
- waitEndMove
21Different 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.
22Different Types of Movement (cont)
23Executing an Application
- Navigate to load from disk or create a new
program and store it on the built-in harddrive - Youll 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, youll also
have to press Move/Hold
24Stäubli Robotics Studio
- Recall that VAL3 software can also be developed
with Stäubli Robotics Studio - Its an IDE that runs on a PC
- More user friendly that the teach pendant.
- Offline Programming
- Edit
- Test
- Transfer
25Using 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.
26Stä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 SDSs FTP tool
27Stäubli Robotics Studio
- Locate the project you would like to transfer
28Stäubli Robotics Studio
29Stäubli Robotics Studio
- Edit code transfer back went ready