Beam Benchドキュメント

シリアルポートへのアクセスが拒否される

ポートは一覧に表示されて選択もできますが、接続を試みるたびにアクセスエラーまたは権限エラーが即座に発生します。

表示される現象

ポートがドロップダウンに表示されます。ポートを選択してConnectをクリックすると、タイムアウトや数秒の試行後ではなく、すぐに失敗します。エラーにはポート名が含まれ、次のような内容が表示されます:

access denied opening COM7: Access is denied. Another application may already be using this serial port. Close other laser or serial software, unplug and reconnect the controller, then try again.(COM7を開けません。別のアプリが使用している可能性があります。他のレーザーまたはシリアルソフトを閉じ、コントローラーを接続し直してから再試行してください。)

表示内容はOSによって異なります。Windowsでは詳細に「Access is denied」と表示され、通常の原因である他のソフトウェアを閉じるよう案内されます。LinuxとmacOSでは詳細に「Permission denied」と表示され、代わりにシリアルデバイスの権限が原因であることが示されます:

access denied opening /dev/ttyUSB0: Permission denied. Your user account may not have permission to open serial devices. On Linux, add your user to the dialout group (or your distro's serial group), then log out and back in.(シリアルデバイスを開く権限がない可能性があります。Linuxではユーザーをdialoutグループに追加し、ログインし直してください。)

起きていること

ポート自体は存在し、Beam Benchからも認識できます。問題はポートを開くことです。一度にシリアルポートを開いた状態にできるプログラムは1つだけです。すでに別のプログラムがポートを開いているため、OSが2回目のオープンを拒否し、Beam Benchはハンドシェイク中のタイムアウトではなく、アクセス拒否として報告します。

Beam Benchが別のプログラムからポートを取り上げることはできません。解決するには、すでにポートを使用しているプログラムを見つけて閉じてください。

解決方法

Windowsの場合

ほとんどの場合、原因はここにあります。次を確認してください:

  • Arduino IDEでSerial Monitorを開いている、または同じCOMポートが選択されたボードが残っている。
  • PlatformIOのシリアルモニターが開いている、またはアップロードが進行中である。
  • PuTTYなどのシリアルターミナルがポートに接続されたままになっている。
  • ポートを開いたまま解放していないファームウェア書き込みツールがある。
  • 最小化されていても、別のレーザー加工ソフトが実行中である。
  • Beam Benchの2つ目のコピー、別のウィンドウ、または別のインスタンスがある。

Linuxの場合

エラーの詳細に「Permission denied」と表示される場合、Linuxではほとんどの場合、ユーザーアカウントがdialoutグループに所属していないことを意味します。これはプログラムがポートを使用中という問題ではなく、権限の問題です。別のプログラムがポートを使用している場合、Linuxでは通常、deniedではなくbusyと報告されます。解決方法についてはLinuxのシリアルポート権限を参照してください。

すでにdialoutグループに所属しているのにこのエラーが表示される場合は、排他的アクセスでポートを使用しているプログラムがないか確認してください。シリアルターミナル(screenminicom)、書き込みツール、またはBeam Benchの別のインスタンスなどが該当します。該当するプログラムを閉じてから再接続してください。

macOSの場合

頻度は低いですが、ルールは同じです。シリアルターミナルや、ポートを開いている別のプログラムがあると、Beam Benchはポートを開けません。該当するプログラムを閉じてから再接続してください。

多くの場合に有効な一般的な手順

  1. シリアルポートと通信する可能性のあるすべてのプログラムを閉じます。Arduino IDE、PlatformIO、シリアルターミナル、ファームウェア書き込みツール、別のレーザー加工ソフト、Beam Benchの2つ目のコピーなどです。
  2. コントローラーのUSBケーブルを抜きます。
  3. 数秒待ちます。
  4. ケーブルを再接続します。
  5. Beam Benchで再接続します。

ポートを使用しているプログラムが見つからない場合

再起動してください。再起動すると、追跡できないものも含め、保持されているすべてのポートが解放されます。再起動直後はBeam Benchに正常に接続でき、その後エラーが再発する場合は、再起動後に開いたプログラムが原因です。

まだ解決しない場合

On this page