CheckBounds
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.
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.