Rileva le variabili che sono scritte da più di un task
Giustificazione: Una variabile scritta in più task può cambiare inaspettatamente il suo valore. Questo può portare a situazioni di confusione. Le variabili stringa (e in alcuni sistemi a 32 bit anche quelle intere a 64 bit) possono persino raggiungere uno stato incoerente se la variabile viene scritta su due task contemporaneamente.
Eccezione: In casi specifici, può essere necessario che più compiti scrivano una variabile. Ad esempio, utilizzare le semaforizzazioni per assicurarsi che l'accesso non porti a uno stato incoerente.
Importanza: Alto
Regola PLCopen: CP10
Esempio
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