SA0006:複数のタスクからの書き込みアクセス
複数のタスクによって書き込まれる変数を決定します。
理由:いくつかのタスクで記述された変数は、その値を予期せず変更する可能性があります。これは混乱を招く状況につながる可能性があります。文字列変数および一部の32ビットシステムでは、変数が2つのタスクで同時に書き込まれる場合、64ビット整数変数も一貫性のないステータスになる可能性があります。
例外:場合によっては、いくつかのタスクで変数を書き込む必要があります。次に、たとえばセマフォを使用して、アクセスによって一貫性のない状態が発生しないことを確認します。
重要性:高い
PLCopenルール:CP10
例 18. 例
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: タスク MainTask、SubTask の 'g_iTemp1' への同時書き込みアクセス