mengineer's blog

ニッチなネタばかりですが。

TestStandのXMLファイルを解析してみた。

TestStandで作られたXMLファイルを集計することに。

どんなソフトかは下記参照

NI TestStand - National Instruments

あまり市場に情報が出回っていないので苦戦しました。

 

検査結果は、一回の検査毎にXML形式で保存されます。

(通常のテキストその他にも変更出来るようですが)

これをブラウザで見ると、先頭はこんな感じ。

f:id:mengineer:20160326121330p:plain

ちなみに、XMLの一行目にスタイルシートが指定されていますので、

そのフォルダ/該当ファイルが無いと、正しく表示されませんので注意!

(当然、TestStandがインストールされた環境なら大丈夫です)

f:id:mengineer:20160326122110p:plain

例えば消費電流を集計するとしましょう、下記の"769"という数値部分.

f:id:mengineer:20160326122515p:plain

フォルダ内に数千個以上有るXMLファイルから、この数値を引っ張って集計する、

というのが今回のお題、というわけでXMLの構造を見てみます、

XML Editor  http://www.xmleditor.jp/ というフリーソフトを使用。

f:id:mengineer:20160326125130p:plain

大きく5つのブロックに別れていますが、検査結果は一番下のType=TEResult

この中のResultList内にValue[ID=X]で列記された部分に、各検査項目の結果が

保存されます、TestStand側でシーケンス(検査項目リストみたいなもの)を

変えるとIDも変わってしまうようなので、ここも注意が必要。

 

f:id:mengineer:20160326125635p:plain

消費電流は ID=[6]のところでした、Prop[Name=Numeric]に測定結果の数値有り、

Xpathをコピーします。(該当行で右クリック、メニューからコピー可能)

/Reports/Report[1]/Prop[6]/Prop[1]/Prop[1]/Prop[1]/Value[7]/Prop[1]/Prop[3]/Value[1]

その下を見て頂くと判りますが、

Prop [Name=StepName]  検査項目名 (消費電流測定)

Prop[Name=Limits]  検査上下限値(Prop[Name=Low]とProp[Name=High])

Prop[Name=Comp] 結果判定基準(GELE:下限値以上上限値以下)

というように、各検査項目毎の設定情報が記述されています。

f:id:mengineer:20160326135938p:plain

こうやって集計したい項目のXpathが判れば、フォルダ内のXMLファイルを順に開き、

そのNodeを辿って引っ張るだけです。(別ソフトで作成済み)

こんな手作業で無くて、StepNameが”消費電流測定”のValueのIDを検索し、

下位のNumericのValueを自動で引っ張る、という技も有るのかもしれませんが、

今回そこまでは解明出来ませんでした、今後の課題ということで。

TestStandで苦戦されている方の参考になりますように。