Forum Migration Notice
We're transitioning to a more modern community platform by the end of this year. Learn about the upcoming changes and what to expect.

Weld with the torch still


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

  • 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
  • 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..