HiFiForum.nu
Home | Forums | Profile | Register | Active Topics | Links | Members | Articles | PM | Search | FAQ
Username:
Password:
Save Password
Forgot your Password?

Private Messages
You must log in to check messages
 All Forums
 HiFiForum.nu - Specialintressen
 Teknik och DIY
 CNC plasmaskärare
 New Topic  Reply to Topic
 Printer Friendly
Previous Page
Author Previous Topic Topic Next Topic
Page: of 4

sladdbarn
Member

2790 Posts

Posted - 2021/03/09 :  20:15:34  Show Profile Send sladdbarn a Private Message  Reply
quote:
Det är här THC kommer in:


Mycket intressant, följer med spänning.

Drömmer om bra ljud...
Go to Top of Page

solhaga
100.000-klubben

2231 Posts

Posted - 2021/03/09 :  20:18:19  Show Profile  Visit solhaga's Homepage Send solhaga a Private Message  Reply
Bågspänning!

Medlempresentation.
Senast lyssnat.
Instagram.
Go to Top of Page

solhaga
100.000-klubben

2231 Posts

Posted - 2021/03/12 :  16:45:00  Show Profile  Visit solhaga's Homepage Send solhaga a Private Message  Reply
Första testen av Z-axeln.
Motorn skall vara en NEMA23 (1,26 Nm), den som syns i videon är lite klen.

Resten av plåtarna för Z-axeln:

Jag var tvungen att göra om Y-vagnen. Resten av plåtarna är för att kunna få Z-axeln i upprätt position.
Så det blir en del svetsning.

Tyvärr var 2 mm-plåten lite böjd, så en hel del hål blev inte bra.
Visar verkligen på att THC behövs!
Jag gör nog om dom med den nya CNC:n.

För min gamla MPCNC hade jag en induktiv givare (PINDA från Prusa) för Z = 0 detektering, men den har gett mig en del trubbel och den ger ju inte samma resultat för tjockare plåtar eller rentav för aluminium.
Så jag hade tänkt att för detta bygge använda en BLTouch som är en mekanisk givare med en servostyrd känselpinne.
Men det blir lika problematisk med den; skulle pinnen hamna i ett redan hål exempelvis så är ju det kört.

Så det blir en så kallad ohmsk sköld, helt enkelt så dras ett relä eller lysdioden i en optokopplare när denna sköld får kontakt med plåten.
Det ger också den fördelen att jag kan detektera kollisioner med plåten under skärningen om det uppkommer slagg.

Medlempresentation.
Senast lyssnat.
Instagram.
Go to Top of Page

solhaga
100.000-klubben

2231 Posts

Posted - 2021/03/13 :  09:51:03  Show Profile  Visit solhaga's Homepage Send solhaga a Private Message  Reply
Plåtarna tänkte jag svetsa ihop så här (ena gaveln inte ditlagd här):


Den undre vågräta plattan skall alltså skruvas fast i Y-vagnen.

Men jag ser nu att det blir problem med motorfästet, två skruvhål hamnar mitt i den vertikala plåten:


Så antingen gör jag urtag för muttrarna i den vertikala plåten eller så gör jag ett topp/motorfäste i plast.
En fördel med det senare är mindre vikt, en annan är att en komplicerad (?) svetsning av små vinkelstöd inte behövs.
En nackdel är att jag måste cadda denna detalj, men det är ju meningen med livet, och att den lär ta tid att printa ut.
Men, jag väntar ju ändå på den nya motorn.

Medlempresentation.
Senast lyssnat.
Instagram.
Go to Top of Page

solhaga
100.000-klubben

2231 Posts

Posted - 2021/03/14 :  19:41:13  Show Profile  Visit solhaga's Homepage Send solhaga a Private Message  Reply
Nästan klar:



Som synes så blev det urtag för muttrar för fastsättning av motorn.

Medlempresentation.
Senast lyssnat.
Instagram.

Edited by - solhaga on 2021/03/14 19:43:08
Go to Top of Page

solhaga
100.000-klubben

2231 Posts

