SA0004:出力への複数の書き込みアクセス
複数の場所に書き込まれる出力を検索します。
理論的根拠:出口がコード内のさまざまな場所に書き込まれると、保守性が低下します。その場合、どの書き込みアクセスが実際にプロセスに影響を与えるのかは不明です。補助変数で出力変数の計算を行い、サイクルの最後の1つのポイントで計算値を割り当てることをお勧めします。
重要性:高い
PLCopenルール:CP12
ヒント
出力変数にアクセスするときにエラーはスローされません(VAR_IN_OUT
)のさまざまなブランチで IF
また CASE
指示が書かれています。
このルールは、プラグマを介してオフにすることはできません。
例 17. 例
VAR_GLOBAL g_xVar AT %QX0.0 : BOOL ; g_iTest AT %QW0 : INT ; END_VAR
PROGRAM PLC_PRG
IF g_iCondition < INT#0 THEN g_xVar := TRUE; g_iTest := INT#12; END_IF CASE g_iCondition OF INT#1: g_xVar := FALSE; INT#2: g_iTest := INT#11; ELSE g_xVar := TRUE; g_iTest := INT#9; END_CASE
での出力 メッセージ ビュー:
SA0004: 出力 '%QX0.0' に対する複数の書き込みアクセス
SA0004: 出力 '%QW0' に対する複数の書き込みアクセス