SA0006: Acceso de escritura desde varias tareas
Detecta variables en las que escribe más de una tarea.
Justificación: Una variable que se escribe en múltiples tareas puede cambiar su valor inesperadamente. Esto puede conducir a situaciones confusas. Las variables de cadena (y en algunos sistemas de 32 bits también las variables enteras de 64 bits) pueden incluso alcanzar un estado inconsistente si la variable se escribe en dos tareas simultáneamente.
Excepción: en casos específicos, puede ser necesario que varias tareas escriban una variable. Por ejemplo, utilice semáforos para asegurarse de que el acceso no conduzca a un estado incoherente.
Importancia: Alta
Regla PLCopen: CP10
VAR_GLOBAL g_iTemp1: INT; END_VAR
PROGRAM PLC_PRG // Controlled by MainTask g_iTemp1 := g_iTemp1 + INT#2;
PROGRAM PLC_PRG_1 //Controlled by SubTask g_iTemp1 := g_iTemp1 - INT#3;
Salida en el Mensajes vista:
SA0006: Acceso de escritura simultáneo a 'g_iTemp1' en Tareas MainTask, SubTask