Step 7 Ablaufsteuerung - Schrittkette (FIFO-Baustein ? ) Hilfe

Btk

Level-1
Beiträge
15
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen,

ich habe ein eher simples Problem, komme aber nicht auf eine Lösung.

- 4 Maschinen untereinander vernetzt
- jeweils ein Starttaster
- Programm ist eine Schrittkette

Problem :

Wenn 2/3/4 Maschinen "gleichzeitig" gestartet werden und im Hubbetrieb sind, kann es passieren, dass dieser nicht vollständig ausgefürt wird. ( 1 Hydraulikeinheit für 4 Maschinen )

ich wollte dies so lösen das wenn 2/3/4 kurz hintereinander gestartet werden nur das erste den Hubbetrieb aufnimmt und die anderen solabnge warten bis der Hubbetrieb abgeschlossen ist.

Mein Problem ist, dass ich es so möchte, dass der der zuerst gestartet wurde zuerst in den Hubbetrieb geht , die Maschine die als zweites gestartet wurde als näöchstes in den Hubbetrieb geht usw.

gibt es Bausteine die diese Abfolge von "Startbedingungen" erleichtern ?


Dank im Vorraus!!
 
Es gibt verschiedene Möglichkeiten... z.B. mit einem Zähler...
1. Nicht Automatik, Zähler = 0 = Maschinen aus
2. Start wurde angewählt: Zähler = 1
3. Zähler = 1 und Maschine 4 in Grundstellung = Hub Maschine 1, nach Ende des Hubs den Zähler um 1 erhöhen
4. Zähler = 2 und Maschine 1 in Grundstellung = Hub Maschine 2, nach Ende des Hubs den Zähler um 1 erhöhen
5. Zähler = 3 und Maschine 2 in Grundstellung = Hub Maschine 3, nach Ende des Hubs den Zähler um 1 erhöhen
6. Zähler = 4 und Maschine 3 in Grundstellung = Hub Maschine 4, nach Ende des Hubs den Zähler auf 0 setzen
7. Sprung nach 2.

Das mal im groben... ob man das nun mit S/R Merken, einem INT (über SPL) macht muss die Erfahrung dir sagen... dazu sollten man die Maschine im Detail kennen. Für den Bediener ist es natürlich toll wenn er über das INT-> Textliste HMI detailliert den nächsten Schritt angezeigt bekommt... wenn am Display steht: z.B. "Schritt 5: Warte auf Endearbeitstakt Maschine 3" ist das eigentlich schon recht aussagekräftig...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es gibt verschiedene Möglichkeiten... z.B. mit einem Zähler...
1. Nicht Automatik, Zähler = 0 = Maschinen aus
2. Start wurde angewählt: Zähler = 1
3. Zähler = 1 und Maschine 4 in Grundstellung = Hub Maschine 1, nach Ende des Hubs den Zähler um 1 erhöhen
4. Zähler = 2 und Maschine 1 in Grundstellung = Hub Maschine 2, nach Ende des Hubs den Zähler um 1 erhöhen
5. Zähler = 3 und Maschine 2 in Grundstellung = Hub Maschine 3, nach Ende des Hubs den Zähler um 1 erhöhen
6. Zähler = 4 und Maschine 3 in Grundstellung = Hub Maschine 4, nach Ende des Hubs den Zähler auf 0 setzen
7. Sprung nach 2.

Das mal im groben... ob man das nun mit S/R Merken, einem INT (über SPL) macht muss die Erfahrung dir sagen... dazu sollten man die Maschine im Detail kennen. Für den Bediener ist es natürlich toll wenn er über das INT-> Textliste HMI detailliert den nächsten Schritt angezeigt bekommt... wenn am Display steht: z.B. "Schritt 5: Warte auf Endearbeitstakt Maschine 3" ist das eigentlich schon recht aussagekräftig...


Zuerst DANKE !

Das was Du beschrieben hast ist nicht das "Problem"
Sondern diese oben von Dir beschriebenen Ablauf jetzt in Abhängigkeit mit den Statbefehl zu setzen.

Sprich 4 Maschinen werden gestartet, die Erste geht in den Hubbetrieb, die anderen drei sind in Warteproition.
Als nächstes soll die Maschine die als ZWEITES gestartet wurde losfahren ( Hubbetrieb ). Nicht nach vorher definierter Maschinennummer,...
 
