Anda di halaman 1dari 14

Robot User Documentation UOG

A) B) C) D) Menu structure Robot points Program Mask description on panel PC

WALTEC Robot -- Auto-Menu

A)

Menu structure
position setup
Change P_start

Change P_stiop
Change LimZ

Waltec Robot Auto-Menu


speed setup
Change speed

Change acceleration
Change deceleration

timing setup

Change pick-up time

Change give off time

display values

Display positions

Display speed and acc.


Display timing

save positions
Blow out
Set on

Set off

User interface of ROBOT is displayed and can be used when robot-program is running !!! and key-switch of teach pendant is in position Automatic. To start robot-program switch press (hole punching machine) from manual to automatic operating mode and press button initial position.

- WALTEC Robot 1 -- Auto-Menu ----1= position setup 2= speed setup 3= timing setup 4= display actual values 5= save positions 6= blowout on/off -------- actual values ----------t_cycle= 1.34 s

by pressing 1 and enter user enters position setup menu by pressing 2 and enter user enters speed setup menu by pressing 3 and enter user enters timing setup menu by pressing 4 and enter user enters menu for displaying of actual values like timers and positions 5. by pressing 5 and enter user is saving changed positions 6. by pressing 6 and enter user can set variables like speed and LimZ

1. 2. 3. 4.

Position setup menu ROBOT

menu position setup 1= change P_start 2= change P_stop 3= change LimZ

1. by pressing 1 and enter user can change position and orientation of point P_start (position over hole punching machine mold) 2. by pressing 2 and enter user can change position and orientation of point P_stop (position over turning device) 3. by pressing 3 and enter user can change the upper z axis limit of robot movement (LimZ)

Speed setup menu ROBOT

menu speed setup 1= change speed 2= change acceleration 3= change deceleration

1. by pressing 1 and enter user can change maximum speed 2. by pressing 2 and enter user can change acceleration 3. by pressing 3 and enter user can change deceleration of robot

Timing setup menu ROBOT

menu timing setup 1= change pickup time 2= change place time

1. by pressing 1 and enter user can change pickup time (time robot 2 waits over mold and trying to suck article) 2. by pressing 2 and enter user can change place time (time robot 2 waits over turning device before moving back to wait position)

Actual values menu ROBOT

menu actual values 1= display positions 2= display speed, acc 3= display timing

1. by pressing 1 and enter user can display P_start and P_stop positions 2. by pressing 2 and enter actual speed and acceleration values are displayed 3. by pressing 3 and enter actual timer values are displayed

Save points to file

Save points to file After changing positions of points dont forget to save them to file!!!

Blow out on/off menu ROBOT

menu blow out 1= on 2= off 1. set parameter BlowOutOn to on -> blow out valve is used 2. set parameter BlowOutOn to off -> blow out valve is not used

B)

Robot points

Robot is waiting over mould for start-signal from PLC -> P_wait. After getting its start impulse it will move to P_start and wait pickup time and trying to suck article. If throw-off-condition is active then he will move to P_throw_off and release article, else he will place in article inside hole punching machine (robot 1) or turner (robot 2). If save-condition is active then robot will move to P_save (then throw-off-condition is not valid anymore). If parking-condition is active then robot will move to P_secure (then throw-off-condition and save-condition are not valid anymore). This position should be used in press warmup mode or when changing sucking heads.

If this button is pressed and robot is allowed to place articles inside puncher oder turning device then robot will move to P_stop

If this button is pressed then robots throw off all articles.

C)

Program

See actual robot project robot_1_press_x for example and open this project for printing program or see below for program description. Program consists of 4 tasks which are running parallel (multitasaking): 1. main task 2. error handling task 3. user interface task 4. input-output handling task C.1. Main task: contains main program and moving instructions for robot 1
Global Preserve Integer Vel, LimZAxis, Acc, Dec Global Preserve Real PickUpTime Global Preserve Real GiveOffTime Global Preserve Real GiveOffTime2 Global Preserve Real BlowOutDelayTime Global Preserve Real BlowOutTime Global Preserve Boolean BlowOutOn Global Real CycleTime Global Boolean In_Secure_Pos, In_Wait_Pos

Defines parameters which are valid all over the program (global) and are always stored inside SRAM memory of robot (preserve) and hence cannot be deleted (after power fail)

