PDA

View Full Version : Building a small capacitive discharge welder-edm-tig



Dawai
12-18-2008, 11:37 AM
THE home brewed tig welder created, worked on by others.. it has a H-bridge output unit.. OKAY?? that is eight power transistors tied to "steal" the power from the opposing wave. It throws basically DC+ onto one line and DC- on the other alternately..

THIS is AC frequency.. I only use AC tig in my shop for welding aluminum.. RIGHT??

TO make a mucho-simplified DC only unit.. after diodes create the dc off the transformer you could use ONLY ONE expensive power transistor to make varible DC via pedal control.. RE:1/4th the build complication and cost..

With the same unit.. charging a lead in DC capacitor bank via switches/resistors/ SSR relay.. you could concievably rig up a really neat capacitive discharge welder with adjustable timebase.. gas purge.. and high frequency arc stabilization. (old neon light transformer?)

Reverse polarity on that capacitive discharge welder and guess what?? you got a edm power supply.. (since I got a bad spindle in the cnc bridgeport it'd work great for making cnc-edm)

I got the whole rig laid out to cost less than $200.. I am attempting to build it around a basic stamp and opto22 ttl-interface boards.. so far they have been running the opto22 for two weeks now.. ultra reliable.. THE secondary side is the thing-logic wise I have been struggling with.. the cpu will only do one thing at a time, one line.. but is fast.. meaning I need to come up with a circuit that will keep the pwm going while the cpu is doing another line.. that is the only hold up right now. It might be a non issue with a capacitor and resistor in the circuit.. I'll have to tune that some more thou.

My end hope is to have a DC micro adjustable tig supply with less than $200 total invested.. With about a dozen parts inside total.. nothing complicated. AND builders could fix it themselves since building it, they'd understand it..

I first had a spot welder laid out in the same chassis.. to KISS rule.. I seperated it to a simpler unit.. a socketed timer, foot switch, and relay.. I need to purchase some copper bar stock to make some tips for it.. and it is done..

The basis for the power supplies is the coils from a old hobart three phase battery charger from a hyster.. I got $15 worth of copper off the spot welder.. have two more coils to play with.. WITH the spot welder, you strip the secondary and just add in a couple wraps welding cable to pick up a volt and half to three volts output at 300 amps..

AlleyCat
12-18-2008, 12:45 PM
David- You could try a PIC or other type of microcontroller that offers hardware PWM (HPWM). This way the PWM runs in the background while the processor is doing other things. This sounds like an interesting project so keep us posted on your progress. Tom

Dawai
12-18-2008, 02:25 PM
http://img.photobucket.com/albums/v85/ibewgypsie/windmillcontrols.jpg
That's a old stamp tied to two opto22 PB4 ttl-output boards.. I was playing with a control scheme for the windmill project too..
It only processes one line of PWM at a time.. I am looking into some A-D convertors to read current through-put also.. adc0831.. Minimal parts if I can.
http://img.photobucket.com/albums/v85/ibewgypsie/StrippedoutSpotweldertransformer-1.jpg
This is the gutted transformer for the spot welder project.. the one for this project is the same, with the copper still in place..

macona
12-19-2008, 06:57 PM
The commercial capacitive spot welders I have worked on were rather simple. Two good size electrolytic caps charged by a voltage doubler to a max of around 200vdc. The stored energy was dumped through the leads via a large hockey puck SCR. Since SCRs latch closed it would dump the entire contents of the caps at once. Power is controlled through varying the voltage the caps were charged to.

Dawai
12-20-2008, 02:51 PM
http://img.photobucket.com/albums/v85/ibewgypsie/PICT0531.jpg

THIS Scott Edwards Lcd has kicked my butt now for several days.. sometimes they communicate in Hex-ascii.. other times in Hex.. then straight ascii... The older ones you actually created a binary pixel font in the cpu.. THIS SOB. DOES not work like website said. Three full days on a communication problem.

OKAY.. yes sir.. charge time, then gas purge, then hi frequency cleaning, then a spark discharge PWM pulse to the transistor..

Other program will be a light tig rig..

And hopefully a edm.. if I can make it work.. that is theoretical at the moment.. I am still investigating the charge - bus feedback circuits.. the simple biased bus above ground may not work on acount of the injected 8500vac hi frequency.. SO.. I am tinkering..

Dawai
12-24-2008, 07:58 PM
First half the stamp program code

' {$STAMP BS2}
'{Stamp2}
' {$PBASIC 2.5}

#SELECT $STAMP
#CASE BS2, BS2E, BS2PE
Scale CON 300 ' to ms for 2 us per unit
#CASE BS2SX, BS2P, BS2PX
Scale CON 1250 ' to ms for 0.8 us per unit
#ENDSELECT


AA VAR Word
Mode VAR Word
Chg VAR Word 'charge var pulse out to load cap bank
GasPurge VAR Word 'Gas purge length
HfPuls VAR Word ' Hi freq pulse length, cap in circuit to delay off
IgbtDuty VAR Word ' PWM duty cycle
IgbtPuls VAR Word ' PWM MSec out
PostPurge VAR Word 'time to hold gas on after pulse
Charge PIN 0 'assign pin 0 to SSR charge relay
GasSol PIN 1
HiFreq PIN 2
IGBT PIN 3
FootSw PIN 7
IncrA PIN 4
IncrB PIN 5
PrgSw PIN 6
ProgramPin PIN 6 'switch selector to enter values via encoder input
Baudrate CON 32+$4000
Rate CON 10
LCD PIN 15
A CON 65


Setup:
HIGH Charge 'make P0 high (LED off)
HIGH GasSol 'make P1 high
HIGH HiFreq 'Make P2 high
HIGH IGBT 'make P3 high
INPUT 4 'Plus button
INPUT 5 'Minus button
INPUT 6 'Program button
INPUT 7 'Foot pedal

Setvalues:
Mode = 1 'Tiny Tig weld
Chg = 1601
HfPuls =500
IgbtDuty = 125 'pwm duty cycles..
IgbtPuls = 255 '
GasPurge = 1501
GOSUB LcdPrint

Main:
IF mode = 1 THEN GOSUB TinyTig
IF mode = 2 THEN GOSUB Capweld
IF Mode = 3 THEN GOSUB EDM
IF Mode = 4 THEN GOSUB Plasma
GOTO Main

TinyTig: 'this is the capacitive discharge welder subroutine.

GOSUB changeheat
IF Mode <> 1 THEN RETURN 'send back to the main loop
IF PrgSw = 0 THEN GOSUB program
IF CHARGE=0 THEN HIGH CHARGE 'TURN It back off.
IF Hifreq=0 THEN HIGH HiFreq 'turn it back off
IF GasSol=0 THEN HIGH GasSol 'turn the gas back off
IF HiFreq=0 THEN HIGH HiFreq 'turn the hi freq back off.
IF FootSw = 1 THEN GOTO TinyTig 'loop back up, looking for foot activation

LOW GasSol 'turn on the gas solonoid
LOW Charge 'turn on the charge SSR
IF FOOTSW = 1 THEN GOTO TinyTig 'loop back up, looking for foot activation
LOW GasSol 'turn on the gas solonoid
PAUSE GasPurge 'delay this long
IF FootSw = 1 THEN GOTO TinyTig 'loop back up, looking for foot activation
LOW HiFreq 'turn it on
IF FootSw = 1 THEN GOTO TinyTig 'loop back up, looking for foot activation
PWM IGBT,IgbtDuty,HFPuls ' PWM duty, HFpuls msecs..
HIGH HiFreq 'turn it off
FootStillDown:
PWM IGBT,IgbtDuty,IgbtPuls 'output this amount of PWM to the transistor..
IF IncrA=1 THEN IgbtDuty=IgbtDuty+10
IF IncrB=1 THEN IgbtDuty=IgbtDuty-10
IF Igbtduty>255 THEN Igbtduty=255
IF Igbtduty<10 THEN IgbtDuty=10

IF footsw=0 THEN GOTO FootStillDown
HIGH Charge 'turn off the charge SSR
PAUSE PostPurge 'wait this long to post purge gas on hot metal
HIGH GasSol 'turn the gas back off
GOSUB PrintVar4 'print the varibles to the screen..
GOTO TinyTig


CapWeld: 'this is the capacitive discharge welder subroutine.
GOSUB Changeheat
IF PrgSw = 0 THEN GOSUB program
IF Mode <>2 THEN RETURN 'send back to Main loop
IF CHARGE=0 THEN HIGH CHARGE 'TURN It back off.
IF Hifreq=0 THEN HIGH HiFreq 'turn it back off
IF GasSol=0 THEN HIGH GasSol 'turn the gas back off
IF HiFreq=0 THEN HIGH HiFreq 'turn the hi freq back off.
IF FootSw = 1 THEN GOTO CapWeld 'loop back up, looking for foot activation

LOW GasSol 'turn on the gas solonoid
LOW Charge 'turn on the charge SSR
PAUSE chg 'Delay this long and charge the capacitor bank
IF FootSw = 1 THEN GOTO CapWeld 'loop back up, looking for foot activation

LOW GasSol 'turn on the gas solonoid
HIGH charge 'it back off now loaded capacitors
PAUSE GasPurge 'delay this long
IF FootSw = 1 THEN GOTO CapWeld 'loop back up, looking for foot activation
LOW HiFreq 'turn it on
PAUSE HfPuls 'delay this long
IF FootSw = 1 THEN GOTO CapWeld 'loop back up, looking for foot activation
PWM IGBT,IgbtDuty,IgbtPuls 'output this amount of PWM to the transistor..
HIGH HiFreq 'turn it back off
PAUSE PostPurge 'wait this long to post purge gas on hot metal
HIGH GasSol 'turn the gas back off
LiftFoot2:
IF FootSw=0 THEN GOTO LiftFoot2
GOTO Capweld

Edm: 'this is the spark discharge subroutine.
GOSUB ChangeHeat

IF mode <> 3 THEN RETURN 'send back to main loop
IF PrgSw = 0 THEN GOSUB program
IF CHARGE=0 THEN HIGH CHARGE 'TURN It back off.
IF Hifreq=0 THEN HIGH HiFreq 'turn it back off
IF GasSol=0 THEN HIGH GasSol 'turn the gas back off
IF HiFreq=0 THEN HIGH HiFreq 'turn the hi freq back off.
IF FootSw = 1 THEN GOTO EDM 'loop back up, looking for foot activation
LOW GasSol 'turn on the solonoid
LOW Charge 'turn on the charge SSR
PAUSE chg 'Delay this long and charge the capacitor bank
IF FootSw = 1 THEN GOTO EDM 'loop back up, looking for foot activation
LOW HiFreq 'turn it on
PAUSE hfpuls 'build plasma ball in handle..
LOW GasSol 'turn on the solonoid and blow plasma ball
IF FOOTSW = 1 THEN GOTO EDM 'loop back up, looking for foot activation
LiftFoot3:
PWM IGBT,IgbtDuty,IgbtPuls 'output this amount of PWM to the transistor..
IF FootSw=0 THEN GOTO LiftFoot3
HIGH HiFreq 'turn it back off
PAUSE PostPurge 'wait this long to post purge gas on hot metal
HIGH GasSol 'turn the gas back off
GOTO Edm

Plasma: 'Plasma subroutine

IF Mode <> 4 THEN RETURN 'send back to Main loop
IF PrgSw = 0 THEN GOSUB program
IF CHARGE=0 THEN HIGH CHARGE 'TURN It back off.
IF Hifreq=0 THEN HIGH HiFreq 'turn it back off
IF GasSol=0 THEN HIGH GasSol 'turn the gas back off
IF HiFreq=0 THEN HIGH HiFreq 'turn the hi freq back off.
IF FootSw = 1 THEN GOTO Plasma 'loop back up, looking for foot activation

LOW Charge 'turn on the charge SSR
PAUSE chg 'Delay this long and charge the capacitor bank
IF FootSw = 1 THEN GOTO plasma 'loop back up, looking for foot activation
LOW HiFreq 'turn on the air solonoid
PAUSE Hfpuls
IF FootSw = 1 THEN GOTO Plasma 'loop back up, looking for foot activation
LOW GasSol 'turn it on
IF FootSw = 1 THEN GOTO Plasma 'loop back up, looking for foot activation
FootStillDown4:
PWM IGBT,IgbtDuty,IgbtPuls 'output this amount of PWM to the transistor..
IF footSw=0 THEN FootStilldown4

GOTO Plasma





LcdPrint:
SEROUT LCD,BAUDRATE, RATE,[92,66,32,32]
FOR AA = 1 TO 255
SEROUT Lcd,Baudrate,Rate,[92,91,32] 'Print the space character TO wipe..
NEXT

SEROUT Lcd,Baudrate,Rate,[92,66,32,32] 'locate 1stth line down..
SEROUT LCD,Baudrate,Rate,[92,91,67,79,70,69,82,45,69,78,71,73,78,69,82,73,78 ,71,82,79,66,79,84,73,67,83]
'Cofer-Engineering-Robotics
SEROUT Lcd,Baudrate,Rate,[92,66,32,33] 'locate 2nd line down..
SEROUT LCD,Baudrate,Rate,[92,91,60,61,61,61,61,61,61,61,61,61,61,61,61,61,61 ,61,61,61,61,61,61,61,61,62] ' SEND THE LCD SIGnal


SEROUT Lcd,Baudrate,Rate,[92,66,32,34] 'locate 3rd line this line
SEROUT LCD,Baudrate,Rate,[92,91,67,72,65,82,71,69] ' Charge time

SEROUT Lcd,Baudrate,Rate,[92,66,32,35] 'locate 4th line down..
SEROUT LCD,Baudrate,Rate,[92,91,80,85,82,71,69] ' Purge

SEROUT Lcd,Baudrate,Rate,[92,66,32,36] 'locate 5th line down..
SEROUT LCD,Baudrate,Rate,[92,91,72,73,70,82,69,81] ' HiFreq

SEROUT Lcd,Baudrate,Rate,[92,66,32,37] 'locate 6th line down..
SEROUT LCD,Baudrate,Rate,[92,91,80,87,77,32,68,85,84,89] ' PWM Duty

SEROUT Lcd,Baudrate,Rate,[92,66,32,38] 'locate 7th line 4th line down..
SEROUT LCD,Baudrate,Rate,[92,91,80,87,77,32,80,85,76,83,69] ' PWM pulse

SEROUT Lcd,Baudrate,Rate,[92,66,32,39] 'locate 8th line down..
SEROUT LCD,Baudrate,Rate,[92,91,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 ] ' SEND THE LCD SIgnal

GOSUB printVar1 'charge time varible
GOSUB printvar2 'Gas purge time
GOSUB printvar3 'HF pulse duration
GOSUB printvar4 'PWM duty cycle
GOSUB printvar5 'pwm Msec
GOSUB printvar6 'mode of operation
RETURN

PrintVar1:
SEROUT Lcd,Baudrate,Rate,[92,66,42,34] 'locate 3rd x 10 over
SEROUT LCD,Baudrate,Rate,[92,91,32,32,32,32,32,32,32,32] ' diplay Charge time
SEROUT Lcd,Baudrate,Rate,[92,66,42,34] 'locate 3rd x 10 over
SEROUT Lcd,Baudrate,Rate,[92,66,42,34] 'locate 3rd x 10 over
SEROUT LCD,Baudrate,Rate,[92,91,48+(chg DIG 3),48+(chg DIG 2),48+(chg DIG 1),48+(chg DIG 4)] ' diplay Charge time
RETURN
PrintVar2:
SEROUT Lcd,Baudrate,Rate,[92,66,42,35] 'locate 4th x 10 over
SEROUT LCD,Baudrate,Rate,[92,91,32,32,32,32,32,32,32,32] ' diplay
SEROUT Lcd,Baudrate,Rate,[92,66,42,35] 'locate 4th x 10 over
SEROUT LCD,Baudrate,Rate,[92,91,48+(GasPurge DIG 3),48+(GasPurge DIG 2),48+(GasPurge DIG 1),48+(GasPurge DIG 4)] ' Purge msec
RETURN

PrintVar3:
SEROUT Lcd,Baudrate,Rate,[92,66,42,36] 'locate 5th line down..
SEROUT LCD,Baudrate,Rate,[92,91,32,32,32,32,32,32,32,32] ' diplay
SEROUT Lcd,Baudrate,Rate,[92,66,42,36] 'locate 5th line down..
SEROUT LCD,Baudrate,Rate,[92,91,48+(HfPuls DIG 1),48+(HfPuls DIG 2),48+(HfPuls DIG 3),48+(HfPuls DIG 4)] ' HiFreq msec
RETURN

Dawai
12-24-2008, 07:59 PM
Second half of the basic stamp code to run a tiny tig (jewelry welder) and capacitor discharge welder..


PrintVar4:
SEROUT Lcd,Baudrate,Rate,[92,66,42,37] 'locate 6th line down..
SEROUT LCD,Baudrate,Rate,[92,91,32,32,32,32,32,32,32,32] ' diplay
SEROUT Lcd,Baudrate,Rate,[92,66,42,37] 'locate 5th line down..
SEROUT LCD,Baudrate,Rate,[92,91,48+(IgbtDuty DIG 2 ),48+(Igbtduty DIG 1),48+(IgbtDuty DIG 3)] ' PWM duty cycle
RETURN

PrintVar5:
SEROUT Lcd,Baudrate,Rate,[92,66,42,38] 'locate 7th line 4th line down..
SEROUT LCD,Baudrate,Rate,[92,91,32,32,32,32,32,32,32,32] ' diplay
SEROUT Lcd,Baudrate,Rate,[92,66,42,38] 'locate 5th line down..
SEROUT LCD,Baudrate,Rate,[92,91,48+(IgbtPuls DIG 1),48+(IgbtPuls DIG 2),48+(IgbtPuls DIG 3),48+(IgbtPuls DIG 4),48+(IgbtPuls DIG 5)] ' HiFreq msec
RETURN
PrintVar6:
SEROUT Lcd,Baudrate,Rate,[92,66,32,39] 'locate 8th line down..
SEROUT LCD,Baudrate,Rate,[92,91,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 ] ' wipeLine
SEROUT Lcd,Baudrate,Rate,[92,66,32,39] 'locate 8th line down..
IF mode = 1 THEN SEROUT LCD,Baudrate,Rate,[92,91,84,73,78,89,32,84,73,71] 'Tiny Tig
IF mode = 2 THEN SEROUT LCD,Baudrate,Rate,[92,91,67,65,80,65,67,73,84,79,82,32,87,69,76,68] 'Cap weld
IF mode = 3 THEN SEROUT LCD,Baudrate,Rate,[92,91,69,68,77] 'EDM
IF mode = 4 THEN SEROUT LCD,Baudrate,Rate,[92,91,80,76,65,83,77,65] 'Plasma
RETURN

Program:
Chrg:
IF IncrA=1 THEN Chg=Chg+10
IF IncrB=1 THEN Chg=Chg-10

GOSUB PrintVar1 'print the varibles to the screen..
IF FOOTSW = 1 THEN Chrg 'send back to add some more.
PAUSE 500
PURG:
IF IncrA=1 THEN GasPurge=GasPurge+10
IF IncrB=1 THEN GasPurge=GasPurge-10
GOSUB PrintVar2 'print the varibles to the screen..
IF FOOTSW = 1 THEN Purg 'send back to add some more.
Hifr:
IF IncrA=1 THEN HfPuls=HfPuls+10
IF IncrB=1 THEN HfPuls=HfPuls-10
GOSUB PrintVar3 'print the varibles to the screen..
IF FOOTSW = 1 THEN Hifr 'send back to add some more.

GOSUB changeheat

Ipuls:
IF IncrA=1 THEN IgbtPuls=IgbtPuls+10
IF IncrB=1 THEN IgbtPuls=IgbtPuls-10
IF IgbtPuls>65000 THEN IgbtPuls=65500
IF IgbtPuls<10 THEN IgbtPuls=10
GOSUB PrintVar5 'print the varibles to the screen..
IF FOOTSW = 1 THEN Ipuls 'send back to add some more.
ModeSelect:
IF IncrA=1 THEN Mode=Mode+1
IF IncrB=1 THEN Mode=Mode-1
IF mode>4 THEN Mode=1
IF mode<1 THEN Mode=4
GOSUB PrintVar6 'print the varibles to the screen..
PAUSE 250
IF FOOTSW = 1 THEN ModeSelect 'send back to add some more.


RETURN

ChangeHeat:
IF IncrA=0 AND IncrB=0 THEN RETURN
IF IncrA=1 THEN IgbtDuty=IgbtDuty+2
IF IncrB=1 THEN IgbtDuty=IgbtDuty-2
IF IgbtDuty>255 THEN Igbtduty=255
IF IgbtDuty<10 THEN IgbtDuty=10
GOSUB PrintVar4 'print the varibles to the screen..
RETURN