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

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