Hochregallager mit Simatic S7 steuern -wie???

A

Anonymous

Guest
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

im Rahmen einer Projektarbeit an meiner Fachhochschule muss ich ein Hochregallager mit SPS Simatic S7 steuern.
Hierzu werden Bauteile mit einem Greifer in das Regal eingelagert.
Dazu muss ein SPS Programm erstellt werden, dass den Greifer steuert (3 Achsen, 3 Motoren) und dann die Belegung mittels Simatic Panel visualisiert.

Hat jemand eine Idee wie man das Problem am besten angeht????

Wie kann ich den Zustand des Lagers Speichern mit Materialart und Belegungszustand?

Für Tipss jeglicher Art bin ich sehr dankbar!

Danke, Dirk
 
Beim Lager ist zunächst einmal interessant, ob die Plätze in einem "Raster" angeordnet sind oder variable Koordinaten haben. Im allgemeinsten Fall haben sie völlig variable Koordinaten, d.h. sie liegen weder genau übereinander noch nebeneinander und bei verschiedenen Einfahrtiefen.

Eine weitere Komplikation könnte sein, daß eine Ware A mehr Platz benötigt als Ware B oder daß schwere Waren bevorzugt unten gelagert werden sollen.

Du kannst alle Plätze durchnummerieren. Hinzu kommen wahrscheinlich zwei spezielle Plätze, von denen Waren zum Einlagern geholt und zum Auslagern abgelegt werden.

Die Koordinaten aller Plätze legst du in einem Datenbaustein(DB) ab.
Dazu eine Schlüsselnummer der Ware die dort lagert. Eine Schlüsselnummer, z.B. 0, reservierst du für leere Plätze. Zusätzliche Informationen könnten die Eignung für eine Warenart angeben, oder Lagerplätze als "verboten", z.B. wegen Reparaturarbeiten.
Die Beschreibung eines Lagerplatzes ist ein Musterbeispiel für den Einsatz von UDTs (User defined Data Types).

Nun arbeitest du mit "Fahraufträgen", die einen Platz als Start und einen anderen als Ziel haben.
Du subtrahierst die Start- und Zielkoordinaten, um zu wissen, ob die Bewegung vorwärts oder rückwärts erfolgen soll. Nun kannst du einen Achsantrieb einschalten und solange laufen lassen, bis die Zielkoordinate erreicht ist. Dann die nächste Achse.

Du mußt noch Randbedingungen beachten: Wahrscheinlich kannst du nicht längs oder in der Höhe verfahren, wenn der Greifer im Regal steckt (Kollisionsgefahr). Eventuell kannst du aber diese beiden Achsen gleichzeitig verfahren (Zeitersparniss).

Je nach Aufwand, den man betreiben möchte, wird eine Position zunächst mit hoher Geschwindigkeit grob und dann mit geringer Geschwindigkeit genau angefahren.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hochregalsteuerungen gibts doch schon mehrfach als Beispielprogramm.
Jede Achse bekommt eine Wegerfassung und einen Nullpunkt über Endschalter. Ein Drehimpulsgeber, der mit einem Ritzel an einer leicht gespannten Mopedkette läft, ist z.B. eine sichere Wegerfassung. Die Impulse lassen sich sogar mit DEs zählen, wenns zu schnell wird mit einer Zählerkarte. Die Position jede Ebene und jedes möglichen Lagerplatzes wird hinterlegt. Ein Merker zeigt an, ob der Platz belegt ist.

Ein Greifarm läßt sich schlecht bewegen. Eine Palettengabel ist viel einfacher, die wird beladen hoch in das Lagerfeld gefahren und leer etwas tiefer eingezogen. Zum Ausliefern natürlich anders herum.
Mit einem einfachen Drehwerk unter der Palettengabel kann man rechte und linke Regale bedienen.

Die Motoren sollten mindestens 2 Geschwindigkeiten haben, besser noch geregelt sein. Jeder Antrieb muß eine Aretierungsbremse haben, damit er nicht wegrollt. Jede Wegstrecke hat Hadware-(Vor-) End-Endschalter.
Die Programmierten Softstops bekommen Soft-Vorendschalter, ab wo die Geschwindigkeit gedrosselt wird.

Die Richtige Lagerbelegung macht eigentlich ein PC, weil mann ja normalerweise verschiedene Waren in einem Lager hat. Richtige Huchregallager haben auch in den Ebenen unterschiedliche Gewichtsgrenzen, die auch der PC mit einer Waage im Förderwagen überwacht.

Google mal unter Fördertechnik und Lagersysteme.

Limbo
 
Beschreibung der Anlage

Hallo.

erstmal vielen Dank für die Antworten. Auf den Bildern kann man sehen, wie die bestehende Anlage aussieht.

Hochregal_3D_2.JPG


Hochregal_3D.JPG


Hochregal_Frontansicht.JPG


Funktionsbeschreibung

