1

ハードウェアインザループ テスト セットアップを作成する必要があります。Modelica (Dymola) を使用して、システムのリアルタイム シミュレーションを実行します。Dymola は、一部のハードウェアとの間でデータを送受信し、受信したデータがモデルに入力される場所を指定する必要があります。シリアル接続を介して Modbus と通信しようとしています。ハードウェアは PLC のようなデバイスなので、これが好ましい方法のようです。

私はまだハードウェアを持っていないので、Arduino Uno でテストしています。ここからArduino にModbus スレーブ ライブラリをインストールし、Modbus テスターでテストしました。

Dymola との通信方法がわかりません。Modelica_DeviceDriversライブラリを試してみたところ、arduino からデータを送受信できましたが (両方を同時にではなく)、Modbus プロトコルではできませんでした。私の質問は、modbus 通信用の modelica ライブラリ、または Dymola/modelica からこれを達成する他の方法があるかどうかです。

4

2 に答える 2

1

独自のドライバーを作成する場合は、Modleica_Device_Drivers ライブラリの下のResources\Includeフォルダーに移動できます。多数の C ヘッダー ファイルがあり、独自のドライバーを作成する方法の非常に良い例です。Modleica_Device_Drivers の「パッケージ」と互換性があるように記述できれば、データ メッセージのアセンブル/逆アセンブルは非常に簡単になります。

手っ取り早く何かしたい場合は、C 関数を作成して Dymola で参照することができます。

どちらの方法でも、シミュレーション時間をリアルタイムと同期させるために when(sample(...)) 句が必要になる場合があります。ただし、これはイベントの生成を意味します。これはタイム イベントですが、多くの状態を持つ大きなモデルの場合、シミュレーションが遅くなる可能性があります。

モデルの周りにいくつかの入力と出力を作成してから、Dymola モデルを C または FMU モデルとしてエクスポートしたいと思います。データ フローを制御する別の通信プログラムを作成します。

于 2015-06-29T20:28:03.930 に答える