Scope viewプロジェクト新規設定#

最初に、同一ソリューション上にScope viewプロジェクトを新規作成します。

Scope viewプロジェクトの新規作成#

まず、次の手順で既存のPLCプロジェクトにおいて、Scope viewプロジェクトを新規に追加します。

  1. Solution explorerの最上位階層で右クリックし、ポップアップメニューから、Add > New Project...を選択します。

    ../_images/add_project.png
  2. YT Scope view プロジェクトを選択します。下部のName欄には、監視したいスコーププロジェクト名称を設定します。

    ../_images/add_YT_Scope_project.png
  3. Solution explorerに、初期状態のツリーが現れます。

    ../_images/initial_scope_view_tree.png

プロジェクトルートフォルダの確認#

プロジェクトのルートフォルダがどこにあるのかを確認しておきます。デフォルト設定のままでCSVファイルが保存される先は、ここで確認するプロジェクトフォルダ以下となります。

  1. Measurement projectのツリーを右クリックしてPropertyを選択します。(図 6.5

  2. Propertyウィンドウに現れるProject folderCSVを保存する先にデフォルトで使用される保存先はこのプロジェクトフォルダです。(図 6.6

../_images/measurement_project_property.png

図 6.5 Measurement projectのプロパティ#

../_images/project_folder_setting.png

図 6.6 Projectフォルダの場所の設定個所#

YT Scopeプロジェクトの設定#

CSVファイルへ吐き出す前に、記録したデータはYT Scopeのバッファメモリ内に保存されます。このメモリの取り扱いに関する設定を変更します。

../_images/ytscope_project_property.png

図 6.7 YT scope projectのプロパティ#

../_images/buffer_setting.png

図 6.8 バッファ設定の変更個所#

項目

変更前

変更後

説明

Record/Ringbuffer

False

True

False設定のままだと後述のRecord Time設定時間が経過すると自動的に記録が停止します。Trueにすることで、Record Timeを過ぎても古いデータから順次消去する動作となります。

Record Mode/Record Time

00:00:10:00(10分)

軸の動作を監視する制御サイクルの間隔の1.5倍以上の時間

バッファする記録時間を設定します。リングバッファにより古いものから順次消去されるため、CSVファイルへ記録するまでに十分なデータが残っているための時間設定が必要です。

変数登録とビュー作成#

CSV保存条件プログラム作成#

PLCにより、CSVへ出力するトリガとなるフラグexport_triggerを制御するプログラムを紹介します。

VAR
    axes            :ARRAY [0..2] OF AXIS_REF;
    export_trigger  :ARRAY [0..2] OF BOOL;
    i               :UINT;
END_VAR

// Trigger for csv saving
FOR i := 0 TO 2 DO
    IF axes[i].Status.InTargetPosition AND axes[i].NcToPlc.SetPos = 0 THEN;
        export_trigger[i] := TRUE;
    ELSE;
        export_trigger[i] := FALSE;
    END_IF
END_FOR;

軸の状態は、モーション論理軸にマッピングした構造体変数axes[]AXIS_REF型)にて監視できます。この中のPLCに公開しているデータセットに、位置決め目標アドレスSetPosがあります。

ここでは、位置決め目標アドレスが0(原点)で、その位置決めが完了状態(InTargetPosition)の時にTrueとなるフラグexport_triger[]を作成しています。後ほどこのフラグを使ってScope viewのトリガ条件に使います。

このプログラム例では、axes, およびexport_triggerはそれぞれ3軸分の配列でオブジェクトを保持できる様にしていますが、以後の説明ではこのうち1軸目のみ( export_triger[0] )のみを用います。

モニタ対象変数の登録#

次の手順で監視対象デバイスを登録します。

  1. RUNモードへ遷移し、XARにログインします。

    PLCのデバイスを収集するには、Target systemを接続先IPCに設定した上で、ログインする必要があります。

  2. Target browserを出現

    DataPoolメニューを右クリックし、メニューからTarget Browserを選択する。

    ../_images/chose_target_browser.png

    図 6.9 ターゲットブラウザを出現#

  3. 収集したい変数をさがす

    現れたウィンドウの左のメニューに、接続中のXARが緑色のディスプレーアイコンが現れます。これを開くと接続可能な制御モジュールが一覧されます。

    モーションコントローラのデバイスを監視したい場合は、図 6.10の通り、ADSポート501から始まる名称のモジュール名を選択してください。また、PLCデバイスを監視したい場合は、図 6.11の通り、ADSポート851から始まる名称のモジュール名を選択

    ../_images/target_browser_motion.png

    図 6.10 モーションコントローラのデータを監視する場合#

    scope_view/image/target_browser_plc.png

    図 6.11 PLCのデバイスを監視する場合#

  4. DataPoolへの追加

    右側のツリーから目的のデバイス変数が見つかりましたら、選択してダブルクリックしてください。これによりDataPoolメニュー上に追加されます。(図 6.12

    ../_images/add_to_data_pool.png

    図 6.12 データプールへの変数の追加#

YT Chartビューの概要#

YT Chart ビューには、次のデータの階層構造を持っています。これらの階層構造は、Solution Explorerに現れるツリーで構成し、これに応じてグラフ表示の画面を構成することができます。(図 6.13

YT Chart

画面単位です。上部のタブで切り替えることができます。

Axis Group

グラフ軸単位です。一つの座標面に全ての軸を重ねて表示するビュー(図 6.14)と、軸毎に座標を分けて表示するStacked axesビュー(図 6.13)の二つの表示方法があります。

モーションの監視を行う場合は、YT Chart毎に軸を分け、同じ単位系か、座標を分けて見たい単位でビューを作成するのがよいでしょう。

../_images/stacked_axes_view.png

図 6.13 ツリーとグラフビューの関係(Stacked axes ビュー)#

../_images/unstacked_axes_view.png

図 6.14 Stacked axes がOFFのビュー#

YT Chartの追加#

YT Chart タブを追加したい場合は、図 6.15の通りYT Scope Projectの階層で右クリックしたメニューから、New YT Chartを選んでください。

../_images/add_ytproj.png

図 6.15 YT Chartの追加#

Axisの追加#

Axis を追加したい場合は、図 6.16の通りYT Chartの階層で右クリックしたメニューから、New Axisを選んでください。

../_images/add_axis.png

図 6.16 Axisの追加#

Axis上への表示データの登録#

DataPoolに登録された変数のデータを任意のYT ChartのAxisに表示させるためには、DataPoolからViewへの登録の様に該当の変数をAxisへドラッグアンドドロップします。

../_images/reg_data_to_view.png

図 6.17 DataPoolからViewへの登録#

以上で、変数登録からYT Chartへのビューへの一連の流れについて説明しました。この方法で、CSV保存条件プログラム作成節のプログラムの、export_triggerをDataPoolに登録し、CSVへ出力したい各軸のデータを YT Chart上に表示するよう、設定してください。

DataPoolに登録したexport_triggerフラグの使い方は、次章のトリガの設定で説明します。