- Labornetzteil AliExpress         
Seite 6 von 17 ErsteErste ... 4567816 ... LetzteLetzte
Ergebnis 51 bis 60 von 166

Thema: CNC mit Gleichstrommotoren

  1. #51
    Erfahrener Benutzer Begeisterter Techniker Avatar von Osser
    Registriert seit
    31.10.2006
    Ort
    Köln
    Alter
    53
    Beiträge
    396
    Anzeige

    Praxistest und DIY Projekte
    Hi Peter,


    ja ja, das kenn ich auch aus leidiger Erfahrung.

    Ich hoffe für Dich, das bald alles wieder im Lot ist.


    Gruss,

    O.

  2. #52
    Erfahrener Benutzer Begeisterter Techniker Avatar von Osser
    Registriert seit
    31.10.2006
    Ort
    Köln
    Alter
    53
    Beiträge
    396
    Hi,

    so, die erste Achse ist beinahe fertig und ich werde demnächst ein Vidscho vom Test hier einstellen. Aber erst muss ich einen Bug lösen der mir von den externen Encodern einen Positionswert liefert der 5 Mal so gross ist wie er eigentlich sein sollte. Da hat mir wohl der Compiler nen Streich gespielt, da die C Logik meines Erachtens nach stimmt.

    Auszug aus dem ExtEncoder Kommandoselector (Slave):
    Code:
        .
        .
        .
        /* POS READ */
        case CMD_GETPOS1:
          // return Bits 0..6
          iResponse = (uint8_t)(snapshot_pos & 0x7F);
          break;
        case CMD_GETPOS2:
          // return Bits 7..13
          /* 091120 OM results in slow compiled asm code!
          iResponse = (uint8_t)((snapshot_pos>>7) & 0x7F);
          */
          // byte0 bit7 and byte1 bit0..5
          iResponse = *((uint8_t*)(&snapshot_pos) + 0) >> 7;
          iResponse |= (*((uint8_t*)(&snapshot_pos) + 1) & 0x3F) << 1;
          break;
        case CMD_GETPOS3:
          // return Bits 14..20
          /* 091120 OM results in slow compiled asm code!
          iResponse = (uint8_t)((snapshot_pos>>14) & 0x7F);
          */
          // byte1 bit6..7 and byte2 bit 0..4
          iResponse = *((uint8_t*)(&snapshot_pos) + 1) >> 6;
          iResponse |= (*((uint8_t*)(&snapshot_pos) + 2) & 0x1F) << 2;
          break;
        /* SPEED READ */
        case CMD_GETSPEED1:
          // return Bits 0..6
          iResponse = (uint8_t)(snapshot_speed & 0x7F);
          break;
        case CMD_GETSPEED2:
          // return Bits 7..13
          iResponse = (uint8_t)((snapshot_speed>>7) & 0x7F);
          break;
        .
        .
        .
    .. und der Master
    Code:
    // Read signed 14 bit value from encoder
    uint8_t eenc_cmd_query14BIT(uint8_t aWR_Mask,uint8_t aRDY_Mask,uint8_t aCmdBase,int16_t* aVal) {
    
      uint8_t iBuf;
      int8_t i;
    
      // Query bits 13..7, 6..0 from rotencoder slave of axe X
      *aVal = 0UL;
      for (i = 1; i >= 0; i--) {
        if (P9WI_SlaveQuery(aWR_Mask, aRDY_Mask, aCmdBase + i, &iBuf, EENC_TIMEOUT) != P9WI_OK)
          return S_FALSE;
        // save data nibbles
        *aVal |= (int16_t)(iBuf & 0x7F);
        // shift left if not last data nibble
        if (i > 0)
          *aVal <<= 7;
      }
      // Check if it is a negative number, bit 13 is "1" in this case
      if (*aVal & 0x2000)
        *aVal |= 0xC000;
    
      return S_OK;
    }
    
    /*
    .
    .
    .
    Read signed 21 bit value from encoder
    */
    uint8_t eenc_cmd_query21BIT(uint8_t aWR_Mask,uint8_t aRDY_Mask,uint8_t aCmdBase,int32_t* aVal) {
    
      uint8_t iBuf;
      int8_t i;
    
      // Query bits 20..14, 13..7, 6..0 from rotencoder slave of axe X
      *aVal = 0ULL;
      for (i = 2; i >= 0; i--) {
        if (P9WI_SlaveQuery(aWR_Mask, aRDY_Mask, aCmdBase + i, &iBuf, EENC_TIMEOUT) != P9WI_OK)
          return S_FALSE;
        // save data nibbles
        *aVal |= (int32_t)(iBuf & 0x7F);
        // shift left if not last data nibble
        if (i > 0)
          *aVal <<= 7;
      }
      // Check if it is a negative number, bit 20 is "1" in this case
      if (*aVal & 0x100000)
        *aVal |= 0xFFF00000;
      return S_OK;
    }
    .
    .
    .

    Die Daten werden jeweils zu sieben bit über den Datenbus vom ExtEncoder gepollt und anschliesend im Master wieder zusammengesetzt.
    Ich dachte das der Kode so stimmen sollte, aber vielleicht ist der Fehler auch in der Lagereglung.


    Den NC integrator habe ich für Linien (G00, G01) fertig und bereits mit compiliert, beschränke mich im Moment aber auf Testcases um die Parameter der Achsverstärker richtig abzustimmen. Der Testcase 3 fährt z.B. mit einer Amplitude von 20mm von der heutigen Position in die positive Richtung und anschliessend wieder auf den Ausgangspunkt zurück.
    Der Vorgang wird für zehn verschiedene Vorschubwerte wiederholt F={40, 75, 150, 300, 600, 1200, 2400, ...}


    Wenn die Position dann richtig ausgewertet wird, also nicht mehr 5 Mal so gross , werd ich den NC Integrator via Kommandozeile mit ISO Kodes füttern und den Part austesten. Den NC-Integrator hatte ich ja bereits in einem Simulator auf dem PC ausgetestet, der sollte also funktionieren falls der WinAVR Compiler mir nicht wieder einen Streich spielt.

    Ok, stay tuned!
    Bis zum Vidscho vom Test.

    Gruss,

    O.

  3. #53
    Erfahrener Benutzer Begeisterter Techniker Avatar von Osser
    Registriert seit
    31.10.2006
    Ort
    Köln
    Alter
    53
    Beiträge
    396
    Hi,


    hier das versprochene Video:
    http://secius.com/fileadmin/media/cn...res_skip20.mp4
    (Video des Lageregelungstests)


    Der Test läuft mit einer Verfahramplitude von 20mm und verschiedenen Geschwindigkeiten ab. Damit kann ich dann die Regelparameter einstellen so dass alles flutscht. Hab allerdings momentan noch ein Problem mit dem Netzteil das ich verwende, da das nur 3A liefert und der Motot im Vollast betrieb lt. Datenblatt ca. 2.86A zieht. Verfährt die Achse in den Letzten 3 Testzyklen mit F>2000, schaltet das Netzteil sich manchmal aus und hat keine Lust mehr.
    Momentan arbeite ich auch nur mit einer Achse und mit drei Achsen wird das dann natürlich dementsprechend mehr Strom werden, vor allem beim Anfahren der Achsen aus dem Stillstand.

    Als vernünftige Stromversorgung hab ich mir ein Netzteil von MeanWell (S150-15) ausgesucht mit Sekundär 15V, 10A was für die drei Antriebe reichen sollte.



    Gruss,

    O.
    Geändert von Osser (14.01.2022 um 08:20 Uhr)

  4. #54
    Benutzer Stammmitglied
    Registriert seit
    04.12.2007
    Ort
    Kassel
    Alter
    71
    Beiträge
    48
    https://www.roboternetz.de/phpBB2/al...hp?pic_id=2155

    Hallo zusammen
    hier ein paar Daten von einer UHU gesteuerten kleinen CNCPlatinenfräse
    500 Encoder 4 fach Auswertung also 2000 Schritte pro Motorumdrehung
    Motore Escap 24V 3A untersetzt 5 zu 1 an einer 12x10 Kugelspindel
    0,001mm Auflösung , gerade mal 1 A ziehen die Motore im Mittel
    Haltestrom ca 80mA ,Netzteil MeanWell 24 V 6,4A auf 30V eingestellt.
    Geschwindigkeit ausreichend hier bei einer 80mm Kreistasche
    http://www.myvideo.de/watch/7047615/UHU_CNC
    Verfahrwege 230x120x85mm


    wie sieht den die Erwärmung von den Standartmotoren im Dauerbetrieb aus .

    wie sollen später mal die Parameter abgeglichen werden
    bei UHU wird über eine serielle die Einstellung vorgenommen
    und auch eine Regelanalyse ausgegeben
    http://www.uhu-servo.de/servo_de/UHU...0_short_de.pdf
    http://www.uhu-servo.de/servo_de/bilder/term.jpg

    hier mal mit 300V 100A Fets mit 50 A Motorstrom
    https://www.roboternetz.de/phpBB2/al...hp?pic_id=2428
    Gruß Lacky

  5. #55
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    29.04.2009
    Ort
    345**
    Alter
    30
    Beiträge
    435
    also ich wollt nur noch mal sagen, dass die Bohrmaschine das nicht lange mit machen wird. Die lager da drin sind nicht auf radiale belastungen ausgelegt, nur auf Radiale. leider treten beim fräsen aber eher radiale belastungen auf, was auf dauer zu lagerschäden führen kann. ansonsten: tolles projekt!

  6. #56
    Erfahrener Benutzer Begeisterter Techniker Avatar von Osser
    Registriert seit
    31.10.2006
    Ort
    Köln
    Alter
    53
    Beiträge
    396
    Hi wisda.noobie,


    mein Ansatz ist der, alle Bauteile und Baugruppen selbst zu erstellen ausser Mototen udgl.
    Die ursprüngliche Idee die Z-Achse aus der Pinole einer Ständerbohrmaschine zu bauen habe ich ursprünglich angedacht, um mir das Bauen einer Achse zu sparen. Davon bin ich aber abgegangen, wie ich bereits schrieb, da das Spiel der Pinole viel zu gross ist und der Umbau genauso viel Zeit kostet wie der Bau einer eigenen Achse.

    Das eine Bohrpinole nur für Achsial und nicht für Radialbelastung ausgelegt ist ist mir bewust. Hier wollte ich urspünglich auch neue Lager einbauen um die Radialbelatung aufzufangen, aber das hat sich ja wie erwähnt erledigt.

    Alle drei Achsen werden wie die im Video gezeigte ausgelegt.

    Gruss,

    O.

  7. #57
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    29.04.2009
    Ort
    345**
    Alter
    30
    Beiträge
    435
    dann ist ja ok...ich hätte mir bei einem so durchdachten Konzept eigentlich auch nichts anderes gedacht...noch mal: respekt!

  8. #58
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    08.04.2009
    Ort
    an der Ostsee
    Beiträge
    334
    moin moin,

    so, an die Fräse muß nun ein Schild ran " sponsored by Stadtwerke".

    Anbei mal ein Foto vom Anfang der Z-Achse, hilf Dir eventuell etwas.
    Das Video sieht gut aus.
    Sorry wegen der kürze, will heute noch was schaffen...denn Urlaub für dieses Jahr ist gestrichen

    Mit Gruß
    Peter

  9. #59
    Erfahrener Benutzer Begeisterter Techniker Avatar von Osser
    Registriert seit
    31.10.2006
    Ort
    Köln
    Alter
    53
    Beiträge
    396
    Ahhh der Peter, moin moin,

    also so schön wie deine Achsen sehen meine nicht aus :-|
    Eine direkte Kopplung der Motoren auf die Gewinde ist ja ne gute Idee, ..... für ein besseres Regelverhalten schätz ich.

    Bin gerade dabei die zweite Achse zu bauen und danach werd ich den NC-Integrator mal ein bischen in der Gegend rum integrieren lassen.
    Dazu muss dann noch ein Editor in die Firmware des ATmega64, damit ich ein ISO-Proggi eingeben und ändern kann.

    Da hab ich noch ein gutes Stück arbeit vor mir...


    Gruss,

    O.


    P.S. Ach ja, was generve von Stromlieferanten und Maloche betrifft: Einfach nicht ignorieren

  10. #60
    Erfahrener Benutzer Begeisterter Techniker Avatar von Osser
    Registriert seit
    31.10.2006
    Ort
    Köln
    Alter
    53
    Beiträge
    396
    Hi wisda.noobie,


    Du hast ja nette Tests auf deiner Seite :--)



    Gruss,

    O.

Seite 6 von 17 ErsteErste ... 4567816 ... LetzteLetzte

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress