CAN、DNET、またはLINデバイスをプログラム的にリセットする

更新しました Jan 26, 2023

使用製品

ソフトウェア

  • LabVIEW

ドライバ

  • NI-CAN
  • NI-DNET

問題

プログラムがクラッシュまたは中止して、NI-CANまたはNI-DNETオブジェクトが正しく閉じられませんでした。コードを再起動しようとすると、エラー -1074388986が発生します。デバイスをリセットするにはどうすればよいですか?

解決策

ncAction.viを使用してOpcode入力に定数を作成して、Resetを選択します。
 

リセットアクションは、まず停止アクションを発行し、書き込みキューからすべてのエントリを消去してから、CANまたはLINハードウェアをリセットします。CANハードウェアをリセットすると、CANエラーカウンタがゼロに設定され、CANコントローラはエラーアクティブ状態に戻ります。LINハードウェアをリセットすると、インタフェースはスレーブモードに戻り、スレーブタスクがすべてのLIN IDをサブスクライブするようにすべてのスレーブタスク応答キューエントリをリセットします。




 

リセットアクションは、開いている上位CANオブジェクトすべてに伝達されます。このVIの詳細については、NI-CAN Hardware and Software Manual and Specificationsを参照してください。
 

追加情報

以下のエラーは、CAN、DeviceNETまたはLINデバイスをリセットすることで解決できます。
 

Error -1074388986 occurred at ...
NI-CAN:  (Hex 0xBFF62006) The object is already open in another application.  Solutions: Ensure that only one application at a time uses an object , and that you close all objects prior to exiting your application (don't use LabVIEW toolbar's Abort button).

 

Error -1074388969 occurred at ...
NI-CAN: (Hex 0xBFF62017) This attribute's value must be provided prior to the Open. Solutions: Set the attribute using the Config function before the Open, and do not set the attribute at any later time; Do not configure multiple CAN Objects for the same ID.