SA0038: Lesezugriff auf Ausgabevariable

Funktion

Ermittelt Ausgangsvariablen (VAR_OUTPUT), auf die innerhalb der POU lesend zugegriffen wird.

Begründung

Nach 61131-3 ist es verboten, einen Ausgang innerhalb eines Bausteins zu lesen. Es weist darauf hin, dass der Ausgang nicht nur als Ausgang sondern gleichzeitig als temporäre Variable für Zwischenergebnisse verwendet wird. Eine solche Doppelverwendung sollte vermieden werden.

Wichtigkeit

Niedrig

Beispiel:

Funktionsbaustein FB_Sample:

FUNCTION_BLOCK FB_Sample
VAR_OUTPUT
    bOut    : BOOL;
    nOut    : INT;
END_VAR
VAR
    bLocal  : BOOL;
    nLocal  : INT;
END_VAR

Methode FB_Sample.SampleMethod:

IF bOut THEN                     // => SA0038
    bLocal := (nOut > 100);      // => SA0038
    nLocal := nOut;              // => SA0038
    nLocal := 2*nOut;            // => SA0038
END_IF