SA0147: Operazione di spostamento insolita -strict
Determina le operazioni di spostamento dei bit che non si applicano ai tipi di dati bitfield (BYTE, WORD, DWORD, LWORD) rispettivamente.
Motivo: lo standard IEC 61131-3 consente l'accesso bit solo ai tipi di dati bit field. il CODESYSTuttavia, il compilatore consente anche operazioni di spostamento di bit con tipi di dati senza segno.
Importanza: Bassa
Suggerimento
Vedi anche la regola non rigorosa SA0018.
Esempio 108. Esempio
PROGRAM PLC_PRG
VAR
in_byte : BYTE := 16#45; // 2#01000101
in_word : WORD := 16#0045; // 2#0000000001000101
in_uint : UINT;
in_dint : DINT;
erg_byte : BYTE;
erg_word : WORD;
erg_uint : UINT;
erg_dint : DINT;
n: BYTE := 2;
END_VAR
erg_byte := SHL(in_byte,n); // no error because BYTE is a bit field erg_word := SHL(in_word,n); // no error because WORD is a bit field erg_uint := SHL(in_uint,n); // SA0147 erg_dint := SHL(in_dint,n); // SA0147
Uscita in Messaggi vista:
SA0147: Funzionamento del turno insolito – rigoroso