UDP Send / Receive ブロックを使用したモ​デルのスタンドアロン​実行モデルの実行時に​データの送受信ができ​ないのはなぜですか?

7 vues (au cours des 30 derniers jours)
MathWorks Support Team
MathWorks Support Team le 23 Avr 2019
UDP Sendブロックでデータを送信するモデルとUDP Receiveブロックでデータを受信する別のモデルがあります。これらのモデルはSimulink上でのシミュレーションでは正常に動作しますが、Embedded Coderで生成した .EXE ファイルとして実行すると、データの受信ができません。UDP Send / Receive ブロックを削除したモデルから作成した .EXE は正常に動作します。

Réponse acceptée

MathWorks Support Team
MathWorks Support Team le 23 Avr 2019

この問題は生成コードではなく、UDPブロックに依存したパスが見つからないことによる問題です。そのためUDPブロックを削除した場合は正常に動作します。

問題の DLL は「networkdevice.dll」で、64-bit Windows の場合(32-bit Windows の場合は \win32)、$MATLABROOT\bin\win64 に存在します。$MATLABROOTはMATLABインストールフォルダーで、コマンドウィンドウ上で次のコマンドを実行すると確認できます。

matlabroot 

この問題を回避するために、下記いずれかの方法を実行してください。

1. ! を使用してEXEファイルをMATLAB上で実行する

!test_code.exe

MATLAB は DLL を正しく動作させる自身のパスを持つので、これは追加のパス設定等を行わなくても動作します。

2. MATLABの外部で実行可能ファイルを動作させるには、下記手順でDLLのフォルダーをシステムのパスに追加する必要があります。

2-1. 「コンピューター」を右クリックして「プロパティ」を選択します。

2-2. 「システムの詳細設定」→「環境変数」をクリックします。

2-3. 「システム環境変数」に次のパスを追加します。(64-bit Windowsの場合)

 $MATLABROOT\bin\win64 

Plus de réponses (0)

Catégories

En savoir plus sur 配布 dans Help Center et File Exchange

Tags

Aucun tag saisi pour le moment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!