Defines parameters which are valid all over the program (global) and are not stored inside SRAM memory (battery buffered) of robot and hence will be deleted after power fail

Function main Xqt main_UserInterface Xqt main_Error Xqt main_BlowOutTimer Power High Arch 0, 50, 50 Arch 1, 50, 50 LimZ LimZAxis Accel Acc, Dec Weight 1, 250 On EnableTablePress On EnableTablePunch In_Secure_Pos = False In_Wait_Pos = False Do

' Main function: start of program !!!!!! Multitasking: starts user interface task Touch Pendant TP ' Multitasking: starts error handling task ' Multitasking: starts input-output handling task ' Power set to maximum ' defines point to point movement (JUMP) with 50mm vertical up and 50mm vertical down movement ' height limiting for JUMP instruction -> the lower the faster ' defines acceleration and deceleration of robot joints ' defines weight and inertia settings for robot -> robot will ' choose appropriate maximum accelerations for each joint enabling table turning of press and punching machine -> set output high presetting of parameters endless doloop If (Sw(SecurePosition) = 1) And (In_Secure_Pos = False) Then ' If robot should move to parking position and it is not already in parking position then it will move with low speed to parking position -> Point P_secure Speed 10 10% of maximum speed

Jump P_secure jump movement to parking position If InPos Then ' when in parking position then allow table turning and On EnableTablePress On EnableTablePunch Off VacuumOn in parking position switch vacuum off In_Secure_Pos = True In_Wait_Pos = False memorize that robot is in parking position EndIf GoTo End jump to end of program loop EndIf

If (Sw(SecurePosition) = 0) And (In_Secure_Pos = True) Then ' If robot should move not!!! to parking position and it is already in parking position then it will move with low speed to waiting position over mould Speed 10 10% of maximum speed

Jump P_wait jump movement to waiting position If InPos Then ' when in waiting position then allow table turning and On EnableTablePunch in waiting position switch vacuum on On VacuumOn In_Secure_Pos = False In_Wait_Pos = True memorize that robot is in waiting position EndIf GoTo End jump to end of program loop EndIf If (Sw(SavePosition) = 1) And (Sw(SecurePosition) = 0) Then If robot has to move to save position (for example some article is not pressed) then robot will move up to point P_save

Go P_save If InPos Then On EnableTablePress On EnableTablePunch Off VacuumOn in save position switch vacuum off EndIf GoTo End jump to end of program loop EndIf If Sw(Start) = 0 Then GoTo End ' waiting for start impulse in automatic mode LimZ LimZAxis height limiting -> value can be changed also in automatic mode acceleration -> values can be changed also in automatic mode Accel Acc, Dec Speed Vel velocity -> values can be changed also in automatic mode TmReset 0 ' Reset Timer 0 -> start of cycle time measurement

Go P_start ! D0; On VacuumOn; D0; Off EnableTablePress ! ' move straight to P_Start over mould an immediately switch vacuum on (if not already on) and dont allow table of press to turn (collision avoiding) Signal 1 ' when in mould send signal 1 to task BlowOutTimer -> start blow out of mould if blow out function is switched on (menu) Wait PickUpTime ' wait pick up time If Sw(ThrowOff) = 1 Then ' if throw off condition is active then move article to P_throw_off and switch vacuum off (use Arch0 definition C0 for jump)

!
Else

Jump P_throw_off C0 ! D10; On EnableTablePress; D100; Off VacuumOn ! if throw off condition is not active then jump to hole punching machine (P_stop) and dont allow punching table to move Jump P_stop C0 ! D10; On EnableTablePress; D90; Off EnableTablePunch !

!
EndIf

Wait GiveOffTime ' wait give off time Off VacuumOn ' switch vacuum off and place article in mould hole puncher Wait GiveOffTime2 ' wait give off time 2 Jump P_wait C(1) ! D10; On EnableTablePunch; D25; On VacuumOn ! On Acknowledge, 0.05 CycleTime = Tmr(0) Endif End: Loop Fend end of main function ' tell PLC end of cycle (for measurement of robot cycle time) Output Acknowledge is set to high for 50milliseconds measure cycle time

