SystemLinkで計測データのデータベース化と解析自動化を行い、データを有効活用する

更新しました Sep 13, 2022

環境

ソフトウェア

  • SystemLink
  • DIAdem
  • SystemLink TDM DataFinder Module
  • DataFinder Server

測定時の環境、条件、日時、試験者などのメタ情報が不足しているデータを長年蓄積し、それらが大量に存在する状況において、改めて測定当時の情報をひとつずつ確認し、解析を行い、知見を得る事は難しい場合が多いです。一方、組織内にデータフォーマットが存在し、測定データに対してメタ情報が付けられている場合、過去のデータと現在のデータの中で類似した条件のデータの比較や異常データのみをピックアップし、原因を確認するといった幅広い活用方法が可能となります。SystemLink TDM DataFinderでは計測データのメタ情報をデータベース化し、メタ情報を使用したデータの検索、比較、管理を行うと共に、特定の条件を満たすファイルに対して自動解析、自動レポート作成を行う事ができます。

計測データのデータベース化では計測データのメタ情報を読み込むデータプラグインの編集とインデックス作成における設定により、データ検索で使用するプロパティ(メタ情報をデータベースに読み込んだ物)の作成・選択・設定を行う事ができます。また、解析自動化における解析内容はVBScriptもしくはPythonにより記述し、DIAdemで作成したレポート形式でPDFファイルとして出力・閲覧することができます。ここでは上記の一連の流れを確認します。

本資料では下記のソフトウェアを使用しています。
  • DIAdem 2020 SP1
  • SystemLink 2020 R3

本資料では下記の内容を学習できます。
  • VBScriptによるデータプラグインの作成、編集、コードの内容確認
  • データプラグインを編集し、計測データの特定のメタ情報をDIAdem/SystemLinkで読み込む
  • SystemLinkでDataFinderインスタンスを作成し、計測データのメタ情報をデータベース化する
  • SystemLinkで解析自動化を行い、PDF形式のレポートを出力する

計測データのメタ情報をデータベース化する

計測時の環境、条件、日時、試験者などのメタ情報が存在する計測データは、情報共有、解析、別のデータとの比較を効率良く行う事ができます。また、それぞれのファイルのメタ情報とリファレンス情報を集約し、データベース化する事で、検索の高速化とネットワーク上へのデータの共有を効率化する事ができます。メタ情報を使用したデータの検索について、DIAdemを使用する場合はこちらの資料で確認できます。ここではまずデータプラグインを作成し、計測データからメタ情報を取得する方法を確認します。


1. データプラグインによる計測データとメタ情報の読み込み
ここでは*.ex1形式のデータの読み込みを行います。このデータを読み込むにはこちらの資料の手順でDataPluginExample1をVBScriptで作成する必要があります。

DataPluginExample1と*.ex1は下記の図のような対応となっています。VBScriptの赤枠、青枠、緑枠の部分は1.ex1ファイルから該当するメタ情報を読み込み、DIAdemのData Portal上でプロパティとして表示します。
 
x0DataPluginExample1kai.png

上記のスクリプトは下記の物となります。このスクリプトをデータプラグインとして使用する方法についてはこちらの資料で確認できます。
 
Option Explicit

Sub ReadStore(File)
  'Provide the file object with information about the file format
  File.Formatter.LineFeeds = vbNewLine
  File.Formatter.IgnoreEmptyLines = true
  File.Formatter.TrimCharacters = " "
  File.Formatter.Delimiters = ";"
  File.Formatter.ThousandSeparator = "."
  
  'Read the name of the source out of the first line of the file.
  Dim TitleValue : TitleValue = File.GetNextStringValue(eString)
  Call Root.Properties.Add("Name", TitleValue)

  'Read the description of the implicit channel out of the second line of the file.
  File.SkipLine() 'Advance to the next line.
  Dim ChannelName : ChannelName = File.GetNextStringValue(eString)
  Dim StartValue  : StartValue  = File.GetNextStringValue(eI32)
  Dim Increment   : Increment   = File.GetNextStringValue(eI32)
  Dim ChannelSize : ChannelSize = File.GetNextStringValue(eI32)
  
  'Create the implicit channel.
  Dim ChannelGroup : Set ChannelGroup = Root.ChannelGroups.Add("MyChnGroup")
  Call ChannelGroup.Channels.AddImplicitChannel(ChannelName, StartValue, Increment, ChannelSize, eI32)
  
  'Read the root's properties out of the file
  File.Formatter.Delimiters = ":" 'Properties and their values are seperated by a ":"
  
  Dim PropertyName, PropertyValue, i
  For i = 1 to 5
    File.SkipLine() 'Advance to the next line.
    PropertyName  = File.GetNextStringValue(eString)
    PropertyValue = File.GetNextStringValue(eString)    
    'Create the property on the root of the plugin.
    Call Root.Properties.Add(PropertyName, PropertyValue)
  Next

