SA0018: Acceso a bit inusual
Detecta el acceso de bits a variables firmadas. Sin embargo, el estándar IEC 61131-3 solo permite operaciones de acceso y desplazamiento de bits en campos de bits.
Vea también las reglas estrictas SA0147 y SA0148.
Justificación: Los tipos de datos firmados no deben usarse como campos de bits y viceversa. El estándar IEC 61131-3 no proporciona este tipo de acceso y, por lo tanto, debe cumplir con esta regla cuando escriba código portátil.
Importancia: Media
Sugerencia
Excepción para enumeraciones de banderas: cuando una enumeración se declara como bandera por medio de la {attribute 'flags'} atributo pragma, el SA0018 no se emite un error para el acceso a bits con el OR, AND o NOT operadores.
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
Salida en el Mensajes vista:
SA0018: Acceso a bits inusual