Skip to main content

SA0004: acceso de escritura múltiple en la salida

Detecta salidas que se escriben en más de una ubicación.

Justificación: la mantenibilidad se degrada cuando una salida se escribe en diferentes ubicaciones en el código. Entonces no está claro qué acceso de escritura es el que realmente tiene un efecto en el proceso. Una buena práctica es calcular las variables de salida en variables auxiliares y asignar el valor calculado en una ubicación al final del ciclo.

Importancia: Alta

Regla PLCopen: CP12

Sugerencia

No se emite un error cuando una variable de salida (VAR_IN_OUT) se escribe en diferentes ramas de IF y CASE declaraciones.

Un pragma no puede deshabilitar esta regla.

ejemplo 17. Ejemplo
VAR_GLOBAL
    g_xVar AT %QX0.0 : BOOL ;
    g_iTest AT %QW0 : INT ;
END_VAR
PROGRAM PLC_PRG
IF g_iCondition < INT#0 THEN
    g_xVar := TRUE;
    g_iTest := INT#12;
END_IF

CASE g_iCondition OF
    INT#1:
        g_xVar := FALSE;
    INT#2:
        g_iTest := INT#11;
    ELSE
        g_xVar := TRUE;
        g_iTest := INT#9;
END_CASE

Salida en el Mensajes vista:

  • sa_icon_message.png SA0004: Acceso de escritura múltiple en la salida '%QX0.0'

  • sa_icon_message.png SA0004: Acceso de escritura múltiple en la salida '%QW0'