I would like to change wire feed rate and speed dynamically in program while welding is in progress
pskumar
✭
Hi All,
Imagine i have 10 welding of 100 mm are to be made which are at different locations. Important thing is that i need to implement different weld parameters for all these weldings, means i need to have different wire feed rate, speed for all these weldings. Normally we will create 10 different weld data for each of these requirements and will be assigned for weld length.
This creates a lot of weld data in the system and programming also would be become lengthy as we need to write 10 different ARCLSTART and ARCLEND commands with 10 different weld data in these 10 program.
My questions is that is there a way that we can use only one WELD DATA for example WELD01 which is predefined with wire feed rate as 4 m/min and speed as 4 mm/sec and we use this one weld data only in program however we will change the wire feed rate and speed in the program dynamically as and when required in the program. This facilitates very much lesser code in program and would be eliminate to create 10 different weld data in the system.
Can somebody guide how to what type of commands I need to use for achieving this ?
Thanks & Regards
PS KUMAR
Imagine i have 10 welding of 100 mm are to be made which are at different locations. Important thing is that i need to implement different weld parameters for all these weldings, means i need to have different wire feed rate, speed for all these weldings. Normally we will create 10 different weld data for each of these requirements and will be assigned for weld length.
This creates a lot of weld data in the system and programming also would be become lengthy as we need to write 10 different ARCLSTART and ARCLEND commands with 10 different weld data in these 10 program.
My questions is that is there a way that we can use only one WELD DATA for example WELD01 which is predefined with wire feed rate as 4 m/min and speed as 4 mm/sec and we use this one weld data only in program however we will change the wire feed rate and speed in the program dynamically as and when required in the program. This facilitates very much lesser code in program and would be eliminate to create 10 different weld data in the system.
Can somebody guide how to what type of commands I need to use for achieving this ?
Thanks & Regards
PS KUMAR
0
Comments
-
%%%VERSION:1LANGUAGE:ENGLISH%%%MODULE gapMainVAR num nSpeed1:=4.5;VAR num nSpeed2:=5.5;VAR num nSpeed3:=6.5;PERS welddata wd:=[6.5,0,[1,0,0,0,0,266,0,0,0],[0,0,0,0,0,0,0,0,0]];VAR num nPart:=1;PROC Main()IF nPart=1 THENwd.weld_speed:=nSpeed1;TPWrite "Weld Speed adjusted to "+NumToStr(nSpeed1,2);
** Your coding here**incr nPart;Stop;ELSEIF nPart=2 THENwd.weld_speed:=nSpeed2;TPWrite "Weld Speed adjusted to "+NumToStr(nSpeed2,2);
** Your coding here**incr nPart;Stop;ELSEIF nPart=3 THENwd.weld_speed:=nSpeed3;TPWrite "Weld Speed adjusted to "+NumToStr(nSpeed3,2);
** Your coding here**incr nPart;Stop;ENDIFENDPROCENDMODULE
nPart is just test var. You can make it anything you want to identify which welding parameter to allocate to which welding instruction.0 -
This will explain better. TpWrite function just for interest sake.%%%VERSION:1LANGUAGE:ENGLISH%%%MODULE gapMainVAR num nSpeed{3}:=[4.5,5.5,6.5];VAR num nWireFeed{3}:=[10.5,11.5,12.5];VAR num nVolts{3}:=[24.75,26.75,28.75];PERS welddata wd:=[4.5,0,[1,0,24.75,10.5,0,266,0,0,0],[0,0,0,0,0,0,0,0,0]];PERS seamdata sm:=[1,0.5,[0,0,0,0,0,0,0,0,0],0,0,0,0,0,[0,0,0,0,0,0,0,0,0],0,0,[0,0,0,0,0,0,0,0,0],0,0,[0,0,0,0,0,0,0,0,0],0.5];VAR num nWeld;PERS robtarget W1Start:=[[100,0,0],[0,0,0,0],[1,-1,0,0],[100,9E+09,9E+09,9E+09,9E+09,9E+09]];PERS robtarget W2End:=[[200,0,0],[0,0,0,0],[1,-1,0,0],[100,9E+09,9E+09,9E+09,9E+09,9E+09]];VAR num Select;PROC Main()TPErase;TPReadFK Select,"Which Procedure?","One","Two","Three","","";nWeld:=Select;IF nWeld=1 THENwd.weld_speed:=nSpeed{1};wd.main_arc.wirefeed:=nWireFeed{1};wd.main_arc.voltage:=nVolts{1};TPWrite "Weld Speed adjusted to "+NumToStr(nSpeed{1},2);TPWrite "Wire Feed Speed adjusted to "+NumToStr(nWireFeed{1},2);TPWrite "Weld Voltage adjusted to "+NumToStr(nVolts{1},2);ArcLStart W1Start,v1000,sm,wd,fine,tWeldGun_Straight;ArcLEnd W2End,v1000,sm,wd,fine,tWeldGun_Straight;ELSEIF nWeld=2 THENwd.weld_speed:=nSpeed{2};wd.main_arc.wirefeed:=nWireFeed{2};wd.main_arc.voltage:=nVolts{2};TPWrite "Weld Speed adjusted to "+NumToStr(nSpeed{2},2);TPWrite "Wire Feed Speed adjusted to "+NumToStr(nWireFeed{2},2);TPWrite "Weld Voltage adjusted to "+NumToStr(nVolts{2},2);ArcLStart Offs(W1Start,100,0,0),v1000,sm,wd,fine,tWeldGun_Straight;ArcLEnd Offs(W2End,100,0,0),v1000,sm,wd,fine,tWeldGun_Straight;ELSEIF nWeld=3 THENwd.weld_speed:=nSpeed{3};wd.main_arc.wirefeed:=nWireFeed{3};wd.main_arc.voltage:=nVolts{3};TPWrite "Weld Speed adjusted to "+NumToStr(nSpeed{3},2);TPWrite "Wire Feed Speed adjusted to "+NumToStr(nWireFeed{3},2);TPWrite "Weld Voltage adjusted to "+NumToStr(nVolts{3},2);ArcLStart Offs(W1Start,100,0,0),v1000,sm,wd,fine,tWeldGun_Straight;ArcLEnd Offs(W2End,100,0,0),v1000,sm,wd,fine,tWeldGun_Straight;ENDIFENDPROC1
-
Hi,
First of all many many thanks for the code, and it is great help for me.
I am very new to rapid programming, so I just wanted to understand the need for the below two lines, and can you please help in explaining these two lines in more detail.PERS welddata wd:=[4.5,0,[1,0,24.75,10.5,0,266,0,0,0],[0,0,0,0,0,0,0,0,0]];
PERS seamdata sm:=[1,0.5,[0,0,0,0,0,0,0,0,0],0,0,0,0,0,[0,0,0,0,0,0,0,0,0],0,0,[0,0,0,0,0,0,0,0,0],0,0,[0,0,0,0,0,0,0,0,0],0.5];
1) I believe these two lines refer weld data and seam data that we input in the flex pendant, is this right ?
2) Imagine I have created WELD30 parameter, with wire feed and speed in flex pendant, then how WELD30 parameter can be odified dynamically?
Thanks & regards
PSKUMAR0 -
Hello,For your knowledge, you can format text as code using pilcrow sign menu.
An example here.
☑️2024 - RobotStudio® User Group0 -
1 - Not sure what you mean by input in the flex pendant. Do you mean Robot ask User to input value?
2 - Create array variables
For ex. VAR num nSpeed{3}:=[4.5,5.5,6.5]; = Refers all the different speeds you wish to weld at. VAR num nWireFeed{3}:=[10.5,11.5,12.5]; = Refers to all the different wire feed speeds. VAR num nVolts{3}:=[24.75,26.75,28.75]; = Refers to all the different Voltages you require. Can be 100 or 2 does not matter as long as it is declared in the variable.
In your Module you create x1 wd and use the data from the variables to change the data inside wd as you require. You are required to do testing before your production start to allocate and make sure the variable values is correct and call them before your welding commence with the instructions wd.weld_speed:=nSpeed{1}; wd.main_arc.wirefeed:=nWireFeed{1}; wd.main_arc.voltage:=nVolts{1}; Whereby the value in the {} refers to specific value in the array variable.
1 -
Hi
Thanks to JMF and Denis, Great help, my issue is solved.
Once again thanks a lot for the help...
Thnaks ®ards
PSKUMAR0 -
Hello,
In the same spirit, is it possible to change the weld parameters on the fly during a single welding instruction ?
That is, I want to make it possible for an operator to set a new Voltage/WFS to be instantly taken into account while ArcLStart is executed.
Can a timed interrupt do the job ?
Many thanks0 -
Hallo, for an online update during welding you should try tuning from RW-Arc.While welding open "tuning" and you are able to adjust speed, voltage, wire-feed etc.Changes will have immediate effect and you are able to put them back the to original value.For an predefined change during welding you might use an interrupt based on time or position,where you for instance increase the speed by 0.5 mm/s for each 10 mm of your welding.So you do the calculation in the interrupt-routine followed by an arcrefresh.See documentation for arcrefresh.0
-
Thanks matti, ArcRefresh effectively does the job and is clearly illustrated through a simple example in the Arc application manual0
Categories
- All Categories
- 5.5K RobotStudio
- 396 UpFeed
- 18 Tutorials
- 13 RobotApps
- 297 PowerPacs
- 405 RobotStudio S4
- 1.8K Developer Tools
- 250 ScreenMaker
- 2.8K Robot Controller
- 316 IRC5
- 61 OmniCore
- 7 RCS (Realistic Controller Simulation)
- 798 RAPID Programming
- AppStudio
- 3 RobotStudio AR Viewer
- 18 Wizard Easy Programming
- 105 Collaborative Robots
- 5 Job listings