RobotStudio event

Weld with the torch still

Options

Hello everyone, I'm new to this forum, I'm in charge of welding and I wanted to ask for help. I have to weld a tube placed on a spindle, I was wondering if there is a way to weld keeping the torch still. Generally, an ArcLstart and an ArcLend are used to weld, indicating two specific points, but I need the torch to stand still with the arc on. I tried to put a waitime between the two commands but it doesn't seem to work. would anyone know how to give me some indication? Thanks so much for yours answer.
Roger

Comments

  • jmf
    Options
    Can you connect a fixed sensor signal to the spindle and do you a IO unit with open Inputs available?

    If it is possible to setup a sensor, you need to then find out which signal is your welding on/off signal of the powersource and activate/deactivate when the input signal from sensor is High/Low. 

    What I have done, which works for me is to connect a sensor which prompts a Input to the robot and I use that signal to activate/deactivate the welding signal.

    Hope this helps.

        PROC Shaft_One_WP01_Root()
            bShaft_One_WP01:=TRUE;
            VelSet_Slow;
            Activate_Pos_Anti_Clock; (Activate rotating Anti-Clockwise)
            Shaft_One_Approach_Groove; 
            MoveJ RelTool(rtShaft_One_WP01,0,0,-(nShaft_One_Dep50)),v1000,fine,tWeldGun_Straight\WObj:=wobj0; (Approach welding position)
            Set_Reset_Wait_goSchedule_1_20; (Set welding parameter/schedule)
            MoveL rtShaft_One_WP01,v1000,fine,tWeldGun_Straight\WObj:=wobj0; (Weld position)
            Wait_diTT_Pos_Sensor_High; (Wait for Input signal in same position so that welding does have stop/start on same pos /High)
            MoveL rtShaft_One_WP01,v1000,fine,tWeldGun_Straight\WObj:=wobj0; (Weld position)
            Set_doWeld_1_High; (Set welding signal High)
            Wait_diTT_Pos_Sensor_Low; (Wait for Input signal in same position so that welding does have stop/start on same pos /Low)
            Set_doWeld_1_Low; (Set welding signal Low)
            Setdo doFeedBwd_1,1; (Retract wire for 1 sec)
            WaitTime 1; (Wait in current Pos)
            Shaft_One_Dep50; (Depart RelTool 50mm in Z)
            Shaft_One_Dep100; (Depart RelTool 100mm in Z)
            Shaft_One_MoveOut500; (Depart Offs 500mm in Z)
            TPWrite sShaft_One_Roots{1};
            bShaft_One_WP01:=FALSE;
            Deactivate_Pos_Anti_Clock; (Deactivate rotating Anti-Clockwise)
        ENDPROC

        PROC Shaft_One_Approach_Groove()
            IF bShaft_One_WP01=TRUE MoveJ Offs(rtShaft_One_WP01,0,0,(nShaft_One_Dep500)),v1000,fine,tWeldGun_Straight\WObj:=wobj0;
        ENDPROC

        PROC Activate_Pos_Anti_Clock()
            SetDO doTT_Anti_Clock_Wise,1;
            WaitDO doTT_Anti_Clock_Wise,1;
        ENDPROC

        PROC Deactivate_Pos_Anti_Clock()
            SetDO doTT_Anti_Clock_Wise,0;
            WaitDO doTT_Anti_Clock_Wise,0;
        ENDPROC

        PROC Wait_diTT_Pos_Sensor_High()
            WaitDI diTT_Pos_Sensor,1;
        ENDPROC

        PROC Wait_diTT_Pos_Sensor_Low()
            WaitDI diTT_Pos_Sensor,0;
        ENDPROC

        PROC Set_Reset_Wait_goSchedule_1_20()
            IF goSchedule_1=0 THEN
                SetGO goSchedule_1,20;
                WaitGO goSchedule_1,20;
                TPWrite sWeldStrings{1};
            ENDIF
            IF goSchedule_1=20 THEN
                SetGO goSchedule_1,0;
                WaitGO goSchedule_1,0;
            ENDIF
        ENDPROC

        PROC Set_doWeld_1_High()
            SetDO doWeld_1,1;
            WaitDO doWeld_1,1;
        ENDPROC

        PROC Set_doWeld_1_Low()
            SetDO doWeld_1,0;
            WaitDO doWeld_1,0;
        ENDPROC

        PROC Shaft_One_Dep50()
            rtShaft_One_Curr:=CRobT(\Tool:=tWeldGun_Straight\WObj:=wobj0);
            MoveL RelTool(rtShaft_One_Curr,0,0,-(nShaft_One_Dep50)),v1000,fine,tWeldGun_Straight\WObj:=wobj0;
        ENDPROC

        PROC Shaft_One_Dep100()
            rtShaft_One_Curr:=CRobT(\Tool:=tWeldGun_Straight\WObj:=wobj0);
            MoveL RelTool(rtShaft_One_Curr,0,0,-(nShaft_One_Dep100)),v1000,fine,tWeldGun_Straight\WObj:=wobj0;
        ENDPROC

        PROC Shaft_One_MoveOut500()
            rtShaft_One_Curr:=CRobT(\Tool:=tWeldGun_Straight\WObj:=wobj0);
            MoveL Offs(rtShaft_One_Curr,0,0,(nShaft_One_Dep500)),v1000,fine,tWeldGun_Straight\WObj:=wobj0;
        ENDPROC
  • thank you so much for your answer.
    Now I will try to understand if it is applicable to my needs.
    Your help has been very valuable.
    Good day.

    Ruggero
  • jmf
    Options
    Have a look as Trigg commands. They work a lot better for me w.r.t my procedures.

    I have just tested it in the VC on RS and work like a charm. Also makes your code shorter when you remove the coding for activation and deactivation of the signals..