robot 1 user documentation.pdf
TRANSCRIPT
-
8/14/2019 Robot 1 User Documentation.pdf
1/14
Robot 1 User Documentation Jialong
A) Menu structure
B) Robot points
C) ProgramD) Mask description on panel PC
WALTEC Robot -- Auto-Menu
A) Menu structure
Waltec Robot Auto-Menuspeed setup
timing setup
position setup
display values
save positions
Change P_stiop
Change LimZ
Change P_start
Change acceleration
Change deceleration
Change speed
Change give off time
Change pick-up time
Display speed and acc.
Display positions
Blow out
Display timing
Set off
Set on
-
8/14/2019 Robot 1 User Documentation.pdf
2/14
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
1. by pressing 1 and enter user enters position setup menu2. by pressing 2 and enter user enters speed setup menu3. by pressing 3 and enter user enters timing setup menu4. by pressing 4 and enter user enters menu for displaying of actual values like
timers and positions5. by pressing 5 and enter user is saving changed positions6. by pressing 6 and enter user can set variables like speed and LimZ
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 pointP_start (position over hole punching machine mold)
2. by pressing 2 and enter user can change position and orientation of pointP_stop (position over turning device)
3. by pressing 3 and enter user can change the upper z axis limit of robotmovement (LimZ)
-
8/14/2019 Robot 1 User Documentation.pdf
3/14
-
8/14/2019 Robot 1 User Documentation.pdf
4/14
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 used2. set parameter BlowOutOn to off -> blow out valve is not used
-
8/14/2019 Robot 1 User Documentation.pdf
5/14
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 tosuck article. If throw-off-condition is active then he will move to P_throw_off and releasearticle, 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 isnot valid anymore).If parking-condition is active then robot will move to P_secure (then throw-off-conditionand save-condition are not valid anymore). This position should be used in press warmupmode or when changing sucking heads.
If this button is pressed and robot is allowed to place articles inside puncher oder turningdevice then robot will move to P_stop
If this button is pressed then robots throw off all articles.
-
8/14/2019 Robot 1 User Documentation.pdf
6/14
C) Program
See actual robot project robot_1_press_x for example and open this project for printingprogram or see below for program description.
Program consists of 4 tasks which are running parallel (multitasaking):1. main task2. error handling task3. user interface task4. input-output handling task
C.1. Main task: contains main program and moving instructions for robot 1
Global Preserve Integer Vel, LimZAxis, Acc, DecGlobal Preserve Real PickUpTimeGlobal Preserve Real GiveOffTimeGlobal Preserve Real GiveOffTime2
Global Preserve Real BlowOutDelayTimeGlobal Preserve Real BlowOutTimeGlobal Preserve Boolean BlowOutOn
Global Real CycleTimeGlobal Boolean In_Secure_Pos, In_Wait_Pos
Function main ' Main function: start of program !!!!!!
Xqt main_UserInterface Multitasking: starts user interface task Touch Pendant TPXqt main_Error ' Multitasking: starts error handling taskXqt main_BlowOutTimer ' Multitasking: starts input-output handling task
Power High ' Power set to maximumArch 0, 50, 50 ' defines point to point movement (JUMP) with 50mm
vertical up and 50mm vertical down movement
Arch 1, 50, 50LimZ LimZAxis ' height limiting for JUMP instruction -> the lower the fasterAccel Acc, Dec ' defines acceleration and deceleration of robot jointsWeight 1, 250 ' defines weight and inertia settings for robot -> robot will
' choose appropriate maximum accelerations for each jointOn EnableTablePress enabling table turning of press and punching machine -> set output
highOn EnableTablePunchIn_Secure_Pos = False presetting of parametersIn_Wait_Pos = False
Do 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 InPosThen ' when in parking position then allow table turning andOn EnableTablePressOn EnableTablePunchOff VacuumOn in parking position switch vacuum offIn_Secure_Pos = TrueIn_Wait_Pos =False memorize that robot is in parking position
EndIfGoTo End jump to end of program loop
EndIf
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 (batterybuffered) of robot and hence will be deleted after power fail
-
8/14/2019 Robot 1 User Documentation.pdf
7/14
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 positionIf InPosThen ' when in waiting position then allow table turning and
On EnableTablePunchOn VacuumOn in waiting position switch vacuum on
In_Secure_Pos = FalseIn_Wait_Pos =True memorize that robot is in waiting position
EndIfGoTo 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_saveIf InPos Then
On EnableTablePressOn EnableTablePunchOff VacuumOn in save position switch vacuum off
EndIfGoTo End jump to end of program loop
EndIf
If Sw(Start) = 0Then GoTo End ' waiting for start impulse in automatic modeLimZ LimZAxis height limiting -> value can be changed also in automatic modeAccel Acc, Dec acceleration -> values can be changed also in automatic modeSpeed Vel velocity -> values can be changed also in automatic modeTmReset 0 ' Reset Timer 0 -> start of cycle time measurement
! Go P_start! D0; On VacuumOn; D0; Off EnableTablePress! ' move straight toP_Start over mould an immediately switch vacuum on (if notalready on) and dont allow table of press to turn (collisionavoiding)
Signal 1 ' when in mould send signal 1 to task BlowOutTimer -> startblow out of mould if blow out function is switched on (menu)
Wait PickUpTime ' wait pick up time
If Sw(ThrowOff) = 1Then ' if throw off condition is active then move article toP_throw_off and switch vacuum off (use Arch0 definition C0 for jump)
! Jump P_throw_off C0 ! D10; OnEnableTablePress; D100; OffVacuumOn !Else 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; OnEnableTablePress; D90; OffEnableTablePunch !EndIf
Wait GiveOffTime ' wait give off timeOff VacuumOn ' switch vacuum off and place article in mould hole puncherWait GiveOffTime2 ' wait give off time 2
Jump P_wait C(1) ! D10; OnEnableTablePunch; D25; OnVacuumOn!
On Acknowledge, 0.05 ' tell PLC end of cycle (for measurement of robot cycle time)
Output Acknowledge is set to high for 50millisecondsCycleTime =Tmr(0) measure cycle time
Endif
End:Loop
Fend end of main function
-
8/14/2019 Robot 1 User Documentation.pdf
8/14
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 withpress) 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 protectmechanics of robot and press / puncher).
Robot program has to run, otherwise press and hole punching machine cannot work inautomatic mode !!!!! Check for this conditions. If these conditions are not active thenthere 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 pressingbutton initial position. One of these two signals should always be active. Ready is activein manual mode and running is active in automatic mode.
When switching back to manual mode program is stopped for safety reasonsautomatically.
If control cabinet of robot has no power then all robot outputs are in switched off state.I
Function main_Error ' Error taskDo DoLoop -> always look for error conditions
If Oport(3) = 1Then ' oport(3) correspondents to error-signal which is send toPLC
Off EnableTablePress if Error active then stop tables of press and hole puncherOff EnableTablePunchOff VacuumOn switch off robot outputsOff BlowOut
EndIf
If Not (Oport(0) = 1 Or Oport(1) = 1)Then ' oport(0) correspondents to ready-signal andoport(1) to running-signal which are send to PLC to tell stateof robot
Off EnableTablePress if above condition (no ready or no running signal) is activethen stop tables of press and hole puncher
Off EnableTablePunchOff VacuumOn switch off robot outputsOff BlowOut
EndIfLoop
Fend end of main function
-
8/14/2019 Robot 1 User Documentation.pdf
9/14
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 pressingmachine.If blowout function is used (parameter BlowOutOn=1) then timer are started and outputsare set else nothing happens.Blowout valve is used to help to lift article out of the mould. Blowing air should bedirected to the rim of the article. Air can flow between mould bottom and article and willlift article for easier sucking by robot.
Function main_BlowOutTimer ' Input Output handling taskDo DoLoop -> always waiting for Signal 1
WaitSig 1
If BlowOutOn= 1Then If BlowOut is used (Set to on with teach pendant) thenOff BlowOut ' defines start state of valve -> offWait BlowOutDelayTime ' wait delay timeOn BlowOut ' set valve on -> blow out active -> valve openWait BlowOutTime ' wait blow out timeOff BlowOut set valve off -> blow out inactive -> valve closed
Else elseif BlowOut is not used thenOff BlowOut set valve off -> blow out inactive -> valve closed
EndIfLoop
Fend end of main function
-
8/14/2019 Robot 1 User Documentation.pdf
10/14
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 restof the code is very similar.
To display information and to read keys on the teach pendant there are two commandsavailable in SPEL programming language.Print #24,. will write information on the display of teach pendant andInput #24,a$ will wait for user interaction (pressing of keys and entering this information).
Function main_UserInterface ' User interface taskString a$ parameter is used to store string being typed by user on TPDo
Cls #24 clear screen of teach pendantPrint #24, "- WALTEC Robot 1 -- Auto-Menu -----" 'port-number #24 defines printing to Touch Pendant displayPrint #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 keyboardIf a$ = "1"Then if key 1 is pressed then position setup menu is displayed
Cls #24Print #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 keyboardIf a$ = "1" Then if key 1 is pressed then change P_start menu is displayed
L_P_start: Cls #24Print #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 keyboardIf 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 mmElseIf 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 mmElseIf a$ = "3" Then if key 3 is pressed then P_start y-pos is incr.0.2mm
P_start = P_start +Y(0.2) ' Y-axis + x mmElseIf 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 mmElseIf 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 mmElseIf 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.2mmP_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.2mmP_start = P_start -U(1) ' U-axis - x grad
ElseIf a$ = "0" Then if key 0 is pressed then quitGoTo L_end
Else else print Wrong inputPrint #24, "Wrong Input!"
EndIfCls #24Print #24, "actual position P_start:" display actual position P_startPrint #24, "x = ", CX(P_start)
-
8/14/2019 Robot 1 User Documentation.pdf
11/14
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$ = ""
LoopFend
-
8/14/2019 Robot 1 User Documentation.pdf
12/14
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, userhas to enter robot timing in this input field for correct timing calculation! If timing ofrobot 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 thisinput field).
SIGNALS: displays state of PLC outputs which are connected to robot 1 inputs.Start: active, starts robot programThrowOff: active, when throw off condition is on (robot has to throw off articles).SavePosition: active, when save position condition is on (robot has to move to saveposition to avoid collision).SelProg: not usedStop: when active, stops robot program
-
8/14/2019 Robot 1 User Documentation.pdf
13/14
Pause: when active, sets robot to pause stateContinue: when active, ends pause state, robot is working againReset: when active, resets fault condition of robotSetMotorOn: when active, switch motor power onSetMotorOff: when active, switch motor power off
Home: 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 workRunning: robot program is already workingPaused: robot is in pause modeError: robot error active -> reset robotEnableTable: robot is not in collision area with press -> indexing table press is allowedto moveEnableTable2: robot is not in collision area with hole puncher -> indexing table holepuncher is allowed to move
Acknowledge: robot has finished cycle (is back in waiting position) -> active for 50msfor cycle time measurementSError: 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 numbersactive look inside robot manual.Warning: robot warning active -> check warning number at robot power module andtry 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 theprogram. In the case of possible program failures please forward the pertaining numberto the WALTEC Company.
CYCLE TIME (RESIDUAL): see Screen Description: Cycle time.
-
8/14/2019 Robot 1 User Documentation.pdf
14/14
If you press info button or if you select key F8 you get additional information
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 andparking position.
Use selector buttons to change definitions.
Priority of conditions (order high > low priority):Highest priority: Robot 1 parking conditionMedium priority: Robot 1 save position conditionLowest priority: Robot 1 throw off condition
In other words, always the condition with highest priority is active, even if one withlower priority is also active!!!!