SA0160:再帰呼び出し ファンクションブロックのアクション、メソッド、およびプロパティでの再帰呼び出しを決定します。また、仮想関数呼び出しとインターフェース呼び出しを介して可能な再帰を検出します。 理由:再帰は非決定論的な動作につながるため、エラーの原因になります。 重要性:中 PLCopenルール:CP13 例 117 . 例 機能ブロック FB_Test 次の方法です Call 割り当て:
SA0111:ポインタ変数 タイプの変数を決定します POINTER TO 。 理由:IEC61131-3規格ではポインターが許可されていません。 重要度:低 例 95 . 例 VAR piTemp : POINTER TO INT; pbyTemp : POINTER TO BYTE; END_VAR での出力 メッセージ ビュー: SA0111: データ型 POINTER は使用できません こ
SA0112:参照変数 型の変数を検出します。 REFERENCE TO 理由:IEC61131-3規格では参照が許可されていません。 重要度:低 例 96 . 例 VAR ref_int : REFERENCE TO INT; ref_dw : REFERENCE TO DWORD; END_VAR での出力 メッセージ ビュー: SA0112: データ型 REFERENCE は許可されません
SA0113:データ型WSTRINGの変数 型の変数を決定します WSTRING 。 理由:すべてのシステムがそれをサポートしているわけではありません WSTRING 。クリックするとコードの移植性が高まります WSTRING 免除。 重要度: 低 例 97 . 例 VAR wstrTemp : WSTRING; END_VAR での出力 メッセージ ビュー: SA0113: データ型 WSTRI
SA0114:データ型LTIMEの変数 型の変数を検出します。 LTIME 理由:すべてのシステムがそれをサポートしているわけではありません LTIME 。クリックするとコードの移植性が高まります LTIME 免除。 重要度:低 例 98 . 例 VAR ltVar : LTIME; // SA0114 END_VAR での出力 メッセージ ビュー: SA0114: データ型 LTIME は許可さ
SA0115:データ型UNIONの宣言 の宣言を取得します UNION -データ型と型aの変数の宣言 UNION 。 根拠: IEC 61131-3 標準には共用体が含まれていません。共用体を使用しないとコードの移植が容易になります。 重要度:低 例 99 . 例 TYPE A_UNION: UNION lrTemp : LREAL; liTemp : LINT; END_UNION END_TY
SA0117:データ型BITの変数 データ型の変数宣言を検出します。 BIT (構造定義内で可能) 根拠: IEC 61131-3 規格にはデータ型が含まれていません。 BIT 。コードは、 BIT 。 重要度:低 例 100 . 例 TYPE Struct1 : STRUCT bitVar : BIT; iVar : INT; bVar : BOOL; END_STRUCT END_TYPE で
SA0119:オブジェクト指向機能 関数ブロック宣言などのオブジェクト指向機能の使用を決定します EXTENDS と IMPLEMENTS 、またはプロパティとインターフェイスの宣言。このルールは、他の61131-3システムに移植するコードを作成するときに役立ちます。 理由:すべてのシステムがオブジェクト指向プログラミングをサポートしているわけではありません。オブジェクト指向を使用しない場合、コー
SA0120:プログラム呼び出し プログラム呼び出しを決定します。 理由:IEC 61131-3規格によると、プログラムはタスク構成でのみ呼び出すことができます。プログラムを他の場所で呼び出さないと、コードの移植性が高まります。 重要度:低 例 102 . 例 PROGRAM prog_control VAR END_VAR ; PROGRAM PLC_PRG VAR END_VAR prog_c
SA0123:INI、ADR、またはBITADRの使用 の使用を決定します CODESYS Static Analysis -特定の演算子 INI 、 ADR と BITADR 。 理由: CODESYS -特定の演算子は、コードの移植性を妨げます。 重要度:低 例 106 . 例 PROGRAM PLC_PRG VAR uiTemp : UINT; TempVarInFUNC : DWORD;