解析自動化プロシージャのスクリプトからファイルのメタデータにアクセスする

更新しました Apr 18, 2024

環境

ソフトウェア

  • DIAdem
  • SystemLink Server
  • SystemLink TDM Analysis Add-On

この資料では、DIAdemの解析自動化プロシージャスクリプトからファイルのメタデータ(ファイル、グループ、チャネルのプロパティなど) を読み書きする方法を説明します。

解析自動化プロシージャは、 DataLink Collection使用して検索クエリに一致するファイルにアクセスできます。解析自動化プロシージャからデータファイル内のプロパティにアクセスする方法については、以下の関連セクションに従ってください。

解析自動化プロシージャのMainスクリプトを開く


1. DIAdemを起動し、SCRIPTパネルを選択します。
2. 上部のメニュー バーから、設定 >> SystemLink TDM >> 解析自動化プロシージャを選択します。

anp1.PNG

3. ポップアップ ウィンドウで、既存の解析自動化プロシージャ (.ANP ファイル)を開きます。 4. 解析スクリプトタブを選択し、Mainスクリプト(Visual Basic Scriptでプログラミングする場合は .vbsaファイル、Pythonでプログラミングする場合は .pyファイル)をダブルクリックします。

anp2.PNG
 

プロパティにアクセスするためのVisual Basic Script(VBS)の作成


DIAdemで.vbsaファイルを開いた後、以下の手順に従います。

1. On_Run_AnalysisProcedure(oContext)サブプロシージャの最後のサブ行までスクロールします。
  • 注: DataLink変数を定義する行に注意してください。 Navigator.LoadData(DataLink)を使用してファイルがロードされると、通常どおりそのプロパティにアクセスできます。
2.終了サブ行の直前に、読み取り/書き込みプロパティに次のコードを追加します。
  • ファイルのプロパティを読み取るには、 Data.Root.Properties(<property name>).Valueを使用します。例えば:
#-- ファイル名にアクセスします
Dim sourcefilename
sourcefilename = Data.Root.Properties("name").Value
  • ファイルのプロパティを書き込むには、 Data.Root.Properties(<プロパティ名>).Value = <設定する値>を使用します。例えば:
#-- Authorプロパティの値を設定します
Dim author
author = "NI"
Data.Root.Properties("author").Value = author
  • グループ プロパティを読み取るには、 Data.Root.ChannelGroups(<グループ インデックスまたは名前>).Properties(<プロパティ名>).Valueを使用します。例えば:
#-- グループ1のNameプロパテを読み取ります
Dim groupname
groupname = Data.Root.ChannelGroups(1).Properties("name").Value
  • グループ プロパティを書き込むには、 Data.Root.ChannelGroups(<グループ インデックスまたは名前>).Properties(<プロパティ名>).Value = <設定する値> を使用します。例えば:
#-- グループ1の作成者プロパティを設定します
Dim author
author = "NI"
Data.Root.ChannelGroups(1).Properties("author").Value = author
  • チャネル プロパティを読み取るには、 Data.Root.ChannelGroups(<グループ インデックスまたは名前>).Channels(<チャネル インデックスまたは名前>).Properties(<プロパティ名>).Value を使用します。例えば:
#-- グループ1チャネル1のNameプロパテを読み取ります
Dim channelname
channelname = Data.Root.ChannelGroups(1).Channels(1).Properties("name").Value
  • チャネル プロパティを書き込むは、 Data.Root.ChannelGroups(<グループ インデックスまたは名前>).Channels(<チャネルインデックスまたは名前>).Properties(<プロパティ名>).Value = <設定する値> を使用します。例えば:
#-- グループ1チャネル1の説明プロパティを書き込みます
Dim description
description = "これは説明サンプルです"
Data.Root.ChannelGroups(1).Channels(1).Properties("description").Value = description

プロパティにアクセスするための Python スクリプトの作成


DIAdemで.pyファイルを開いた後、以下の手順に従います。

1. On_Run_AnalysisProcedure(oContext)関数定義までスクロールします。
  • 注:リンク変数を定義する行に注意してください。 elements = dd.Navigator.LoadData(link)を使用してファイルが読み込まれると、通常どおりそのプロパティにアクセスできます。
2. 関数の最後 ( oContext.LogResult("On_Run_AnalysisProcedure: End of Analysis procedure")行の下) に、読み取り/書き込みプロパティに次のコードを追加します。
  • ファイルのプロパティを読み取るには、 dd.Data.Root.Properties("name").Valueを使用します。例えば:
# -- ファイルのNameプロパティを読み取ります
sourcefilename = dd.Data.Root.Properties("name").Value
  • ファイルのプロパティを書き込むには、 dd.Data.Root.Properties(<プロパティ名>).Value = <設定する値>を使用します。例えば:
# -- ファイルのAuthorプロパティを書き込みます
author = "NI Engineer"
dd.Data.Root.Properties("author").Value = author
  • グループプロパティを読み取るには、 dd.Data.Root.ChannelGroups(<グループ インデックス>).Properties(<プロパティ名>).Valueを使用します。例えば:
#-- グループ1のNameプロパティを読み取ります
groupname = dd.Data.Root.ChannelGroups(1).Properties("name").Value
  • グループ プロパティを書き込むには、 dd.Data.Root.ChannelGroups(<グループ インデックス>).Properties(<プロパティ名>).Value = <設定する値>を使用します。例えば:
#-- グループ1の説明プロパティを設定します。
groupdescription = "これはデスクリプションのテスト文章です。"
dd.Data.Root.ChannelGroups(1).Properties("description").Value = groupdescription
  • チャネル プロパティを読み取るには、 dd.Data.Root.ChannelGroups(<グループ インデックス>).Channels(<チャネルインデックスまたは名前>).Properties(<プロパティ名>).Valueを使用します。例えば:
# -- グループ1チャネル1のNameプロパティを読み取ります。
channelname = dd.Data.Root.ChannelGroups(1).Channels(1).Properties("name").Value
  • チャネルプロパティを書き込むは、 dd.Data.Root.ChannelGroups(<グループインデックス>).Channels(<チャネルインデックスまたは名前>).Properties(<プロパティ名>).Value = <設定する値> を使用します。例えば:
#-- グループ1チャネル1の説明プロパティを設定します。
channeldescription = "これは説明テストです。"
dd.Data.Root.ChannelGroups(1).Channels(1).Properties("description").Value = channeldescription