Posted - 2021/03/15 :  19:04:19  Show Profile  Visit solhaga's Homepage Send solhaga a Private Message  Reply
Jag ritade ett par fästen för brännaren:


Monterat med en kortare brännardummy:

Medlempresentation.
Senast lyssnat.
Instagram.
Go to Top of Page

solhaga
100.000-klubben

2231 Posts

Posted - 2021/03/18 :  08:50:07  Show Profile  Visit solhaga's Homepage Send solhaga a Private Message  Reply
Så då är Z-axeln klar:

Här är ett farttest.
Maxfarten är 90 mm/s vid de stora förflyttningarna och 140 mm/s vid de små.
Det bör räcka för THC; maxhastigheten är ju 140 mm/s i X/Y-led och höjdskillnaden på grund av skevad plåt lär inte överstiga 1 mm/mm.

Medlempresentation.
Senast lyssnat.
Instagram.

Edited by - solhaga on 2021/03/18 10:30:25
Go to Top of Page

govinda
Med nytt namn

2274 Posts

Posted - 2021/03/18 :  14:09:18  Show Profile Send govinda a Private Message  Reply
Wow Fantastiskt kul

Music Isn`t my hobby It`s my passion

Professionell Musiklyssnare Musik-Tantriker
Go to Top of Page

solhaga
100.000-klubben

2231 Posts

Posted - 2021/03/18 :  16:45:43  Show Profile  Visit solhaga's Homepage Send solhaga a Private Message  Reply
Ja, visst är det. Jag har ju hållt på ett tag nu och det är skönt nu när allt det mekaniska är klart.

Så till lite elektronik.
Jag tänker ju skippa både induktiv givare och mekanisk till förmån för en elektrisk för Z=0 detektering.
IHS, Initial Height Sensing, avser användandet av en så kallad ohmsk probe, ohmic probe på originalspråket.
Den ohmska proben gör att man kan detektera Z=0, alltså kontakt med plåten som man just skall till att skära.

Men det är inte så hälsosamt för övrig elektronik att vara i kontakt med "plasmajorden", så någon slags isolation behövs.
En enkel relälösning kan ju fungera, det är bara att låta inaktiverad PLASMA START styra att proben är inkopplad.
Men det förutsätter även en gemensam jord, så det går åt ett relä till för att koppla bort den.
En annan nackdel med en relälösning är jag inte kan få kollisionsdetektering.

Så det får bli en optokopplarlösning med en 4N35.
Som spänningskälla tänker jag mig ett 12-voltsbatteri, LR23, med en kapacitet på 38mAh.
Det dras ju ström 10 mA enbart vid själva nolldetekteringen, så det skall nog räcka ett tag.



Vo kopplas till en ingång på kontrollerkortet.
Jag vet inte om det interna ryckuppmotståndet räcker för optokopplarens emitter, men det är väl bara att testa.
Jag får se hur jag behöver använda basen, men jag börjar med 0,1 nF mellan bas och emitter som lågpassfiltrering.

Sedan är ju det frågan var jag placera optokopplaren, vid plasmaskäraren eller i kontrollerlådan?

Medlempresentation.
Senast lyssnat.
Instagram.

Edited by - solhaga on 2021/03/18 22:58:41
Go to Top of Page

peterh
Member

918 Posts

Posted - 2021/03/18 :  22:14:46  Show Profile  Visit peterh's Homepage Send peterh a Private Message  Reply
Detta är imponerande. Fanns det något innovationspris att nominera skulle jag inte tveka !

Musik som rör med rör
http://tubular-well.se

Go to Top of Page

solhaga
100.000-klubben

2231 Posts

Posted - 2021/03/21 :  10:33:41  Show Profile  Visit solhaga's Homepage Send solhaga a Private Message  Reply
Nja, någon direkt verkshöjd är ju det inte.

Nåväl, det fungerade och hela elektroniken hamnade i kontrolllådan.

Som underrede tänker jag mig något väldigt enkelt; gavlar av Lecablock med fyra stycken 60x40x2 mm stålprofiler liggande ovanpå:



Givetvis så får jag förankra profilerna sinsemellan och mot Lecablocken.
Ovanpå detta lägger jag en MDF-skiva och sedan det gamla bordet på det.