End Sub 

データプラグインのVBScriptの内容を変更する事で、任意のプロパティを読み事ができます。例えば下記の様に編集したデータプラグインを使用する事でグループチャンネルのプロパティを読み込むことができます。
 
2UpdateDataPlugin.png

ここでは緑枠を編集し、紫枠を追加する事でグループチャンネルのカスタムプロパティを読み込みます。このスクリプトは下記の物になります。
 
Option Explicit

Sub ReadStore(File)
  'Provide the file object with information about the file format
  File.Formatter.LineFeeds = vbNewLine
  File.Formatter.IgnoreEmptyLines = true
  File.Formatter.TrimCharacters = " "
  File.Formatter.Delimiters = ";"
  File.Formatter.ThousandSeparator = "."
  
  'Read the name of the source out of the first line of the file.
  Dim TitleValue : TitleValue = File.GetNextStringValue(eString)
  Call Root.Properties.Add("Name", TitleValue)

  'Read the description of the implicit channel out of the second line of the file.
  File.SkipLine() 'Advance to the next line.
  Dim ChannelName : ChannelName = File.GetNextStringValue(eString)
  Dim StartValue  : StartValue  = File.GetNextStringValue(eI32)
  Dim Increment   : Increment   = File.GetNextStringValue(eI32)
  Dim ChannelSize : ChannelSize = File.GetNextStringValue(eI32)
  
  'Create the implicit channel.
  Dim ChannelGroup : Set ChannelGroup = Root.ChannelGroups.Add("MyChnGroup")
  Call ChannelGroup.Channels.AddImplicitChannel(ChannelName, StartValue, Increment, ChannelSize, eI32)
  
  'Read the root's properties out of the file
  File.Formatter.Delimiters = ":" 'Properties and their values are seperated by a ":"
  
  Dim PropertyName, PropertyValue, i
  For i = 1 to 5
    File.SkipLine() 'Advance to the next line.
    PropertyName  = File.GetNextStringValue(eString)
    PropertyValue = File.GetNextStringValue(eString)    
    'Create the property on the root of the plugin.
    Call Root.Properties.Add(PropertyName, PropertyValue)
  Next

 File.Formatter.Delimiters = ";"
  While (File.Position <> File.Size)
    File.SkipLine() 'Advance to the next line.
    PropertyName  = File.GetNextStringValue(eString)
    PropertyValue = File.GetNextStringValue(eString)    
    Call Root.ChannelGroups(1).Properties.Add(PropertyName, PropertyValue)
  Wend  

End Sub 


2. データプラグインの更新
DIAdemとSystemLinkが同一のPCにインストールされている場合、DIAdemのデータプラグインを更新する事でSystemLinkでデータを閲覧する際に使用されるデータプラグインは更新後の物となります。DIAdemでデータプラグインのスクリプトを編集する場合、下記の手順でスクリプトを開き、編集後、保存します。
 
5modscri.png


3. DataFinderインスタンスの作成を作成し、メタ情報をデータベース化する
SystemLinkにおけるDataFinderインスタンスの作成方法はこちらの記事で確認できます。ここではEXCalというDataFinderインスタンスを作成します。このDataFinderインスタンスでは下記の様にDataPluginExample1のみを使用する設定とします。
 
3DataPlugin.png

この状態でDataFinderインスタンスを開始し、検索対象のフォルダに*.ex1ファイルをドラッグ&ドロップすると、データプラグインで読み込むように指定したメタ情報がプロパティとしてデータベース化されます。ただし、デフォルトの仕様では基本プロパティ以外はデータベースに含まれていない点に注意が必要です。基本プロパティ以外もデータベースに追加し、検索、データ閲覧時に使用する場合、後述のカスタムプロパティの最適化を行う必要があります。


4. 計測データをDataFinderインスタンスに読み込ませてメタ情報をデータベース化する
ここではこのページの下部にあるAttachmentsのEX1SampleDataに含まれる、1.ex1をDataFinderインスタンスの検索対象のフォルダにドラッグ&ドロップし、SystemLinkで閲覧します。1.ex1をインデックス化し、DataFinderインスタンスの上級統計を確認すると下記の様にデータベースの状況を確認できます。一般の項目のインデックスサイズはデータベースの大きさを表示しています。データベースの大きさは主にプロパティの数とプロパティに書き込まれているデータサイズで決まっており、例えば1.ex1のDescriptionのプロパティの様に文章が書き込まれたプロパティが多数存在する場合、とても大きくなります。インデックスサイズは計測データをデータベースに加えていくたびに大きくなっていくのでSystemLinkによるデータ管理・解析自動化の長期運用を検討する場合、どの程度の速度で増加していくかを監視し、十分なハードウェアリソースを確保する必要があります。
 
