Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 25

Thema: Palettierfunktion

  1. #11
    Registriert seit
    01.05.2013
    Beiträge
    345
    Danke
    174
    Erhielt 3 Danke für 3 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Vergiss nicht :
    -GOOGLE hilft nichts wenn man keine Ahnung hat !



    Roboter ( un von dennen war die Sprache!) ...machen es aber SO !
    ... mit LINIARE ALGEBRA (Matrix) und/oder QUATERNIONEN rechnung (sogar 3D ...also ROBOTER beladen von 3D Schiefligenden Palettenstapeln )


    AHNUNG haben betdeutet ...nicht EXPERTE und nichtmal ERFAHREN zu sein ....Anfänger haben AHNUNG
    Geändert von 00alex (05.05.2013 um 10:18 Uhr)

  2. #12
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.184
    Danke
    923
    Erhielt 3.290 Danke für 2.659 Beiträge

    Standard

    Zitat Zitat von 00alex Beitrag anzeigen
    AHNUNG haben betdeutet ...nicht EXPERTE und nichtmal ERFAHREN zu sein ....Anfänger haben AHNUNG
    Dann hättest Du wohl wirklich sehr viel AHNUNG

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  3. Folgende 2 Benutzer sagen Danke zu PN/DP für den nützlichen Beitrag:

    00alex (05.05.2013),Paul (06.05.2013)

  4. #13
    Registriert seit
    12.04.2005
    Ort
    Black Forest
    Beiträge
    1.336
    Danke
    27
    Erhielt 130 Danke für 117 Beiträge

    Standard

    Wenn die Teile irgendwie auf der X - Y Koordinate liegen wird die SPS es nur dann errechnen können, wen diese es irgendwie ermitteln kann.
    Ich habe da ne Palette und weis aber nciht wie diese im Lader liegt, hielt da nicht viel!

    Möglichkeit wäre ja, ein Sensor am Greifer anzubauen und dann die Lage zu vermessen und dies dann per Offset verrechnen.
    Alternative, evtl. mit einem Zylinder die Palette indexieren?

    Und die teuere Lösung, Kamerasystem welche jedes Teil erkennt und da den Mittelpunkt errechnet und die Verschiebungen dann errechnet und übergibt!

  5. #14
    Registriert seit
    01.05.2013
    Beiträge
    345
    Danke
    174
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Zitat Zitat von Boxy Beitrag anzeigen
    ...

    Und die teuere Lösung, Kamerasystem welche jedes Teil erkennt und da den Mittelpunkt errechnet und die Verschiebungen dann errechnet und übergibt!
    Die wäre nicht TEUER wenn dadurch ein Arbeiter "erspart" wird (oder was von seinem Lohn) !

    Auf lange Sicht viele "teuere" Sachen sind BILLIG !

    Jeden einzelne Palette TEACH-en ist auch keine Lösung n
    Geändert von 00alex (05.05.2013 um 11:33 Uhr)

  6. #15
    Registriert seit
    25.06.2007
    Ort
    Dresden
    Beiträge
    3.930
    Danke
    465
    Erhielt 878 Danke für 634 Beiträge

    Standard

    Es denke es liegt ein generelles Missverständnis vor!

    Mit dem Drei-Punkte-Teachen teacht man jeweils MIT einem Teil im PalettiererGreifer die 3 genannten Kavitäten
    und zwar so, das man das Teil saugend einsetzen und/oder wieder entnehmen kann.
    Es soll ja auch Palettierer geben wo man nur Teile entnimmt, oder?

    Zum Teachen verwendet man eine Masterpalette, wo man weiß das diese maßhaltig ist.

    Alle anderen Paletten sind dann dieser Masterpalette anzupassen oder auszusortieren.
    Wenn man mit den üblichen tiefgezogenen Plastikpaletten arbeitet, dann geht ohnehin nur
    Verwenden oder Verwerfen.

    Fälle, wo JEDE Palette anderes ist sind äußerst selten und nur bei einer sehr geringen Zahl von Paletten sinnvoll.
    Dabei müsste dann auch jede Palette codiert sein. Jede Palette nach dem Einschleusen irgendwie vermessen zu
    wollen scheitert fast immer an der Taktzeit des Palettierers. Daher ist oft Pfusch am Bau die Ursache dafür, das jede
    Palette anderes ist. Vergesst solche Varianten lieber ganz schnell.
    Grüße Frank

  7. #16
    Registriert seit
    12.04.2005
    Ort
    Black Forest
    Beiträge
    1.336
    Danke
    27
    Erhielt 130 Danke für 117 Beiträge

    Standard

    Zitat Zitat von IBFS Beitrag anzeigen
    Daher ist oft Pfusch am Bau die Ursache dafür, das jede
    Palette anderes ist. Vergesst solche Varianten lieber ganz schnell.
    Dies kommt meist oder ja oft bei den Draht-Körben vor, welche ja geschweißt sind.
    Hier gibts teils schwankungen im mm Bereich.
    Aber bei Paletten, sollten die Fertigungstoleranzen (selbst nach DIN mittel) sich sehr in Grenzen halten.
    Wenn die Palette nicht immer "sauber" anliegt, hilft meist eine Art von Index welche die Palette dann fixiert und in die richtige Position drückt!

    Daher lassen sich die Position meist sehr gut berechnen.
    Wir machen dies sehr oft und da reichen die 3 Koordinaten meist aus.

  8. #17
    The_Coon ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    20.07.2011
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke erstmal für die Antworten.

    Falls es Missverständnisse gibt erklär ich es nochmal genau.

    Es ist eine Messmaschine, mit 12 verschieden Fehlermerkmalen. Die schlechten Teile werden aussortiert und mit dem Portal in 12 Draht-Körbchen(10x8 Plätze) je nach Fehlermerkmal eingelegt.
    Ohne Berechnung müsste ich oder später der Bediener 960 Punkte teachen. Deswegen will ich pro Palette 3 Punkte teachen und die restlichen berechnen. Dann sind es nur 36 Teachpunkte.
    Die Paletten liegen auf Zentrierstiften und sollten deshalb bis auf die Fertigungstoleranzen immer gleich liegen. Normalerweise muss man die Punkte deswegen nur einmal teachen, dann passt es solange bis es ein Crash gibt oder der Greifer gewechselt werden muss oder ähnliches.

    Ich habe jetzt folgenden Baustein geschrieben, mit dem müsste es hoffentlich funktioniere. Das werde ich die Woche herausfinden.

    Code:
    FUNCTION V3_pal : vector_3
    TITLE = 'V3_pal'
    VERSION : '1.0'
    AUTHOR  : MW
    NAME    : V3_pal
    FAMILY  : MATH_V3
    
    VAR_INPUT
        A : Vector_3;
        B : Vector_3;
        C : Vector_3;
        X_Reihen : REAL;
        Y_Spalten : REAL;
        ZAHL : DINT;
    END_VAR
    VAR
        temp_xStep : vector_3;
        temp_yStep : vector_3;
        temp_pos : vector_3;
        temp_REIHE : DINT;
        temp_Spalte : DINT; 
        temp_REIHE2 : REAL;
        temp_Spalte2 : REAL; 
        temp_ZAHL : DINT; 
        temp_REIHEN : DINT;        
    END_VAR
    
    BEGIN
    temp_REIHEN := REAL_TO_DINT(X_REIHEN);
    temp_ZAHL := Zahl - 1;
    temp_REIHE := temp_ZAHL MOD temp_REIHEN;
    temp_SPALTE := temp_ZAHL / temp_REIHEN;
    temp_REIHE2 := DINT_TO_REAL(temp_REIHE);
    temp_SPALTE2 := DINT_TO_REAL(temp_SPALTE);
    
    temp_xStep.X := (B.X - A.X) / (X_REIHEN -1.0);
    temp_xStep.Y := (B.Y - A.Y) / (X_REIHEN -1.0);
    temp_xStep.Z := (B.Z - A.Z) / (X_REIHEN -1.0);
    temp_yStep.X := (C.X - A.X) / (Y_Spalten -1.0);
    temp_yStep.Y := (C.Y - A.Y) / (Y_Spalten -1.0);
    temp_yStep.Z := (C.Z - A.Z) / (Y_Spalten -1.0);
    
    temp_pos.X := A.X + temp_REIHE2 * temp_xStep.X + temp_Spalte2 * temp_yStep.X;
    temp_pos.Y := A.Y + temp_REIHE2 * temp_xStep.Y + temp_Spalte2 * temp_yStep.Y;
    temp_pos.Z := A.Z + temp_REIHE2 * temp_xStep.Z + temp_Spalte2 * temp_yStep.Z;
    
    V3_pal := temp_pos;
    
    END_FUNCTION

  9. #18
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    Hallo,
    wie du so auf die jeweiligen Positionen kommen willst (also das Wissen, wo du hinwillst) erschließt sich mir nicht.
    Ich würde bei deinem Projekt aber noch weiter gehen :
    Wenn alle deine Ablagekörbe gleich groß sind dann kannst du dir auch nur das Raster eines Korbes "merken" und von allen anderen Körben jeweils nur eine (hier aber vorher festgelegte) Ecke.

    Ich würde das einen FB managen lassen (vom programmieren her wäre hier auch SCL meine Wahl) und dem einfach nur vorgeben, welchen Korb er beschicken soll.
    Die Position, wohin er zuletzt gelegt hat bzw. die, die als nächste dran ist würde ich in dem FB verwalten und von dem den jeweiligen Koordinatenblock ausgeben lassen.

    Gruß
    Larry

  10. #19
    Registriert seit
    01.05.2013
    Beiträge
    345
    Danke
    174
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Code:
    VAR_INPUT
        A : Vector_3;
        B : Vector_3;
        C : Vector_3;
        X_Reihen : REAL;
        Y_Spalten : REAL;
        ZAHL : DINT;
     ...
    END_VAR
    "A,B,C" sind die 3 TEACH Punkten ?
    "Vektor_3" ist ein S7 Datentyp [array] zB : A(Xa,Ya,Za) ?
    "X_Reihen : REAL" ist der Abstand zwischen 2 Plätze in X ?
    "Y_Spalten : REAL" ist der Abstand zwischen 2 Plätze in Y ?
    ( so wie es geschrieben ist ist dann logisch Fehlerhaft , es würde nicht funktionieren )
    ...bin nur neugierig , will selbst ein Versuch machen .

    Wofür brauchst du Operationen mit der Z Koordinate ( ist sie nicht gleich für alle Palletenplätze ?)
    Geändert von 00alex (06.05.2013 um 07:57 Uhr)

  11. #20
    Registriert seit
    13.10.2007
    Beiträge
    12.033
    Danke
    2.788
    Erhielt 3.269 Danke für 2.157 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich habe das hier mal ein wenig eingekürzt, damit wir uns wieder den eigentlichen Thema zuwenden können.
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  12. Folgender Benutzer sagt Danke zu rostiger Nagel für den nützlichen Beitrag:

    Blockmove (06.05.2013)

Lesezeichen

Berechtigungen

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