Medlempresentation.
Senast lyssnat.
Instagram.

Edited by - solhaga on 2021/03/21 10:34:24
Go to Top of Page

solhaga
100.000-klubben

2231 Posts

Posted - 2021/03/25 :  17:33:57  Show Profile  Visit solhaga's Homepage Send solhaga a Private Message  Reply
Då var det dags att ta sig an THC:n.

Spänningarna jag kan förvänta mig är upptill 200 V, men plasmabrännaren har en 1:50 skalning så 4 V är maximum.
Men det är en flytande potential som måste hållas isolerad från kontrollerlådan så jag använder en isolationsförstärkare ACPL-790B för det.
Den har dock ett begränsad linjärt omfång, så jag måste ytterligare skala ned 1:10 med en potentiometer på ingången.
Normalt sett så skulle utgångarna gå via en differentialförsärkare samt ytterligare ett steg, men jag kopplar utgångarna direkt till SKR:ens AD-ingångar.
Jag har tidigare lyckats att få en acceptabelt upplösning med en Arduinos 8 bitars AD, så SKR:ens 12 bitar kan ju bara bli bättre, eller.

ADC:ns Vref är 3,3 V, så 3,3/1024 ger 3,2 mV per bit som gånger 10 och sedan gånger 50 ger 1,6 V, dvs i storleksordningen 1 % av 200 V.
Jag har en obekräftad uppgift om att 1 V innebär 0,4 mm ändring av gapet, så jag skulle i så fall hamna på en minsta justering baserat på avläst värde om 0,6 mm.
Sedan kan man ju medelvärdesbilda samt titta på långsiktiga trender; plåtens derivata i höjdled är ju inte så stor, så det kanske räcker till än bättre.

Först måste jag klura ut hur jag får läst in THC-värdena; det är en ganska långa ISR...
Men jag ju åtminstone gjort den delen förut, värre blir det med att få till korrektionsvärdet i stepper-ISR:en.

Medlempresentation.
Senast lyssnat.
Instagram.

Edited by - solhaga on 2021/03/25 17:34:33
Go to Top of Page

solhaga
100.000-klubben

2231 Posts

Posted - 2021/03/31 :  00:15:06  Show Profile  Visit solhaga's Homepage Send solhaga a Private Message  Reply
Efter en djupdykning i en annan ISR, den för temperaturinläsning, har jag där lyckats läsa in de två spänningarna, kolla skillnaden och polariteten mot förväntat värde för att sedan använda ett API för babystep i samma ISR.

Inläsning:
#if COREXY_PLASMA
      case PrepareTHC_1: HAL_START_ADC(VOLTAGE_DIVIDER_PLUS_PIN); break;
      case MeasureTHC_1: 
        voltage_plus = HAL_READ_ADC();
        WRITE(PLASMA_VD_UPDATES_PIN, HIGH);
        break;
      case PrepareTHC_0: HAL_START_ADC(VOLTAGE_DIVIDER_MINUS_PIN); break;
      case MeasureTHC_0: 
        voltage_minus = HAL_READ_ADC();
        WRITE(PLASMA_VD_UPDATES_PIN, LOW);
        actualThcVoltage = ((voltage_plus - voltage_minus) - OFFSET)/SLOPE;
        plasmaManager.setActualThcVoltage(actualThcVoltage);
        break;
    #endif


PLASMA_VD_UPDATES_PIN togglar jag för att kunna se samplingsfrekvensen.

Uträkning:
#if COREXY_PLASMA && ENABLED(BABYSTEPPING) && DISABLED(INTEGRATED_BABYSTEPPING)
    // Check if THC is enabled
    if (plasmaManager.isThcEnabled() == true) {
       // Check hysteresis
      if (abs(plasmaManager.getWantedThcVoltage() - plasmaManager.getActualThcVoltage()) > 1) {
        // Calculate direction
        if (plasmaManager.getWantedThcVoltage() > plasmaManager.getActualThcVoltage()) {
          babystep_position += BABYSTEP;
          if (babystep_position > 20.0) { // check max limit, should be 20!
            babystep_position = 20.0;
          } else {
            babystep.add_mm(Z_AXIS, BABYSTEP);
          }
        } else {
          babystep_position -= BABYSTEP;
          if (babystep_position < -20.0) { // check min limit, should be -20
            babystep_position = -20.0;
          } else {
            babystep.add_mm(Z_AXIS, -BABYSTEP);
          }
        }
      }
    }
  #endif


