シリアルポートを使用/予約するプロセスの検索

更新しました Nov 17, 2018

使用製品

Driver

  • NI-VISA
  • NI-Serial

問題

VISAを通してシリアル(COM)ポートにアクセスしようとすると、VI_ERROR_RSRC_BUSYを返している、または他のリソースがビジーエラーとなるプログラムがあります。どのようなプロセスがCOMポートを使用しているのかを把握するにはどうすればよいですか?

解決策

シリアル(COM)ポートを使用しているプロセスを検索するには、次の手順を実行します。
 
  1. Process Explorerツールをダウンロードします。
     
  2. コントロール パネル>>デバイス マネージャーに移動します。デバイス マネージャーでポート(COMとLPT)に移動し、対象のシリアルポートを右クリックしてプロパティを選択します。

     
  3. 詳細タブを選択してプロパティフィールドをクリックし、サービスに変更します。ここに記載させている値を書き留めます。以下の例(NI USB-232)では、サービス値はNiSerUです。Process Explorerで検索する場合は、このフィールドの値に注目します。

     
  4. Process Explorerを開くと、下の画像に似た画面が表示されます。

     
  5. メニューのFind>>Find Handle or DLL...を選択します。新しいウィンドウがポップアップされ、デバイス マネージャー(この場合はNiSerU)から取得された値のハンドルまたはDLLサブストリングタイプのフィールドに表示されます。
     
  6. Searchをクリックすると、特定のハンドルを使用しているプロセスを示す結果が表示されます。たとえば、以下の検索では、USB-232はNIMax.exeで使用されている\Device\NiSerU1として表示されます。ここから、どのプロセスがシリアルポートリソースを使用しているかを知ることができます。

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

いいえ