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.
VAR_GLOBAL
g_xVar AT %QX0.0 : BOOL ;
g_iTest AT %QW0 : INT ;
END_VARPROGRAM 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:
SA0004: Acceso de escritura múltiple en la salida '%QX0.0'
SA0004: Acceso de escritura múltiple en la salida '%QW0'