Skip to main content

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;

での出力 メッセージ ビュー:

  • sa_icon_message.png SA0006: タスク MainTask、SubTask の 'g_iTemp1' への同時書き込みアクセス