Übersicht über die Programmsteuerungsoperationen in Kontaktplan KOP

In der Programmiersprache Kontaktplan KOP stehen dem Anwender folgende Programmsteuerungsoperat

  • --(CALL) Funktion FC/Systemfunktion SFC aufrufen ohne Parameter
  • CALL_FB Funktionsbaustein FB als Box aufrufen
  • CALL_FC Funktion FC als Box aufrufen
  • CALL_SFB Systemfunktionsbaustein SFB als Box aufrufen
  • CALL_SFC Systemfunktion SFC als Box aufrufen
  • Multiinstanzen aufrufen
  • Baustein aus einer Bibliothek aufrufen
  • Funktionen des Master Control Relay
  • --(MCR<) Master Control Relay einschalten
  • --(MCR>) Master Control Relay ausschalten
  • --(MCRA) Master Control Relay Anfang
  • --(MCRD) Master Control Relay Ende
  • --(RET) Springe zurück
CALL FC/SFC in KOP
CALL FC/SFC in KOP

CALL Funktion FC/Systemfunktion SFC aufrufen ohne Parameter

Die Programmsteuerungsoperation CALL (FC/SFC aufrufen ohne Parameter) ruft eine FC (Funktion) oder eine SFC (Systemfunktion) auf, die keine Parameter hat. Dabei hängt es von der vorhergehenden Verknüpfung ab, ob es sich um einen bedingten Aufruf oder um einen absoluten Aufruf handelt. Dabei muß für <FC-/SFC-Nummer> die Nummer der aufzurufenden FC bzw. SFC angegeben werden (z.B. FC20). Die Art der zur Verfügung stehenden SFC's ist CPU-abhängig.

CALL_FB Funktionsbaustein FB als Box aufrufen

Die Operation CALL_FB

  • Speicherung der Rücksprungadresse des aufrufenden Bausteins
  • Speicherung der Auswahldatenfür die beiden aktuellen Datenbausteine (DB, Instanz-DB)
  • Aktualisieren des Lokaldatenbereiches für den aufgerufenen Funktionsbaustein FB
  • Schieben des MA-Bits (aktives MCR-Bit) in den B-Stack (Baustein-Stack)

CALL_FC Funktion FC als Box aufrufen

Die Operation CALL_FC (eine Funktion als Box aufrufen) wird ausgeführt wenn der Freigabgeeingang den Signalzustand "1" erhält. Während des Aufrufs der Funktion geschieht folgendes:

  • Speicherung der Rücksprungadresse des aufrufenden Bausteins
  • Aktualisieren des Lokaldatenbereiches für die aufgerufene Funktion FC
  • Schieben des MA-Bits (aktives MCR-Bit) in den B-Stack (Baustein-Stack)

In der aufgerufenen Funkton wird anschließend die Programmbearbeitung fortgesetzt. Das BIE-Bit wird zur Ermittlung des ENO abgefragt. Im aufgerufenen Baustein muss dem Freigabeausgang ENO mit der Operation SAVE ein Zustand für eien eventuelle Fehlerauswertung zugewiesen werden. Ruft man eine Funktion FC auf und verfügt die Variablendeklarationstabelle über Deklarationen vom Typ IN, OUT und IN_OUT, werden diese Variablen im Programm des aufrufenden Bausteins als Liste der Formalparameter angezeigt. Den Formalparametern müssen beim Aufruf eines FC's zwingend Aktualparameter an der Aufrufstelle zugeordnet werden. Ohne Bedeutung sind eventuelle Anfangswerte in der FC-Deklaration.

CALL_SFB Systemfunktionsbaustein SFB als Box aufrufen

Die Operation CALL_SFB (einen Systemfunktionsbaustein als Box aufrufen) wird ausgeführt wenn der Freigabgeeingang den Signalzustand "1" erhält. Während des Aufrufs des Systemfunktionsbausteines geschieht folgendes:

  • Speicherung der Rücksprungadresse des aufrufenden Bausteins
  • Speicherung der Auswahldatenfür die beiden aktuellen Datenbausteine (DB, Instanz-DB)
  • Aktualisierung des Lokaldatenbereiches für den aufgerufenen Systemfunktionsbaustein
  • Schieben des MA-Bits (aktives MCR-Bit) in den B-Stack (Baustein-Stack)

Beim aufrufen von Funktionsbausteinen und Systemfunktionsbausteinen geht die Nummer des zuvor geöffneten Datenbausteines verloren. Der benötigte Datenbaustein muß erneut geöffnet werden. Die Programmbearbeitung wird anschließend im aufgerufenen Systemfunktionsbaustein fortgesetzt. Wenn die Systemfunktion aufgerufen wurde hat der Freigabeausgang den Signalzustand "1", ebenso wie der Freigabeeingang EN den Signalzustand "1" hat und keine Fehler aufgetreten sind.

