POU: CheckPointer
Überwachungsfunktion Checkpointer für Pointer
Verwenden Sie die Funktion, um den Speicherzugriff von Pointern während der Laufzeit zu überwachen. Im Unterschied zu anderen Überwachungsfunktionen existiert für die Implementierung von CheckPointer kein standardmäßiger Vorschlag; eine Implementierung ist vom Benutzer selbst vorzunehmen!
Die Funktion CheckPointer soll überprüfen, ob der übergebene Pointer auf eine gültige Speicheradresse verweist und ob die Ausrichtung des referenzierten Speicherbereichs zum Typ der Variablen passt, auf die der Pointer verweist. Sind beide Bedingungen erfüllt, so wird der Pointer selbst zurückgegeben. Anderenfalls sollte die Funktion eine angemessene Fehlerbehandlung durchführen.
Achtung
Um die Funktionalität der Überwachungsfunktionen zu erhalten, dürfen Sie den Deklarationsteil nicht verändern. Als einzige Ausnahme dürfen Sie lokale Variablen hinzufügen.
Wichtig
Für den THIS-Pointer und den SUPER-Pointer findet kein impliziter Aufruf der Überwachungsfunktion statt.
Wichtig
Die Funktion Checkpointer wirkt ab Compiler Version 3.5.7.40 auch auf Variablen vom Typ REFERENCE in gleicher Weise wie auf Pointervariablen.
Deklaration:
// Automatically generated code: DO NOT EDIT
FUNCTION CheckPointer : POINTER TO BYTE
VAR_INPUT
ptToTest : POINTER TO BYTE;
iSize : DINT;
iGran : DINT;
bWrite: BOOL;
END_VARImplementierung (unvollständig!):
// Not a standard implementation. Insert your code here. CheckPointer := ptToTest;
ptToTest: Zieladresse des PointersiSize: Größe der referenzierten Variable; der Datentyp voniSizemuss kompatibel sein zuINTund den Größenbereich der Variablen abdeckeniGran: Granularität der referenzierten Größe, also der größte in der referenzierten Variablen enthaltene nicht-strukturierte Datentyp; der Datentyp voniGranmuss kompatibel sein zuINTbWrite: Art des Zugriffs (TRUE=Schreibzugriff,FALSE=Lesezugriff); der Datentyp vonbWritemussBOOLsein
Bei positivem Ergebnis der Überprüfung wird der unveränderte Eingabepointer zurückgegeben (ptToTest).