データ欠損時のグラフ表示のカスタマイズ

<< Click to Display Table of Contents >>

マニュアル > 監視システム構築ガイド > 主要機能の構築 > ロギング/トレンドグラフ > トレンドグラフのカスタマイズ >

データ欠損時のグラフ表示のカスタマイズ

欠損データとは

ログデータの欠損とは、何らかの原因によりヒストリカルデータにロギングが行えておらず、データが抜けている状態を指します。

 

FA-Panelのトレンドグラフ画面では、ログデータが欠損していた場合の表示方法を設定することができます。

 

ログデータの欠損には、以下の2つの考え方があります。

 

1)タグの品質が異常な状態の時(通信エラー時など)
 

PLCとの通信エラーが発生している場合など、タグの値が信用できない状態のとき、タグの品質フラグは「BAD」となります。

サマリアクションの場合、欠損値としてNULL値が保存されます(CSVの場合、空文字が保存されます)。

また、ロガーアクションの場合では、ロギングの動作を以下から選択することができます。

 

1.前回値(最終値)を有効値としてデータを保存する。

2.欠損値としてNULL値や指定文字(空文字も含む)を保存する。

3.データを保存しない。

 

「1」は、前回値(最終値)を保存します。「2」はあらかじめ決めておいた「欠損値」をロギングします。欠損値は自由に決めることができますが、通常ありえない値(たとえばー999999等や、指定文字(空文字含む))を設定しておきます。「3」はデータの保存自体を行いません。ロガーアクションで「2」の欠損値をロギングした場合と、「3」のデータ保存しないを選択した場合には、トレンドグラフとしてどのように表示すべきかを適切に設定する必要があります。

 

2)データそのものが存在しない場合(システム停止など)
 

Panel Serverが停止している場合、ヒストリカルデータには停止している時間帯のデータそのものが存在しません。つまり、例えば1秒周期のロギングを行うように設定していた場合、ログデータの時系列データが数秒間抜けている(飛んでいる)状態になります。このような場合にも、データが保存されていない期間をどのように表示するべきかを意識して設定する必要があります。

 

 

ここでは、欠損時の表示方法に関する設定をカスタマイズする方法について説明します。

 

カスタマイズ内容

 

欠損期間を非表示にする

欠損期間を点線表示にする

 

 

 

サンプルのダウンロード

このページで紹介されている作成例には、サンプルが用意されています。

 

サンプルは以下からダウンロードすることができます。

 

 

 

 

欠損期間を非表示にする

まずは、標準プロジェクトを動作させ、Panel Serverのオンライン、オフラインを意図的に操作する事でログデータに欠損期間を作ってグラフに表示してみます。

 

■動作検証(変更前)

 

1.プロジェクトを実行する

 

プロジェクトを開いた状態で、Panel Serverの画面上部にあるオンライン(黄矢印)をクリックしてください。

 

p_logger_0209

 

 

Panel Editorの画面上部にあるブラウザ実行アイコン(緑矢印)をクリックし、Panel Browserを呼び出します。

 

p_logger_0210

 

 

Panel Browserが起動したら、トレンドグラフ画面を表示します。

 

p_logger_0232

 

上記の例では、トレンドグラフ上に上記のようなサインカーブが表示されています。この例では、あらかじめ仮想デバイスのSD0008からSD0015までのタグをロギングするように設定されています。尚、仮想デバイスのSDタグは「特殊レジスタ」と呼ばれる特殊なタグで、SD0008からSD0015の値は0から100の範囲でサインカーブの値で自動的に変化してくれます。このタグは、今回のような動作検証を行う際に適しています。

 

2.プロジェクトを実行する

 

それでは、意図的にロギングを停止させ、ログデータが欠損している状態を作り出します。

 

Panel Serverの画面上部にあるオフライン(黒四角)をクリックします。

 

p_logger_0233

 

10秒程度経過したら、再び、Panel Serverのオンライン(黄色矢印)をクリックしてください。

 

p_logger_0209

 

グラフの表示を見てみると、Panel Serverがオフラインだった期間のデータが、以下のように直線で結ばれて表示されている事がわかります。

 

