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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 19

Thema: Palettierfunktion entwickeln ...

  1. #1
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich wollte gerne eine Syntax entwickeln, damit ich auf einer Palette 25 Lagerplätze (5 Reihen und 5 Spalten) mittels zwei Achsen (X,Y) ansteuern kann.

    Um nicht jeden Punkt einzeln teachen und speichern zu müssen, gibt es doch sicher auch noch eine "einfachere" Möglichkeit, oder?

    Ich hatte mir das so vorgestellt:

    - Position 1 teachen
    - Offset in X-Richtung ermitteln
    - Offset in Y-Richtung ermitteln

    Das Problem nun, wie packe ich das Ganze jetzt in eine Formel, um alle Lagerplätze nach Position 1 der Reihe nach anzusteuern?

    Es müssten ja zunächst die nachfolgenden Spalten der Reihe 1, dann alle Spalten der Reihe 2, usw. abgearbeitet werden ...

    Komme da auf keinen grünen Zweig; habt ihr evtl. einen Ansatz für mich?


    Lieben Dank!
    LG
    spirit
    Zitieren Zitieren Palettierfunktion entwickeln ...  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard

    Hallo Spirit,
    das macht man eigentlich so, das man die Positionen von mindestens 3 der Ecken einteacht und dann das Raster ausrechnet. Etwas genauer wird es noch, wenn man alle 4 Ecken einteacht weil man dann einen möglichen Raster-Teach-Fehler noch ein wenig rausrechnen kann.
    Aufpassen : wenn deine Positionen nicht rechtwinklig zu den Achsen stehen dann mußt du den Winkel-Vektor noch mit einbeziehen - ich würde es von Anfang an so aufbauen ...

    Gruß
    Larry

  3. #3
    Registriert seit
    11.12.2009
    Beiträge
    2.113
    Danke
    388
    Erhielt 390 Danke für 271 Beiträge

    Standard

    Also ich halte es seit Jahren so, dass ich ein Referenzteil habe X1 Y1 und dieses Teache. Über die Visu gebe ich die Offsetwerte der einzelnen Plätze an, und es wird dann entsprechend verrechnet. Die "Formel" dafür sollte relativ einfach durch kurzes Nachdenken herrauszufinden sein.

    Grüße

    Marcel
    Stell Dir vor es geht, und keiner kriegts hin!

  4. #4
    Registriert seit
    19.10.2010
    Beiträge
    325
    Danke
    15
    Erhielt 36 Danke für 31 Beiträge

    Standard

    Sowas habe ich mal in meiner Ausbildung gemacht. Sollte per Modulo und normaler Division zu lösen sein.

  5. #5
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Zitat Zitat von Matze001 Beitrag anzeigen
    Also ich halte es seit Jahren so, dass ich ein Referenzteil habe X1 Y1 und dieses Teache. Über die Visu gebe ich die Offsetwerte der einzelnen Plätze an, und es wird dann entsprechend verrechnet. Die "Formel" dafür sollte relativ einfach durch kurzes Nachdenken herrauszufinden sein.

    Grüße

    Marcel
    Danke euch schon mal ...

    Ok - nun wegen der "Einfachheit" halber zunächst mal nur einen Teachpunkt (Steigerung wäre ja noch möglich ) angenommen:


    Nun mal nur für die Spalten gesprochen; die Formel müsste hier ja jetzt von einem festen Teachpunkt (X-Wert an Pos. 1) ausgehen, zu dem dann immer der Offset addiert wird.


    Für Spalte 3 beispielsweise hieße das dann, Teachpunkt + 2x Offset, usw.

    Kann man (frau) das so machen?
    LG
    spirit

  6. #6
    Registriert seit
    12.04.2005
    Ort
    Black Forest
    Beiträge
    1.335
    Danke
    27
    Erhielt 129 Danke für 116 Beiträge

    Standard

    Das ganze haben wir in der NC immer berechnet.
    Von daher kann man es natürlich auch in der SPS machen!


    Also du hast Startposition (X und Y), dann Offset für X und für Y sowie Anzahl der Plätze in X und Y.
    Dann noch Zähler für Platz-Nr. oder halt Teile-Nr. (hier könnte man sogar zwischen Rohteil und Fertigteil unterscheiden)

    Dann wird einfach im Prinzip Reihen und Spalte berechent.
    Wenn Du das dann hast, kannst die Position einfach errechnen.

    Die Reihe berechnest dann mittels (jetzt gerade auf die schnelle aus dem Kopf):

    Reihe = INT ((Teile-Zähler - 1) / Anzahl Plätze_in_Y) + 1
    Y-Pos = Start_Y + (Reihe * Offset_Y)

    Das selbe dann im Prinzip für die Spalte ...

    Dann halt Abfangen wenn am Ende:
    Wenn Teil > Anzahl_X * Anzahl_Y dann Teil = 1 ...
    Geändert von Boxy (20.08.2014 um 14:39 Uhr)

  7. #7
    Registriert seit
    03.04.2008
    Beiträge
    6.200
    Danke
    237
    Erhielt 815 Danke für 689 Beiträge

    Standard

    Die erste Position ist doch X1, Y1 und Z1.
    Dann ist die zweite Position X1+OffsetX, Y1 und Z1.
    Die dritte Position X1+2*OffsetX, Y1, Z1.
    Wenn du dann die X Reihe voll hast, dann Ist die erste Position der zweiten Reihe X1, Y1+OffsetY, Z1.
    Ist dann die erste Lage voll, beginnst du mit Z1 + OffsetZ.

    So geht das durch alle Reihen und Lagen.

    Hoffe es hilft.


    bike
    "Any fool can write code that a computer can understand.
    Good programmers write code that humans can understand."
    --Martin Fowler

  8. #8
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Zitat Zitat von bike Beitrag anzeigen
    Die erste Position ist doch X1, Y1 und Z1.
    Dann ist die zweite Position X1+OffsetX, Y1 und Z1.
    Die dritte Position X1+2*OffsetX, Y1, Z1.
    Wenn du dann die X Reihe voll hast, dann Ist die erste Position der zweiten Reihe X1, Y1+OffsetY, Z1.
    Ist dann die erste Lage voll, beginnst du mit Z1 + OffsetZ.

    So geht das durch alle Reihen und Lagen.

    Hoffe es hilft.


    bike
    Sorry, ich verstehe es echt nicht!

    Erste Position: X1, Y1

    Zweite Position: X1 + OffsetX, Y1

    Dritte Position: X1 + 2 x OffsetX, Y1

    usw.

    Soweit ist es schon klar - aber wie bringe ich diese Verhältnismäßigkeit mit jeder neuen Position in die SPS?
    LG
    spirit

  9. #9
    Registriert seit
    12.04.2005
    Ort
    Black Forest
    Beiträge
    1.335
    Danke
    27
    Erhielt 129 Danke für 116 Beiträge

    Standard

    Zitat Zitat von spirit Beitrag anzeigen
    Sorry, ich verstehe es echt nicht!

    Erste Position: X1, Y1

    Zweite Position: X1 + OffsetX, Y1

    Dritte Position: X1 + 2 x OffsetX, Y1

    usw.

    Soweit ist es schon klar - aber wie bringe ich diese Verhältnismäßigkeit mit jeder neuen Position in die SPS?
    Schau Dir mal mein Vorschlag an, wie Du es berechnen könntest ... Musst Dir nur ein Schachbrett denken ...
    Also Zeile und Spalte ...

    Code:
    01          X_Start = Teach_Pos_X
    01          Y_Start = Teach_Pos_Y 
    ;
    ;                berechnen position in Y 
    01             Reihe_Y = INT((Platz-Zähler - 1) / Anzahl_in_X) + 1
    01             Y_Position = Y_Start + Reihe_Y * Y_Abstand - Y_Abstand
    ;
    ;                Pointer Teilezähler in X 
    01             IF (Reihe_Y - 1) = 0 THEN 
    01                Spalte = 1
    01             ELSE 
    01                Spalte = Platz-Zähler - ((Reihe_Y - 1) * Anzahl_in_X)) 
    01             ENDIF
    ;
    ;                berechnen position in X 
    01             X_Position = X_Start + (Spalte * X_Abstand - X_Abstand)

    so soll es mal als Denkanstoss dienen
    In dieser Art, habe ich es zig mal in einem Lade-Portal im Einsatz ...
    Jetzt am besten in SCL ins TIA bringen und es funktioniert ...
    Geändert von Boxy (20.08.2014 um 15:25 Uhr)

  10. #10
    Registriert seit
    03.04.2008
    Beiträge
    6.200
    Danke
    237
    Erhielt 815 Danke für 689 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von spirit Beitrag anzeigen
    Sorry, ich verstehe es echt nicht!

    Erste Position: X1, Y1

    Zweite Position: X1 + OffsetX, Y1

    Dritte Position: X1 + 2 x OffsetX, Y1

    usw.

    Soweit ist es schon klar - aber wie bringe ich diese Verhältnismäßigkeit mit jeder neuen Position in die SPS?

    Also ein Beispiel:
    X = 10; Y = 34; OffsetX = 25; OffsetY = 30;
    Dies ist Position 1
    Position 2:
    X + OffsetX, Y; X = 10 + 25 , Y = 34;
    Position 3:
    X+ 2*Offset; Y; X = 10 + 2*25. Y = 34;
    zweite Spalte:
    X, Y+OffsetY; X = 10, Y = 34 + 30;

    usw.

    Alles klar?


    bike
    "Any fool can write code that a computer can understand.
    Good programmers write code that humans can understand."
    --Martin Fowler

Ähnliche Themen

  1. Step 7 Palettierfunktion
    Von The_Coon im Forum Simatic
    Antworten: 24
    Letzter Beitrag: 07.05.2013, 14:13
  2. Antworten: 4
    Letzter Beitrag: 13.11.2010, 16:17
  3. Logo Steuerung entwickeln
    Von lumi03 im Forum Sonstige Steuerungen
    Antworten: 3
    Letzter Beitrag: 12.06.2009, 18:59

Lesezeichen

Berechtigungen

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