LabVIEWでMATLAB®スクリプトノードを使用するとエラー1047が発生する

更新しました Nov 29, 2018

使用製品

Software

  • LabVIEW Full
  • LabVIEW Base

Operating System

  • Windows

問題

スクリプトノードを使用してMathWorks、Inc.のMATLAB®ソフトウェアと対話しようとすると、LabVIEWでエラー1047が発生します。

考えられる理由:
LabVIEW:(Hex 0x417)LabVIEWはスクリプトサーバに変数を送信できませんでした。


LabVIEWおよびMATLAB®ソフトウェアは対応するバージョンを正しくインストールしており、これまでも両方を単独実行はできますが、お互いに通信することはできません。

解決策

このエラーは、ActiveXスクリプトサーバが正しく起動しなかったために発生します。考えられる解決策は次のとおりです。
  1. MATLAB®ソフトウェアをインストールしてから少なくとも1回実行した場合は、すべてのActiveXコンポーネントをオペレーティングシステムに登録する必要があります。スクリプトサーバを使用するには、すべてのプログラム(MATLAB®ソフトウェアおよびLabVIEW)を閉じます。MATLAB®ソフトウェアを開き、MATLAB®ソフトウェアが完全にロードされた後にLabVIEWを起動します。スクリプトサーバが応答し、エラーは表示されなくなります。
     
  2. ActiveXコンポーネントを再登録するには、コマンドプロンプトを開きます(スタート>>ファイル名を指定して実行をクリックし、開くフィールドにcmdと入力してOKをクリックします)
    1. MATLAB\(version)\bin ディレクトリに移動します(例: MATLAB\R2008b\bin)。
    2. プロンプトでmatlab -regserverと入力し、Enterキーを押します。
    3. 表示されるMATLAB®ソフトウェアのインスタンスを終了します。
    4. MATLABスクリプトノードが機能するはずです(LabVIEWを再起動する必要があります)。
  3. これで問題が解決しない場合は、MATLAB®ソフトウェアをローカルにインストールし、環境変数MATLAB_RESERVE_LO=0を設定してみてます。
  4. 引き続き同じエラーが発生した場合は、The MathWorks、Inc.のMATLAB®言語構文で記述されたスクリプトへの入力を読み取ることに問題がある可能性があります。この場合、付属するサンプルプログラム(Lorenz.vi)を実行すると、スクリプトへの入力があるため、同じエラーが発生します。ただし、MathScript Fractalは出力のみを使用するため、エラーなしで実行されます。入力と出力のデータタイプを複素数に変更することで、問題を簡単に修正できます。問題を永続的に解決するには、次の記事のResolve MATLAB® Script Node and Xmath Script Node Issues in LabVIEWを参照してパッチをインストールする必要があります。

追加情報

MATLAB®は、The MathWorks、Inc.の登録商標です。記載されているその他の製品名および会社名は、各社の商標および商号です。

この記事はお役に立ちましたか?

いいえ