Kodsnutten ovan får jag nog fila på lite; det är lite för många if-nivåer för min smak.


Sättning:
#if ENABLED(BABYSTEPPING) && DISABLED(INTEGRATED_BABYSTEPPING)      
    babystep.task();
    #if COREXY_PLASMA
      babystep.task();
      babystep.task();
      babystep.task();
    #endif
  #endif


Babystep är normalt en ganska långsam funktion som används för "first layer calibration", så jag fann att multipla anrop till babystep.task() var nödvändiga för att få en vettig derivata för höjdjusteringen.
Jag vill naturligtvis ha en bättre lösning.

Jag har simulerat bågspänningen, som alltså visar på höjden mellan munstycket och plåten, med ett varierbart spänningsaggregat.
Z-axeln har då gått upp och ner, men med fulla utslag eftersom jag inte hinner att göra så korta felspänningar med potentiometern; spänningen läses av 200 ggr i sekunden.
Så loopen måste slutas i verkligheten; bågspänningen sjunker och ökar då med minskat respektive ökat avstånd när skärmunstycket far över plåten.
Som mest är hastigheten 140 mm/s och skäraren måste kunna kompensera i höjdled för böjda och ojämna plåtar samt att plåten kan böjas vid själva skärningen.

Medlempresentation.
Senast lyssnat.
Instagram.

Edited by - solhaga on 2021/03/31 00:16:37
Go to Top of Page

peterh
Member

918 Posts

Posted - 2021/03/31 :  09:09:02  Show Profile  Visit peterh's Homepage Send peterh a Private Message  Reply
EN liten synpunkt :
du gör "plasmaManager.getWantedThcVoltage() - plasmaManager.getActualThcVoltage()" 2 ggr,
jag vet inte hur långsam den är men jag skulle göra det en gång och sätta värdena i en variabel
Variabel1=plasmaManager.getWantedThcVoltage();
variabel2=lasmaManager.getActualThcVoltage();
för att sedan gör abs(variabel1) och resten .

Men antalet nästlade "if" ser jag inget problem med.

Är det en arduino ?

Musik som rör med rör
http://tubular-well.se

Go to Top of Page

solhaga
100.000-klubben

2231 Posts

Posted - 2021/03/31 :  10:32:21  Show Profile  Visit solhaga's Homepage Send solhaga a Private Message  Reply
Att använda mellanvariabler skulle nog göra det mer ineffektivt plus potentiellt göra koden mer svårläst.
Dessutom så skulle "Variabel1=plasmaManager.getWantedThcVoltage()" sabotera hela klasstänket.
Eftersom plasmaManager.getWantedThcVoltage() faktiskt kan ändras mellan beräkningarna, så skulle den andra beräkningen kunna gå åt fel håll.
Om det spelar någon roll i praktiken låter jag vara osagt.

Nej, det är en SKR 1.4 Turbo baserad på 32-bitars 120 MHz LPC1769 Arm Cortex.
För menyhantering använder jag en TFT35.
De är mycket trevliga att arbeta med och tillsammans med VSCode och insticksmodulerna PlatformIO samt Auto Build Marlin blir cykeltiden kort.

En ren total kompilering tar 53 sekunder, har du bara ändrat i en fil tar det 6 sekunder.
Uppladdning till SKR:ens SD-kort tar 7 sekunder.
Sedan måste SKR:en återställas två gånger, en gång för att ladda in binären till minnet och en gång för att starta med den nya binären.
Det tar 24 sekunder.

Liknade tider för programvaran för TFT:en, men där måste man överföra binären till TFT:ns SD-minneskort "off-line".
Om man bara skall ändra på TFT:ns menyer, så behöver man bara ändra i en klartext

Medlempresentation.
Senast lyssnat.
Instagram.
Go to Top of Page

