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_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:
SA0004: Acceso de escritura múltiple en la salida '%QX0.0'
SA0004: Acceso de escritura múltiple en la salida '%QW0'