Skip to main content

コードインストルメンテーションによるプロファイリング

重要

プロファイラー測定方法に暗黙的に追加されたIECコード、および監視リスト内のPOUのブレークポイントは、変更をもたらし、評価されるプログラムの速度を低下させます。

プロファイリングまたはコードカバレッジ測定がアクティブな場合、通常、オンラインは不可能です。さらに、「フロー制御」や「ブレークポイント」など、一部のオンライン機能は使用できません。この点でウォッチリストに制限はありません。

プロファイラー測定方法の有効化または無効化、またはプロファイラーエディターの設定の変更には、それぞれダウンロードが必要です。その後、オンラインでの変更はできなくなります。この点でウォッチリストに制限はありません。

ヒント

測定値の記録と処理はコントローラー上で行われるため、他の測定方法とは対照的に、開発システムをコントローラーに接続せずに実行することもできます。

このプロファイリング方法では、 CODESYS Profiler プログラムの各関数の入口と出口に追加のコードを挿入します。タスクサイクル全体の実行時間が測定され、保存されます。

このメソッドは、タスクの実行時に個々の外れ値を検出するのに役立ちます。これを行うには、 最大サイクルを記録する 録音モード。

プロジェクト全体がインストルメント化されると、これはタスクの実行時間とメモリ消費にかなりの影響を与える可能性があります。したがって、可能な限り、インストルメンテーション用のアプリケーションPOUの一部のみを選択してください。推奨されるアプローチの1つは、最初に、タスクによって直接呼び出されるPOUのみを選択することです。これらのPOUのランタイムの「ホットスポット」を特定し、これらに基づいて、測定対象の呼び出されたPOUを選択します。

重要

  • 測定対象として選択されていないPOUは、測定リスト、コールツリー、またはバックトレースタブに表示されません。したがって、POU1によるPOU3の直接呼び出しはありませんが、呼び出しツリー「POU1-> POU3」が表示される可能性があります。これは、POU1とPOU3の間で測定用に選択されていないPOU呼び出しがあるためです。

  • POUの測定で出力される「自分の時間」には、測定用に選択されていない呼び出されたPOUの時間が含まれる場合もあります。

インストルメンテーションによるプロファイリングのアクティブ化と実行

要件:

  • A CODESYS 複数のPOUを持つプロジェクトアプリケーションがオフラインモードで開かれています。

  • POU呼び出しを制御するタスクが定義されています。

  • アプリケーションはアクティブなアプリケーションであり、エラーなしでコンパイルできます。

  • 通信設定で標準コントローラーへの接続が構成され、コントローラーが稼働しています。

  1. プログラムでプロファイリングをアクティブ化および非アクティブ化するには、アプリケーションでブール変数を定義します。 (これは、ここで説明する例ではオプションです。アクティブ化は、メニューコマンドによっても実行できます。)

  2. クリック オブジェクトの追加 追加するには プロファイラー デバイスツリーのアプリケーションの下にあるオブジェクト。

  3. オブジェクトをダブルクリックします。

    オブジェクトエディタが開きます。 The _prf_icon_settings.png 設定 タブにフォーカスがあります。

  4. をセットする 方法計装。を選択 タスク 時間測定を実行するPOU呼び出しを使用します。

  5. 録音、計測するPOUを制御するためのタスクを選択します。

    ために 調子、 クリック _cds_icon_three_dots.png ボタンをクリックし、値の記録のオンとオフを切り替えるために使用するアプリケーションからブール変数を選択します。注:この種の変数の使用はオプションです。フィールドを空白のままにすると、すべてのサイクルが記録されます。

  6. 計装パラメータ、 をセットする 録音モード次のサイクルを記録する。必要なものを残す バッファサイズ (タスクサイクルごとに記録されるPOU呼び出しの最大数)デフォルトとして 10000

    スナップショットの外観、 を選択 時間形式 録音を表示します。

  7. POUの選択、インストルメントする必要があるPOUを選択します。プロジェクトのすべてのPOUと統合ライブラリのPOUを含む、「アプリケーション全体の機器」を選択することもできることに注意してください。

  8. クリック オンライン→ログイン アプリケーションをコントローラーにダウンロードします。

    ディスプレイ _prf_img_status.png のステータスバーに表示されます CODESYS

  9. クリック オンライン→開始 アプリケーションを起動します。

    プロジェクトが実行され、通常の監視ビューに現在の変数値が表示されます。

  10. プロファイリングを開始する条件としてブール変数を構成した場合は、この変数を次のように設定します。 TRUE

    録音に関する背景情報:を選択したため 次のサイクルを記録する この例のオプションでは、アプリケーションの開始時とプロファイリング時に最初のサイクルのみが記録されます。追加のサイクルは記録されません。追加の測定は、記録がコントローラーからアップロードされた場合にのみ実行されます。このアップロードは、 オンライン 初めてタブをクリックするか、 スナップショットを更新 ボタン。代替案についての情報 最大サイクルを記録する オプションについては、ヘルプの参照部分を参照してください:「設定」タブ。

    次に、サンプリング結果を見てください。 Profilerオブジェクトとそのエディターのエディターを開きます オンライン タブ。

    The _prf_icon_online.png オンライン tabには、左側のメニューから選択できる4つのサブタブがあります。さらに、現在実行中のプロファイリングのボタンと設定がある領域が表示されます。詳細については、以下を参照してください。 [オンライン]タブ

手順. のPOUコールに関する詳細情報 プロパティ ダイアログ
  1. オンライン タブをクリックし、 ツリーを呼び出す カテゴリー。

    で指定されたタスクから発生したすべての呼び出しの階層が表示されます。 設定 ダイアログ。

  2. 通話の1つを選択し、をクリックします プロパティ コンテキストメニューで。

    The プロパティ 呼び出されたPOUのダイアログが開き、次のような詳細情報が表示されます 自分の時間標準偏差