Skip to main content

静的コード分析を構成して実行する

単純なサンプルプロジェクトに基づいて、静的コード分析を構成および実行するための最も重要な手順とオプションを以下に示します。

要件: CODESYS Static Analysis インストールされています。

サンプルプロジェクト

サンプルプロジェクトを再プログラムする場合は、標準プロジェクトを作成し、アプリケーションの下にある以下に示すブロックをデバイスツリーに挿入します。その後、ローカルに接続するための通信設定を構成します CODESYS Control Win

FUNCTION_BLOCK fb1
VAR_INPUT
    iVar_fb1in1 : INT;
    ivar_fb1in2 : INT;
    rVar_fb1in3 : REAL;
END_VAR
VAR_OUTPUT
       iVar_fb1out:INT;
END_VAR
VAR
    P_fSampleProperty : INT;
    rVar : REAL;
    PRO : BOOL;
END_VAR
iVar_fb1out:=iVar_fb1in1 + 1;
FUNCTION_BLOCK fb2
VAR_INPUT
    iVar_fb2in:INT;
END_VAR
VAR_OUTPUT
    iVar_fb2out:INT;
END_VAR
VAR
END_VAR
iVar_fb2out:=iVar_fb2in - 1;
PROGRAM PLC_PRG
VAR
    fb1_inst: fb1;
    fb2_inst: fb2;
END_VAR
fb1_inst(iVar_fb1in1 := 99);
fb2_inst(iVar_fb2in := 22);
fb2_inst(iVar_fb2in := 1);

ルールへの準拠を確認する

  1. コマンドを選択します ビルド→静的分析→設定。切り替える タブ ルール

    可能なすべてのルールチェックのリストを取得します。それらは、テーマ別のカテゴリでツリー構造に配置されます。 「ルール番号」は丸括弧で囲まれて追加されます。例: 未使用の変数(33) カテゴリ内 未使用のオブジェクトを一覧表示する

  2. 最初の行(ノード)のチェックボックスをクリックします ルール)。

    クリックすると、アクティベーション ステータスが切り替わります。ツリー全体のチェック ボックスに赤またはオレンジのチェック マークが付いているか、チェック マークがまったく付いていません。

  3. この方法で、赤いチェックマークが付いたすべてのエントリをアクティブにします。この意味は CODESYS Static Analysis エラーとして検出されたルール違反を報告します。

  4. コマンドを選択します ビルド→静的分析→静的分析の実行

    メッセージウィンドウにエラーが表示されます。メッセージテキストには sa_icon_message.png マークを付けて、エラー番号「SA <ルール番号>」で開始します。

  5. メッセージをダブルクリックします SA0033: 未使用の変数 'iVar_fb2out'

    フォーカスは機能ブロックの宣言部分にジャンプします fb2 関連する変数が選択されます。変数は宣言されていますが、使用されていません。これはルール33でチェックされます(未使用の変数)。影響を受ける領域は、コード内で丸で囲まれています。

  6. 分析の自動実行をテストするには、 ビルド → 静的解析 → 設定.上で 設定 タブで、 コンパイル後に自動的に静的解析を実行 オプション。クリック OK ダイアログを終了します。

  7. コマンドを選択します オンライン→ログイン

    メッセージボックスは、変換エラーがあることを示します。以前と同様に、コード分析によって報告されたエラーがメッセージウィンドウに表示されます。

  8. コマンドを選択します ビルド→静的分析→設定。タブに切り替えます ルール。次に、ダイアログ内のすべてのルールを非アクティブ化します。カテゴリをチェックイン 未使用のオブジェクトを一覧表示する 明示的にルールSA0035(未使用の入力変数(35))オレンジ色のチェックマークを付けます。つまり、「警告」を発行します。ルールテキストのツールチップを確認してください。 このルールは、次のPLCopenルールに対応しています。CP24)。とのダイアログを閉じる わかった

  9. コマンドを選択します ビルド→コードの生成

    分析は自動的に実行されます。メッセージ ビューでは、2 つのエラーが 静的解析メッセージ カテゴリー:

    § SA0035: 未使用の入力 'iVar_fb1in2'

    § SA0035: 未使用の入力 'iVar_fb1in3'

  10. 各メッセージをダブルクリックして、コメントアウトするか、宣言を削除します。コード分析を再度実行します。

    エラーメッセージはありません。

定義された命名規則への準拠を確認してください

  1. コマンドを選択します ビルド→静的分析→設定。タブに切り替えます 命名規則

    変数とプログラムブロックの拡張可能なカテゴリに分割されたツリー構造のテーブルが表示されます。

  2. カテゴリを展開する 変数のプレフィックス - タイププレフィックス on:着用 INT(14) 列に プレフィックス 1 i 1。

    カテゴリを展開する POUのプレフィックス - POUタイプのプレフィックス の上。コラムで着用 プレフィックス 次のように入力します。 プログラム(122)prog、 で 機能ブロック(103)fb

  3. オプションを有効にする プレフィックスの後の最初の文字は大文字にする必要があります。他のすべてのオプションを無効にします。

  4. コマンドを選択します ビルド→静的分析→静的分析の実行

    エラーメッセージ:

    • NC0102: 無効な名前 'PLC_PRG': プレフィックス 'prog' が必要です PLC_PRG には必要なプレフィックスがないため

    • プレフィックスの後の最初の文字は大文字にする必要があります: 'ivar_fb1in2' なぜなら ivar_fb1in2 : INT; いる fb1

    • NC0014: 無効な変数名 P_fSampleProperty: 接頭辞 'i' が必要です この整数変数には必要なプレフィックスがないためです。

許容性について記号を確認する

  1. コマンドを選択します ビルド→静的分析→設定。切り替える タブ 禁止されている記号

    ラインエディタを使用すると、コードで使用してはならない文字列を入力できます。

  2. 空の行をダブルクリックして、例として無効な文字列を入力します PRO 直接。次の空の行をダブルクリックして、ボタンで開きます _cds_icon_three_dots.png 入力ヘルプ。選ぶ 標準タイプ そいつ 本物 アウト。とのダイアログを閉じる わかった

  3. コマンドを選択します ビルド→静的分析→静的分析の実行

    エラーメッセージがメッセージウィンドウに表示されます Verbotenes Symbol 'REAL'Verbotenes Symbol 'PRO' メッセージテキストをダブルクリックすると、問題のコードにジャンプできます。

指標を表示する

CODESYS Static Analysis 選択したコードを測定し、結果を表示できます。

  1. コマンドを選択します ビルド→静的分析→設定。切り替える タブ メトリック

    テーブルであなたはから見ることができます CODESYS Static Analysis コードに適用可能なメトリック。

  2. この例では、メトリックを有効にします 入力変数の数 値の許容範囲を指定します:下限 1、 上限 2

    さらにいくつかのメトリクスをアクティブ化します。たとえば、 コードサイズ そして コール数

  3. コマンドを選択します 作成→静的分析→デフォルトのメトリックを表示

    ビューには、それぞれに1行のテーブルが表示されます プログラムユニット サンプルプログラムの。有効なメトリックごとに、測定値を示す列があります。設定で定義された値の範囲外の値は赤で強調表示されます。私たちの特定の例の場合、これは少なくともフィールドです PLC_PRG /入力、このブロックの入力変数の数が定義された上限を超えているため 2