p_logger_0234

 

この期間はロギング処理は停止しているため、ログデータそのものが欠損している状態です。現状は、データが存在する最後の点と、ロギングが再開された最初の点の2点間が直線で結ばれています。

このような欠損部分の表示をどのように扱うかは、トレンドグラフ画面に配置されているヒストリカルデータグラフコントロールのプロパティを設定することでカスタマイズすることができます。

 

以下の手順では、欠損している期間のグラフが非表示となるようにカスタマイズを行います。

 

 

■ヒストリカルトレンドグラフコントロールのプロパティ編集

 

1.ヒストリカルトレンドグラフコントロールのプロパティを編集する

 

現在実行中のPanel Serverをオフラインにし、Panel Browserを終了させてください。

 

Panel Editorでトレンドグラフ画面の編集を行います。

 

p_logger_0235

 

ワークスペースのツリーから、_Trendフォルダ内の「_Main」フォームを選択してください。

 

 

 

 

 

 

_Mainフォームが表示されたら、フォーム上の中央に配置されているグラフ部品(ヒストリカルデータコントロール)を選択状態にしてください。

 

p_logger_0236

 

 

p_logger_0237

 

コントロールを選択後、画面左に表示あれているプロパティページから、以下のプロパティを編集します。

 

 

PlotLackLineSize

欠損データ表示の線の太さです。「0」を設定してください。デフォルトで「1」となっているため、「0」を指定することで非表示となります。

 

DiffForLack

欠損とみなすデータ間隔を秒数で指定します。ここでは例として「3」としてください。

尚、ここで指定した秒数よりもデータの間隔が開いていた場合に欠損とみなします。デフォルトで「0」となっているため、必要に応じて適切な秒数を指定します。

 

 

 

 

■動作検証(変更後)

 

1.プロジェクトを実行する

 

Panel Serverをオンライン(黄矢印)にして、Panel Browserを実行してください。

 

Panel Browserが起動したら、トレンドグラフ画面を表示します。

 

p_logger_0232

 

意図的にロギングを停止させ、ログデータが欠損している状態を作り出してみます。

 

まず、Panel Serverの画面上部にあるオフライン(黒四角)をクリックします。

10秒程度経過したら、再び、Panel Serverのオンライン(黄色矢印)をクリックしてください。

 

Panel Serverがオフラインだった期間のグラフ表示が、以下のように非表示となっていればOKです。

 

p_logger_0238

 

 

 

欠損期間を点線表示にする

続いて、欠損期間の表示を、点線表示とするカスタマイズ例を紹介します。

 

本カスタマイズも、ヒストリカルデータグラフコントロールのプロパティを設定することで行うことができます。

 

 

■ヒストリカルトレンドグラフコントロールのプロパティ編集

 

1.ヒストリカルトレンドグラフコントロールのプロパティを編集する

 

現在実行中のPanel Serverをオフラインにし、Panel Browserを終了させてください。

 

Panel Editorでトレンドグラフ画面の編集を行います。

 

p_logger_0235

 

ワークスペースのツリーから、_Trendフォルダ内の「_Main」フォームを選択してください。

 

 

 

 

 

 

_Mainフォームが表示されたら、フォーム上の中央に配置されているグラフ部品(ヒストリカルデータコントロール)を選択状態にしてください。

 

p_logger_0239

 

コントロールを選択後、画面左に表示あれているプロパティページから、以下のプロパティを編集します。

 

PlotLackLineSize

欠損データ表示の線の太さです。「1」を設定してください。

 

PlotLackLineStyle

欠損データ表示の線種を指定することができます。ここでは「DOT」を設定してください。こうすることで、欠損期間を点線表示にすることができます。

 

DiffForLack

欠損とみなすデータ間隔を秒数で指定します。ここでは「3」としてください。

 

 

 

 

■動作検証(変更後)

 

1.プロジェクトを実行する

 

Panel Serverをオンライン(黄矢印)にして、Panel Browserを実行してください。

 

Panel Browserが起動したら、トレンドグラフ画面を表示します。

 

