Translate

2018/06/28

TRNSYS/Simulation StudioのPluginを作ってみた

前回紹介したSimulation StudioのPluginを作ってみました。

Pluginの仕組み

Pluginの仕組み自体はシンプルで、Simulation StudioとPluginで専用ファイル(Exchange File)を使って設定をやり取りすることで実現しています。

image

このように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側で値を変更すると、コンポーネントの設定に反映されているのが分かります。

この例では通常のウィンドウと似ていて紛らわしいですが、本来は用途に応じた分かり易いインターフェースを用意する事になります。例えば、機器のコンポーネントであれば型番を選んだら設定が自動で行われるとか、ですね。

ExchFile

少し試してみて、問題ないようなら公開しようかと思います。

動作環境

以下の環境で動作を確認しています。
Windows10 Pro(64bit)
TRNSYS18.00.0019(64bit)

2018/06/06

面倒なコンポーネント設定にプラグイン

TRNSYSのコンポーネントでパラメータの指定が複雑なものって設定が面倒ですよね。Simulation Studioには複雑な設定を助けるためプラグインの仕組みが用意されています。いくつかのコンポーネントが対応していて、複雑な指定も簡単な操作で設定できるようになっています。

プラグインの例

下の図はType14の例ですが、設定画面左下のMagic Stickアイコンをクリックするとプラグインが起動します。

image

プラグインが起動するとType14の時刻ごとの値の変化がチャートで表示されます。設定内容が視覚的に確認できるので、簡単に設定が行えます。

image

プラグインの仕組み

プラグインの本体は通常のアプリケーションと同じなので、C/C++やC#、その他のプログラミング言語を使って作成することができます。ただし、Simulation Studioと設定内容のやり取りをするため、所定のデータを扱う必要があります。こう言うとなにか複雑な処理が必要なように聞こえますが、テキストファイル形式のシンプルな内容です。

基本的にテキストファイルを扱えるアプリケーションであればSimulation Studioとやり取りしているデータを受け取ることができます。

下の図はプラグインの代わりに「メモ帳」を使った例です。Commentタブの画面の下にプラグインを指定している項目があるので、ここをメモ帳に置き換えます。

image

この状態で、Magic Stickアイコンをクリックすると、メモ帳が起動してSimulation Studioからのデータを読み込んで表示してくれます。

下の画面のように、INPUTS,PARAMETERSなどコンポーネントの設定画面で見慣れた単語が並んでいるのが分かります。

image

ここで内容を書き換えて保存、メモ帳を終了すると、Simulation Studioに変更内容が反映されます。非常にシンプルな仕組みです。通常のType14のプラグインは、このテキストデータを使って、チャートの表現をしているわけです。

頻繁に利用するコンポーネントやオリジナルのコンポーネントを作成する場合には、プラグインを含めて考えると使いやすくなります。

なにか簡単な作成例でも紹介できないかと思いますが、それはまた別の機会ということで。。。

プラグインの詳しい仕様についてはドキュメントの以下の箇所にまとめれらています。

2.12.5. The plug-in technology


動作環境

以下の環境で動作を確認しています。
Windows10 Pro(64bit)
TRNSYS18.00.0018(64bit)