Skip to main content

Attribut: call_before_global_exit_slot

Wichtig

VAR_INPUT-Deklarationen in Funktionen oder Methoden, die das Attribut verwenden, führen zu Übersetzungsfehlern. Grund: Eingabevariablen sind in diesem Fall zum Zeitpunkt des Aufrufs, der implizit während des Online-Change erfolgt, nicht bekannt.

Wichtig

Funktionen, die mit diesem Attribut gekennzeichnet sind, werden nur ausgeführt, wenn sie kompiliert und auf die Steuerung heruntergeladen wurden.

Wenn Ihre Funktion an keiner anderen Stelle in Ihrem Projekt aufgerufen wird, kann der Compiler die Funktion aus dem Build ausschließen. Um sicherzustellen, dass die Funktion immer kompiliert und zur Ausführung verfügbar ist, fügen Sie der Funktionsdeklaration das Pragma {attribute 'linkalways'} hinzu.

Alternativ dazu, können Sie im Eigenschaftendialog der Funktion in der Registerkarte Build die Option Immer binden aktivieren.

Ohne diese Option wird Ihre Initialisierungsfunktion möglicherweise nicht ausgeführt, obwohl sie ordnungsgemäß konfiguriert zu sein scheint.

Das Pragma bewirkt, dass alle Funktionen und Programme, in denen dieses Attribut gesetzt ist, vor den GlobalExit aufgerufen werden. GlobalExit findet vor einem erneuten Download oder bei einem Reset statt. Betroffen sind Bausteine, die mit einer FB_Exit-Methode versehen sind. Die Aufrufreihenfolge wird durch den Attributwert festgelegt.

Wenn in einer Methode das Attribut gesetzt ist, werden alle Instanzen des übergeordneten Funktionsbausteins ermittelt. Alle Instanzen werden im angegebenen Slot aufgerufen. In diesem Fall haben Sie auf die Reihenfolge der Instanzen untereinander keinen Einfluss.

Syntax:

{attribute 'call_before_global_exit_slot' := '<slot>'}

Einfügeort

Erste Zeile über dem Deklarationsteil von Funktionen und Programmen

<slot>

Ganzzahliger Wert, der den Stellenwert in der Reihenfolge der Aufrufe definiert: Je niedriger der Wert ist, desto früher erfolgt der Aufruf. Wenn mehrere Bausteine denselben Stellenwert für das Attribut haben, so bleibt die Reihenfolge ihrer Aufrufe unbestimmt.