Доступ к последовательному порту запрещен
Порт отображается и выбран, но каждая попытка подключения немедленно завершается ошибкой доступа или разрешений.
Что вы видите
Порт отображается в раскрывающемся списке. Вы выбираете его, нажимаете 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 открыть его. Закройте программу и подключитесь снова.
Общие действия, которые устраняют большинство проблем
- Закройте все программы, которые могут обращаться к последовательному порту: Arduino IDE, PlatformIO, терминал последовательного порта, инструмент прошивки, другую программу для гравировки и вторую копию Beam Bench.
- Отключите USB-кабель контроллера.
- Подождите несколько секунд.
- Подключите кабель снова.
- Подключитесь в Beam Bench.
Если не удается найти программу, удерживающую порт
Перезагрузите компьютер. Перезагрузка освобождает все занятые порты, даже те, которые не удается отследить. Если сразу после перезагрузки Beam Bench подключается нормально, а позднее ошибка появляется снова, причиной является программа, которую вы открыли в промежутке.
Проблема не решена?
- Машина не подключается: более общие сбои подключения, включая неправильный порт и неправильную скорость передачи данных.
- Разрешения последовательного порта в Linux: настройка группы
dialoutв Linux. - Панель диагностики подключения: просмотр журнала событий во время попытки подключения.
- Напишите в группе Facebook, указав ОС и какие еще программы были открыты в момент возникновения проблемы.