SA0102: Program/fb değişkenlerine dışarıdan erişimPermalink

Programların veya fonksiyon bloklarının lokal değişkenlerine harici erişimi tespit eder

Gerekçe: CODESYS programların veya fonksiyon bloklarının lokal değişkenlerine harici okuma erişimine izin verir. Bu, veri kapsülleme (verileri gizleme) ilkesiyle çelişir ve IEC 61131-3 standardına uygun değildir.

Önemliymiş: Orta

Örnek

PROGRAM PLC_PRG
VAR
	iCounter : INT;
	afb_Instance : AFB;
	bfb_Instance : BFB;
END_VAR
iCounter := A_PRG.iLocal;				//  SA0102
iCounter := bfb_Instance.iLocal;		 //  SA0102
A_PRG();

FUNCTION_BLOCK AFB
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
	iLocal: INT;
END_VAR
METHOD METH : INT
VAR_INPUT
END_VAR
iLocal := iLocal + 1;

FUNCTION_BLOCK BFB EXTENDS AFB
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
END_VAR
METHOD METH : INT
VAR_INPUT
END_VAR
iLocal := iLocal + 1;

PROGRAM A_PRG
VAR
	iLocal: INT;
END_VAR
iLocal := iLocal + 1;

--> SA0102: Access to program/fb variable 'iLocal' from the outside