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