peterh
Member

918 Posts

Posted - 2021/03/31 :  10:50:05  Show Profile  Visit peterh's Homepage Send peterh a Private Message  Reply
Nja, det kan nog diskuteras. Att anropa en rutin ( vars flöde vi inte vet) 2 ggr i tät följd drar mer resurser än att anropa en gång och spara i en variabel. Hela sekvensen skall ju operera på ögonblicksvärdet.
Om den dessutom skulle ändras mellan anrop 1 och anrop 2 så invalideras ju den första if-satsen och man kan ta fel väg.

Nej, läs en gång och agera därefter tycker jag. Men det är ju en mindre optimering och ditt första inlägg var ju avsett att få det mera lättläst, så där har du rätt.Att vara lättläst är ett bra steg till att få det korrekt.


Musik som rör med rör
http://tubular-well.se

Go to Top of Page

FForsman
100.000-klubben

2324 Posts

Posted - 2021/03/31 :  11:07:46  Show Profile  Visit FForsman's Homepage Send FForsman a Private Message  Reply
Vilket kul projekt. Önskar att jag hade förmågan att ge mig i kast med dylika konstruktioner men det är inte inom räckhåll. Imponerande!

Ordet amatör har sina rötter i ordet amore - en amatör älskar det hon gör.

Go to Top of Page

solhaga
100.000-klubben

2231 Posts

Posted - 2021/03/31 :  12:30:40  Show Profile  Visit solhaga's Homepage Send solhaga a Private Message  Reply
quote:
Att anropa en rutin ( vars flöde vi inte vet) 2 ggr i tät följd

Det är bara en getter:
quote:
Getters and setters are ONLY for incapsulating the data, and the access to it. There is NO performance overhead, simple getters and setters are inlined by the compiler.


quote:
Om den dessutom skulle ändras mellan anrop 1 och anrop 2

Det inte möjligt eftersom vi redan är i en ISR, så min kommentar var felaktig. Om inte ISR:en är preemptiv förstås.

@FForsman: Och jag önskar att jag hade din "finish".

Medlempresentation.
Senast lyssnat.
Instagram.
Go to Top of Page

FForsman
100.000-klubben

2324 Posts

Posted - 2021/03/31 :  17:19:25  Show Profile  Visit FForsman's Homepage Send FForsman a Private Message  Reply
quote:
@FForsman: Och jag önskar att jag hade din "finish".
Det måste vara Pix du syftar på

Ordet amatör har sina rötter i ordet amore - en amatör älskar det hon gör.

Go to Top of Page

solhaga
100.000-klubben

2231 Posts

Posted - 2021/04/13 :  19:17:52  Show Profile  Visit solhaga's Homepage Send solhaga a Private Message  Reply
Dags att riva ut den gamla plasma CNC:n:


Och mura upp ett fundament för den nya samt svetsa ihop ett underrede:


IHS mankerade, antagligen så hade den legat an min dummyplåt och dragit ur batteriet.
Så när jag skulla testköra någon dag senare körde Z-led i botten och detta hände:


Så nu har jag bytt ut batteriet mot en vårta och bytt ut Z-kopplingen mot en "claw"-typ:

Medlempresentation.
Senast lyssnat.
Instagram.

Edited by - solhaga on 2021/04/13 19:20:05
Go to Top of Page

solhaga
100.000-klubben

2231 Posts

Posted - 2021/04/14 :  19:41:09  Show Profile  Visit solhaga's Homepage Send solhaga a Private Message  Reply
Underredet klart:



Lite svart rostskyddsfärg täcker alla svetssynder .

Medlempresentation.
Senast lyssnat.
Instagram.

Edited by - solhaga on 2021/04/14 19:43:29
Go to Top of Page
Page: of 4 Previous Topic Topic Next Topic  
Previous Page
 New Topic  Reply to Topic
 Printer Friendly
Jump To:
HiFiForum.nu © HiFiForum.nu except: Logos and Trademarks are property of their owners, Comments are property of their posters Go To Top Of Page
Denna sida genererades på 0.26 sekunder. Snitz Forums 2000