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.
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:
SA0008: La variabile del sottointervallo "iSubr1" potrebbe essere fuori dall'intervallo consentito