SA0145:初期化されていない参照の使用の可能性 使用前に初期化できず、オペレーターによっても初期化されない可能性のある、使用済みのすべての参照変数を取得します __ISVALIDREF チェックされます。このルールは、POUの実装部分に適用されます。宣言にはルールがあります SA0124 。 理由: アクセス中にアクセス違反が発生する可能性があるため、アクセス前に参照の有効性をチェックする必要
SA0150:メトリックの下限または上限の違反 下限または上限で有効なメトリックに違反しているビルディングブロックを識別します。 理論的根拠:特定のメトリックに準拠するコードは、読みやすく、保守しやすく、テストしやすいです。 重要性:高い PLCopenルール:CP9 例 116 . 例 初期状況:メトリック ビューの数 対話中です プロジェクト設定→静的コード分析→メトリクス 起動しました。下限
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システムに移植するコードを作成するときに役立ちます。 理由:すべてのシステムがオブジェクト指向プログラミングをサポートしているわけではありません。オブジェクト指向を使用しない場合、コー