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.
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. |
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. |
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. |
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:
- Referenz Programmierung: Attribut 'no_check'