TRNSYS/Simulation StudioのPluginを作ってみた
2018年6月28日
2020年5月25日
![](https://i0.wp.com/www.kankyoukei.com/wp-content/uploads/2018/06/frederick-tubiermont-nBfTARHPxiU-unsplash.jpg?fit=1920%2C1280&ssl=1)
前回紹介したSimulation StudioのPluginを作ってみました。
Pluginの仕組み
![Pluginの仕組み](https://i1.wp.com/www.kankyoukei.com/wp-content/uploads/2019/04/exchange-file-1.png?fit=525%2C146&ssl=1)
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)