Die Anlage dient zur Sortierung und Einlagerung von Werkstücken in ein Hochregallagersystem. Die Werkstücke bestehen in diskontinuierlicher Reihenfolge aus Kunststoff- und Aluminiummaterial. Sie werden aus einem Magazin auf das Förderband befördert und ein am Förderband installierter Sensor erkennt dann die Materialart.
Am Ende der Förderstrecke wird das Werkstück vom Förderband zur Übergabestelle mit einem pneumatischen Zylinder geschoben. An dieser Übergabestelle nimmt der Greifarm des automatisierten Hochregallagers die Werkstücke auf und lagert sie anschließend im Regal ein.
Vor dem Einlagern wird die Belegung des Regals geprüft und nach einem freien Platz gesucht. Ist ein freier Platz vorhanden, fährt der Greifarm mit dem Werkstück zum Regal, legt das Werkstück ab und speichert die Lage und Art des Werkstücks in einer Tabelle ab. Nach dem Beladevorgang fährt der Greifarm mit geöffnetem Greifer zur Übergabestelle zurück. Hier kann wahlweise das nächste Werkstück ein- bzw. ausgelagert werden je nach Tastendruck am Bedienpult. Zusätzlich kann die Materialart für den Be- und Entladevorgang über den Betriebsartschalter auf Kunststoff bzw. Aluminium gesetzt werden. Bei Inbetriebnahme der Anlage kann über den Taster „Nullpunkt anfahren“ der Greifarm zur Übergabestelle gefahren werden. Die Belegung des Regals wird über einen Monitor visualisiert. In der Visualisierung kann die Belegung der einzelnen Fächer sowie die Materialart dargestellt werden.
Die Achsen des Hochregallagers sind in X, Y und Z-Achse eingeteilt.

Achsen.jpg


Die X-Achse hat 6 Positionen die durch eine Kombination aus Lochblech und einer Gabellichtschranke erkannt werden.
Die Z-Achse hat 30 Positionen mit einem 5mm Raster und auch hier wird eine Gabellichtschranke verwendet.
Die Y-Achse an der ein elektromagnetisch betätigter Greifer angebracht ist besitzt 2 Positionen die durch Mikroschalter bestimmt werden.




Wie sollte man am besten beim erstellen des Programms vorgehen?
Die Verwendung eines DBs habe ich auch schon als Möglichkeit erkannt.

Hat jemand ein Programm zum Testen das eine ähnliche Problematik betrifft?

Vielen Dank für eure Tipps!

Gruß, Dirk
 
Mußt Du den geöffneten Greifer von oben um den Zylinder absenken , und dann zugreifen. Bzw. nach dem Absetzen den offenen Greifer nach oben fahren, um mit dem ganzen verfahrbaren Teil am Zylinder vorbeizukommen?

Zerlege jeden Bewegungsablauf in einzelne Schritte. Diese Schritte schreibst Du in PBs. Die PBs rufst Du aus übergeordneten Bausteinen (OB, PB) auf, wenn du diese Teilbewegung brauchst. In welchem Ablauf Du einzelne Teilbewegungen benötigst, hängt von der jeweiligen Aufgabenstellung ab.

Z.B: Lagerfposition. Schließe Greifer. Hebe Zylinder in Transporthöhe 3.
Ziehe Greifer aus Lagerposition. ????

Wenn Du den Greifer an den möglichen Lagerplatzkoordinaten vorbeifährst, kannst du jedesmal mit einer UND-Verknüpfung abfragen, ob die gewünschte Höhe/ Position erreicht ist.

Zunächst würde ich den Arm immer nur in einer Richtung bewegen, später kannst Du das Programm so optimieren, dass Du vor dem Regal in 2 Richtungen gleichzeitig fährst.

Um die Übung zu erleichtern ist es einfacher, jeden Zylinder nach dem Greifen in die Y=0, Y=0 Position zu fahren, und von dort aus das neue Ziel anzusteuern, so sparst Du Dir für den Anfang viele komplizierte Entscheidungen, in welche Richtung du jeweils verfahren mußt.

Limbo
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hello forum,
For my project I am working on a TIA portal for programming an automatic storage and retrieval system, where there are two places: 1. for the storage of incoming products and 2. for the retrieval of stored products and also two shelves A and B are available, as indicated in the picture. I also need to control three servo motors to access the location.
Capture.jpg

StorageRack.jpg
 
Hello winnman,
So my question is how to program this system means how to build algorithm for his system in SCL language? I want to know general logic for this...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hello winnman,
So my question is how to program this system means how to build algorithm for his system in SCL language? I want to know general logic for this...

Have a look at Arrays and User Defined Datatypes. This is in SCL similar to other Programming Languages.

Blockmove
 
Hello,
You should not underestimate the functionality of a stacker crane. Just think about it:
- Connection to the control system (from there the orders, zone concepts, ...)
- the coordinates of a compartment must be tracked (it makes a difference whether a warehouse is air-conditioned or exposed to temperature fluctuations (length variations) of e.g. 40°C (winter / summer)). Search for systems for fine positioning:
https://www.pepperl-fuchs.com/great_britain/en/classid_4494.htm?view=productdetails&prodid=88828
- The load handling device alone can be a simple fork, or consist of several axis
- SAFETY is also a big topic:
https://www.youtube.com/watch?v=nAupSVx3ijA
- Vibration damping
https://www.youtube.com/watch?v=gPeqw11DjnM
- The best way is to proceed in an energy-efficient manner
https://support.industry.siemens.com/cs/de/en/view/109753848
- ...

Zako
 
Zuletzt bearbeitet:
Zurück
Oben