SA0008: Comprobar tipos de subrango
Detecta violaciones fuera de rango de tipos de subrango. El compilador ya verifica los literales asignados. Cuando se asignan constantes, los valores deben estar dentro del rango definido. Cuando se asignan variables, los tipos de datos deben ser idénticos.
Justificación: si se utilizan tipos de subrango, asegúrese de que no se salga de este subrango. El compilador verifica este tipo de violaciones de subrango solo para asignaciones de constantes.
Importancia: Baja
Sugerencia
La verificación no se realiza para objetos CFC porque la estructura del código no lo permite.
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..."
Salida en el Mensajes vista:
SA0008: La variable de subrango 'iSubr1' puede estar fuera del rango permitido