Skip to main content

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.

ejemplo 20. Ejemplo
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:

  • sa_icon_message.png SA0008: La variable de subrango 'iSubr1' puede estar fuera del rango permitido