Objekt POUs für implizite Prüfungen

Objekt POU für implizite Prüfungen anlegen

1. Selektieren Sie einen Ordner im SPS-Projektbaum.
2. Wählen Sie im Kontextmenü den Befehl Hinzufügen > POU für implizite Prüfungen...
Der Dialog POU für implizite Prüfungen hinzufügen öffnet sich.
3. Aktivieren Sie die gewünschten Funktionen.
4. Klicken Sie auf die Schaltfläche Öffnen.
Die ausgewählten POUs werden in den SPS-Projektbaum eingefügt.
5. Öffnen Sie die POUs im Editor.
6. Passen Sie den Implementierungsvorschlag Ihren Anforderungen an.

Um ein mehrfaches Einbinden zu verhindern, steht eine bereits eingefügte Überwachungsfunktion im Dialog POU für implizite Prüfungen hinzufügen einfügen nicht mehr zur Auswahl.

Objekt POUs für implizite Prüfungen 1:

Deklarationsteil nicht verändern

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.

Objekt POUs für implizite Prüfungen 2:

Kein Online-Change möglich

Nach dem Entfernen impliziter Überwachungsfunktionen, wie beispielsweise CheckBounds, aus dem Projekt, ist kein Online-Change mehr möglich, nur ein Download. Eine entsprechende Meldung wird ausgegeben.

Objekt POUs für implizite Prüfungen 3:

Implizite Prüfungen für Bausteine aus Bibliotheken

TwinCAT führt implizite Prüfungen standardmäßig nicht für Bausteine aus Bibliotheken aus. Sie können jedoch durch die Compiler-Definition „checks_in_libs“ die Prüfung auf Bausteine aus Bibliotheken ausweiten. Um dies umzusetzen, tragen Sie die Compiler-Definition „checks_in_libs“ in den SPS-Projekteigenschaften in das Feld Compilerdefinitionen ein, welches Sie in der Kategorie Übersetzen finden. Dies wirkt sich auf Source-Bibliotheken (*.library) aus.

Ab TC3.1 Build 4026 kann die Prüfung auch auf Bausteine aus geschützten Bibliotheken (*.compiled-libraries) ausgeweitet werden. Dazu müssen Sie vor dem Speichern und Installieren als Bibliothek in den SPS-Projekteigenschaften in der Kategorie Common die Option „Implizite Prüfungen für Compiled Libraries erlauben“ aktivieren. Zusätzlich müssen Sie auch für geschützte Bibliotheken die Compiler-Definition „checks_in_libs“ eintragen.

Objekt POUs für implizite Prüfungen 4:

Einzelne POUs von der Prüfung ausschließen

Sie können die Prüfung spezieller POUs im Projekt mit dem Attribut 'no_check‘ deaktivieren.

Dialog Add POU für implizite Prüfungen

Verfügbare Funktionen

Überwachungsfunktion

Typ

CheckBounds

Feldgrenzenprüfungen (Bound Checks):

Angemessene Behandlung von Verletzungen von Feldgrenzen (beispielsweise durch Setzen eines Fehlerflags oder durch Verändern des Feldindex).

CheckDivDInt

Divisionsprüfungen (Division Checks):

Überwachung des Divisorwerts, um ein Dividieren durch 0 zu vermeiden.

CheckDivLInt

CheckDivReal

CheckDivLReal

CheckRangeSigned

Bereichsprüfungen (Range Checks):

Überwachung der Bereichsgrenzen eines Unterbereichstypen während der Laufzeit. Gilt für die Datentypen DINT/UDINT

CheckRangeUnsigned

CheckLRangeSigned

L-Bereichsprüfungen:

Überwachung der Bereichsgrenzen eines Unterbereichstypen während der Laufzeit. Gilt für die Datentypen LINT/ULINT

CheckLRangeUnsigned

CheckPointer

Pointerprüfungen (Pointer Checks):

Diese Funktion müssen Sie komplett selbst mit Implementierungscode füllen. Sehen Sie dazu die Hilfeseite zu POU CheckPointer. Die Funktion soll überwachen, ob der übergebene Zeiger auf eine gültige Speicheradresse verweist und ob die Ausrichtung des referenzierten Speicherbereichs zum Typ der Variablen passt, auf die der Zeiger verweist. Wenn beide Bedingungen erfüllt sind, wird der Zeiger selbst zurückgegeben. Andernfalls sollte CheckPointer eine angemessene Fehlerbehandlung durchführen. CheckPointer überwacht in der gleichen Weise auch Variablen vom Typ REFERENCE TO

Siehe auch: