In line with the Compulsive Hoarding topic I've read today, I have a CyberTig 300 I bought from an eBay guy two years ago for the purpose of self-learning Tig welding. I now realize, I don't have the time if I really admit it. It takes up space that I don't have to spare ( too many other tools), I will move in 1.5 years, the old lady says I have too many "giant machines" in the garage. I may need it some day for my future projects but I think this is hoarding mentality gone too far ( you think?). I've decided to move it out. Ebay guy says it came from a high school in the LA area and that it was functional. I've never tested it. It is only the power source, no accessories. Paid $500.00 for it, likely too much. Make me an offer if interested, and help me make a recovery from compulsive hording. My email: snipped-for-privacy@gmail.com
I have a CyberTig 400 that I got from a school. The salesman at the welding supplier said that those machines had a history of failures, mostly relays, if I remember correctly.
Hobart sent me a set of schematics and I can fix it myself.
I tore out the entire control board, and the weird six plase rectifier. I kept the three phase transformer and high frequency arc stabilizer and air/water valves. I put together a board with a Cubloc microcontroller that I programmed in BASIC. I also made the three phase transformer reconnectable from parallel delta (66 VAC) to series wye (220 VAC), with contactors. I put in a new SCR controlled rectifier bridge and SCR firing board, generously donated to me by PCTI.
It has several modes of operation: regular low voltage power supply
0-90 VDC 0-200 amp, regular high voltage 0-270 VDC 0-60 amp, stick welding, TIG welding, MIG welding and plasma cutting.
Of these, I debugged and often use low voltage power supply modes, stick welding and TIG welding. In fact, I weld relatively often and have not touched the source code in months.
I do not have a MIG wirefeed , so I cannot debug MIG. I have not gotten plasma cutting to work either.
I am attaching the BASIC code at the bottom of my post. It is GNU copyrighted open source.
i ====================================================================== Const Device = CB280 Ramclear
' Licensed under GNU Public License ' Copyright(C) Igor Chudov, 2006
Const TigPreflowTime = 3 ' seconds Const TigPostflowTime = 3 ' seconds, to be changed later to dynamic postflow based on current Const TigPostflowFactor = 0.05 ' extra seconds for every amp of current Const TigHFMinVoltage = 40 ' voltage to turn on HF Const TigHFVoltageInterval = 5 ' interval to avoid switching HF too much like idiots Const TigMaxSafeVoltage = 90 ' voltage above that is a BUG in software and should cause shutdown. Const TigOCV = 80
Const TigPulsing = 0 ' do we use pulsed tig? Const TigPulsePeriod = 0.2 ' seconds Const TigHighPulseDutyCycle = 0.5 ' percentage of period Const TigLowLevel = 0.35 ' percentage of Max Current
Const MigPreflowTime = 2 ' seconds Const MigPostflowTime = 8 ' seconds, to be changed later to dynamic postflow based on current
Const PlasmaPreflowTime = 1 ' seconds Const PlasmaPostflowTime = 10 ' seconds, to be changed later to dynamic postflow based on current Const PlasmaHFMinVoltage = 200 ' voltage to turn on HF Const PlasmaHFVoltageInterval = 25 ' interval to avoid switching HF too much like idiots
Const PowerLimit = 12000 ' Power limit in Watts, stop if reached rather than trip breakers Const TimeLimit = 850 ' runtime limit in seconds, for safety
' STICK is simply a CC power supply with 80V OCV Const STATE_STICK_IDLE = 2 Const STATE_STICK_WELDING = 3 ' welding
' TIG is preflow, weld, postflow. Also remember that WATER relay may be closed ' after TIG is done, for a specified period of time depending on how much we welded, ' to cool water. Const STATE_TIG_IDLE = 4 ' No OCV Const STATE_TIG_PREFLOW = 5 ' Open gas solenoid and water Const STATE_TIG_WELD = 6 ' Gas, water, maybe HF Const STATE_TIG_POSTFLOW = 7 ' Gas, water
' PLASMA is preflow, cut, postflow. Const STATE_PLASMA_IDLE = 8 ' No OCV Const STATE_PLASMA_PREFLOW = 9 ' Open air solenoid Const STATE_PLASMA_CUT = 10 ' Gas, maybe HF Const STATE_PLASMA_POSTFLOW = 11 ' Gas
' MIG is preflow, weld, postflow. Also remember that WATER relay may be closed ' after MIG is done, for a specified period of time depending on how much we welded, ' to cool water. Const STATE_MIG_IDLE = 12 ' No OCV Const STATE_MIG_PREFLOW = 13 ' Open gas solenoid and water Const STATE_MIG_WELD = 14 ' Gas, water, Const STATE_MIG_POSTFLOW = 15 ' Gas, water
' LOW_VOLTAGE is simply a DC power supply with 80V OCV MAX Const STATE_LOW_VOLTAGE_IDLE = 16 Const STATE_LOW_VOLTAGE_ON = 17
' HIGH_VOLTAGE is simply a DC power supply with 300V OCV MAX Const STATE_HIGH_VOLTAGE_IDLE = 18 Const STATE_HIGH_VOLTAGE_ON = 19
' EXPERIMENTAL is whatever is my current fancy Const STATE_EXPERIMENTAL_IDLE = 20 Const STATE_EXPERIMENTAL_ON = 21
Const STATE_EXPIRED = 22 ' CUBLOC functioned for too long
' ====================================================================== Variables Dim currentProcess As Byte currentProcess = GetProcessSelection()
Dim highVoltage As Byte highVoltage = 0
Dim errorMessage As String errorMessage = "OK"
Dim currentState As Byte currentState = STATE_BOOT Dim previousCurrentState As Byte previousCurrentState = -1
Dim timeMark As Single timeMark = -1
Dim postflowTimeMark As Single postflowTimeMark = -1
Dim lastMsg As String lastMsg = "OK!" Dim previousLastMsg As String previousLastMsg = ""
Dim previousTime As Long previousTime = -1
Dim previousVoltage As Integer previousVoltage = 0
Dim previousDesiredVoltage As Integer previousDesiredVoltage = -1
Dim previousDesiredCurrent As Integer previousDesiredCurrent = -1
Dim averageVoltage As Single averageVoltage = 0
Dim previousCurrent As Integer previousCurrent = -1
Dim averageCurrent As Single averageCurrent = 0
Dim selector As Integer selector = 0
Dim lastSelection As Integer lastSelection = PROCESS_STICK_WELDING
Dim averageSelector As Single averageSelector = Tadin( PROCESS_SWITCH_INPUT )
Dim time_hours As Integer time_hours = 0
Dim time_minutes As Integer time_minutes = 0
Dim time_seconds As Integer time_seconds = 0
Dim epoch_seconds As Integer epoch_seconds = 0
Dim time_hundredths As Integer time_hundredths = 0
Dim watchdog As Byte watchdog = 0 ' 0 means malfunction
Dim elapsed_seconds As Integer Dim elapsed_hundredths As Integer Dim elapsed_time As Single Dim elapsed100 As Long
Dim last_elapsed As Integer Dim last_time_seconds As Integer
Dim isActive As Byte isActive = 0
Dim maxCurrent As Integer maxCurrent = 0
Dim iterationCount As Long iterationCount = 0
Dim tigPulseMark As Long Dim isTigHighPulse As Byte
Dim tigHighPulseDuration As Integer Dim tigLowPulseDuration As Integer
Dim TigArcIsLifted As byte
Dim ArcDigPercentage = ArcDigMaxAdded * 0.5 ' ====================================================================== Process Logic (main loop) ' '
Set Display 2,0,0,50 Initialize ' Does safety checks too
' ------------------------------------------------------------- Keypad Dim TX1 As Integer, TY1 As Integer 'Contrast 450
' per Max@ComFile Set Pad 0, 1, 4 ' Set Pad 5, 1, 4
On Pad Gosub OnKeypadLabel
On Timer( 1 ) Gosub OnTimerLabel ' 1 means 0.01 seconds
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' RULES: ' * Avoid directly mentioning any relays or inputs ' * Only call subroutines and deal with named constants/variables/functions ' * Any unhandled condition should lead to error message and PROCESS_UNKNOWN. ' Only a reboot can bring us out of PROCESS_UNKNOWN. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Do ' Main loop
Dim requested_process As Byte requested_process = GetProcessSelection() '' get current reading of process selector
Dim startSwitch As Integer startSwitch = GetStartSwitch()
Dim busVoltage As Integer busVoltage = GetBusVoltage()
Dim momentaryVoltage As Integer momentaryVoltage = GetMomentaryBusVoltage()
Dim desiredVoltage As Integer desiredVoltage = GetDesiredVoltage()
Dim busCurrent As Integer busCurrent = GetBusCurrent()
Dim momentaryCurrent As Integer momentaryCurrent = GetMomentaryBusCurrent()
Dim desiredCurrent As Integer desiredCurrent = GetDesiredCurrent()
Dim momentaryPower As Single momentaryPower = momentaryCurrent * momentaryVoltage
watchdog = 1 lastSelection = currentProcess Select Case currentProcess
Case PROCESS_UNKNOWN ' ----------------------------------------
DisplayStatus
Case PROCESS_STICK_WELDING ' ----------------------------------------
SetLowVoltage
If currentState = STATE_BOOT Then currentState = STATE_STICK_IDLE End If
' handle change of process If requested_process PROCESS_STICK_WELDING Then If currentState = STATE_STICK_IDLE Then ' it is OK to switch to another process when IDLE ChangeProcess requested_process Else ' it is NOT OK to switch to another process when welding lastMsg = "HOT switching" ' OnErrorCondition End If Elseif currentState = STATE_STICK_IDLE Then ' now actual STICK logic If startSwitch = 1 Then currentState = STATE_STICK_WELDING timeMark = elapsed_time StartSupplyingPower SetStickWeldingParameters setActive End If Elseif currentState = STATE_STICK_WELDING Then If startSwitch = 0 Then currentState = STATE_STICK_IDLE StopSupplyingPower SetStickWeldingParameters setInactive Elseif momentaryPower > PowerLimit Then ' power limit exceeded, stop welding MomentarilySuppressPower Else SetStickWeldingParameters End If
Else lastMsg = "Unknown STICK STATE" OnErrorCondition End If
DisplayStatus
Case PROCESS_LOW_VOLTAGE ' ----------------------------------------
SetLowVoltage
If currentState = STATE_BOOT Then currentState = STATE_LOW_VOLTAGE_IDLE End If
' handle change of process If requested_process PROCESS_LOW_VOLTAGE Then If currentState = STATE_LOW_VOLTAGE_IDLE Then ' it is OK to switch to another process when IDLE ChangeProcess requested_process Else ' it is NOT OK to switch to another process when welding lastMsg = "HOT switching" ' OnErrorCondition End If Elseif currentState = STATE_LOW_VOLTAGE_IDLE Then ' now actual LV logic If startSwitch = 1 Then currentState = STATE_LOW_VOLTAGE_ON timeMark = elapsed_time StartSupplyingPower setActive SetArbitraryElectricParameters End If Elseif currentState = STATE_LOW_VOLTAGE_ON Then If startSwitch = 0 Then currentState = STATE_LOW_VOLTAGE_IDLE StopSupplyingPower setInactive Elseif momentaryPower > PowerLimit Then ' power limit exceeded, stop welding lastMsg = "Power Limit" OnErrorCondition Else SetArbitraryElectricParameters End If
Else lastMsg = "Unknown STICK STATE" OnErrorCondition End If
DisplayStatus
Case PROCESS_HIGH_VOLTAGE ' ----------------------------------------
SetHighVoltage
If currentState = STATE_BOOT Then currentState = STATE_HIGH_VOLTAGE_IDLE End If
' handle change of process If requested_process PROCESS_HIGH_VOLTAGE Then If currentState = STATE_HIGH_VOLTAGE_IDLE Then ' it is OK to switch to another process when IDLE ChangeProcess requested_process Else ' it is NOT OK to switch to another process when welding lastMsg = "HOT switching" ' OnErrorCondition End If Elseif currentState = STATE_HIGH_VOLTAGE_IDLE Then ' now actual LV logic If startSwitch = 1 Then currentState = STATE_HIGH_VOLTAGE_ON timeMark = elapsed_time StartSupplyingPower setActive SetArbitraryElectricParameters End If Elseif currentState = STATE_HIGH_VOLTAGE_ON Then If startSwitch = 0 Then currentState = STATE_HIGH_VOLTAGE_IDLE StopSupplyingPower setInactive Elseif momentaryPower > PowerLimit Then ' power limit exceeded, stop welding lastMsg = "Power Limit" OnErrorCondition Else SetArbitraryElectricParameters End If
Else lastMsg = "Unknown HV STATE" OnErrorCondition End If
DisplayStatus
Case PROCESS_TIG_WELDING ' ----------------------------------------
SetLowVoltage
If currentState = STATE_BOOT Then currentState = STATE_TIG_IDLE End If
' handle change of process If requested_process PROCESS_TIG_WELDING Then If currentState = STATE_TIG_IDLE Then ' it is OK to switch to another process when IDLE ChangeProcess requested_process Else ' it is NOT OK to switch to another process when welding lastMsg = "HOT switching" ' OnErrorCondition End If
Elseif currentState = STATE_TIG_IDLE Then ' now actual TIG logic If startSwitch = 1 Then currentState = STATE_TIG_PREFLOW setActive timeMark = elapsed_time OpenGasValve OpenWaterValve maxCurrent = 0 End If Elseif currentState = STATE_TIG_PREFLOW Then If startSwitch = 0 Then currentState = STATE_TIG_IDLE CloseGasValve CloseWaterValve setInactive Elseif elapsed_time - timeMark > TigPreflowTime Then
' ' Switch to WELD ' currentState = STATE_TIG_WELD If TigPulsing Then ' pulsing tigHighPulseDuration = TigPulsePeriod * TigHighPulseDutyCycle tigLowPulseDuration = TigPulsePeriod * (1-TigHighPulseDutyCycle) tigPulseMark = elapsed100 isTigHighPulse = 1 End If
TigArcIsLifted = 0 StartSupplyingPower SetTigWeldingParameters End If Elseif currentState = STATE_TIG_WELD Then If startSwitch = 0 Then currentState = STATE_TIG_POSTFLOW StopSupplyingPower postflowTimeMark = elapsed_time Elseif momentaryPower > PowerLimit Then ' power limit exceeded, stop welding MomentarilySuppressPower Elseif momentaryVoltage > TigMaxSafeVoltage Then lastMsg = "Volt.Xceeded" OnErrorCondition Else if TigUseHF And momentaryVoltage > TigHFMinVoltage Then TurnOnHF Elseif TigUseHF And momentaryVoltage < TigHFMinVoltage-TigHFVoltageInterval Then TurnOffHF End If SetTigWeldingParameters End If
Elseif currentState = STATE_TIG_POSTFLOW Then If postflowTimeMark = -1 Then lastMsg = "postflow start missing" OnErrorCondition Elseif elapsed_Time - postflowTimeMark > TigPostflowTime Then CloseGasValve CloseWaterValve currentState = STATE_TIG_IDLE setInactive End If Else lastMsg = "Unknown TIG STATE" OnErrorCondition End If
DisplayStatus
Case PROCESS_MIG_WELDING ' ----------------------------------------
SetLowVoltage
If currentState = STATE_BOOT Then currentState = STATE_MIG_IDLE End If
' handle change of process If requested_process PROCESS_MIG_WELDING Then If currentState = STATE_MIG_IDLE Then ' it is OK to switch to another process when IDLE ChangeProcess requested_process Else ' it is NOT OK to switch to another process when welding lastMsg = "HOT switching" ' OnErrorCondition End If
Elseif currentState = STATE_MIG_IDLE Then ' now actual MIG logic If startSwitch = 1 Then currentState = STATE_MIG_PREFLOW setActive timeMark = elapsed_time OpenGasValve OpenWaterValve SetMigWeldingParameters End If Elseif currentState = STATE_MIG_PREFLOW Then If elapsed_time - timeMark > MigPreflowTime Then currentState = STATE_MIG_WELD StartSupplyingPower End If Elseif currentState = STATE_MIG_WELD Then If startSwitch = 0 Then currentState = STATE_MIG_POSTFLOW StopSupplyingPower postflowTimeMark = elapsed_time Elseif momentaryPower > PowerLimit Then ' power limit exceeded, stop welding MomentarilySuppressPower Else SetMigWeldingParameters End If Elseif currentState = STATE_MIG_POSTFLOW Then If postflowTimeMark = -1 Then lastMsg = "postflow start missing" OnErrorCondition Elseif elapsed_time - postflowTimeMark > MigPostflowTime Then CloseGasValve CloseWaterValve currentState = STATE_MIG_IDLE setInactive End If Else lastMsg = "Unknown MIG STATE" OnErrorCondition End If
DisplayStatus
Case PROCESS_PLASMA_CUTTING ' ----------------------------------------
SetHighVoltage
If currentState = STATE_BOOT Then currentState = STATE_PLASMA_IDLE End If
' handle change of process If requested_process PROCESS_PLASMA_CUTTING Then If currentState = STATE_PLASMA_IDLE Then ' it is OK to switch to another process when IDLE ChangeProcess requested_process Else ' it is NOT OK to switch to another process when welding lastMsg = "HOT switching" ' OnErrorCondition End If
Elseif currentState = STATE_PLASMA_IDLE Then ' now actual PLASMA logic If startSwitch = 1 Then currentState = STATE_PLASMA_PREFLOW setActive timeMark = elapsed_time OpenGasValve End If Elseif currentState = STATE_PLASMA_PREFLOW Then If elapsed_time - timeMark > PlasmaPreflowTime Then currentState = STATE_PLASMA_CUT StartSupplyingPower End If Elseif currentState = STATE_PLASMA_CUT Then If startSwitch = 0 Then currentState = STATE_PLASMA_POSTFLOW StopSupplyingPower postflowTimeMark = elapsed_time Elseif momentaryPower > PowerLimit Then ' power limit exceeded, stop cutting MomentarilySuppressPower Elseif busVoltage > PlasmaHFMinVoltage Then TurnOnHF Elseif busVoltage < PlasmaHFMinVoltage-PlasmaHFVoltageInterval Then TurnOffHF End If Elseif currentState = STATE_PLASMA_POSTFLOW Then If postflowTimeMark = -1 Then lastMsg = "postflow start missing" OnErrorCondition Elseif elapsed_time - postflowTimeMark > PlasmaPostflowTime Then CloseGasValve currentState = STATE_PLASMA_IDLE setInactive End If Else lastMsg = "Unknown PLASMA STATE" OnErrorCondition End If
DisplayStatus
Case PROCESS_EXPERIMENTAL ' ----------------------------------------
SetLowVoltage
If currentState = STATE_BOOT Then currentState = STATE_EXPERIMENTAL_IDLE End If
' handle change of process If requested_process PROCESS_EXPERIMENTAL Then If currentState = STATE_EXPERIMENTAL_IDLE Then ' it is OK to switch to another process when IDLE ChangeProcess requested_process Else ' it is NOT OK to switch to another process when welding lastMsg = "HOT switching" ' OnErrorCondition End If Elseif currentState = STATE_EXPERIMENTAL_IDLE Then ' now actual LV logic If startSwitch = 1 Then currentState = STATE_EXPERIMENTAL_ON timeMark = elapsed_time StartSupplyingPower setActive SetArbitraryElectricParameters End If Elseif currentState = STATE_EXPERIMENTAL_ON Then If startSwitch = 0 Then currentState = STATE_EXPERIMENTAL_IDLE StopSupplyingPower setInactive Elseif momentaryPower > PowerLimit Then ' power limit exceeded, stop welding lastMsg = "Power Limit" OnErrorCondition Else SetArbitraryElectricParameters End If
Else lastMsg = "Unknown EXP STATE" OnErrorCondition End If
DisplayStatus
Case Else ' ------------------------------------------------------------ ' unhandled case, BAD BAD BAD lastMsg = "Bad Process Selection" OnErrorCondition End Select
DisplayStatus If epoch_seconds > TimeLimit Then lastMsg = "TimeLimit" currentState = STATE_EXPIRED OnErrorCondition setInactive Delay 10 End If
Sub OnWatchdogTimer() If watchdog = 0 Then lastMsg = "Watchdog" OnErrorCondition End If watchdog = 0 End Sub
Sub OnTimer() If time_hundredths = 99 Then OnWatchdogTimer If time_seconds = 59 Then If time_minutes = 59 Then time_hours = time_hours + 1 time_minutes = 0 Else time_minutes = time_minutes + 1 End If time_seconds = 0 Else time_seconds = time_seconds + 1 End If time_hundredths = 0 epoch_seconds = epoch_seconds + 1 Else time_hundredths = time_hundredths + 1 End If
If isActive Then If elapsed_hundredths = 99 Then elapsed_seconds = elapsed_seconds+1 elapsed_hundredths = 0 Else elapsed_hundredths = elapsed_hundredths + 1 End If elapsed_time = elapsed_seconds + elapsed_hundredths / 100.0 End If elapsed100 = elapsed100 + 1 End Sub
Sub setActive() isActive = 1 elapsed_seconds = 0 elapsed_hundredths = 1 elapsed_time = 0 elapsed100 = 0 last_elapsed = -1 End Sub
Sub setInactive() isActive = 0 end sub
Sub ShutEverythingDown() ' Makes sure that everything is shut down and operator is safe. ' Postflow is tricky here, needs to be revisited CloseWaterValve CloseGasValve StopSupplyingPower SetLowVoltage setInactive End Sub
Sub OnErrorCondition() ' Set error properly currentProcess = PROCESS_UNKNOWN ShutEverythingDown DisplayStatus '' do it now, rather than wait for the loop to do it. End Sub
Sub DisplayStatus() ' displays status on LED 'Clear 0 If previousLastMsg = lastMsg Then Else Locate 0,0 Print " " Locate 0,0 Print lastMsg previousLastMsg = lastMsg End If
If previousCurrentState = currentState Then Else Locate 0,1 Print " " Locate 0,1 Print ProcessName( currentState ) previousCurrentState = currentState 'Print "Proc=", Dec currentProcess 'Print ",State=", Dec currentState End If
' Debugging inputs If 0 Then Locate 0, 2 Print " " Locate 0, 2 'Print "Id=", Dec GetDesiredCurrent() 'Print " " 'Print "PS=", Dec Adin( PROCESS_SWITCH_INPUT ) 'Print " " Print "Sw=", Float averageSelector Print " " End If
If previousVoltage < busVoltage - 1 Or busVoltage + 1 < previousVoltage Or previousDesiredVoltage < desiredVoltage - 1 Or previousDesiredVoltage >
desiredVoltage + 1 Then Locate 9, 3 Print " " Locate 9, 3 Print "V=" + Dec busVoltage Print "/" + Dec desiredVoltage previousVoltage = busVoltage previousDesiredVoltage = desiredVoltage Endif
If previousCurrent < busCurrent - 3 Or busCurrent + 3 < previousCurrent Or previousDesiredCurrent < desiredCurrent - 1 Or previousDesiredCurrent >
desiredCurrent + 1 Then Locate 0, 3 Print " " Locate 0, 3 Print "I=" + Dec busCurrent Print "/" + Dec desiredCurrent previousCurrent = busCurrent previousDesiredCurrent = desiredCurrent Endif
If isActive Then If elapsed_seconds last_elapsed Then Locate 12, 0 Print " " Locate 12, 0 Print "t=", Dec elapsed_seconds, "s" last_elapsed = elapsed_seconds End If Else If time_seconds last_time_seconds Then Locate 12,0 Print " " Locate 12, 0 Print Dec time_hours, ":" Print Dec time_minutes, ":" Print Dec time_seconds 'Print Dec time_hundredths last_time_seconds = time_seconds End If End If
End Sub
Function SerialCableIsConnected() SerialCableIsConnected = 0 End Function
Sub SetLowVoltage() If highVoltage = 1 Then StopSupplyingPower ProcessDelay 200 Out REWIRING_RELAY, 0 ProcessDelay 200 highVoltage = 0 End If End Sub
Sub SetHighVoltage() If highVoltage = 0 Then StopSupplyingPower ProcessDelay 200 Out REWIRING_RELAY, 1 ProcessDelay 200 highVoltage = 1 End If End Sub
' Returns voltage in VOLTS Function GetBusVoltage() ' GetBusVoltage = (Tadin( ACTUAL_VOLTAGE_INPUT ) * VOLTAGE_COEFFICIENT) / 1024 averageVoltage = averageVoltage * VOLTAGE_FILTER + (1-VOLTAGE_FILTER)* Adin( ACTUAL_VOLTAGE_INPUT ) GetBusVoltage = averageVoltage * VOLTAGE_COEFFICIENT End Function
Function GetMomentaryBusVoltage() GetMomentaryBusVoltage = Adin( ACTUAL_VOLTAGE_INPUT ) * VOLTAGE_COEFFICIENT End Function
' Returns voltage in VOLTS Function GetDesiredVoltage() GetDesiredVoltage = Adin( DESIRED_VOLTAGE_INPUT ) * MAX_VOLTAGE / 1024.0 End Function
Function GetDesiredCurrent() GetDesiredCurrent = Adin( DESIRED_CURRENT_INPUT ) * MAX_CURRENT / 1024.0 End Function
' Returns current in AMPS Function GetMomentaryBusCurrent() GetMomentaryBusCurrent = Adin( ACTUAL_CURRENT_INPUT ) * CURRENT_COEFFICIENT End Function
' Returns current in AMPS Function GetBusCurrent() averageCurrent = averageCurrent * CURRENT_FILTER + (1-CURRENT_FILTER)* Adin( ACTUAL_CURRENT_INPUT ) GetBusCurrent = averageCurrent * CURRENT_COEFFICIENT End Function
Function GetProcessSelection() '' rotary switch selector = Tadin( PROCESS_SWITCH_INPUT ) If( selector > 690 Or selector < 90 ) Then GetProcessSelection = lastSelection Else averageSelector = averageSelector * PROCESS_SWITCH_FILTER + (1-PROCESS_SWITCH_FILTER)*selector If averageSelector < 190 Then GetProcessSelection = PROCESS_STICK_WELDING Elseif averageSelector < 290 Then GetProcessSelection = PROCESS_TIG_WELDING Elseif averageSelector < 390 Then GetProcessSelection = PROCESS_MIG_WELDING Elseif averageSelector < 490 Then GetProcessSelection = PROCESS_PLASMA_CUTTING Elseif averageSelector < 590 Then GetProcessSelection = PROCESS_LOW_VOLTAGE Elseif averageSelector < 690 Then GetProcessSelection = PROCESS_HIGH_VOLTAGE Else GetProcessSelection = PROCESS_UNKNOWN End If End If End Function
Function GetStartSwitch() GetStartSwitch = Keyinh( 11, 20 )
End Function
Sub StartSupplyingPower() Out WELD_RELAY, 1 End Sub
Sub StopSupplyingPower() Out WELD_RELAY, 0 TurnOffHF Pwmoff VOLTAGE_PWM_PORT Pwmoff CURRENT_PWM_PORT End Sub
Sub ChangeProcess( Next_process As Integer )
If 0 Then Locate 0, 2 Print Dec currentProcess, " => " Print Dec Next_process 'Print Dec selector Print ",", Float averageSelector
Delay 1000 End If currentProcess = Next_process StopSupplyingPower currentState = STATE_BOOT
If currentProcess = PROCESS_STICK_WELDING Or currentProcess = PROCESS_TIG_WELDING Or currentProcess = PROCESS_MIG_WELDING Or currentProcess = PROCESS_LOW_VOLTAGE Then SetLowVoltage Elseif currentProcess = PROCESS_PLASMA_CUTTING Or currentProcess = PROCESS_HIGH_VOLTAGE Then SetHighVoltage Else lastMsg = "Unk VOLTAGE" OnErrorCondition End If timeMark = -1 End Sub
Sub TurnOnHF() Out HF_RELAY, 1 End Sub
Sub TurnOffHF() Out HF_RELAY, 0 End Sub
Sub OpenGasValve() Out GAS_RELAY, 1 End Sub
Sub CloseGasValve() Out GAS_RELAY, 0 End Sub
Sub OpenWaterValve() Out WATER_RELAY, 1 End Sub
Sub CloseWaterValve() Out WATER_RELAY, 0 End Sub
Sub MomentarilySuppressPower() Out INHIBIT_RELAY, 1 ProcessDelay 300 Out INHIBIT_RELAY, 0 End Sub
Sub ProcessDelay( d As Integer ) Delay d End Sub
Sub SetPCTIVoltage( Voltage As Integer ) AnalogOut VOLTAGE_PWM_PORT, Voltage / MAX_VOLTAGE * MAX_VOLTAGE_PCTI_OUTPUT_LEVEL * 1000 ' 1000 mV End Sub
Sub SetPCTICurrent( Current As Integer ) AnalogOut CURRENT_PWM_PORT, Current / MAX_CURRENT * MAX_CURRENT_PCTI_OUTPUT_LEVEL *1000 ' 1000 mV
End Sub
Sub AnalogOut (PortNum As Integer, VoltageNeeded As Integer) 'VoltageNeeded in mV Dim GetPWMValue As Integer Dim Period As Long Period = PWM_PERIOD GetPWMValue=(Period *VoltageNeeded)/5000 'Debug Goxy,0,2,"PWMValue: ",Dec GetPWMValue Pwm PortNum,GetPWMValue,Period 'Output Voltage to PWM channel 0 End Sub
Sub OnKeypad()
If 1 Then TX1 = Getpad( 2 ) 'TY1 = Getpad( 2 ) Locate 0, 2 Print " " Locate 0, 2 Print "Pad x=", Dec TX1 Print " y=", Dec TY1 'Debug "pad presed " End If End Sub
Sub SetTigWeldingParameters()
SetPCTIVoltage TigOCV desiredVoltage = TigOCV ' for display
If TigUseLiftArc And TigArcIsLifted = 0 Then TigArcIsLifted = momentaryCurrent > MinMomentaryCurrentForLiftArc And momentaryVoltage > MinMomentaryVoltageForLiftArc
Elseif TigPulsing Then If isTigHighPulse Then If elapsed100 - tigPulseMark > tigHighPulseDuration*TicksPerSecond Then isTigHighPulse = 0 SetPCTICurrent desiredCurrent*TigLowLevel tigPulseMark = elapsed100 Else SetPCTICurrent desiredCurrent End If Else ' Low pulse If elapsed100 - tigPulseMark > tigLowPulseDuration*TicksPerSecond Then isTigHighPulse = 1 SetPCTICurrent desiredCurrent tigPulseMark = elapsed100 Else SetPCTICurrent desiredCurrent * TigLowLevel End If End If Else ' no pulsing SetPCTICurrent desiredCurrent End If End Sub
Sub SetStickWeldingParameters()
SetPCTIVoltage StickOCV desiredVoltage = StickOCV ' for display
If ArcUseDIG And momentaryVoltage < ArcDigVoltageThreshold Then Dim Extent As Single Extent = (ArcDigVoltageThreshold - momentaryVoltage) / ArcDigVoltageThreshold SetPCTICurrent desiredCurrent * (1+Extent*ArcDigPercentage) Else ' DIG is not in effect SetPCTICurrent desiredCurrent End if End Sub
Sub SetArbitraryElectricParameters() SetPCTIVoltage desiredVoltage SetPCTICurrent desiredCurrent End Sub
Sub SetMigWeldingParameters() SetPCTIVoltage desiredVoltage SetPCTICurrent desiredCurrent End Sub
I was under the impression that the Cybertig series had AC mode for welding aluminum and other nonferrous metals, that's why I bought it. Am I mistaken? I also stick welded a nice and sturdy work table out of
3/8 thickness angle iron, had to do some grinding to make it look purty and sure learned a lot about warping from welding heat. Also need to use my own welded moving dolly to move this table around. As for the data plate, I will have to inch it away from the wall to take a picture so that will be posted on my next day off. Not that easy to move, the thing weighs roughly 500 lbs.
Not that I would be welding in the 300 amp range anytime soon but I find it surprising that I can only weld in the 150 amp range on my breaker. I dont really know what the capacity is on my breaker panel. My house is a single story detached home in SoCal, any general guidlines on how to determine if my panel can handle more?
I need a manual and schematic probably. Any leads on that?
Thanks for your resp> > > I believe it is single phase 220V. How do I test it to get a
Cybertigs where made both ways. If your's is a single phase then it likely has AC. If 3 phase then they where all DC. You can tell real quick by looking on the front. If there's a AC position on the selector near the bottom then it will be single phase.
You should try hooking it up. Stick welding with it will spoil you real quick compared to a cracker box.
IRRC the single phase Cybertig draws 70-80 amps at full output. You'll likely be able to go higher than 150 amps probably close to
200.
They're available (if a little expensive) but I don't have the contact info handy right now. A google search should turn them up.
And, TIG welding steel will spoil you enough that you'll put your buzz-box in the next trash pickup! No blinding cloud of noxious flux fumes, no explosive scrach-start, power controlled by foot pedal, on and on. My Lincoln Square-wave has the stick holder and cables, but I'll never use stick again, mostly due to the flux fumes. I just can't hack the effects of the fumes.
Indeed. As to seeing if it works...got jumper cables?
Hook the jumper cables to the output terminals, grab a chunk of stock and a welding rod and try it. Then kick in the High Frequency and see if it also works..it will be hard to miss..and makes striking an arc with rod a marvelous thing.
Id go with Wayne. I run my welders..including a big! Airco Squarewave
300, on a 60 amp breaker..and have only had trips when I was burning for long periods at 250 and above.
Gunner
"Deep in her heart, every moslem woman yearns to show us her t*ts" John Griffin
PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.