6Indic.png
インデックスステータスではDataFinderインスタンスによるインデックス化の状況を確認できます。正常に読み込むことができ、プロパティをデータベースに含むことが出来た場合、成功となります。TDMファイルの項目では読み込まれたデータのファイルプロパティについての情報を確認できます。ここではカスタムプロパティが3となっており、これはDataPluginExample1で読み込んでいるCompany, Created_on, Locationの3つのカスタムプロパティです。デフォルトの状態ではこれらのカスタムプロパティは最適化されていない状態です(基本プロパティは常に最適化されています)。


5. カスタムプロパティの最適化
DataFinderインスタンスで読み込んだ1.ex1を確認するにはデータナビゲーションにおいてEXCalのDataFinderインスタンスを選択し、1.ex1を右クリック>ファイルを表示を選択します。
 
7DipFile.png

下記の様にデータ及び基本プロパティを確認できます。
 
8basicprop.png

また、データナビゲーションでは計測データのメタ情報であるプロパティを使用したデータの検索が可能です。ここでカスタムプロパティを使用した検索を行うにはカスタムプロパティの最適化を行う必要があります。カスタムプロパティの最適化後、一度、DataFinderインスタンスを停止し、インデックス化の最適化を行い、DataFinderインスタンスを再起動する必要があります。
 
9optim.png

この手順によりデータナビゲーションにおけるデータ検索において、カスタムプロパティを使用する事が出来るようになります。ここではCompany, Created_on, Locationの3つのカスタムプロパティが使用可能な状態となりました。
 
10afteroptmized.png



 
 

解析自動化でレポートを自動作成する

1. 解析自動化プロシージャを構成
このページの下部にあるAttachmentsからEX1SampleData.zipをダウンロードし、Sample.anpをDIAdemで開きます。解析自動化でデータフィルタを使用する場合、データフィルタを有効にするにチェックマークを入れます。ここではデータファイルに.ex1が含まれている物のみを解析対象とする為、ワイルドカードの*と.ex1を組み合わせ、*.ex1を満たすデータのみを解析対象とします。また、パラメータ定義ではResultsPathの初期値を設定します。解析自動化で作成されたPDFファイルはResultsPathの初期値で設定されたフォルダに出力されますが、SystemLink上でこのパスは上書きする事ができます。
 
11anp.png


2. 解析自動化プロシージャの編集と動作確認
次に、解析スクリプトを確認します。Main.pyは解析内容を記述したPythonファイルです。SingleFileReport.tdrはDIAdemで編集・作成できるPDFファイルのレポート形式を指定するファイルです。

Main.pyを確認すると、赤枠の部分において、データをData Portalにロードし、レポート形式を指定した*.tdrを読み込んでいる事が確認できます。青枠の部分ではPDFファイルのパスを作成し、PDFファイルを出力します。また、緑枠では結果のログを出力します。
 
13anp.png

Pythonで解析内容、*tdrファイルでレポートフォーマットを編集した後、動作を確認する場合、下記の手順で解析自動化プロシージャを実行します。ここでは解析対象の*.ex1ファイルをデータソースに追加する必要があります。My DataFinderの検索対象にフォルダを追加する方法はこちらの資料で確認できます。
 
14autoana.png


3. 解析自動化インスタンスの作成
上記の手順で*.anpファイルの挙動を確認できた場合、SystemLinkで解析自動化の設定を行います。解析自動化には下記の手順で解析自動化インスタンスを作成し、解析自動化プロシージャにSample.anpを設定します。
 
15AnalysisAutomation.png


4. タスクの作成
次に、この解析が実行されるタイミングをタスクで作成します。トリガされたタスクを作成すると、DataFinderインスタンスの検索領域のデータに変更や新規データの書き込みが生じた際にそれらのファイルに対して自動解析が実行されます。
 
16kaiseki.png



5. 解析自動化によるPDFレポートの作成
上記の設定を行った状態でDataFinderインスタンスの検索対象に*.ex1ファイルをドラッグ&ドロップすると、解析自動化の出力先フォルダにPDFファイルが作成されます。

 

21Results.png

Attachments