CALL_SFC Systemfunktion SFC als Box aufrufen

Die Operation CALL_SFC (eine Systemfunktion als Box aufrufen) wird ausgeführt wenn der Freigabgeeingang den Signalzustand "1" erhält. Während des Aufrufs der Systemfunktion geschieht folgendes:

  • Speicherung der Rücksprungadresse des aufrufenden Bausteins
  • Aktualisierung des Lokaldatenbereiches für die aufgerufene Systemfunktion
  • Schieben des MA-Bits (aktives MCR-Bit) in den B-Stack (Baustein-Stack)

Die Programmbearbeitung wird anschließend in der aufgerufenen Systemfunktion fortgesetzt. Wenn die Systemfunktion aufgerufen wurde hat der Freigabeausgang den Signalzustand "1", ebenso wie der Freigabeeingang EN den Signalzustand "1" hat und keine Fehler aufgetreten sind.

Aufrufen von Multiinstanzen

aufrufen von Multiinstanzen in der PRogrammiersprache Kontaktplan KOP
Multiinstanz aufrufen

Durch die Deklaration einer statische Variablen vom Datentyp eines Funktionsbaustein entsteht eine Multiinstanz. Im Programmelementekatalog werden nur die Multiinstanzen aufgeführt die deklariert sind. Das Symbol einer Multiinstanz verändert sich, je nachdem, ob und wie viele Parameter vorhanden sind. EN, ENO und der Variablenname sind immer vorhanden. Für #Variablenname wird der Name der Multiinstanz eingesetzt.

Baustein aus einer Bibliothek aufrufen in Kontaktplan KOP

Zur Auswahl stehen die im SIMATIC Manager angebotenen Bibliotheken. Es stehen Standardbausteine zur Verfügung und selbstangelegte und in Bibliotheken abgespeicherte Bausteine.

Wichtiges zum Beachten bei MCR-Funktionalität im Kontaktplan KOP

Vorsicht bei Bausteinen, in denen mit MCRA das Master Control Relay aktiviert wurde:

  • Das MCR ist genau dann abgeschaltet, wenn vor dem Befehl "MCR einschalten" das VKE = 0 war.
  • Wenn das MCR abgeschaltet ist, wird in Programmabschnitten zwischen MCR einschalten, --(MCR<), und MCR ausschalten, --(MCR>), durch alle Zuweisungen der Wert 0 geschrieben! Das betrifft dann natürlich auch alle Boxen, die eine Zuweisung enthalten, einschließlich der Parameterübergabe an Bausteine!

Gefahr: STOP der Ablaufsteuerung oder undefiniertes Laufzeitverhalten!

Der Compiler greift für Adreßberechnungen auch schreibend auf Lokaldaten hinter den in VAR_TEMP definierten temporären Variablen zu. Daher setzen folgende Befehlssequenzen die Ablaufsteuerung in STOP oder führen zu undefiniertem Laufzeitverhalten.

Formalparameterzugriffe:

  • Zugriffe auf Komponenten komplexer FC-Parameter vom Typ STRUCT, UDT, ARRAY, STRING
  • Zugriffe auf Komponenten komplexer FB-Parameter vom Typ STRUCT, UDT, ARRAY, STRING aus dem Bereich IN_OUT in einem Baustein der Bausteinversion 2.
  • Zugriffe auf Parameter eines FB der Bausteinversion 2, wenn ihre Adresse größer als 8180.0 ist.
  • Zugriff im FB mit Bausteinversion 2 auf einen Parameter vom Typ BLOCK_DB schlägt den DB 0 auf. Nachfolgende Datenzugriffe bringen die CPU in STOP. Bei TIMER, COUNTER, BLOCK_FC, BLOCK_FB wird auch immer T 0, Z 0, FC 0 bzw. FB 0 verwendet.

Parameterübergabe:

  • Calls, bei denen Parameter übergeben werden.

Funktionsplan/Kontaktkplan:

  • T-Abzweige und Konnektoren in Kontaktplan KOP oder Funktionsplan FUP starten mit VKE = "0".

Zu folgender Abhilfe wird geraten:

Lösen der genannten Befehle aus der MCR-Abhängigkeit:

  • Als erstes deaktivieren des Master Control Relay mit dem MCRD-Befehl
    --(MCRD) vor der betreffenden Anweisung bzw. vor dem betreffenden Netzwerk.
  • Als zweites aktivieren des Master Control Relay mit dem MCRA-Befehl
    --(MCRA) nach der betreffenden Anweisung bzw. nach dem betreffenden Netzwerk.