Skip to main content

SA0008: Verifica i tipi di sottoarea

Rileva le violazioni dell'intervallo dei tipi di sottointervallo. I valori letterali assegnati sono già controllati dal compilatore. Se vengono assegnate costanti, i valori devono rientrare nell'intervallo definito. Quando le variabili vengono mappate, i tipi di dati devono essere gli stessi.

Motivo: se si utilizzano tipi di sottoarea, è necessario assicurarsi che questa sottoarea non venga chiusa. Il compilatore controlla solo tali violazioni di sottointervallo per le assegnazioni costanti.

Importanza: Bassa

Suggerimento

Il controllo non viene eseguito per gli oggetti CFC perché la struttura del codice non lo consente.

Esempio 20. Esempio
VAR_GLOBAL
    iVarGlob:INT;
END_VAR
PROGRAM PLC_PRG
VAR
    iSubr1: INT (INT#1..INT#10);
    iSubr2: INT (INT#1..INT#1000);
    iCount: INT;
    by_SubType : BYTE (BYTE#0..BYTE#11);
    iVar : INT (-4095..4095);
END_VAR
iSubr1 := nCount;              // SA0008
iSubr1 := subr2;               // SA0008
iSubr1 := gvl.iVarGlob;        // SA0008
//byBYTE_SubType := BYTE#123;  //already detected by compiler, error "Cannot convert type..."

Uscita in Messaggi vista:

  • sa_icon_message.png SA0008: La variabile del sottointervallo "iSubr1" potrebbe essere fuori dall'intervallo consentito