p_logger_0232

 

意図的にロギングを停止させ、ログデータが欠損している状態を作り出してみます。

 

まず、Panel Serverの画面上部にあるオフライン(黒四角)をクリックします。

10秒程度経過したら、再び、Panel Serverのオンライン(黄色矢印)をクリックしてください。

 

Panel Serverがオフラインだった期間のグラフ表示が、以下のように点線表示となっていればOKです。

 

p_logger_0240

 

 

補足説明

ヒストリカルトレンドグラフコントロールには、トレンドグラフの欠損データの表示方法に関する以下のプロパティが用意されています。

 

プロパティ

概要

PlotLackLineSize

 

欠損データ表示の線の太さです。デフォルトで「1」となっています。「0」を指定することで非表示となります。

PlotLackPointSize

 

欠損データの点表示のサイズを指定することができます。デフォルトで「0」となっています。1以上にすると点が表示されます(表示する場合、4程度を推奨します)。

PlotLackLineStyle

 

欠損データの線表示のスタイルです。SOLID、DASH、DOT、DASHDOT、DASHDOTDOTの中から選択できます。

DiffForLack

 

ヒストリカルデータの空白時間とみなす時間間隔を秒で設定します。ここで設定された秒数以上データに開きがある場合を欠損とみなします。

 

例えば1分周期でサンプリングしている場合、DiffForLack に90を設定すると、データ間隔が90秒以上はなれた場合を欠損があったものとみなします。これにより、この期間の表示が欠損として扱われます。

 

hint

PCがハングアップしてしまった、あるいはオペレータのミスでシステムを止めてしまった場合など、ロギングを行っているPanel Serverが停止すると、ヒストリカルデータには何も保存されていない状態となります。ヒストリカルデータの空白期間を検知する考え方としては、設定したロギングの収集周期に対して、保存されているヒストリカルデータの時間間隔が異常に長かった場合を、何らかの異常が発生してデータが欠損したものとして判別します。例えばデータのログを1分ごとに行う設定としている場合、履歴データは1分間隔で保存されていることを期待します。しかし、例えば2017/1/1 10:10:00にデータがあり、その次のデータが5分後の2017/1/1 10:15:00だった場合、その間のデータは欠損した可能性が高いものと考えられます。このような空白の期間をトレンドグラフ画面上で欠損値として扱いたい場合に、DiffForLackプロパティを用います。

 

attention

DiffForLackプロパティが0の場合、どんなにデータが離れていても欠損とみなしません。本プロパティのデフォルトの設定値は0となっています。データの空白期間を欠損とみなしたい場合は、かならずDiffForLackプロパティに適切な値を設定してください。

 

ValueForLack

 

欠損値とみなす値を指定することができます。以下のValueForLackTypeプロパティと組み合わせて使用します。

 

例えば、数値「-1」を欠損値としたい場合は、以下のように設定します。

 

ValueForLack : -1

ValueForLackType : NUM

 

ValueForLackType

 

欠損値とみなす値のタイプを指定します。デフォルトでは「NULL」となっています。

 

NONE

すべてのデータを有効値とする。実際にデータが無かった場合は数値「0」として扱います。

NULL

空文字を欠損値とみなします。

STR

ValueForLackで指定した文字を欠損値とします。

NUM

ValueForLackで指定した数値を欠損値とします。

 

 

以下は、設定例です(※いずれの場合も、DiffForLackに適切な数値を設定する必要があります)。

 

p_trend_0002

欠損期間に何も表示したくない場合には、以下のように設定します。

 

PlotLackLineSize : 0

PlotLackPointSize: 0

 

 

 

p_trend_0003

欠損期間を点線で結びたい場合には、以下のように設定します。

 

PlotLackLineSize : 1

PlotLackLineType: DOT

 

 

 

p_trend_0004

欠損期間の欠損データを予測値としてプロットしたい場合には、以下のように設定します。

 

PlotLackPointSize: 4

 

※点は1以上で表示されますが、小さすぎるサイズを指定すると線と見分けがつかないため、4から6程度の設定を推奨いたします。