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

조회 수: 6 (최근 30일)
MathWorks Support Team
MathWorks Support Team 2019년 4월 23일
답변: MathWorks Support Team 2019년 4월 23일
UDP Sendブロックでデータを送信するモデルとUDP Receiveブロックでデータを受信する別のモデルがあります。これらのモデルはSimulink上でのシミュレーションでは正常に動作しますが、Embedded Coderで生成した .EXE ファイルとして実行すると、データの受信ができません。UDP Send / Receive ブロックを削除したモデルから作成した .EXE は正常に動作します。

채택된 답변

MathWorks Support Team
MathWorks Support Team 2019년 4월 23일

この問題は生成コードではなく、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 

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 配布에 대해 자세히 알아보기

태그

아직 태그를 입력하지 않았습니다.

Community Treasure Hunt

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

Start Hunting!