SA0018: Olağandışı bit erişimiPermalink

İşaretli değişkenlere bit erişimini algılar. Ancak IEC 61131-3 standardı, bit alanları üzerinde yalnızca bit erişimi ve bit kaydırma işlemlerine izin verir. Ayrıca SA0147 ve SA0148 sayılı katı kurallara da bakınız.

Gerekçe: İşaretli veri türleri bit alanları olarak kullanılmamalıdır. IEC 61131-3 standardı bu tür bir erişim sağlamaz ve bu nedenle taşınabilir kod yazarken bu kurala uymanız gerekir.

Önemliymiş: Orta

Bayrak numaralandırmaları için istisna: Bir numaralandırma ‎{attribute 'flags'}‎ pragma niteliği aracılığıyla bir bayrak olarak bildirilirse, ‎OR‎, ‎AND‎ veya ‎NOT‎ operatörleriyle bit erişimi için ‎SA0018‎ hatası verilmez.

Örnek

PROGRAM PLC_PRG
VAR
	iTemp1 : INT;
	diTemp3 : DINT;
	uliTemp4 : ULINT;
	siTemp5 : SINT;
	usiTemp6 : USINT;
	byTemp2 : BYTE;
END_VAR
iTemp1.3 := TRUE;     // SA0018
diTemp3.4 := TRUE;    // SA0018
uliTemp4.18 := FALSE; // no error because this is an unsigned data type
siTemp5.2 := FALSE;   // SA0018
usiTemp6.3 := TRUE;   // no error because this is an unsigned data type
byTemp2.5 := FALSE;   // no error because the byte is a bitfield

--> SA0018: Unusual bit access