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

6 visualizaciones (últimos 30 días)
MathWorks Support Team
MathWorks Support Team el 23 de Abr. de 2019
Respondida: MathWorks Support Team el 23 de Abr. de 2019
UDP Sendブロックでデータを送信するモデルとUDP Receiveブロックでデータを受信する別のモデルがあります。これらのモデルはSimulink上でのシミュレーションでは正常に動作しますが、Embedded Coderで生成した .EXE ファイルとして実行すると、データの受信ができません。UDP Send / Receive ブロックを削除したモデルから作成した .EXE は正常に動作します。

Respuesta aceptada

MathWorks Support Team
MathWorks Support Team el 23 de Abr. de 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 

Más respuestas (0)

Categorías

Más información sobre 配布 en Help Center y File Exchange.

Etiquetas

Aún no se han introducido etiquetas.

Community Treasure Hunt

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

Start Hunting!