Step 7 FC nur Bedingt aufrufen

Kehrer

Level-2
Beiträge
379
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
Ist es eigentlich möglich einen FC nur aufzurufen wenn z.B. ein Eingang da ist.

z.B. Vorrichtung 2 vorhanden =E13.5 wenn TRUE dann FC7 abarbeiten
wenn E13.5 FALSE dann FC7 nicht abarbeiten​
Muss ich wohl im OB1 anlegen, oder?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Aus der Step7 Classic Hilfe:
CC <Kennung des Codebausteins>

Beschreibung

CC <Kennung des Codebausteins> (bedingter Bausteinaufruf) ruft bei VKE = 1 einen Codebaustein vom Typ FC oder FB ohne Parameter auf. Die Operation CC gleicht der Operation CALL, mit dem Unterschied, daß keine Parameter übergeben werden können. Die Operation speichert die Rücksprungadresse (Selektor und relative Adresse), die Selektoren der beiden aktuellen Datenbausteine sowie das MA-Bit im B-Stack, deaktiviert die MCR-Abhängigkeit, erstellt den Lokaldatenbereich des Bausteins, der aufgerufen werden soll, und beginnt, den aufgerufenen Code auszuführen. Die Kennung des Codebausteins kann absolut oder symbolisch angegeben werden.

Statuswort

BIE A1 A0 OV OS OR STA VKE /ER
schreibt: - - - - 0 0 1 1 0
Beispiel

AWL Erläuterung
U E 2.0 //Frage den Signalzustand am Eingang E 2.0 ab.
CC FC6 //Rufe die Funktion FC6 auf, wenn E 2.0 = 1 ist.
U M3.0 //Wird nach Rückkehr von der aufgerufenen Funktion ausgeführt (bei E 2.0 = 1) bzw. unmittelbar nach der Anweisung U E 2.0, wenn E 2.0 = 0 ist.
HinweisWird mit der Operation CALL ein Funktionsbaustein (FB) oder ein Systemfunktionsbaustein (SFB) aufgerufen, muß ein Instanz-Datenbaustein (DB-Nr.) in der Anweisung angegeben werden. Die Verwendung einer Variablen vom Typ "BlockFB" bzw. "BlockFC" ist zusammen mit der Optation CC nicht erlaubt. Da Sie einem Aufruf mit der Operation CC in dem Operanden der Anweisung keinen Datenbaustein zuordnen können, können Sie diese Operation nur für Bausteine ohne Bausteinparameter und statische Lokaldaten verwenden.Je nach dem Netzwerk, mit dem Sie arbeiten, erzeugt "KOP/AWL: Bausteine programmieren" bei der Übersetzung der Programmiersprache Kontaktplan in die Programmiersprache Anweisungsliste teilweise die Operation UC und teilweise die Operation CC. Verwenden Sie im allgemeinen die Operation CALL, damit in den von Ihnen erstellten Programmen keine Fehler auftreten.
 
Oder im OB1 den Call einfach bedingt überspringen:

U E2.0
SPBN ENDE

Call FC xy // das wird nur aufgerufen wenn E2.0 High ist.

ENDE: Call FC ## // das Sprungziel muss in einer Zeile mit ausführbarem Code stehen
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bei Nutzung von EN/CALL:

Bitte beachten das alle Ausgänge die ausschließlich in diesem FC geschrieben werden nur zurückgesetzt werden wenn der FC bearbeitet wird.
Stoppt also die Maschine während FC7 nicht ausgeführt wird, dann bleibt der Ausgang gesetzt und irgendwelche Motoren, Ventile etc. bleiben angesteuert.

Möglich wäre es dann die Ausgänge mittels Setzen und Rücksetzen abzuarbeiten um dann in einem anderen Baustein "Stop, Rücksetzen, ..." alle Ausgänge zu löschen oder aber direkt, wenn das Nichtbearbeiten des FCs nicht aus Performancegründen geschieht, im FC einen Eingang zu schaffen der die Bearbeitung intern erst ermöglicht bzw. die Ausgänge deaktiviert wenn die Bedingungen nicht passen.
 
Zurück
Oben