CheckBounds

CheckBounds 1:

Wenn Sie in Ihrem Projekt eine Funktion mit Namen CheckBounds definieren, können Sie damit Bereichsüberschreitungen beim Zugriff auf Arrays in Ihrem Projekt automatisch überprüfen! Der Name der Funktion ist festgelegt und darf nur diese Bezeichnung besitzen. Ein Beispiel für eine Implementierung dieser Funktion ist nachfolgend abgedruckt.

CheckBounds 2:

Die Funktion kann eine erhebliche Erhöhung der Systemauslastung verursachen, deshalb sollte sie nur für Testzwecke eingesetzt werden.

FUNCTION CheckBounds : DINT

VAR_INPUT
    index, lower, upper : DINT;
END_VAR

Beispiel für eine Implementierung der CheckBounds-Funktion:

IF index<lower THEN
    CheckBounds := lower;
ELSIF index>upper THEN
    CheckBounds := upper;
ELSE
    CheckBounds := index;
END_IF

Das folgende Beispielprogramm zum Testen der CheckBounds-Funktion greift außerhalb der Grenzen eines definierten Arrays zu. Die Funktion CheckBounds gewährleistet, dass der Wert TRUE nicht an die Stelle A[10], sondern an der oberen noch gültigen Bereichsgrenze A[7] zugewiesen wird. Mit der CheckBounds-Funktion können somit Zugriffe außerhalb von Array-Grenzen korrigiert werden.
CheckBounds 3: