静的コード分析を構成して実行する
単純なサンプルプロジェクトに基づいて、静的コード分析を構成および実行するための最も重要な手順とオプションを以下に示します。
要件: 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);
ルールへの準拠を確認する
コマンドを選択します タブ ルール。
。切り替える可能なすべてのルールチェックのリストを取得します。それらは、テーマ別のカテゴリでツリー構造に配置されます。 「ルール番号」は丸括弧で囲まれて追加されます。例: 未使用の変数(33) カテゴリ内 未使用のオブジェクトを一覧表示する。
最初の行(ノード)のチェックボックスをクリックします ルール)。
クリックすると、アクティベーション ステータスが切り替わります。ツリー全体のチェック ボックスに赤またはオレンジのチェック マークが付いているか、チェック マークがまったく付いていません。
この方法で、赤いチェックマークが付いたすべてのエントリをアクティブにします。この意味は CODESYS Static Analysis エラーとして検出されたルール違反を報告します。
コマンドを選択します
。メッセージウィンドウにエラーが表示されます。メッセージテキストには
マークを付けて、エラー番号「SA <ルール番号>」で開始します。
メッセージをダブルクリックします SA0033: 未使用の変数 'iVar_fb2out'。
フォーカスは機能ブロックの宣言部分にジャンプします
fb2
関連する変数が選択されます。変数は宣言されていますが、使用されていません。これはルール33でチェックされます(未使用の変数)。影響を受ける領域は、コード内で丸で囲まれています。分析の自動実行をテストするには、 設定 タブで、 コンパイル後に自動的に静的解析を実行 オプション。クリック OK ダイアログを終了します。
.上でコマンドを選択します
。メッセージボックスは、変換エラーがあることを示します。以前と同様に、コード分析によって報告されたエラーがメッセージウィンドウに表示されます。
コマンドを選択します ルール。次に、ダイアログ内のすべてのルールを非アクティブ化します。カテゴリをチェックイン 未使用のオブジェクトを一覧表示する 明示的にルールSA0035(未使用の入力変数(35))オレンジ色のチェックマークを付けます。つまり、「警告」を発行します。ルールテキストのツールチップを確認してください。 このルールは、次のPLCopenルールに対応しています。CP24)。とのダイアログを閉じる わかった。
。タブに切り替えますコマンドを選択します
。分析は自動的に実行されます。メッセージ ビューでは、2 つのエラーが 静的解析メッセージ カテゴリー:
§ SA0035: 未使用の入力 'iVar_fb1in2'
§ SA0035: 未使用の入力 'iVar_fb1in3'
各メッセージをダブルクリックして、コメントアウトするか、宣言を削除します。コード分析を再度実行します。
エラーメッセージはありません。
定義された命名規則への準拠を確認してください
コマンドを選択します 命名規則。
。タブに切り替えます変数とプログラムブロックの拡張可能なカテゴリに分割されたツリー構造のテーブルが表示されます。
カテゴリを展開する 変数のプレフィックス - タイププレフィックス on:着用 INT(14) 列に プレフィックス 1
i
1。カテゴリを展開する POUのプレフィックス - POUタイプのプレフィックス の上。コラムで着用 プレフィックス 次のように入力します。 プログラム(122):
prog
、 で 機能ブロック(103):fb
。オプションを有効にする プレフィックスの後の最初の文字は大文字にする必要があります。他のすべてのオプションを無効にします。
コマンドを選択します
。エラーメッセージ:
NC0102: 無効な名前 'PLC_PRG': プレフィックス 'prog' が必要です PLC_PRG には必要なプレフィックスがないため
プレフィックスの後の最初の文字は大文字にする必要があります: 'ivar_fb1in2' なぜなら
ivar_fb1in2 : INT;
いるfb1
。NC0014: 無効な変数名 P_fSampleProperty: 接頭辞 'i' が必要です この整数変数には必要なプレフィックスがないためです。
許容性について記号を確認する
コマンドを選択します タブ 禁止されている記号。
。切り替えるラインエディタを使用すると、コードで使用してはならない文字列を入力できます。
空の行をダブルクリックして、例として無効な文字列を入力します
PRO
直接。次の空の行をダブルクリックして、ボタンで開きます入力ヘルプ。選ぶ 標準タイプ そいつ 本物 アウト。とのダイアログを閉じる わかった。
コマンドを選択します
。エラーメッセージがメッセージウィンドウに表示されます
Verbotenes Symbol 'REAL'
とVerbotenes Symbol 'PRO'
メッセージテキストをダブルクリックすると、問題のコードにジャンプできます。
指標を表示する
CODESYS Static Analysis 選択したコードを測定し、結果を表示できます。
コマンドを選択します タブ メトリック。
。切り替えるテーブルであなたはから見ることができます CODESYS Static Analysis コードに適用可能なメトリック。
この例では、メトリックを有効にします 入力変数の数 値の許容範囲を指定します:下限
1
、 上限2
。さらにいくつかのメトリクスをアクティブ化します。たとえば、 コードサイズ そして コール数。
コマンドを選択します
。ビューには、それぞれに1行のテーブルが表示されます プログラムユニット サンプルプログラムの。有効なメトリックごとに、測定値を示す列があります。設定で定義された値の範囲外の値は赤で強調表示されます。私たちの特定の例の場合、これは少なくともフィールドです PLC_PRG /入力、このブロックの入力変数の数が定義された上限を超えているため
2
。