Документация Beam Bench

Доступ к последовательному порту запрещен

Порт отображается и выбран, но каждая попытка подключения немедленно завершается ошибкой доступа или разрешений.

Что вы видите

Порт отображается в раскрывающемся списке. Вы выбираете его, нажимаете Connect, и подключение немедленно завершается с ошибкой, а не после тайм-аута или нескольких секунд ожидания. В сообщении указано имя вашего порта, например:

доступ запрещен при открытии COM7: Доступ запрещен. Возможно, другой application уже использует этот последовательный порт. Закройте другие программы для работы с лазером или последовательным портом, отключите и снова подключите контроллер, затем повторите попытку.

Формулировка зависит от ОС. В Windows подробное сообщение содержит текст "Доступ запрещен" и предлагает закрыть другие программы, что обычно и является причиной. В Linux и macOS подробное сообщение содержит текст "В доступе отказано", а причина указывает на разрешения для последовательного устройства:

доступ запрещен при открытии /dev/ttyUSB0: В доступе отказано. Возможно, у вашей учетной записи нет разрешения на открытие последовательных устройств. В Linux добавьте пользователя в группу dialout (или в группу последовательных устройств, используемую вашим дистрибутивом), затем выйдите из системы и войдите снова.

Что происходит

Порт существует, и Beam Bench его видит, проблема возникает при его открытии. Одновременно открыть последовательный порт может только одна программа. Другая программа уже открыла его, поэтому операционная система отклоняет вторую попытку открытия, а Beam Bench сообщает об отказе в доступе вместо ожидания тайм-аута во время установления соединения.

Beam Bench не может забрать порт у другой программы. Исправить ситуацию можно только на вашей стороне: найдите программу, которая уже использует порт, и закройте ее.

Исправление

Если вы используете Windows

В Windows это происходит почти всегда. Проверьте следующее:

  • Arduino IDE с открытым Serial Monitor или платой, по-прежнему выбранной на том же COM-порту.
  • Монитор последовательного порта PlatformIO или процесс загрузки, который еще не завершился.
  • Терминал последовательного порта, например PuTTY, оставленный подключенным к порту.
  • Инструмент прошивки, который открыл порт и не освободил его.
  • Другая запущенная программа для гравировки, даже если она свернута.
  • Вторая копия Beam Bench, другое окно или другой экземпляр.

Если вы используете Linux

В сообщении об ошибке указано dialout. В Linux это почти всегда означает, что ваша учетная запись не входит в группу dialout. Это проблема разрешений, а не занятый другой программой порт: когда порт действительно использует другая программа, Linux обычно сообщает, что он занят, а не что доступ запрещен. См. раздел Разрешения последовательного порта в Linux, чтобы устранить проблему.

Если вы уже входите в группу dialout, но ошибка сохраняется, проверьте, не удерживает ли порт другая программа с исключительным доступом: терминал последовательного порта (screen, minicom), инструмент прошивки или другой экземпляр Beam Bench. Закройте программу и подключитесь снова.

Если вы используете macOS

Это бывает реже, но правило то же: терминал последовательного порта или другая программа с открытым портом не позволяет Beam Bench открыть его. Закройте программу и подключитесь снова.

Общие действия, которые устраняют большинство проблем

  1. Закройте все программы, которые могут обращаться к последовательному порту: Arduino IDE, PlatformIO, терминал последовательного порта, инструмент прошивки, другую программу для гравировки и вторую копию Beam Bench.
  2. Отключите USB-кабель контроллера.
  3. Подождите несколько секунд.
  4. Подключите кабель снова.
  5. Подключитесь в Beam Bench.

Если не удается найти программу, удерживающую порт

Перезагрузите компьютер. Перезагрузка освобождает все занятые порты, даже те, которые не удается отследить. Если сразу после перезагрузки Beam Bench подключается нормально, а позднее ошибка появляется снова, причиной является программа, которую вы открыли в промежутке.

Проблема не решена?

On this page