Detecta variables escritas por más de una tarea
Justificación: Una variable que se escribe en varias tareas puede cambiar su valor inesperadamente. Esto puede dar lugar 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 concretos, puede ser necesario que varias tareas escriban una variable. Por ejemplo, utilice semáforos para asegurarse de que el acceso no conduce a un estado inconsistente.
Importancia: Alta
Regla PLCopen: CP10
Ejemplo
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; --> SA0006: Concurrent write access to 'g_iTemp1' in Tasks MainTask, SubTask