RobotStudio event

Interrupt Welding process when Input signal is activated or deactivate on NON ABB Turntable

Hi Everyone.

Sorry if this has been discussed previously but until now I have not found any conclusive options that is going to be viable.

Setup
Controller: IRC5
Robot Type: IRB 4600-20/2.50 Type C
Robot Software version: RW_6.02.1029
Track: IRBT 4004 Type A 10.9 m
Track Motion: Track Motion x004 Base
Weldguide: Weldguide iii
Powersource: ESAB Mig 5000i

Positioner
NON ABB positioner (which another company is busy refitting newer motors and gearbox to accommodate the process speed because the standard motors and gearbox is too slow)

Process
Weld up bevels (dimensions various from min 20mm - 70mm) on shafts.

We need use multi-pass option to complete the bevels but also the bevels cannot be completed at once because the welding sequence should be evenly distributed to distribute the heat input correctly.

We will be getting a signal from the positioner for the Zero/Reference position via a limit switch.

The Zero/Reference signal will tell the Robot to move to the approach position and then the welding process should be activated and when full revolution have been accomplished, deactivate the welding process, update End Point and move to depart position. The current problem is that we do not know where the end point is going to be that is why the end point must be updated 

How do we activate the powersource welding(schedule, weaving, tracking that is needed for multi-pass) without the Arc-Start, Arc-L and Arc-End instructions?

Sorry for the silly questions. 

Hope someone can assist

Comments

  • Here is some more detailed info about the current system without Positioner


  • The best solution (apart from purchasing a positioner from ABB) would be to use ABB motor units for the rebuild of the existing positioner . You would then get feed back into the robot controller and thus coordinated motion - so although the robot is essentially stationary above the rotating work piece (apart from any weaving) the robot knows the work piece is moving and will rotate it at the appropriate rate to give the wanted weld speed using the normal weld instructions.

    If the above is not possible you could make a RAPID routine to start and another stop the welding process you can call these at the appropriate time (maybe having a WaitDI for the signal from the zero limit switch in the main code). The routines would simply make the required output signals to the power source e.g. schedule number, arc on and wait for the input back from the power source saying the arc was established.

    Weaving could be a programmed path maybe in a While loop which is true when the zero limit is not made (so it will exit the loop when it reached the zero limit again) - but will require the limit switch to be made long enough for the top of the loop to catch it).

    WeldGuide requires the use of the tracking arguments in the welding instructions while it is probably possible at a lower level to interface to it....

    That said do you need WeldGuide if you are doing a simple circular weld? The multi-pass can be taken care of by offsetting the original weld pass robot position(s) according to the number of revolutions done in the main code.


  • If the above is not possible you could make a RAPID routine to start and another stop the welding process you can call these at the appropriate time (maybe having a WaitDI for the signal from the zero limit switch in the main code). The routines would simply make the required output signals to the power source e.g. schedule number, arc on and wait for the input back from the power source saying the arc was established.

    Weaving could be a programmed path maybe in a While loop which is true when the zero limit is not made (so it will exit the loop when it reached the zero limit again) - but will require the limit switch to be made long enough for the top of the loop to catch it).

    WeldGuide requires the use of the tracking arguments in the welding instructions while it is probably possible at a lower level to interface to it....

    That said do you need WeldGuide if you are doing a simple circular weld? The multi-pass can be taken care of by offsetting the original weld pass robot position(s) according to the number of revolutions done in the main code.


    Hi graemepaulin

    Do you have a example of rapid programming of how it should be done as you described it without the ABB motor units?
  • No is the quick answer.

    If know (or can you find out from ESAB) what I/O signals the power source needs to start then I could prepare something

  • Hi graemepaulin

    I did get the welding activation signal from powersource and got a routine working with the interrupting signal input. 

    Here is the rough Rapid I did. 
            ! Move to safe approach position
            MoveL RelTool(Bevel_Centre_Point1,0,0,-100),v1000,fine,tWeldGun_Long\WObj:=wobj0;

            ! Call required Schedule to Powersource
            SetGO goSchedule_1,12;

            ! Wait for required Schedule to be loaded to Powersource
            WaitGO goSchedule_1,12;

            ! Move to Welding position
            MoveL Bevel_Centre_Point1,v1000,fine,tWeldGun_Long\WObj:=wobj0;

            ! Wait for External Axis Input Signal to be High
            WaitDI diPLC_B,1;

            ! Switch Welding on
            SetDO doWeld_1,1;

            ! Wait for Welding output Signal High
            WaitDO doWeld_1,1;

            ! Wait for External Axis Input Signal to be Low
            WaitDI diPLC_B,0;

            ! Wait for External Axis Input Signal to be High again for following timed welding delay 
            WaitDI diPLC_B,1;

            ! Wait in the current position for 1 second for overlapping (overlap start point for crater fill)
            WaitTime 1;

            ! Switch Welding off 
            SetDO doWeld_1,0;

            ! Wait for Welding output Signal Low
            WaitDO doWeld_1,0;

            ! Reset Schedule on Powersource to 0
            SetGO goSchedule_1,0;

            ! Wait for Schedule on Powersource to be 0
            WaitGO goSchedule_1,0;

            ! Move to safe depart position 5 mm in Z
            MoveL RelTool(Bevel_Centre_Point1,0,0,-5),v1000,fine,tWeldGun_Long\WObj:=wobj0;

            ! Move to safe depart position 100 mm in Z
            MoveL RelTool(Bevel_Centre_Point1,0,0,-100),v1000,fine,tWeldGun_Long\WObj:=wobj0;

    No weaving, no tracking and no Arc Replay function with this way so multi pass option is being replaced by offsetting the original position. A bit of an issue if the welding preps differ from part to part, but still a workable solution.

    It worked well with the test samples I did and will only see the real application welding when the setup of the External Axis is completed.

    Thank you for your help.