Ermittelt Additionen von Pointern.
Begründung: In CODESYS ist Pointer-Arithmetik grundsätzlich erlaubt und kann auch sinnvoll eingesetzt werden. Allerdings ist es auch eine Fehlerquelle. Deswegen gibt es Programmiervorschriften, die Pointer-Arithmetik grundsätzlich verbieten. Eine solche Vorschrift kann mit diesem Test überprüft werden.
Wichtigkeit: Mittel
Beispiel
PROGRAM PLC_PRG
VAR
iTest:INT;
ariTest:ARRAY[0..10] OF INT;
{attribute 'analysis':='-111'}
piTest:POINTER TO INT;
i:INT;
END_VAR
piTest := ADR(ariTest[0]); // OK
piTest^:= 0;
piTest := ADR(ariTest) + SIZEOF(INT); // SA0064
piTest^:= 1;
piTest := ADR(ariTest) + 6; // SA0064
piTest^:= 3;
piTest := ADR(ariTest[10]);
FOR i:=0 TO 10 DO
piTest^ := i;
piTest := piTest + 2; // SA0064
END_FOR
--> SA0064: Addition eines Pointers