SA0006: accesso in scrittura da più attività
Determina le variabili in cui vengono scritte più attività.
Motivo: una variabile scritta in più attività può cambiare il proprio valore in modo imprevisto. Questo può portare a situazioni confuse. Le variabili stringa e su alcuni sistemi a 32 bit anche le variabili intere a 64 bit possono persino ottenere uno stato incoerente se la variabile viene scritta in due attività contemporaneamente.
Eccezione: in alcuni casi può essere necessario che più attività scrivano una variabile. Quindi assicurati, ad esempio utilizzando i semafori, che l'accesso non porti a uno stato incoerente.
Importanza: Alta
Regola 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;
Uscita in Messaggi vista:
SA0006: Accesso in scrittura simultaneo a 'g_iTemp1' in Tasks MainTask, SubTask