Skip to main content

SA0018: Accessi bit insoliti

Rileva l'accesso bit alle variabili firmate. Tuttavia, lo standard IEC 61131-3 consente solo operazioni di accesso ai bit e spostamento di bit sui campi di bit.

Vedi anche le regole severe SA0147 e SA0148.

Motivo: i tipi di dati con segno non devono essere utilizzati come campi di bit e viceversa. La norma IEC 61131-3 non prevede tale accesso, quindi è necessario seguire questa regola se si desidera scrivere codice portatile.

Importanza: Media

Suggerimento

Eccezione per le enumerazioni flag: se un'enumerazione utilizza l'attributo pragma {attribute 'flags'} è dichiarato come flag, viene utilizzato per gli accessi ai bit con le operazioni OR, AND o NOT l'errore SA0018 non speso.

Esempio 31. Esempio
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

Uscita in Messaggi vista:

  • sa_icon_message.png SA0018: Accesso bit insolito