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

Ergebnis 1 bis 6 von 6

Thema: Stapelanlage mit 3 Achsen programmieren

  1. #1
    Registriert seit
    03.01.2006
    Ort
    Im sonnigen Süden von Österreich!
    Beiträge
    1.377
    Danke
    227
    Erhielt 182 Danke für 167 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Guten Morgen!

    Ich bin gerade dabei das ich eine Stapelanlage Programmiere.
    Ich habe mir gedacht ich mache das über eine Schrittkette mit SPL.

    Ein Grundkonzept habe ich schon Programmiert. (ein paar Sachen fehlen natürlich noch)

    Jetzt würde mich Interessieren ob da mein Grundgedanke der Schrittkette in Ordnung ist. (Ich weiß in letzter Zeit wurde schon öfters über Schrittketten geredet trozdem würde mich interessieren ob ich da am richtigen Weg bin)

    Im ersten Netzwerk will ich für die Schritte eine Freigabe machen so dass die Schritte im Automatikbetrieb einzeln abgefahren werden können. Habe mir das so gedacht wenn die Funktion nicht angewählt ist dann ist die Freigabe immer True ansonsten würde ich das mit einer Flanke weiterschalten.

    Der erste Schritt wird von einem anderem Baustein angewählt. Wenn der Automatikbetrieb eine Positive Flanke aufweißt dann wird in die Schrittkette der Wert 1 Transferiert. Bei Handbetrieb wird der Wert auf 0 gesetzt.

    Hier der Code
    Code:
    FUNCTION "SK Stapelanlage" : VOID
    TITLE =
    //
    VERSION : 0.1
     
    VAR_TEMP
      Freigabe_Schritte : BOOL ; 
    END_VAR
    BEGIN
    NETWORK
    TITLE =Freigabe für einzelne Schritte
          SET   ; 
          U     M      1.0; //Testmerker
          =     #Freigabe_Schritte; 
    NETWORK
    TITLE =Sprungleiste für Schrittkette
          L     "DB_Stapelanlage_neu".Schrittkette; 
          SPL   next; 
          SPA   end; //Bei Schrittkette 0 springe zu end
          SPA   SK01; //Bei Schrittkette 1 springe zu Schritt 1
          SPA   SK02; //Bei Schrittkette 2 springe zu Schritt 2
          SPA   SK03; //Bei Schrittkette 3 springe zu Schritt 3
          SPA   SK04; //Bei Schrittkette 4 springe zu Schritt 4
          SPA   SK05; //Bei Schrittkette 5 springe zu Schritt 5
          SPA   SK06; //Bei Schrittkette 6 springe zu Schritt 6
          SPA   SK07; //Bei Schrittkette 7 springe zu Schritt 7
          SPA   SK08; //Bei Schrittkette 8 springe zu Schritt 8                                          
          SPA   SK09; //Bei Schrittkette 9 springe zu Schritt 9
          SPA   SK10; //Bei Schrittkette 10 springe zu Schritt 10
          SPA   SK11; //Bei Schrittkette 11 springe zu Schritt 11
          SPA   SK12; //Bei Schrittkette 12 springe zu Schritt 12
    next: SPA   end; 
    NETWORK
    TITLE =SK01 - Referenz Fahren
    SK01: UN    "DB_Stapelanlage_neu".Referenzposition; 
          =     "DB_Stapelanlage_neu".Fahre_Referenz; 
    //Transition
          U     "DB_Stapelanlage_neu".Referenzposition; 
          L     S5T#2S; 
          SE    "SK-Verzögerung"; 
          U     "SK-Verzögerung"; 
          U     #Freigabe_Schritte; 
          SPB   SK; 
          BEA   ; 
    NETWORK
    TITLE =SK02 - Grundposition anfordern
    SK02: SET   ; 
          =     "DB_Stapelanlage_neu".Grundposition_anfordern; 
    //Transition
          U     "Daten Roboter".Neue_Daten_geladen; 
          L     S5T#2S; 
          SS    "SK-Verzögerung"; 
          U     "SK-Verzögerung"; 
          U     #Freigabe_Schritte; 
          R     "DB_Stapelanlage_neu".Grundposition_anfordern; 
          SPB   SK; 
          BEA   ; 
    NETWORK
    TITLE =SK03 - Grundposition anfahren Achse Z
    SK03: UN    "Achse Z endl. oben"; 
          =     "DB_Stapelanlage_neu".Freigabe_Achse_Z_Grundp; 
    //Transition
          U     "Achse Z endl. oben"; 
          L     S5T#2S; 
          SE    "SK-Verzögerung"; 
          U     "SK-Verzögerung"; 
          U     #Freigabe_Schritte; 
          SPB   SK; 
          BEA   ; 
     
    NETWORK
    TITLE =SK04 - Grundposition anfahren Achse X / Y und Wender
    SK04: NOP   0; 
    // Achse X
          U     "Achse Z endl. oben"; 
          UN    "Verz. E7.3"; 
          =     "DB_Stapelanlage_neu".Freigabe_Achse_X_Grundp; 
    // Achse Y
          U     "Achse Z endl. oben"; 
          UN    "Achse Y Grundst."; 
          =     "DB_Stapelanlage_neu".Freigabe_Achse_Y_Grundp; 
    // Wender
          U     "Achse Z endl. oben"; 
          UN    "Wender Grundstellung"; 
          =     "DB_Stapelanlage_neu".Freigabe_Wender_Grundp; 
    //Transition
          U     "Verz. E7.3"; 
          U     "Achse Y Grundst."; 
          U     "Wender Grundstellung"; 
          L     S5T#2S; 
          SE    "SK-Verzögerung"; 
          U     "SK-Verzögerung"; 
          U     #Freigabe_Schritte; 
          SPB   SK; 
          BEA   ; 
     
    NETWORK
    TITLE =SK05 - Abholposition anfahren
    SK05: U     "Abnahmepos. Stapelung"; 
          UN    "Achse Z Abnahmepos"; 
          U     "Wender Grundstellung"; 
          =     "DB_Stapelanlage_neu".Paket_Abholen; 
    //Transition
          U     "Achse Z Abnahmepos"; 
          L     S5T#2S; 
          SE    "SK-Verzögerung"; 
          U     "SK-Verzögerung"; 
          U     #Freigabe_Schritte; 
          SPB   SK; 
          BEA   ; 
     
    NETWORK
    TITLE =SK06 - Paketgreifer Schließen
    SK06: U     "Achse Z Abnahmepos"; 
          S     "DB_Stapelanlage_neu".Paketgreifer_schliessen; 
          R     "DB_Stapelanlage_neu".Paketgreifer_oeffnen; 
    //Transition                                     
          U     "Greifer zu Stapelanl."; 
          L     S5T#2S; 
          SE    "SK-Verzögerung"; 
          U     "SK-Verzögerung"; 
          U     #Freigabe_Schritte; 
          SPB   SK; 
          BEA   ; 
    NETWORK
    TITLE =SK07 - Achse Z in die Grundposition mit Paket
    SK07: UN    "Achse Z endl. oben"; 
          U     "Greifer zu Stapelanl."; 
          =     "DB_Stapelanlage_neu".Freigabe_Achse_Z_Grundp; 
    //Transition
          U     "Achse Z endl. oben"; 
          L     S5T#2S; 
          SE    "SK-Verzögerung"; 
          U     "SK-Verzögerung"; 
          U     #Freigabe_Schritte; 
          SPB   SK; 
          BEA   ; 
     
    NETWORK
    TITLE =SK08 - Lade Daten für Ablageposition
    SK08: U     "Greifer zu Stapelanl."; 
          =     "DB_Stapelanlage_neu".Ablageposition_anfordern; 
    //Transition
          U     "Daten Roboter".Neue_Daten_geladen; 
          L     S5T#2S; 
          SS    "SK-Verzögerung"; 
          U     "SK-Verzögerung"; 
          U     #Freigabe_Schritte; 
          R     "DB_Stapelanlage_neu".Grundposition_anfordern; 
          SPB   SK; 
          BEA   ; 
     
    NETWORK
    TITLE =SK09 - Ablageposition anfahren Achse X / Y und Wenden
    SK09: NOP   0; 
    // Achse X
          U     "Achse Z endl. oben"; 
          U     "Greifer zu Stapelanl."; 
    //+++++++++++++  Un Position X erreicht ++++++++++++++++++++++++++
          =     "DB_Stapelanlage_neu".Freigabe_Achse_X_Ablagep; 
    // Achse Y
          U     "Achse Z endl. oben"; 
          U     "Greifer zu Stapelanl."; 
    //+++++++++++++  Un Position Y erreicht ++++++++++++++++++++++++++
          =     "DB_Stapelanlage_neu".Freigabe_Achse_Y_Ablagep; 
    // Wender
          U     "Achse Z endl. oben"; 
          =     "DB_Stapelanlage_neu".Freigabe_Wender_Ablagep; 
     
    //Transition
    //+++++++++++++  U Position X und Y und Wender erreicht ++++++++++++++++++++++++++
          L     S5T#2S; 
          SE    "SK-Verzögerung"; 
          U     "SK-Verzögerung"; 
          U     #Freigabe_Schritte; 
          SPB   SK; 
          BEA   ; 
     
    NETWORK
    TITLE =SK10 - Ablageposition anfahren Achse Z
    SK10: NOP   0; 
    //+++++++++++++  U Position X und Y erreicht ++++++++++++++++++++++++++
    //+++++++++++++  Un Position Z erreicht ++++++++++++++++++++++++++
          =     "DB_Stapelanlage_neu".Freigabe_Achse_Z_Ablagep; 
    //Transition
    //+++++++++++++  U Position Z erreicht ++++++++++++++++++++++++++
          L     S5T#2S; 
          SE    "SK-Verzögerung"; 
          U     "SK-Verzögerung"; 
          U     #Freigabe_Schritte; 
          SPB   SK; 
          BEA   ; 
     
    NETWORK
    TITLE =SK11 - Paket Ablegen
    SK11: NOP   0; 
    //+++++++++++++  U Position X, Y und Z erreicht ++++++++++++++++++++++++++
          UN    "Greifer offen Stapelanl."; 
          S     "DB_Stapelanlage_neu".Paketgreifer_oeffnen; 
          R     "DB_Stapelanlage_neu".Paketgreifer_schliessen; 
    //Transition
          U     "Greifer offen Stapelanl."; 
          L     S5T#2S; 
          SE    "SK-Verzögerung"; 
          U     "SK-Verzögerung"; 
          U     #Freigabe_Schritte; 
          SPBN  end; 
          L     2; 
          T     "DB_Stapelanlage_neu".Schrittkette; 
          SET   ; 
          R     "SK-Verzögerung"; 
    //+++++++++++++  R Position X, Y und Z erreicht ++++++++++++++++++++++++++
          BEA   ; 
     
    NETWORK
    TITLE =SK12
    SK12: NOP   0; 
          BEA   ; 
     
    NETWORK
    TITLE =Ende
    end:  BEA   ; 
    NETWORK
    TITLE =Zähle einen Schritt vorwärts
    SK:   L     "DB_Stapelanlage_neu".Schrittkette; 
          L     1; 
          +I    ; 
          T     "DB_Stapelanlage_neu".Schrittkette; 
          SET   ; 
          R     "SK-Verzögerung"; 
    END_FUNCTION
    Ich bin für jede hilfe dankbar!

    godi
    Zitieren Zitieren Stapelanlage mit 3 Achsen programmieren  

  2. #2
    Registriert seit
    22.09.2006
    Ort
    Bodenseeraum
    Beiträge
    1.022
    Danke
    61
    Erhielt 136 Danke für 122 Beiträge

    Beitrag

    Hi,
    - kannst du keinen S7 GRAPH benutzen?
    - warum SK selber basteln: Standardbibliothek "TI-S7", FB "DRUM"; ist
    eine schöne fertige SK.

    Gruss: Vladi
    ______________________________________
    relax, take it easy
    Zitieren Zitieren Schrittkette  

  3. Folgender Benutzer sagt Danke zu vladi für den nützlichen Beitrag:

    godi (22.03.2007)

  4. #3
    Registriert seit
    16.06.2003
    Ort
    88356 Ostrach
    Beiträge
    4.811
    Danke
    1.231
    Erhielt 1.101 Danke für 527 Beiträge

    Standard

    du hast quais ein handling das 3 achsen hat?
    du nimmst ein produkt mit diesem handling an einer definierten position, und stapelst es an einer anderen variablen position (lagenbild bzw. nr der lage) ? ist das richtig?

    man kann das entweder mit einer schrittkette oder durch viele verknüfpungen realisieren.

    in diesem fall wäre eine schrittkette wohl sinnvoll, da es nicht möglich ist das eine äussere einwirkung (zb bediehner) irgendwo ein produkt wegnehmen kann oder drauflegen kann. ausser an der fertigen palette, aber damit hätten beide versionen ein problem.

    die schrittkette wäre für den verfahrweg des handlings.
    du müsstest eine rezeptur haben in die positonen der produkte auf der palette hinterlegt sind. entweder du gibts jedem produkt drei koordinaten an, oder du gibst nur zwei an und sagst in einem weiteren feld um welche lage es sich handelt. ich halte die zweite für felxibler.

    die schrittkette läuft dann für jedes einzelne produkt einmal durch, wenn sie fehlerfrei ausgeführt wurde, also das produkt zb nicht veroloren wurde, dann wird die variable mit der nummer des produktes erhöht, aus ihr werden die pointer errechnet die auf die koordinaten des folgenden produktes zeigen, mit diesen wird die sk wieder gestartet...

    um zeit zu gewinnen solltest du überlegen inwiefern es mechanisch möglich ist achsen gleichzeitig zu verfahren.


    @vladi
    die sk ist das kleinere problem bei der sache, ob der die spl nun auch noch schnell selber zimmer oder nicht spielt dabei keine rolle. fakt ist das er weiß was er hat und wesentlich flexibler ist wenn er es mit einer spl selber macht.
    "Es ist weit besser, große Dinge zu wagen, ruhmreiche Triumphe zu erringen, auch wenn es manchmal bedeutet, Niederlagen einzustecken, als sich zu den Krämerseelen zu gesellen, die weder große Freude noch großen Schmerz empfinden, weil sie im grauen Zwielicht leben, das weder Sieg noch Niederlage kennt." Theodore Roosevelt - President of the United States (1901-1909)

  5. Folgender Benutzer sagt Danke zu Markus für den nützlichen Beitrag:

    godi (22.03.2007)

  6. #4
    Avatar von godi
    godi ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    03.01.2006
    Ort
    Im sonnigen Süden von Österreich!
    Beiträge
    1.377
    Danke
    227
    Erhielt 182 Danke für 167 Beiträge

    Standard

    Hallo!

    Ja genau Handling mit 3-Achsen wobei X und Y zur gleichen Zeit fahren können und mit einem Zylinder kann auch das Paket um 90 grad gewendet werden wenn es notwendig ist. Achse Z fährt wenn die anderen Achsen stillstehen.

    Mein Problem ist nur mehr die Schrittkette. Mit vielen Verknüpfungen habe ich es vorher gelöst. Bin aber überhaupt nicht glücklich da es nicht so funktioniert wie ich es mir vorstelle. Ausserdem habe ich noch einen Lichttaster montiert der kontrolliert ob ein Paket verloren gegangen ist. Wenn ja dann soll der Greifer wieder in die Grundposition / Abholposition fahren und mit dem nächsten Paket weiterfahren. Das denke ich mir ist mit der SK auch leichter. Ausserdem kann ich für jeden Schritt eine Zeit vergeben und im Einzelschrittmodus kann ich auch fahren.

    Die Datenauslesung habe ich so gelöst das ich mir einen Datenbaustein für gerade Lagen, einen für ungerade Lagen und noch einen für Z Position und Pakete Wenden angelegt habe. Aus denen Lese ich je nach Paketnummer die richtige Position aus. Der Maschinenbediener kann am Bedienpult die Pakete / Lage manipulieren. (+ und - Tasten).

    Graph oder sonstiges habe ich für dieses Projekt leider nicht zur Verfügung.

    Werde schauen das ich bei den anderen Anlagen eine Störungsfrei Nacht habe dann kann ich da wieder weitermachen. Wenn ich fertig bin dann setze ich das ganze Programm mal hier herein.

    Aber ist der Grundsätzliche Aufbau der SK richtig?

    @Vladi werde mir die Standartbausteine Heute mal ansehen aber ich denke in dieser Sache so wie Markus das es besser ist selbst das zu Programmieren damit weiß ich was ich habe.

    godi

  7. #5
    Avatar von godi
    godi ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    03.01.2006
    Ort
    Im sonnigen Süden von Österreich!
    Beiträge
    1.377
    Danke
    227
    Erhielt 182 Danke für 167 Beiträge

    Standard

    Hier noch die Lagenbilder zur besseren Verständlichkeit.

    Position Null ist die Abholposition. Wobei Z und Y auf Endschalter Positioniert wird und auf der X Achse befindet sich ein induktiver Näherungssensor damit von beiden Seiten angefahren werden kann.

    Referenzposition befindet sich (aus Sicht der Abholposition) wenn X ganz links, Y ganz hinten und Z oben ist.
    Angehängte Grafiken Angehängte Grafiken

  8. #6
    Registriert seit
    12.03.2007
    Beiträge
    29
    Danke
    0
    Erhielt 2 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von vladi Beitrag anzeigen
    Hi,
    - kannst du keinen S7 GRAPH benutzen?
    - warum SK selber basteln: Standardbibliothek "TI-S7", FB "DRUM"; ist
    eine schöne fertige SK.

    Gruss: Vladi
    Hallo,
    ich habe deinen Beitrag gefunden und daraufhin die S7 Hilfe zu diesem Baustein studiert. Habe allerdings nicht viel verstanden. Wie machst du damit eine Schrittkette und was trägst du in dem riesig langen DB ein??? Wieviele Schritte kann die Schrittkette haben 16???
    Vielen Dank im voraus, mit freundlichen Grüßen

    Wondermike
    Zitieren Zitieren Wie genau geht der FB Drum???  

Ähnliche Themen

  1. X und Y Achsen im Display
    Von senmeis im Forum HMI
    Antworten: 0
    Letzter Beitrag: 20.04.2011, 11:00
  2. Achsen - Treiber - SPS
    Von ThomasAdler im Forum Antriebstechnik
    Antworten: 8
    Letzter Beitrag: 17.12.2010, 11:36
  3. 2-Achsen-Steuerung
    Von Yogixxx im Forum Programmierstrategien
    Antworten: 19
    Letzter Beitrag: 21.09.2009, 13:19
  4. 2 Achsen Positionserrechnung
    Von Bensen83 im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 30.08.2009, 00:00
  5. 3 Achsen Positionierung
    Von Dario im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 19.11.2005, 09:13

Lesezeichen

Berechtigungen

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