Einen Fifo würde ich auch vorschlagen.
Jede Maschine bekommt ein eigenes Freigabebit.
Wird eine Maschine gestartet und kommt zum Hubbetrieb, dann trägt sie sich in den Fifo ein (Maschine 1 = Int 1, Maschine 2 = Int 2 ...).
Der oberste Eintrag wird ausgewertet. Ist er 1, bekommt Maschine 1 das Freigabebit gesetzt usw. Wenn die Maschine fertig ist, bekommt der Fifo ein Schiebesignal und wird um einen Eintrag nach vorn geschoben. die 1 "fällt" heraus, der nächste Eintrag steht an vorderster Stelle und die entsprechende Maschine bekommt ihr Freigabebit.

Achtung: Da 4 getrennte Signale (ja Maschine) für den Eintrag an den Fifo gesendet werden können, mußt du auch 4 Bits und 4 Int für den Input vorsehen, denn theoretisch können diese auch exakt gleichzeitig ihr Bit setzen. Dann soll ja keines "verloren" gehen. Das ist nicht weiter schlimm, du mußt den Code im Fifo 4x hintereinander mit den unterschiedlichen Inputs programmieren, wenn du den Baustein nur einmal im Programm aufrufen willst. Oder du schreibst den Baustein mit einem Inputbit und einem Wert, der in den Fifo hineingeschoben werden soll und rufst ihn in den Schrittketten auf, wenn der Wert hineingeschoben werden soll.
 
Eine andre möglichkeit wäre es die Hübe gegeneinander zu verriegeln.

Nach Deiner Beschreibung vermute ich mal das dieses Phänomän auch im Normalbetrieb passieren kann, also mehrere Maschinen gleichzeitig anheben

Code:
U  #1_gestartet
UN #2_hub
UN #3_hub
...
=  #1_hub
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Btk

Soll die Reihefolge auch dann ihre Gültigkeit haben wenn zB:

-Start für Maschine 1 ("S1") zweimal hintereinader gedrückt wird und dannach "S2" einmal und "S4" fünfmal hintereinander gedrückt ? Sollen Tastendrücke ignoriert werden wenn eine Grenze überschritten wird ? Soll die gespeicherte Reihenfolge löschbar/änderbar sein ? Gibt es eine Rangfolge bei gleichzeitigem Starttasten drücken ?

Wie lang soll die Reihenfolge gespeichert werden soll ( wie oft soll man sich in der FIFO den START Tasten drücken merken ) ?

:)
Ein Handprogrammiertes FIFO gibts hier :
http://www.sps-forum.de/attachments/simatic/20596d1367383946-indirekte-adressierung-indirekt.zip

Würde mich auch interesieren wie man es macht ... ( ich würde FIFO benützen obwohl es trickig ist )...
Die FIFO ist nicht immer leer oder immer voll also was wählt man daraus ? ... etc .

Sonst könntest du das lessen der Starttastensignalen sperren so lange ein Hub gemacht wird ... wäre die einfachste Methode ! Wenn das START drücken manuell erfolgt ,dann kann der Bediener kurz warten , Hat keinen Sinn mit Kanonnen auf Spatzen zu schissen ...etc.
 
Zuletzt bearbeitet:
Eine andre möglichkeit wäre es die Hübe gegeneinander zu verriegeln.

Nach Deiner Beschreibung vermute ich mal das dieses Phänomän auch im Normalbetrieb passieren kann, also mehrere Maschinen gleichzeitig anheben

Code:
U  #1_gestartet
UN #2_hub
UN #3_hub
...
=  #1_hub

Reicht ja nicht, wenn die Reihenfolge auch beachtet werden soll.

Mehrere Starts derselben Maschine hintereinander sind eigentlich nicht zu beachten, man muß ja nicht den Startknopf selbst nehmen, sondern kann sich aus der Schrittkette heraus für das Hydraulikaggregat anmelden. Alles andere macht eher keinen Sinn.
 
Eine Frage bezüglich FIFO :

Werden in einem STEP7 (Bibliothek-)FIFO Speicher die Werte "automatisch" lükenloss am Output gespeichert ?

( zB: ... habe ein FIFO mit 4 Speicherplätze der leer ist und ich speichere 2 Werte , liegt dann einer auf dem Leseplatz und der andere nebenan oder ich muss erst die 4 Werte in einem leeren FIFO speichern um was auf dem "Leseplatz" zu haben ? )
 
Zuletzt bearbeitet:
Reicht ja nicht, wenn die Reihenfolge auch beachtet werden soll.

Mehrere Starts derselben Maschine hintereinander sind eigentlich nicht zu beachten, man muß ja nicht den Startknopf selbst nehmen, sondern kann sich aus der Schrittkette heraus für das Hydraulikaggregat anmelden. Alles andere macht eher keinen Sinn.



Danke für die vielen Antworten !

Ja, genau so habe ich mir das vorgestellt, aber hänge an der Umsetzung, werde nachher mal schauen ob ich es nach den neuer "Erkentnissen" umsetzen kann :)
 
Zurück
Oben