C.2. Error handling task: contains code for error handling This task is started at the beginning of the main task and is always running in background (multitasking) and is checking for errors. If any error (for example collision of robot with press) occurs or robot program is not ready or not running then outputs of robot are switched off and tables of press and hole puncher are not allowed to turn (to protect mechanics of robot and press / puncher). Robot program has to run, otherwise press and hole punching machine cannot work in automatic mode !!!!! Check for this conditions. If these conditions are not active then there is probably some error still active !!!! Ready-signal is active when robot is switched on. Running-signal is active when robot program is running !!!!! Robot program is started by switching from manual to automatic mode and pressing button initial position. One of these two signals should always be active. Ready is active in manual mode and running is active in automatic mode. When switching back to manual mode program is stopped for safety reasons automatically. If control cabinet of robot has no power then all robot outputs are in switched off state. I
Function main_Error Do If Oport(3) = 1 Then Off EnableTablePress Off EnableTablePunch Off VacuumOn Off BlowOut EndIf ' oport(0) correspondents to ready-signal and If Not (Oport(0) = 1 Or Oport(1) = 1) Then oport(1) to running-signal which are send to PLC to tell state of robot Off EnableTablePress if above condition (no ready or no running signal) is active then stop tables of press and hole puncher Off EnableTablePunch Off VacuumOn switch off robot outputs Off BlowOut EndIf Loop Fend end of main function ' Error task DoLoop -> always look for error conditions ' oport(3) correspondents to error-signal which is send to PLC if Error active then stop tables of press and hole puncher switch off robot outputs

C.3. Input Output handling task: contains code for interacting with external devices This task is started at the beginning of the main task and is always running in background (multitasking) and switches the blow out valve. When signal 1 of main task is send to blowout timer task (WaitSig 1) then blowout timer is started. Signal 1 of main task is send to this task when robot arrives in P_start point of pressing machine. If blowout function is used (parameter BlowOutOn=1) then timer are started and outputs are set else nothing happens. Blowout valve is used to help to lift article out of the mould. Blowing air should be directed to the rim of the article. Air can flow between mould bottom and article and will lift article for easier sucking by robot.
Function main_BlowOutTimer Do WaitSig 1 If BlowOutOn = 1 Then Off BlowOut Wait BlowOutDelayTime On BlowOut Wait BlowOutTime Off BlowOut Else Off BlowOut EndIf Loop Fend ' Input Output handling task DoLoop -> always waiting for Signal 1 If BlowOut is used (Set to on with teach pendant) then ' defines start state of valve -> off ' wait delay time ' set valve on -> blow out active -> valve open ' wait blow out time set valve off -> blow out inactive -> valve closed elseif BlowOut is not used then set valve off -> blow out inactive -> valve closed

end of main function

C.4. User interface task: contains program for interacting with user and display text and values on teach pendant Only an excerpt of the whole code of this task is shown and commented because the rest of the code is very similar. To display information and to read keys on the teach pendant there are two commands available in SPEL programming language. Print #24,. will write information on the display of teach pendant and Input #24,a$ will wait for user interaction (pressing of keys and entering this information).
Function main_UserInterface ' User interface task String a$ parameter is used to store string being typed by user on TP Do clear screen of teach pendant Cls #24 Print #24, "- WALTEC Robot 1 -- Auto-Menu -----" 'port-number #24 defines printing to Touch Pendant display Print #24, "1= position setup" Print #24, "2= speed setup" Print #24, "3= timing setup" Print #24, "4= display actual values" Print #24, "5= save positions" Print #24, "6= blowout on/off" Print #24, "-------- actual values ----------- " Print #24, "t_cycle=", CycleTime, " s" now menu is printed and Input #24, a$ waiting for pressing of key on alphanumeric keyboard If a$ = "1" Then if key 1 is pressed then position setup menu is displayed Cls #24 Print #24, "menu position setup" Print #24, "1= change P_start" Print #24, "2= change P_stop" Print #24, "3= change LimZ" Input #24, a$ waiting for pressing of key on alphanumeric keyboard if key 1 is pressed then change P_start menu is displayed If a$ = "1" Then L_P_start: Cls #24 Print #24, "change position P_start" Print #24, "1= x+0.2mm ", "2=x-0.2mm " Print #24, "3= y+0.2mm ", "4=y-0.2mm " Print #24, "5= z+0.2mm ", "6=z-0.2mm " Print #24, "7= u+1grad ", "8=u-1grad " Print #24, "0= quit" Input #24, a$ waiting for pressing of key on alphanumeric keyboard If a$ = "1" Then if key 1 is pressed then P_start x-pos is incr. 0.2mm P_start = P_start +X(0.2) ' X-axis + x mm ElseIf a$ = "2" Then if key 2 is pressed then P_start x-pos is decr.0.2mm P_start = P_start -X(0.2) ' X-axis - x mm if key 3 is pressed then P_start y-pos is incr.0.2mm ElseIf a$ = "3" Then P_start = P_start +Y(0.2) ' Y-axis + x mm ElseIf a$ = "4" Then if key 4 is pressed then P_start y-pos is decr.0.2mm P_start = P_start -Y(0.2) ' Y-axis - x mm ElseIf a$ = "5" Then if key 5 is pressed then P_start z-pos is incr.0.2mm P_start = P_start +Z(0.2) ' Z-axis + x mm ElseIf a$ = "6" Then if key 6 is pressed then P_start z-pos is decr.0.2mm P_start = P_start -Z(0.2) ' Z-axis - x mm ElseIf a$ = "7" Then if key 7 is pressed then P_start u-pos is incr.0.2mm P_start = P_start +U(1) ' U-axis + x grad ElseIf a$ = "8" Then if key 8 is pressed then P_start u-pos is decr.0.2mm P_start = P_start -U(1) ' U-axis - x grad ElseIf a$ = "0" Then if key 0 is pressed then quit GoTo L_end Else else print Wrong input Print #24, "Wrong Input!" EndIf Cls #24 Print #24, "actual position P_start:" display actual position P_start Print #24, "x = ", CX(P_start)

