Welcome, Guest. Please login or register.
Did you miss your activation email?
February 09, 2012, 02:27:47 AM
Home Help Login Register
News: Any Problems or Experience with Industrial Robots ?
Register and place your Question / Answer to worldwide Robotexperts right here !

+  Robotforum | Support for Robotprogrammer and Users
|-+  Industrial Robot Help and Discussion Center
| |-+  ABB Robot Forum (Moderators: Werner Hampel, Sven Weyer, Jim Tyrer, Napierian)
| | |-+  suspending a program mid program
0 Members and 1 Guest are viewing this topic. « previous next »
Pages: [1] Print
Author Topic: suspending a program mid program  (Read 358 times)
sweens
Newbie
*
Offline Offline

Posts: 8


« on: March 01, 2010, 11:24:06 AM »

Hi all,
I have a query that someone out there might be able to help me with. We have 3 ABB welding robots in 3 parallel cells. The center cell also does some welding ( welding in a stainless component) on the the cells on either side of them as well as welding a stainless component on its own jig.. The way the system is setup at the moment the  stainless robot( Center one) gives priority to the cell on either side of it, that is it will not start on its own welding op unless there is no signal from either of the other two cells. However the robot can spend up to 40% of its time waiting for one of the two cells to reach the correct position in its program to weld the stainless component on the adjoining cells.During this time the robot will not start its own welding op. I was wondering if it is possible for the robot to be welding its own op and upon receiving a signal from one of the other robots, to suspend its own welding op and  move to one of the other robots and weld in its stainless component and then return to its own primary op and continue where it stopped.  This would greatly increase its efficiency.

Sweens
Logged
luetin
Jr. Member
**
Offline Offline

Posts: 93


« Reply #1 on: March 01, 2010, 01:16:13 PM »

Yeah, you could check signals from the other robots either by interupt or at certain positions in the program and then move out and weld the other part.

You would probably need to do some major reprogramming to have the robot resume the primary op again, but it's quite possible.
Logged
SkyeFire
Global Moderator
*****
Offline Offline

Posts: 1627


« Reply #2 on: March 03, 2010, 04:10:26 PM »

Yeah, the hard bit is retaining the memory of where you left off.  That can get very complex, very fast, depending on your programming skills.  And (assuming this is a seam-welding application and not a spot-welding app) you probably don't want to break welding in the middle of a seam.

My rough-and-ready suggestion is to break up your stainless welding into smaller subroutines, perhaps one for each seam.  Have the first and last point of each seam program be the same position, some sort of "clear" position above the work piece from which you can go into any seam program, or go home, or jump over to one of the side-cell welding programs.

Then set up your "main" program something like this (note, this is not valid RAPID code):
Code:
CALL StainlessSeam1Program()
IF SideCellReadySignal THEN CALL SideCellProgram()
CALL StainlessSeam2Program()
IF SideCellReadySignal THEN CALL SideCellProgram()
CALL StainlessSeam3Program()
IF SideCellReadySignal THEN CALL SideCellProgram()
....and so on

This basic approach can be refined to whatever degree you want and feel comfortable doing.  You'll still have some wasted time, probably, but the worst case waste will only be the amount of time your longest StainlessSeamX program takes to run.
Logged
Pages: [1] Print 
« previous next »
Jump to:  


Login with username, password and session length

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2011, Simple Machines Valid XHTML 1.0! Valid CSS!