NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

Labviewにてdllが正常に機能しない

解決済み
解決策を見る

初めて投稿させていただきます。

 

simulinkにて作成したモデルをコンパイルしてdllファイルを作成し、Labviewにてdllファイルを呼び出してシミュレーションを行おうとしています。

作成したモデルは入力をそのまま出力する簡単なものなのですが、Labviewで実行しても出力される数値がどんな入力に対しても0を返してきます。

モデル作成時に入力数や出力数を変更するとLabviewの入出力数もそれに応じて変化するのですが、数値は変わらず0を返すような状態です。

 

なお、コンパイルの設定はタイプを固定ステップ、ソルバーをdiscrete、終了時間をinf、システムターゲットファイルをNIVeriStand.tlcとしました。

 

よろしくお願いします。

すべてをダウンロード
0 件の賞賛
メッセージ1/11
3,367件の閲覧回数

プログラムは問題なさそうなのですが、モデルはInportとOutportがただつながっているようなものなのでしょうか?モデルのスクリーンショットなどありますか?

0 件の賞賛
メッセージ2/11
3,299件の閲覧回数

こんにちは。

返信ありがとうございます。

 

添付したようにアウトプット1はインプットをそのまま返し、アウトプット2はインプットに200を足し算するといったプログラムになっています。

すべてをダウンロード
0 件の賞賛
メッセージ3/11
3,288件の閲覧回数

モデルもいたって問題なさそうですね。

LabVIEWのサンプルプログラムにMIT Inport and Outport.viがあります。このサンプルでコンパイルしたDLLを動かすことはできますか?私も試してみたいのでコンパイルなさったDLLをZIPにしていただくことはできますか?

0 件の賞賛
メッセージ4/11
3,270件の閲覧回数

MIT Inport and Output.viとは添付したスクリーンショットのようなプログラムなのでしょうか?

試しにDLLを動かしてみたのですが駄目でした。

コンパイルしたDLLを添付したのでお手数ですが試してみてください。

すべてをダウンロード
0 件の賞賛
メッセージ5/11
3,268件の閲覧回数

MIT Inport and Outport.viはまさに添付していただいたVIのようなものです。モデルありがとうございました。試してみましたが私の環境でも確かに0しか出力されませんでした。Simulinkでコンパイルをしているときに何かエラーなどは出ていませんでしたでしょうか?

0 件の賞賛
メッセージ6/11
3,240件の閲覧回数

そうですか…

Simulinkコンパイル時からLabVIEW実行時に至るまで一貫してエラーが起こることはありませんでした。

 

自分でもいろいろ試してみた結果、

・MATLAB2013a

・LabVIEW2015

・VeriStand2015

の組み合わせではDLLが正常に動作しました。ちなみに

・MATLAB2015a

・LabVIEW2015

・VeriStand2015

の組み合わせではうまく動作しませんでした。

 

原因がはっきりしないので釈然としません。

0 件の賞賛
メッセージ7/11
3,238件の閲覧回数

バージョンで考えられることは、Simulink、LabVIEW、VeriStandの互換性ですが、この資料を見る限りここはクリアしているようです。

http://digital.ni.com/public.nsf/allkb/1A2A50154767B94C862580D40062151A

 

あとはSimulinkがサポートしているコンパイラのバージョン互換ですが、ぱっと見た限りあまり問題なさそうだと思いますがいかがでしょうか。

https://jp.mathworks.com/content/dam/mathworks/mathworks-dot-com/support/sysreq/files/SystemRequirem...

https://jp.mathworks.com/content/dam/mathworks/mathworks-dot-com/support/sysreq/files/SystemRequirem...

0 件の賞賛
メッセージ8/11
3,228件の閲覧回数

知り合いの方は

・MATLAB2015a

・LabVIEW2015

・VeriStand2015

でしっかり動作していたので互換性の問題ではないようです。

Microsoft Windows SDK7.1を使用してますので、コンパイラの問題でもなさそうです。

 

 

いままでVeriStand2015をEドライブにインストールしていたのを今回はCドライブにインストールしたところ、CドライブにインストールしてあったMATLAB2013aでは正常に動作し、EドライブにインストールしてあったMATLAB2015aでは動作しませんでした。

VeriStandのインストール先をCドライブにしなければならないなどのルール(もしくはMATLABのインストール先と同一のドライブにしなければならないなど)があるのでしょうか。

 

0 件の賞賛
メッセージ9/11
3,222件の閲覧回数
解決策
トピック作成者GS75が受理

VeriStandはどうかわかりませんが、LabVIEWだとCドライブ以外にインストールするとうまく動作しないことがありました。

今回のような現象を防ぐためにはすべてのソフトウェアをCドライブにインストールするほうがよいのかもしれません。

0 件の賞賛
メッセージ10/11
3,210件の閲覧回数