Skip to main content

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.

ejemplo 31. Ejemplo
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:

  • sa_icon_message.png SA0018: Acceso a bits inusual