スキャンインターフェイスを使用したアプリケーションのデプロイ時にエラー -65536 または -65589 が発生する

更新しました Apr 24, 2024

使用製品

ソフトウェア

  • LabVIEW
  • LabVIEW Base
  • LabVIEW Full
  • LabVIEW Professional
  • LabVIEW Real-Time Module

問題

スキャン インタフェースを使用するスタンドアロンの LabVIEW リアルタイムアプリケーションを開発していますが、アプリケーションをデプロイしようとすると、次のエラーが表示されます。
  • エラー -65536: XXX.vi のシェア変数で発生しました
  • エラー -65589: XXX.vi のシェア変数で発生しました
 
シェア変数を使用していない場合でも、これらのエラーが発生するのはなぜですか?

解決策

スキャン インターフェイスを使用したアプリケーションを開発する場合、スキャン エンジンはターゲットに即座にロードされません。スキャン エンジンが実行される前にリアルタイム アプリケーションがスキャンリソースの入力または出力にアクセスしようとすると、エラー-65536またはエラー-65589 が発生し、アプリケーションが終了します。

これを解決するにはいくつかの方法があります。
  • アプリケーションの初期化段階で、入力または出力への接続を試みる前に最大 10 秒程度待機する仕組みを用意します。
  • Whileループで繰り返し入力変数を読み取りI/O ノードから出力されるエラーをチェックする単純な VI を用意します。エラー コードが同時に -65536 または -65589 に等しくない場合、または定義された時間が経過した場合にのみ、While ループを停止します (永久に反復することを避けるため)。この実装の例を以下に添付します。