ブロックを積みながら(200) Scilab/Xcos、Modelicaブロックの使用

Joseph Halfmoon

さて、過去記事でちょっと触ったことがありますが、世の中にはModelicaというモデリング環境があります。そしてScilab/XcosはこのModelica上で実行されるモデル・ブロックを含めることができる、ことになってます。しかし当方環境にて実行すると途中で落ちます。”c_pass1: なんちゃら”などと言われます。

※「ブロックを積みながら」投稿順 index はこちら

※動作確認にはWindows 11の パソコン(64bit)上にインストールしたScilabの以下バージョンを使用しています。

    Scilab 2024.0.0

Modelica

以下にModelica御本家へのURLを掲げます。

https://modelica.org/

上記のページに行くと冒頭のページにOrganizational Membersとして研究機関となど一緒に著名な自動車会社、航空会社、電子部品メーカなど見慣れたロゴがなならんでます。いろいろ支持されている環境なのねえ。

Scilab/XcosにおけるModelicaブロック

Scilab/Xcos環境においては、「ネイティブ」Xcosのブロックとは「ちょっと毛色の違う」ブロックとしてModelica を使って走るブロックどもの一群が含まれてます。白か黒の「四角」の入出力ブロックがあるやつらです。通常のXcosの入出力ポートは三角なので判別がつきます。使い方はおいおい見ていきたいと思いますが、そいつらは裏でModelica言語に翻訳されてコンパイルされた後に実行されるみたいです。フツーのXcosブロックとも混在可能みたいですが。

今まで避けてきたのは、手元の環境では、以下のようなエラーメッセージが出てModelicaブロックのシミュレーションができなかったからです。

c_pass1: build the modelica meta-block failed

なんやらCコンパイラの設定が悪いの? 違いました。以下のScilabのディスカッション・グループにその答えがありましたです。

https://scilab.discourse.group/t/modelica-compiler-error/692/9

https://scilab.discourse.group/t/modelica-compiler-error/692/11

Scilab素人老人がかいつまんでいうとこんな感じです。ホントか?

    1. modelicaブロックをコンパイルして実行するときに modelicat.exe というプログラムが必要とされる。
    2. modelicat.exe 自体は、ScilabのインストールパスのBIN内にある
    3. しかし、modelicat.exe が必要とする マイクロソフト社の 32-bit DLL はWin11(64ビット版)には含まれていない
    4. よって、MSの再配布ページから、 vcredist_x86.exe という再配布用パッケージをダウンロードしてインストール
    5. 上記インストール後、ScilabのインストールパスのBIN内にあるmodelicat.exeを「管理者として実行」しておく

なお、再配布パッケージは以下のお名前です。

Microsoft Visual C++ 2010 Service Pack 1 Redistributable Package MFC Security Update

まあ、上記の手順にて手元環境では Modelica ブロックの実行できるようになりましたぞ。vincent.couvert様、ありがとう。

動作確認

Xcosのデモの中に、Modelicaブロックを使用したものがいくつかあるので、そのうちの一つ「RLC回路」のデモを動かしてみましたぞ。デモの選択画面が以下にselectRLCロードされたモデルが以下に。RLCmodel

いつものXcosブロックとは別に、白と黒の四角のポートを持ったModelicaブロックがあることが分かりますなあ。

さて上記んもフローを実行すると、下記のようなインフォメーション・ウインドウが現れます。modelicaInfo

また、Scilabのコンソールにも、Modelicaをコンパイルしてます的なメッセージがいろいろ出力されます。

その後はいつものXcosシミュレーション同様、CSCOPEで波形表示ができました。こんな感じ。RLCresult

Modelicaブロック、動作するようになった。よかった。

ブロックを積みながら(199) Scilab/Xcos、c_blockの試用 へ戻る

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です