Print #24, "y = ", CY(P_start) Print #24, "z = ", CZ(P_start) Print #24, "u = ", CU(P_start) GoTo L_P_start ElseIf a$ = "2" Then if key 2 is pressed then other menu is displayed and so on . Else Print #24, "Wrong Input!" EndIf L_end: a$ = "" Loop Fend

D)

Mask description on panel PC

F6 of Basic mask press

Figure 1: Basic mask robot 1 DELAY TIME START: defines delay time. PICK UP TIME: because PLC dont know programmed timing in robot program, user has to enter robot timing in this input field for correct timing calculation! If timing of robot program is changed, please dont forget to enter changed timing values! GIVE OFF TIME: see above. CYCLE TIME: pleaser enter cycle time of robot 1 (just copy value on the left of this input field). SIGNALS: Start: ThrowOff: SavePosition: position to SelProg: Stop: displays state of PLC outputs which are connected to robot 1 inputs. active, starts robot program active, when throw off condition is on (robot has to throw off articles). active, when save position condition is on (robot has to move to save avoid collision). not used when active, stops robot program

Pause: Continue: Reset: SetMotorOn: SetMotorOff: Home:

when active, sets robot to pause state when active, ends pause state, robot is working again when active, resets fault condition of robot when active, switch motor power on when active, switch motor power off when active and home defined moves robot to home position

STATE: displays state of robot outputs which are connected to PLC inputs. Ready: shows robot is ready to work Running: robot program is already working Paused: robot is in pause mode Error: robot error active -> reset robot EnableTable: robot is not in collision area with press -> indexing table press is allowed to move EnableTable2: robot is not in collision area with hole puncher -> indexing table hole puncher is allowed to move Acknowledge: robot has finished cycle (is back in waiting position) -> active for 50ms for cycle time measurement SError: robot severe error active -> switch off and then on robot power module. Watch for error number. If after switch on there are still some error numbers active look inside robot manual. Warning: robot warning active -> check warning number at robot power module and try to solve problem -> robot is allowed to work if warnings are active. AtHome: robot is in home position

STEP: Displays the step of the program process. It is Important to search for errors in the program. In the case of possible program failures please forward the pertaining number to the WALTEC Company. CYCLE TIME (RESIDUAL): see Screen Description: Cycle time.

or if you select key F8 you get additional information If you press info button about why robot 1 throws off articles or why robot 1 has moved to save position. F8 of Basic mask robot 1

Figure 2: Basic mask robot 1 state In this mask you can watch and define conditions for throw off , save position and parking position.

Use selector buttons

to change definitions.

Priority of conditions (order high > low priority): Highest priority: Robot 1 parking condition Medium priority: Robot 1 save position condition Lowest priority: Robot 1 throw off condition In other words, always the condition with highest priority is active, even if one with lower priority is also active!!!!

Anda mungkin juga menyukai