TIA Ablauf eines FB´s inaktiv schalten

cantax

Level-1
Beiträge
4
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich würde gerne drei Schrittketten, jeweils mit Anwahlschaltern auswählen können und NUR diese ablaufen lassen.
Dazu dachte ich mir, ich mache für jede Schrittkette einen eigenen FB und rufe die FB´s dann im OB auf. Ich dachte, es sei möglich die einzelnen FB`s im OB nur aufzurufen, wenn z.B. nur wenn I0.0 = 1 --> FB01 aufrufen, I0.1 = 1 -->FB02 aufrufen & I0.2 = 1 --> FB03 aufrufen.
Dies funktioniert auch soweit, nur, dass wenn jetzt z.B. I0.0 = 0 wird der FB01 weiterhin ausgeführt wird.

Jetzt möchte ich jedoch gerne, wenn I0.0 = 0 keine Aktion mehr in dem FB01 ausgeführt wird. Also auch fals ein Merker(Timer,...) im FB01 gesetzt wurde, dieser wieder Rückgesetzt wird.

Daher meine Frage, ist das so i-wie möglich wie ich mir das gedacht habe? Oder wie programmiert man sowas sonst?

MfG, cantax
 
Hallo Cantax,

wie hast Du das denn jetzt gelöst?
Über den EN-Eingang schaltest Du den Baustein komplett ab.
Um das Rücksetzen bestimmter Elemente mußt Du Dich selbst kümmern, da S7 ja nicht weiß, was Du zurücksetzen willst (ob überhaupt).

Gruß
JS
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Dies funktioniert auch soweit, nur, dass wenn jetzt z.B. I0.0 = 0 wird der FB01 weiterhin ausgeführt wird.
Dazu müsste man Deinen Code sehen.
Jetzt möchte ich jedoch gerne, wenn I0.0 = 0 keine Aktion mehr in dem FB01 ausgeführt wird.
Wenn der Baustein niocht ausgeführt wird, ist genau das der Fall.
Also auch fals ein Merker(Timer,...) im FB01 gesetzt wurde, dieser wieder Rückgesetzt wird.
DAs ist etwas VÖLLIG anderes! Wenn der Basutein nicht bearbeitet wird, bleibt alles so, wie es es am Ende des letzten Durchlaufs war, die Zustände der Variablen ändern sich dadurch nicht.
Daher meine Frage, ist das so i-wie möglich wie ich mir das gedacht habe?
Bedingt.
Oder wie programmiert man sowas sonst?
Du musst Deine Variablen an einer anderen Stelle separat initialisieren, aber prinzipiell ist das ein umständlicher Weg.

Vielleicht kann Dir geholfen werden, wenn Du die Aufgabenstellung und das Problem etwas genauer beschreibst.
 
Ich würde prinzipiell die Umwahl nur dann zulassen, wenn die Maschine in Grundstellung steht und alle 3 Schrittketten nicht arbeiten, bzw. in ihren Initialschritt stehen.
Denn was passiert, denn, wenn der Bediener mitten in der Abarbeitung der Schrittkette umschaltet?
Dann stehen bestimmte Aktoren z.Bsp. schon in Arbeitsstellung, die evtl. mit den Bedingungen der anderen Schrittkette gar nicht übereinstimmen.
Auch ein Reset der Schrittkettte beim Umschalten kann da zu ungewollten Ergebnissen und Kollisionen führen, wenn man nicht ein ordentlich geführtes Reset der Maschine Durchführen will/kann.
 
Vielen dank für die Antworten!

Also ich muss für verschiedene Klebevorrichtungen die Zylinderfahrten + Sicherheitsschalterverriegelung programmieren. Momentan habe ich drei verschiedenen Klebevorrichtungen, die sich in Zylinderanzahl, Spanner Ja/Nein und Sicherheitschalter (mit Relaisverriegelung und ohne) unterschieden. Es werden hoch warscheinlich noch weitere folgen und ich würde daher gerne nicht mehr viel an dem Programm abändern müssen, um eine neue Schrittkette hinzuzufügen.

Eine Zyklus sieht wie folgt aus:
(ich muss mit Zeiten programmieren, da hier keine Endschalter für die Zylinderendlagen verbaut werden; die Zylinder sind mit Federrückgestellten Ventilen angesteuert)


- Schutzabdeckung wird geschlossen --> Sicherheitsschalter ist eingerastet (I0.0) --> Sicherheitsschalter wird verriegelt (Q1.4) --> Sicherheitsschalter ist verriegelt (I0.1)

--> Pneumatikspanner fährt in Arbeitsstellung (1,5s), da angekommen

--> Zylinder 1&2 fahren in Arbeitsstellung (1,5s), da angekommen --> Zylinder 3&4 fahren in Arbeitsstellung (1,5s), da angekommen --> Zylinder 5&6 fahren in Arbeitsstellung (1,5s)

- sobald die Zylinderpaare ihre Arbeitsstellung nach 1,5s erreicht haben, verweilen sie 45s in Arbeitsstellung und fahren anschließend wieder in Grundstellung (1,5s)

- wird die Grundstellung von dem letzten Zylinderpaar (5&6) erreicht

--> Sicherheitsschalter wird entriegelt (Q1.4 = 0) --> Kontakt fällt ab (I0.1) --> Schutzabdeckung kann geöffnet werden --> ist offen, I0.0 fällt ab --> Grundstellung erreicht.



Wenn der Baustein niocht ausgeführt wird, ist genau das der Fall.

Was heißt eigentlich genau, nicht ausgeführt wird? Alle Merker, Timer,... auf "0"? Dürfen in diesem Baustein noch Eingänge anliegen?

Ich würde prinzipiell die Umwahl nur dann zulassen, wenn die Maschine in Grundstellung steht

Ja, das macht Sinn und steht mir auch nicht im Weg. Die Grundstellung währe dann mein Sicherheitsschalter (I0.0) ist nicht geschlossen & nicht verriegelt (I0.1) und es ist kein Ausgang gesetzt.

Hier habe ich noch eine Schritkette für das oben beschriebene hochgeladen (http://www.docdroid.net/yu1k/fb03.pdf.html)
 
Zuletzt bearbeitet:
Jetzt möchte ich jedoch gerne, wenn I0.0 = 0 keine Aktion mehr in dem FB01 ausgeführt wird. Also auch fals ein Merker(Timer,...) im FB01 gesetzt wurde, dieser wieder Rückgesetzt wird.

Etwas zurücksetzen. IST eine Aktion. Wenn der FB01 also nicht mehr ausgeführt wird kann dieser auch keine Aktion wie Rücksetzen mehr durchführen (Ausserdem ist es unschön IEC Timer und auch andere Instanzierte Bausteine einfach abzuklemmen)

Daher meine Frage, ist das so i-wie möglich wie ich mir das gedacht habe? Oder wie programmiert man sowas sonst?

Das kommt drauf an was du überhaupt machen willst. Ich für mich fände bei solchen Umschaltereien die komplette Programmteile abklemmen schöner wenn Funktionen wie Timer in eine eigene nicht davon beinflusste Instanz umgezogen werden.
Wenn du einen Baustein abklemmst sollte z.B. ein Anderer Baustein stattdessen aufgerufen werden welcher Sämtliche Peripherie des anderen Bausteins in einen Kontrollierten Zustand überführt. Sei dies nun durch zurücksetzen von Ausgängen oder indem er das vorhergehende Programm in seinem Sinne weiterführt.

mfG René
 
Was heißt eigentlich genau, nicht ausgeführt wird? Alle Merker, Timer,... auf "0"? Dürfen in diesem Baustein noch Eingänge anliegen?
Der Baustein wird nicht ausgeführt, wenn in KOP/FUP der EN FALSE ist oder der Aufruf (in jeder beliebigen Sprache) in irgendeiner Weise übersprungen wird. Wird der Aufruf übersprungen, so wird darin nichts mehr bearbeitet. Alle Zuweisungen behalten den Zustand des letzten ausgeführten Bausteinaufrufs, solange bis der Aufruf wieder aktiv wird oder die entsprechenden Bereiche an einer anderen Stelle zugewiesen werden.

Kannst Du vielleicht kurz erklären, wieso Du Bausteine inaktiv schalten möchtest, ich kann dafür nämlich anhand Deiner Aufgabenstellung keine Notwendigkeit erkennen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich löse die immer so dass ich einen eigenen Enable Eingang mache. zuoberst im Baustein kannst du diesen abfragen, und wenn er nicht True ist irgendwelche Aktionen (Reset von timern, Merker, usw) vornehmen.

Am Ende gehst du mit einem Return aus dem Baustein und fertig.
 
Zurück
Oben