SA0037: Schreibzugriff auf Eingabevariable

Funktion

Ermittelt Eingangsvariablen (VAR_INPUT), auf die innerhalb der POU schreibend zugegriffen wird.

Begründung

Nach der Norm IEC 61131-3 darf eine Eingabevariable nicht innerhalb eines Bausteins verändert werden. Ein solcher Zugriff ist außerdem eine Fehlerquelle und macht den Code schlecht wartbar. Es weist daraufhin, dass eine Variable als Eingang und gleichzeitig als Hilfsvariable verwendet wird. Eine solche Doppelverwendung sollte vermieden werden.

Wichtigkeit

Mittel

Beispiel:

Funktionsbaustein FB_Sample:

FUNCTION_BLOCK FB_Sample
VAR_INPUT
    bIn   : BOOL := TRUE;
    nIn   : INT := 100;
END_VAR
VAR_OUTPUT
    bOut  : BOOL;
END_VAR

Methode FB_Sample.SampleMethod:

IF bIn THEN
    nIn  := 500;                 // => SA0037
    bOut := TRUE;
END_IF