29
VAL3 Basics Sebastian van Delden USC Upstate [email protected]

VAL3 Basics Sebastian van Delden USC Upstate [email protected]

Embed Size (px)

Citation preview

Page 1: VAL3 Basics Sebastian van Delden USC Upstate svandelden@uscupstate.edu

VAL3 Basics

Sebastian van Delden

USC Upstate

[email protected]

Page 2: VAL3 Basics Sebastian van Delden USC Upstate svandelden@uscupstate.edu

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!!

Page 3: VAL3 Basics Sebastian van Delden USC Upstate svandelden@uscupstate.edu

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

Page 4: VAL3 Basics Sebastian van Delden USC Upstate svandelden@uscupstate.edu

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

Page 5: VAL3 Basics Sebastian van Delden USC Upstate svandelden@uscupstate.edu

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.

Page 6: VAL3 Basics Sebastian van Delden USC Upstate svandelden@uscupstate.edu

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

Page 7: VAL3 Basics Sebastian van Delden USC Upstate svandelden@uscupstate.edu

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

Page 8: VAL3 Basics Sebastian van Delden USC Upstate svandelden@uscupstate.edu

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

Page 9: VAL3 Basics Sebastian van Delden USC Upstate svandelden@uscupstate.edu

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

Page 10: VAL3 Basics Sebastian van Delden USC Upstate svandelden@uscupstate.edu

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

Page 11: VAL3 Basics Sebastian van Delden USC Upstate svandelden@uscupstate.edu

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>

Page 12: VAL3 Basics Sebastian van Delden USC Upstate svandelden@uscupstate.edu

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.

Page 13: VAL3 Basics Sebastian van Delden USC Upstate svandelden@uscupstate.edu

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

Page 14: VAL3 Basics Sebastian van Delden USC Upstate svandelden@uscupstate.edu

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.

Page 15: VAL3 Basics Sebastian van Delden USC Upstate svandelden@uscupstate.edu

Global Variables Simple

Num Bool String

Structures Trsf Joint Point

Frame Config

Tool

IO Dio Aio Sio

Saving

Page 16: VAL3 Basics Sebastian van Delden USC Upstate svandelden@uscupstate.edu

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

Page 17: VAL3 Basics Sebastian van Delden USC Upstate svandelden@uscupstate.edu

Flow Control

taskCreate call

while do until for

if switch

wait watch delay

Page 18: VAL3 Basics Sebastian van Delden USC Upstate svandelden@uscupstate.edu

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

Page 19: VAL3 Basics Sebastian van Delden USC Upstate svandelden@uscupstate.edu

Instructions Some examples

Abs Min Max Limit Power

Left Right Mid Chr Asc

Size

Page 20: VAL3 Basics Sebastian van Delden USC Upstate svandelden@uscupstate.edu

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

Page 21: VAL3 Basics Sebastian van Delden USC Upstate svandelden@uscupstate.edu

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.

Page 22: VAL3 Basics Sebastian van Delden USC Upstate svandelden@uscupstate.edu

Different Types of Movement (cont) Circular Movement

Page 23: VAL3 Basics Sebastian van Delden USC Upstate svandelden@uscupstate.edu

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

Page 24: VAL3 Basics Sebastian van Delden USC Upstate svandelden@uscupstate.edu

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

Page 25: VAL3 Basics Sebastian van Delden USC Upstate svandelden@uscupstate.edu

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.

Page 26: VAL3 Basics Sebastian van Delden USC Upstate svandelden@uscupstate.edu

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:

Page 27: VAL3 Basics Sebastian van Delden USC Upstate svandelden@uscupstate.edu

Stäubli Robotics Studio Locate the project you would like to transfer

Page 28: VAL3 Basics Sebastian van Delden USC Upstate svandelden@uscupstate.edu

Stäubli Robotics Studio Open the project in SRS

Page 29: VAL3 Basics Sebastian van Delden USC Upstate svandelden@uscupstate.edu

Stäubli Robotics Studio Edit code; transfer back went ready