TRNSYS/Simulation StudioのPluginを作ってみた
2018年6月28日
2020年5月25日
前回紹介したSimulation StudioのPluginを作ってみました。
Pluginの仕組み
Pluginの仕組みはシンプルで、Simulation StudioとPluginの間でExchange Fileを使って設定をやり取りすることで実現しています。
Exchange Fileは内容はシンプルな形式ですが、プログラムで扱うにはそれなりに手間が掛かります。そこでまず処理用のライブラリをC#で作ってみました。
ライブラリを使ったコーディングは以下のソースコードのようにExchange Fileを受け取り、展開、値を更新してSimulation Studioへ戻す手順で行います。
// Exchange File を解析する
this.exchFile = Parser.Parse(fname);
// Input1の既定値を変更する
if (exchFile.Inputs.Variables[0].IsNumeric()) exchFile.Inputs.Variables[0].Value = 3.14;
// Exchange File 更新してSimulation Studioへ返す
Writer.Save(exchFile, fname);
この例ではInputの1番目の既定値を3.14へを更新しています。あまり意味のある操作ではありませんが、使い方の雰囲気は分かりますよね?
これにインターフェースを用意すると、それっぽいPluginになります。
作成例
下の動画はVariable Windowを模したインターフェースの作成例です。Plugin側で値を変更すると、コンポーネントの設定に反映されているのが分かります。
この例では通常のウィンドウと似ていて紛らわしいですが、本来は用途に応じてインターフェースを用意します。
例えば、機器のコンポーネントであれば型番を選んだら設定が自動で行われるとか、ですね。
少し試して問題ないようなら公開しようかと思います。
動作環境
以下の環境で動作を確認しています。
Windows10 Pro(64bit)
TRNSYS18.00.0019(64bit)