Ошибка открытия последовательного порта com4 port busy

Ошибка открытия последовательного порта com4 port busy ардуино Сначала проверьте последовательные порты. Загрузите Windows, но не подключайте плату

Ошибка открытия последовательного порта com4 port busy ардуино

Сначала проверьте последовательные порты. Загрузите Windows, но не подключайте плату Arduino или ESP8266. На рабочем столе щелкните правой кнопкой мыши (ПКМ) по ярлыку Этот компьютер (Компьютер). В меню выберите Свойства. В окне Система щелкните по ссылке Диспетчер устройств. В окне Диспетчер устройств откройте Порты (COM и LPT). Должен присутствовать последовательный порт COM1.

Теперь воткните в USB порт кабель от Arduino или ESP8266. В диспетчере устройств должен появиться дополнительный COM порт. Я подключил NodeMCU v3 и появился дополнительный порт COM3.

Если порт определился, но никаких сообщений в монитор порта не выводится, то проверьте скорость порта. В настройках Arduino IDE выставьте скорость порта ту, которая прописана в скетче. В окне монитора порта нажмите кнопку Очистить вывод. После этого монитор порта должен заработать.

Если ничего не изменилось и присутствует только порт COM1, то значит у вас проблемы с последовательным портом.
В этом случае при запуске скетча в окне выдается сообщение «Порт недоступен», «Ошибка подключения последовательного порта», «Порт не найден» и т.п. После этого начинаются пляски с бубном — отключаются и снова подключаются кабели, перезагружается компьютер. Иногда это помогает, иногда — нет.
Вероятная причина ошибки порта — помехи при передаче данных по USB кабелю. Как это не банально, но чаще всего причина в некачественном кабеле. Не экономьте, купите качественный кабель. Вторая вероятная причина — слаботочный USB порт. Замените ненадёжный кабель и не используйте разбитые USB разъёмы.

По второй причине — недостаточно тока для питания Arduino или ESP8266. USB порт в материнской плате компьютера может быть запитан от источника с малым выходным током. Попробуйте самое простое — подключить Arduino к другому порту в надежде на то, он запитан от более мощного источника. Такое возможно, если USB портов несколько. Кардинальное решение — подключить Arduino или ESP8266 через USB хаб (USB — разветвитель) с внешним блоком питания с выходным током не менее 2 — 3 А.

Радиолюбители, умеющие паять, могут поступить проще — подпаять короткими проводами к разъему USB в параллель еще один разъем USB, в который завести от основного разъема два провода питания GND и +5В. Или купите такой кабель, если есть такая возможность. Такой прием используют фирмы, когда питания от одного разъема USB не хватает, например для питания жесткого диска, подключенного к порту USB (USB HDD). Таким образом устройство получит дополнительное питание от другого порта USB.

Ещё одно причина нехватки питания для портов USB — подключение к роутеру по Wi-Fi. Wi-Fi адаптер потребляет значительный ток и нагружает шину питания портов USB. В связи с этим отключите Wi-Fi адаптер и подключите компьютер к роутеру кабелем. Иногда это сразу может решить проблему.
Предпочтительно использовать компьютер с подключением клавиатуры и мыши к портам PS/2. Клавиатура и мышь с подключением по USB будут дополнительно нагружать шину +5В USB и питания для Arduino или Node MCU может не хватить. Отключите на время принтер, подключенный по USB, смартфон, подключенный по USB и другие устройства, подключенные к портам USB, без которых можно обойтись, так как они потребляют ток по шинам USB. Кроме того, они могут просто влиять на порты USB и вызывать сбои системы.
По возможности используйте десктоп с достаточно мощным блоком питания, который обеспечивает с запасом ток по шине +5В. Некоторые дешёвые материнские платы при подключении двух-трёх USB устройств уже начинают давать сбои.

Используйте короткий USB кабель, насколько это возможно. Это уменьшит помехи при передаче данных.
Не используйте USB удлинители, подключайте Arduino или ESP8266 непосредственно к USB портам компьютера на задней стенке системного блока. Не используйте USB разъёмы на передней панели системного блока или USB порты картридера. Они подключаются к материнской плате кабелями. Это увеличивает помехи при передаче данных.

Самый действенный способ снизить помехи это использовать USB кабель с ферритовыми фильтрами — цилиндрическими утолщениями из ферритовых колец на концах кабелей.

Фильтры бывают съемными, они надеваются на кабель и защелкиваются.

Можно изготовить фильтр самостоятельно. Возьмите ферритовое кольцо диаметром около 20 мм, притупите острые кромки наждачной бумагой, сделайте один виток кабеля вокруг сердечника и зафиксируйте кольцо на кабеле с помощью скотча или термоусадочной трубки.

Если использовать кольца небольшого диаметра, то никакой фиксации не понадобится. Например, я использовал два кольца, снятые с неисправной материнской платы. Только придется разрезать кабель и затем спаять его снова или припаять новый USB разъем.

Бывают ситуации, когда Arduino работает нормально, а при подключении ESP8266 появляются ошибки и скетч не работает. Такое может быть из-за того, что Wi-Fi передатчик модуля потребляет довольно значительный ток и для нормальной работы просто не хватает тока. Подключите ESP8266 через USB хаб с внешним блоком питания с выходным током 2-2.5-3 А. Также используйте для подключения короткие кабели с ферритовыми фильтрами на концах.
Желательно использовать Micro-USB или Mini-USB кабель с двумя USB разъемами на конце. Отвод с USB разъемом служит для подачи дополнительного питания. Радиолюбители могут без труда подпаять дополнительный USB разъем сами.

Если USB порты на материнской плате слабы по токам питания, то можно попробовать дополнительно подключить в PCI разъем контроллер USB. Подключите к этому контроллеру USB-мышь и USB-клавиатуру. К USB портам на материнской плате подключайте только Arduino или NodeMCU v3. К PCI разъему подводится более мощное питание. Один из таких контроллеров показан на фото:

Пробуйте подключаться к разным USB разъёмам компьютера, если их несколько, или разным разъёмам USB хаба.
Если ваш компьютер имеет порты USB2.0 и USB3.0, то пробуйте подключаться к тем и другим. Скорее всего лучшие результаты получите при подключении к USB2.0. Драйвер USB3.0 может работать некорректно.
Windows иногда просто не может определить порт. Проверьте контакты блока питания USB хаба в розетке сети. Если блок питания болтается, то о надёжной работе USB портов не может быть и речи.

Подключайте плату Arduino или ESP8266 в USB разъём после полной загрузки Windows.
При переключениях в другие порты номер порта может измениться. Проверяйте номер порта. В верхнем меню Arduino IDE выберите Сервис (Tools) -> Последовательный порт (Serial Port). Рядом с портом COM1 должен быть дополнительный порт. Поставьте галку, чтобы активировать его.

Работу COM порта и загрузку скетча визуально можно проверить по миганию светодиодов RX и TX на плате Arduino или по частому миганию светодиода рядом с Wi-Fi антенной на плате ESP8266 (NodeMCU v3).

Несмотря на все ухищрения, Windows 10 не открывает COM порт для Node MCU v3 (ESP-12E). Иногда подключает порт и тут же сбрасывает его и так без конца.
Подключил Node MCU v3 (ESP8266) через USB хаб с внешним блоком питания к компьютеру с Windows XP SP3. Установил драйвер ch341ser.exe и Arduino IDE 1.6.5. COM порт определяется и работает. В Windows XP COM порты определяются более надёжно. Проверил это на двух компьютерах с Windows XP с Intel и AMD процессорами.
Однако некоторые скетчи уже не используют приложения Win32 и при компиляции выдаётся ошибка. В этом случае потребуется как минимум 64-разрядная Windows 7.
COM порты виртуальные и, как в любой программе, возможен сбой при определении порта.

Семипортовые USB хабы (разветвители), как пишут в интернете, имеют две микросхемы по 4 порта. Последний порт первой микросхемы используется для подключения второй микросхемы. В итоге получается 3+4 порта. Можно попробовать подключать Arduino или Node MCU в разные порты хаба.

В Windows откройте Диспетчер устройств, раскройте Порты (COM и LPT). Не закрывайте это окно. Начинайте пробовать разные кабели, разные порты и разные варианты подключения оборудования и, как только порт надёжно определится в Диспетчере устройств, запомните эту конфигурацию оборудования.

И последнее и, может быть, самое главное. Большинство бестрансформаторных блоков питания (зарядных устройств), выполненных в корпусе-вилке, не обеспечивают заявленных характеристик. Например, у зарядного устройства 5V 2.1А, показанного ниже, при токе 0,9 А напряжение на выходе падает до 3,8 В. Сомневаюсь в том, что такой блок питания вообще может отдать в нагрузку ток 2А.

При подозрениях на проблему с питанием используйте трансформаторный блок питания. По габаритам он будет намного больше, зато надежно обеспечит расчетные ток и напряжение.
Рекомендации по блоку питания (из книги «Неисправности вашего ZX SPECTRUM» С.-Петербург, 1991):
«Советуем Вам выбрать самую простую, но и самую надежную схему: трансформатор — диодный мост — конденсатор фильтра — микросхема КР142ЕН5А в стандартном включении — блокировочный конденсатор.
Не стремитесь к чрезмерной миниатюризации! Трансформатор должен иметь мощность не менее 15 Вт, провод вторичной обмотки диаметр не менее 0,7 мм и напряжение на вторичной обмотке под нагрузкой 7-8 Ом должно быть 9-10 В.
Диодный мост подойдет любой из серий КЦ402, КЦ405. Конденсатор фильтра должен быть не менее 4000 мкФ, а рабочее напряжение — не ниже 16 В. На выходе ЕН5А поставьте блокировочный конденсатор 100-200 мкФ на 10-16 В. После сборки БП проконтролируйте напряжение на входе ЕН5А при подключенной нагрузке 5 Ом — должно быть 10,5-11 В.
Если это не так — отмотайте или домотайте несколько витков вторичной обмотки трансформатора. Затем проконтролируйте под нагрузкой 5 Ом напряжение на выходном разъеме БП — должно быть 4,9 — 5,1 В. При низком напряжении придется взять более толстый провод для подсоединения разъема.
При окончательной проверке БП посмотрите на осциллографе переменную составляющую напряжения на пределе 10 мВ (под нагрузкой 5 Ом) — заметных отклонений от прямой линии не должно быть.
В случае неудачи емкость фильтрующего конденсатора нужно увеличить.
Наконец, позамыкайте выход БП накоротко и убедитесь, что ЕН5А не выходит из строя.»
Вместо диодного моста КЦ можно применть более компактный диодный мост DB157S.

Некоторые экземпляры ЕН5А имеют на выходе напряжение чуть меньше 5 В. Для регулировки выходного напряжения соберите блок питания по схеме:

Номиналы резисторов R1 и R2 вы можете рассчитать сами. Например, после мостика на конденсаторе фильтра под нагрузкой у вас получилось напряжение 15 В. Напряжение на стабилитроне составит 3-3,3 В. Значит на резисторе R1 должно упасть 15 — 3 = 12 В. Ток стабилитрона КС133А 10 мА, т. е. 0,01 А. По закону Ома R = V/I. R = 12/0.01= 1200 Ом = 1,2 кОм. Также можно попробовать стабилитрон КС119А (напряжение стабилизации 1,9 В). Резистор R2 можно взять сопротивлением раза в три больше, чем R1, чтобы не так сильно шунтировал стабилитрон. R2 будет 3 — 3,6 кОм. Мощность рассеивания тоже рассчитывается по закону Ома. Резистор 0,25 Вт будет с большим запасом по мощности рассеивания. Для регулировки напряжения удобно использовать подстроечный многооборотный резистор СП5-3 или аналогичный.
Аккуратнее с регулировкой напряжения, а то выведите из строя само устройство. Вначале для проверки блока питания подключите нагрузку — резистор 5 Ом 5 Вт. Ток нагрузки будет 1 А. Резистором R2 установите напряжение на выходе + 5,0 ÷ 5,25 В.

Для повышения напряжения на выходе есть более простой вариант — включить в разрыв между выводом ЕН5А и общим проводом диод Д9Б. Так сделано в блоке питания для компьютера Специалист — М (ж. «Моделист-конструктор» № 4, 1991 г.)

Если есть подозрения на глюки системы, то тогда можно попробовать переустановить систему Windows.

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

Резюме
Чтобы устранить ошибки последовательного порта —
► используйте для питания Arduino или ESP8266 USB порты с достаточным выходным током или USB хаб с внешним блоком питания.
► используйте для подключения короткие USB кабели с ферритовыми фильтрами около разъемов.
► попробуйте разные версии драйвера CH340, если не поможет — тогда другую версию Windows.
► используйте качественный кабель со всеми сигнальными жилами, а не кабель от зарядного устройства.

Последнее редактирование 23 сентября 2022 г.

Источник

Arduino.ru

Ошибка открытия последовательного порта «COM3»

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Во первых извените но на схеме допустил одну ошибку, нарисовал, что резистор подключается к Pin9, а на самом деле использовал Pin8.

Ну а во вторых: После того как моя плата (после неудавшейся заливки скетча) простояла подключенная к УСБ порту длительное время я заметил, что микросхема mege328 начала греться, не придется ли тогда менять этот контроллер и если да то как его перепрошить?

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Переткни шнур, не поможет — перезагрузись и пропробуй снова

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

И перетыкал шнур и перезагружался, даже просто выключал комп и немного погодя включал обратно все равно не хочет заливать программу в ардуино и выдает сообщение об ошибке какое я привел выше

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Значить, порт падох. Или СН340

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Что это CH340 и можно ли его заменить

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Вообще на своей плате Arduino UNO я не нашол микросхемы CH340, а к светодиодам TX и RX дорожки подводятся от mega16U2

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Вполне может быть.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

И что тогда моей плате пришол конец, ее больше нельзя будет востановить

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Приветствую всех форумчан!

У моей платы Arduino ONU что то случилось с преобразователем интерфейса USB и теперь на плату я не могу загрузить новый скетчь ардуино. Но вот в книге Джереми Блум «Изучаем ARDUINO» в описании устройства плат я прочитал, цитирую: «Если у вас есть программатор, то можно удалить загрузчик из своего контроллера ATmega и программировать его с помощью внешнего программатора.». Это что можно значит достать из платы микроконтроллер ATmega328 и в другой монтажной плате через разъем внутрисхемного программирования ISP прошить его программой созданной в Arduino_IDE, но только как это можно сделать и какую программу использовать для прошивки.

Источник

Offline

Зарегистрирован: 29.02.2020

До недавнего времени работало ардуино в качестве выключателя света по времени. Чтобы код не сбивался использовал батарею 18650 через развязку с ИБП.

Но вот спустя почти пол года реле не щелкнуло и свет не выключился. Я подумал, что слетела прошивка, и решил записать заново простой тест на 5 минут:

#define PIN_RELAY 10 // Определяем пин, используемый для подключения реле

// В этой функции определяем первоначальные установки

void setup()

{

  pinMode(PIN_RELAY, OUTPUT); // Объявляем пин реле как выход

  digitalWrite(PIN_RELAY, HIGH); // Выключаем реле — посылаем высокий сигнал

}

void loop()

{

  digitalWrite(PIN_RELAY, LOW); // Включаем реле — посылаем низкий уровень сигнала

  delay(300000);

  digitalWrite(PIN_RELAY, HIGH); // Отключаем реле — посылаем высокий уровень сигнала

  delay(60000);

Но в итоге у меня не может записать на ардуино, вот код ошибки:

Ошибка открытия последовательного порта «COM4» (Port busy)

Ошибка открытия последовательного порта «COM4» (Port busy)

Ошибка открытия последовательного порта «COM4» (Port busy)

Ошибка открытия последовательного порта «COM4» (Port busy)

Ошибка открытия последовательного порта «COM4» (Port busy)

Ошибка открытия последовательного порта «COM4» (Port busy)

Ошибка открытия последовательного порта «COM4» (Port busy)

Ошибка открытия последовательного порта «COM4» (Port busy)

Ошибка открытия последовательного порта «COM4» (Port busy)

Ошибка открытия последовательного порта «COM4» (Port busy)

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xb4

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xb4

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xb4

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xb4

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xb4

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xb4

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xb4

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xb4

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xb4

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xb4

Пробовал с разными портами все одно и тоже

  • #159

Господа здравствуйте. Возникла проблема пытаюсь прошить ESP12F, но выдает вот такую ошибку:

Executable segment sizes:
ICACHE : 32768 — flash instruction cache
IROM : 231820 — code in flash (default or ICACHE_FLASH_ATTR)
IRAM : 27613 / 32768 — code in IRAM (IRAM_ATTR, ISRs…)
DATA : 1496 ) — initialized variables (global, static) in RAM/HEAP
RODATA : 992 ) / 81920 — constants (global, static) in RAM/HEAP
BSS : 25608 ) — zeroed variables (global, static) in RAM/HEAP
Скетч использует 261921 байт (27%) памяти устройства. Всего доступно 958448 байт.
Глобальные переменные используют 28096 байт (34%) динамической памяти, оставляя 53824 байт для локальных переменных. Максимум: 81920 байт.
C:UsersVenusAppDataLocalArduino15packagesesp8266toolspython33.7.2-post1/python3 C:UsersVenusAppDataLocalArduino15packagesesp8266hardwareesp82663.0.0/tools/upload.py —chip esp8266 —port COM7 —baud 115200 —before default_reset —after hard_reset write_flash 0x0 C:UsersVenusAppDataLocalTemparduino_build_166446/Blink.ino.bin
esptool.py v3.0
Serial port COM7
Traceback (most recent call last):
File «C:UsersVenusAppDataLocalArduino15packagesesp8266hardwareesp82663.0.0/tools/upload.py», line 66, in <module>
esptool.main(cmdline)
File «C:/Users/Venus/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/3.0.0/tools/esptoolesptool.py», line 3551, in main
esp = chip_class(each_port, initial_baud, args.trace)
File «C:/Users/Venus/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/3.0.0/tools/esptoolesptool.py», line 271, in init
self._port = serial.serial_for_url(port)
File «C:/Users/Venus/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/3.0.0/tools/pyserialserialinit.py», line 90, in serial_for_url
instance.open()
File «C:/Users/Venus/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/3.0.0/tools/pyserialserialserialwin32.py», line 64, in open
raise SerialException(«could not open port {!r}: {!r}».format(self.portstr, ctypes.WinError()))
serial.serialutil.SerialException: could not open port ‘COM7’: OSError(22, ‘������� �������������� ����������.’, None, 433)
serial.serialutil.SerialException: could not open port ‘COM7’: OSError(22, ‘������� �������������� ����������.’, None, 433)

Именно последние 3 строчки не понятны. Порт компьютер видит, и в ардуино и в диспетчере устройств. Но если я даже пытаюсь просто открыть Монитор порта, вылезает вот такая ошибка — Ошибка открытия последовательного порта «COM7» (Port busy)
Пытался перезагружать и usb порт менял, все бестолку. Можете подсобить?

  • изображение_2022-02-08_151428.png

    411.7 KB
    Просмотры: 8

  1. При попытке загрузки пустого скетча на Arduino Leonardo Eth возникает ошибка:

    processing.app.debug.RunnerException
    at cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:132)
    at processing.app.debug.Compiler.upload(Compiler.java:166)
    at processing.app.Sketch.upload(Sketch.java:1167)
    at processing.app.Sketch.exportApplet(Sketch.java:1141)
    at processing.app.Sketch.exportApplet(Sketch.java:1113)
    at processing.app.Editor$DefaultExportHandler.run(Editor.java:2380)
    at java.lang.Thread.run(Thread.java:745)
    Caused by: processing.app.SerialException: Ошибка создания последовательного порта «COM4»
    at processing.app.Serial.touchForCDCReset(Serial.java:92)
    at cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:121)
    … 6 more
    Caused by: jssc.SerialPortException: Port name — COM4; Method name — openPort(); Exception type — Port busy.
    at jssc.SerialPort.openPort(SerialPort.java:164)
    at processing.app.Serial.touchForCDCReset(Serial.java:86)
    … 7 more

    Так же, при подключенной ардуинке, при попытки открыть Монитор последовательного порта возникает ошибка — Ошибка открытия последовательного порта «COM4» (Port busy)

    Драйвера все переустанавливал. Номер порта менял. Ничего не помогает, идей как почить нету.

  2. «COM4» (Port busy) — порт занят. До этого работало или всегда такую ошибку дает?. Компьютер перезагружать пробовали?

  3. Иногда достаточно просто вытащить шнур с ардуино и опять вставить…

  4. Перезагружать, выключать всё и включать пробовал :( Порт выбран правильно, в диспетчере задач проверял. Порт 100% ничем не занят. И если порт не тот стоит, то ошибка другая совсем. Дома все работает отлично, но на работе заставить работать не получается.

  5. А что за ось стоит? x64 или x32?

  6. И на этот вопрос ответте пожалуйста.

  7. Что значит «пустой скетч»?И зачем его загружать?А Blink загружается?

  8. Про пустой скетч я не заметил(НУБ — НУБОМ:confused:). Метко!

  9. Пустой скетч при загрузке всегда ошибку выдаст

  10. А может он имел ввиду:

    void setup()
    {}
    void loop()
    {}
     
  11. На работе ничего не работало и не работает. Дома все работало и работает :) Пустой скетч это я про:

    void setup() {
    // put your setup code here, to run once:
    }

    void loop() {
    // put your main code here, to run repeatedly:
    }

    Операционка Windows 8.1 x64 Corp в рабочем домене.

  12. Ооо. Привычные лаги 64-х битной 8.1. Подозреваю что дома стоит 32?

  13. А у вас какая версия компилятора?

  14. Нифигасебе:p, вы решили проблему?

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

  16. А в порты во все пробовали пихать?

  17. Не всегда.У меня загрузился.XP Home & Arduino UNO (original)

    Эксперименты с пустым скетчем?А другие то загружаются?

  18. Случайно на работе не стоит ограничений на использование стороннего софта, типа нельзя флешки использовать???

  19. processing.app.debug.RunnerException
    at cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:160)
    at cc.arduino.UploaderUtils.upload(UploaderUtils.java:78)
    at processing.app.SketchController.upload(SketchController.java:709)
    at processing.app.SketchController.exportApplet(SketchController.java:682)
    at processing.app.Editor$DefaultExportHandler.run(Editor.java:2190)
    at java.lang.Thread.run(Thread.java:745)
    Caused by: processing.app.SerialException: Error touching serial port ‘COM7’.
    at processing.app.Serial.touchForCDCReset(Serial.java:87)
    at cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:144)
    … 5 more
    Caused by: jssc.SerialPortException: Port name — COM7; Method name — openPort(); Exception type — Port not found.
    at jssc.SerialPort.openPort(SerialPort.java:167)
    at processing.app.Serial.touchForCDCReset(Serial.java:81)
    … 6 more
    Та же проблема, что делать?
    На мой взгляд не проходит обмена команды на вход в состояние прошивки.

I tried your Processing sketch, and it does detect and try to connect to the serial port, but fails for some reason.

Processing «code» can include a try catch block to help you diagnose the issue. Using this modified sketch, you can print the errors to the console window.

import processing.serial.*;

Serial ser_port;                // for serial port
PFont fnt;                      // for font
int num_ports;
boolean device_detected = false;
String[] port_list;
String detected_port = "";

void setup() {
  size(400, 200);                         // size of application window
  background(0);                          // black background
  fnt = createFont("Arial", 16, true);    // font displayed in window

  println(Serial.list());

  // get the number of detected serial ports
  num_ports = Serial.list().length;
  // save the current list of serial ports
  port_list = new String[num_ports];
  for (int i = 0; i < num_ports; i++) {
    port_list[i] = Serial.list()[i];
  }
}

void draw()
{
  background(0);
  // display instructions to user
  textFont(fnt, 14);
  text("1. Arduino or serial device must be unplugged.", 20, 30);
  text("   (unplug device and restart this application if not)", 20, 50);
  text("2. Plug the Arduino or serial device into a USB port.", 20, 80);

  // see if Arduino or serial device was plugged in
  if ((Serial.list().length > num_ports) && !device_detected) {
    device_detected = true;
    // determine which port the device was plugged into
    boolean str_match = false;
    if (num_ports == 0) {
      detected_port = Serial.list()[0];
    } else {
      // go through the current port list
      for (int i = 0; i < Serial.list().length; i++) {
        // go through the saved port list
        for (int j = 0; j < num_ports; j++) {
          if (Serial.list()[i].equals(port_list[j])) {
            break;
          }
          if (j == (num_ports - 1)) {
            str_match = true;
            detected_port = Serial.list()[i];
          }
        }
      }
    }
  }
  else{
    text("else", 20, 110);
  }
  // calculate and display serial port name
  if (device_detected) {
    text("Device detected:", 20, 110);
    textFont(fnt, 18);
    text(detected_port, 20, 150);
    try{
      ser_port = new Serial(this, detected_port, 9600);
    }
    catch(Exception e){
      // Print detailed error information to the console.
      System.err.println(e);
      e.printStackTrace();
    }
  }
  else{
    text("Device NOT detected:", 20, 140);
  }
}

These are the errors I get on my computer using a Arduino Uno.

    at processing.serial.Serial.<init>(Unknown Source)
    at processing.serial.Serial.<init>(Unknown Source)
    at sketch_211210a.draw(sketch_211210a.java:85)
    at processing.core.PApplet.handleDraw(PApplet.java:2475)
    at processing.awt.PSurfaceAWT$12.callDraw(PSurfaceAWT.java:1547)
    at processing.core.PSurfaceNone$AnimationThread.run(PSurfaceNone.java:313)
java.lang.RuntimeException: Error opening serial port /dev/tty.wchusbserial620: Port busy
java.lang.RuntimeException: Error opening serial port /dev/tty.wchusbserial620: Port busy

Another issue is with this part of the code: if (device_detected). The draw() function is like the Arduino loop() function in that it keeps looping through the code. It is repeatedly trying to make a new serial connection to the same port, which MAY explain why the Port busy error message is repeated in the console error messages.

Using Processing IDE 3.5.3, there is a errors tab at the bottom of the console window. I am getting 2 errors there which don’t seem to be involved with the port connection issue.

If you install the controlP5 library in the Processing IDE, you can use this port testing sketch to see the Port ID change every time you create a new connection with it. I suspect your sketch may connect to the Arduino the first time through the draw() function, then it keeps trying to connect to the same port which is busy.

// Serial port(s) connection tester. Processing version 3.5.3.
// For a list of all the ScrollableList Controller methods available,
// use: "ControlP5.printPublicMethodsFor(ScrollableList.class);"
// to print the entire list of the 165 functions to the console.
import controlP5.*;
import java.util.*;
import processing.serial.*;

ControlP5 cp5;
Serial myPort;
Textlabel outputWindowLine1, outputWindowLine2;
String portName;

void setup(){

  size(500, 431);

  // Use a font larger than the default "6px".
  ControlFont font = new ControlFont(createFont("Verdana", 14));

  // ALL CAPS is the default font for the control. Why?
  Label.setUpperCaseDefault(false);

  // Configure a controlP5 ScrollableList.
  cp5 = new ControlP5(this);
  cp5.addScrollableList("dropdown")
    .setPosition(0, 50)
    .setSize(500, 400)
    .setBarHeight(50)
    .setItemHeight(30)
    .setFont(font)
    .addItems(GetSerialPortList())
    .setType(ScrollableList.LIST)
    .setLabel("--- Click on a port name to try and connect to it ---")
    ;

  outputWindowLine1 = cp5.addTextlabel("outputWindowLine1Label")
    .setText("The list of port names is "scrollable".")
    .setPosition(0, 0)
    .setColorValue(0)
    .setFont(font)
    ;

  outputWindowLine2 = cp5.addTextlabel("outputWindowLine2Label")
    .setText("Press any character on the keyboard to reload the list.")
    .setPosition(0, 25)
    .setColorValue(0)
    .setFont(font)
    ;
}

void draw(){
  background(255);
}

// User selects a drop down item. Works like a JavaScript onChange()
// event, except you can click on the same item multiple times, this
// code will execute again on each mouse "click" of the same item.
void dropdown(int n){

  // Create a serial connection and send some
  // chars to the "USB to Serial Converter".
  try{

    // Get the port name.
    portName = Serial.list()[n];

    // If you don't do this, you can't re-connect to the same port again.
    // Re-connecting to the same port gives you a new "myPort ID" and may
    // take a few seconds.
    if(myPort != null){
      myPort.clear();
      myPort.stop();
    }

    // Create a Serial Port connection.
    myPort = new Serial(this, portName, 9600);

    // User message.
    outputWindowLine1.setText("Connected to portName: " + portName);
    outputWindowLine2.setText("myPort = " + myPort);

  }
  catch(Exception e){

    // User message.
    outputWindowLine1.setText("Error connecting to portName: " + portName);
    outputWindowLine2.setText("");

    // Print detailed error information to the console.
    System.err.println(e);
    e.printStackTrace();
  }
}

// Refresh the dropdown list of serial port names.
void keyPressed(){
  cp5.get(ScrollableList.class, "dropdown").setItems(GetSerialPortList());
  outputWindowLine1.setText("Serial port list refreshed!");
  outputWindowLine2.setText("");
}

// Get a List of the serial port names.
List GetSerialPortList(){
  List serialPortList = Arrays.asList(Serial.list());
  return serialPortList;
}

I tried your Processing sketch, and it does detect and try to connect to the serial port, but fails for some reason.

Processing «code» can include a try catch block to help you diagnose the issue. Using this modified sketch, you can print the errors to the console window.

import processing.serial.*;

Serial ser_port;                // for serial port
PFont fnt;                      // for font
int num_ports;
boolean device_detected = false;
String[] port_list;
String detected_port = "";

void setup() {
  size(400, 200);                         // size of application window
  background(0);                          // black background
  fnt = createFont("Arial", 16, true);    // font displayed in window

  println(Serial.list());

  // get the number of detected serial ports
  num_ports = Serial.list().length;
  // save the current list of serial ports
  port_list = new String[num_ports];
  for (int i = 0; i < num_ports; i++) {
    port_list[i] = Serial.list()[i];
  }
}

void draw()
{
  background(0);
  // display instructions to user
  textFont(fnt, 14);
  text("1. Arduino or serial device must be unplugged.", 20, 30);
  text("   (unplug device and restart this application if not)", 20, 50);
  text("2. Plug the Arduino or serial device into a USB port.", 20, 80);

  // see if Arduino or serial device was plugged in
  if ((Serial.list().length > num_ports) && !device_detected) {
    device_detected = true;
    // determine which port the device was plugged into
    boolean str_match = false;
    if (num_ports == 0) {
      detected_port = Serial.list()[0];
    } else {
      // go through the current port list
      for (int i = 0; i < Serial.list().length; i++) {
        // go through the saved port list
        for (int j = 0; j < num_ports; j++) {
          if (Serial.list()[i].equals(port_list[j])) {
            break;
          }
          if (j == (num_ports - 1)) {
            str_match = true;
            detected_port = Serial.list()[i];
          }
        }
      }
    }
  }
  else{
    text("else", 20, 110);
  }
  // calculate and display serial port name
  if (device_detected) {
    text("Device detected:", 20, 110);
    textFont(fnt, 18);
    text(detected_port, 20, 150);
    try{
      ser_port = new Serial(this, detected_port, 9600);
    }
    catch(Exception e){
      // Print detailed error information to the console.
      System.err.println(e);
      e.printStackTrace();
    }
  }
  else{
    text("Device NOT detected:", 20, 140);
  }
}

These are the errors I get on my computer using a Arduino Uno.

    at processing.serial.Serial.<init>(Unknown Source)
    at processing.serial.Serial.<init>(Unknown Source)
    at sketch_211210a.draw(sketch_211210a.java:85)
    at processing.core.PApplet.handleDraw(PApplet.java:2475)
    at processing.awt.PSurfaceAWT$12.callDraw(PSurfaceAWT.java:1547)
    at processing.core.PSurfaceNone$AnimationThread.run(PSurfaceNone.java:313)
java.lang.RuntimeException: Error opening serial port /dev/tty.wchusbserial620: Port busy
java.lang.RuntimeException: Error opening serial port /dev/tty.wchusbserial620: Port busy

Another issue is with this part of the code: if (device_detected). The draw() function is like the Arduino loop() function in that it keeps looping through the code. It is repeatedly trying to make a new serial connection to the same port, which MAY explain why the Port busy error message is repeated in the console error messages.

Using Processing IDE 3.5.3, there is a errors tab at the bottom of the console window. I am getting 2 errors there which don’t seem to be involved with the port connection issue.

If you install the controlP5 library in the Processing IDE, you can use this port testing sketch to see the Port ID change every time you create a new connection with it. I suspect your sketch may connect to the Arduino the first time through the draw() function, then it keeps trying to connect to the same port which is busy.

// Serial port(s) connection tester. Processing version 3.5.3.
// For a list of all the ScrollableList Controller methods available,
// use: "ControlP5.printPublicMethodsFor(ScrollableList.class);"
// to print the entire list of the 165 functions to the console.
import controlP5.*;
import java.util.*;
import processing.serial.*;

ControlP5 cp5;
Serial myPort;
Textlabel outputWindowLine1, outputWindowLine2;
String portName;

void setup(){

  size(500, 431);

  // Use a font larger than the default "6px".
  ControlFont font = new ControlFont(createFont("Verdana", 14));

  // ALL CAPS is the default font for the control. Why?
  Label.setUpperCaseDefault(false);

  // Configure a controlP5 ScrollableList.
  cp5 = new ControlP5(this);
  cp5.addScrollableList("dropdown")
    .setPosition(0, 50)
    .setSize(500, 400)
    .setBarHeight(50)
    .setItemHeight(30)
    .setFont(font)
    .addItems(GetSerialPortList())
    .setType(ScrollableList.LIST)
    .setLabel("--- Click on a port name to try and connect to it ---")
    ;

  outputWindowLine1 = cp5.addTextlabel("outputWindowLine1Label")
    .setText("The list of port names is "scrollable".")
    .setPosition(0, 0)
    .setColorValue(0)
    .setFont(font)
    ;

  outputWindowLine2 = cp5.addTextlabel("outputWindowLine2Label")
    .setText("Press any character on the keyboard to reload the list.")
    .setPosition(0, 25)
    .setColorValue(0)
    .setFont(font)
    ;
}

void draw(){
  background(255);
}

// User selects a drop down item. Works like a JavaScript onChange()
// event, except you can click on the same item multiple times, this
// code will execute again on each mouse "click" of the same item.
void dropdown(int n){

  // Create a serial connection and send some
  // chars to the "USB to Serial Converter".
  try{

    // Get the port name.
    portName = Serial.list()[n];

    // If you don't do this, you can't re-connect to the same port again.
    // Re-connecting to the same port gives you a new "myPort ID" and may
    // take a few seconds.
    if(myPort != null){
      myPort.clear();
      myPort.stop();
    }

    // Create a Serial Port connection.
    myPort = new Serial(this, portName, 9600);

    // User message.
    outputWindowLine1.setText("Connected to portName: " + portName);
    outputWindowLine2.setText("myPort = " + myPort);

  }
  catch(Exception e){

    // User message.
    outputWindowLine1.setText("Error connecting to portName: " + portName);
    outputWindowLine2.setText("");

    // Print detailed error information to the console.
    System.err.println(e);
    e.printStackTrace();
  }
}

// Refresh the dropdown list of serial port names.
void keyPressed(){
  cp5.get(ScrollableList.class, "dropdown").setItems(GetSerialPortList());
  outputWindowLine1.setText("Serial port list refreshed!");
  outputWindowLine2.setText("");
}

// Get a List of the serial port names.
List GetSerialPortList(){
  List serialPortList = Arrays.asList(Serial.list());
  return serialPortList;
}

Статья

При присоединении абсолютно нового COM устройства или USB устройства, Windows обнаруживает благодаря Plug-n-Play и присваивает ему номер COM порта в диапазоне от 1 до 255. Если же вы подключаете устройство еще раз, ему прикрепляется тот же, зарезервированный за ним ранее COM порт. Если же вы подключаете еще одно новое устройство, то ему назначается другой незанятый номер COM порта.

Некоторые программы (чаще старые), способны работать только на двухзначных номерах COM портов, и не работают с COM100 и более. Некоторые очень древние программы работают только портами с COM1-COM9. Как поступить, если устройство получило не нужный COM порт? Можно ли удалить номер зарезервированного COM порта?

Смена номера COM порта для приложения или устройства

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

  1. Запустим диспетчер устройств (Device Manager) таким образом: set devmgr_show_nonpresent_devices=1
    start devmgmt.msc
  2. В меню консоли выберем View->Show Hidden Devices.
  3. Разверните ветку Ports (COM &LPT) и в списке найдите устройство, которому назначен нужный COM порт (бледная иконка означает, что данный COM порт назначен, но в настоящий момент это устройство не подключено). Щелкните по нему ПКМ и выберите Uninstall
  4. Освобожденный COM порт может быть назначен другому устройству. Найдите в этой же ветке свое устройство, откройте окно его свойств (Properties). Затем перейдите на вкладку PortSettings и нажмите кнопку Advanced. В выпадающем списке выберите неиспользуемый COM порт.

Приведенная выше методика не всегда позволяет освободить занятый COM порт. В этом случае придется прибегнуть к редактированию реестра.

Сброс привязок COM портов через реестр

Информация об используемых COM портах хранится в ключе реестра CommDB в разделеHKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCOM Name Arbiter

    Откройте редактор реестра (regedit) и перейдите в указанную ветку.

Как проверить чем занят com порт

Требования.
Статья применима для Windows 2000/XP/Vista/7.

Информация.
При установке некоторых программ иногда возникает проблема с доступностью порта. Т.е. вы устанавливаете программу, а она вам говорит: «Извините, но предпочитаемый порт номер занят!». И самое интересное программа не говорит чем или кем занят порт.

Как определить каким процессом (программой) занят порт.
1. В меню «Пуск» выберите пункт «Выполнить«;
2. В поле «Открыть» наберите команду cmd и нажмите кнопку «ОК»;

Откроется окно командной строки, примерно такого вида:

3. Наберите команду netstat -ano и нажмите кнопку «Ввод» (Enter) на клавиатуре;

Результатом выполнения данной команды, должен быть список всех активных подключений, с ip-адресами и номерами портов.

4. Теперь в колонке «Локальный адрес», находим нужный нам порт и записываем его идентификатор в колонке «PID»;

Например порт номер 80, его идентификатор 440.

5. Снова открываем меню «Пучк» и выбираем пункт «Выполнить«;
6. В поле «Открыть» вводим команду taskmgr и нажимаем кнопку «ОК»;
7. В окне «Диспетчер задач Windows» переходим на вкладку «Процессы«;
8. В главном меню открываем пункт «Вид» и выбираем пункт «Выбрать столбцы. «;
9. В окне «Выбор столбцов» находим пункт «Идентиф. процесса (PID)» и ставим рядом с ним галочку;
10. Нажимаем кнопку «ОК»;
11. Теперь в окне «Диспетчер задач Windows«, нажимаем на заголовок столбца «PID», для сортировки процессов по возрастанию;
12. Находим номер нашего процесса 440 и в столбце «Имя образа«, смотрим какой процесс занимает наш порт;

Каждый раз при подключении нового COM устройства или USB устройства (верно для модем, мобильных телефонов, Bluetooth, конвертеров последовательных портов в USB и т.п.), Windows определяет его через механизм Plug-n-Play и назначит ему некий номер COM порта в диапазоне от 1 до 255. При повторном подключении этого же устройств, ему назначается ранее зарезервированный за ним COM порт. Новым устройствам выдается первый незанятый номер COM порта. Не редкость, когда внешние устройства при подключении создают сразу несколько COM портов (в моем случае после подключения адаптер Bluetooth, в системе появилось сразу 10 . новых COM портов).

Ряд приложений (как правило, довольно древних), способны адресовать только двухзначные номера COM портов, отказываясь работать с COM100 и выше. В самых «запущенных» вариантах, такие программы корректно работают только портами с COM1-COM9. Что делать, если подключенное устройство получило высокий номер? Можно ли сбросить нумерацию для зарезервированных COM портов и удалить назначенные порты? Попробуем разобраться на примере Windows 7.

Как правило в свойствах оборудования изменить выданный COM порт на другой не получается, т.к. система пишет, что все «низкие» COM порт уже используются (in use).

Смена номера COM порта для конкретного устройства

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

Приведенная выше методика не всегда позволяет освободить занятый COM порт. В этом случае придется прибегнуть к редактированию реестра.

Сброс привязок COM портов через реестр

Информация об используемых COM портах хранится в ключе реестра CommDB в разделе HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCOM Name Arbiter

    Откройте редактор реестра (regedit) и перейдите в указанную ветку.


Значение параметра ComDB в двоичном формате определяет список COM портов зарезервированных в системе. Каждый бит определяет состояние соответствующего порта (от 1 до 255). К примеру, если нам нужно оставить резервацию только для COM3, hex значение ComDB будет равно 04 (0000 0100)

Однако именно забитость портов является одной из первостепенных причин некорректной работы сети: зависаний, торможений, «лагов». Каждая из программ хоть и использует свой порт, но порой несколько программ пересекаются в одном из них, и случается своего рода «затык». Как обнаружить пресловутый «затык» – расскажем далее.

Самая распространённая проблема занятости порта встречается именно с портом номер 80 – одним из самых основных маршрутов у многих программ.

Итак, нам нужна наша любимая командная строка. Вызывается она через меню «Выполнить», которое, в свою очередь, вызывается комбинацией горячих клавиш Windows+R. В меню «Выполнить» вводим cmd – мы в командной строке.

Здесь нам необходима команда netstat -ano (прописываем именно так, с пробелом перед дефисом и без пробела без него!).

Мы увидим множество локальных адресов. все они имеют примерный вид xxx.xxx.x.xxx:PORT. Да, порт прописывается после двоеточия.

Выбираем конкретный порт, проводим пальцем до последнего столбца и узнаем ID процесса. Запоминаем число ID. На этом работа с командной строкой закончена.

Запускаем диспетчер задач (как его вызвать, знают все: Ctrl+Alt+Del или Ctrl+Shift+ESC).

Если вы используете систему Windows 8/8.1, то ID прописываются изначально во вкладке «Подробности». Если же Ваша OS – Windows 7 или ниже, то для начала идём в меню «Вид», выбираем пункт «Выбрать столбцы» и ставим галочку напротив PID.

Подтвердив изменения, мы увидим столбец с ID. Ищем число ID из командной строки, и тем самым легко узнаём, какой процесс, а следовательно – какая программа использует тот или иной порт. Итак, теперь Вы знаете, как проверить порты на предмет забитости, а это очень даже полезное умение в условиях большого количества программ, работающих в сети Интернет. Удачи!

Com порт занят другим приложением штрих м

Каждый раз при подключении нового COM устройства или USB устройства (верно для модем, мобильных телефонов, Bluetooth, конвертеров последовательных портов в USB и т.п.), Windows определяет его через механизм Plug-n-Play и назначит ему некий номер COM порта в диапазоне от 1 до 255. При повторном подключении этого же устройств, ему назначается ранее зарезервированный за ним COM порт. Новым устройствам выдается первый незанятый номер COM порта. Не редкость, когда внешние устройства при подключении создают сразу несколько COM портов (в моем случае после подключения адаптер Bluetooth, в системе появилось сразу 10 . новых COM портов).

Ряд приложений (как правило, довольно древних), способны адресовать только двухзначные номера COM портов, отказываясь работать с COM100 и выше. В самых «запущенных» вариантах, такие программы корректно работают только портами с COM1-COM9. Что делать, если подключенное устройство получило высокий номер? Можно ли сбросить нумерацию для зарезервированных COM портов и удалить назначенные порты? Попробуем разобраться на примере Windows 7.

Как правило в свойствах оборудования изменить выданный COM порт на другой не получается, т.к. система пишет, что все «низкие» COM порт уже используются (in use).

Смена номера COM порта для конкретного устройства

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

Приведенная выше методика не всегда позволяет освободить занятый COM порт. В этом случае придется прибегнуть к редактированию реестра.

Сброс привязок COM портов через реестр

Информация об используемых COM портах хранится в ключе реестра CommDB в разделе HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCOM Name Arbiter

    Откройте редактор реестра (regedit) и перейдите в указанную ветку.


Значение параметра ComDB в двоичном формате определяет список COM портов зарезервированных в системе. Каждый бит определяет состояние соответствующего порта (от 1 до 255). К примеру, если нам нужно оставить резервацию только для COM3, hex значение ComDB будет равно 04 (0000 0100)

Нет связи с фискальником, аппарат не найден. И другие порой драматические сообщения вашей кассовой программы.

Итак, постараемся раскрыть наиболее часто встречающиеся проблемы (мой практический опыт) – разберем главные проблемы и способы их решения в случае если это возможно сделать собственными силами.

1) Просто включите на 5-7 секунд кассовый аппарат, и включите его заново.
2) Перегрузите кассовый компьютер и загрузите заново кассовую программу именно так как вы это делаете обычно.

3) Обычно фискальный аппарат просто отвалился от компьютера, т.е или его забыли включить (проверьте что бы горел соответствующий светодиод как правило зеленого цвета, красный обычно загорается при ошибке в работе ккм – бумага закончилась, датчик не отработал нужным образом, и тд)

При этом в подавляющем большинстве случаев даже в случае с красным светодиодом – т.е. в случае если аппарат висит в ошибке связь будет – и программа просто напишет в информационном сообщении что либо о конкретной ошибке – что не нравиться аппарату или что вы сделали не правильно – закончилась бумага, или ошибка такая.. да бывают тяжелые случае как например залили аппарат водой, или от перепада напряжения – скакнуло напряжение и погорела половины приборов в магазине в том числе и касса, в таких случаях понятное дело касса с красным светодиодом не найдется. Т.е кассовая программа напишет, нет связи ККТ ШТРИХ, АТОЛ, ПРИМ, но это из разрядов тяжелых случаев с которыми в любом случае самостоятельно не справиться.

4) Проверьте кабель соединяющий com-порт компьютера или юзб порт компьютера с соответствующем разъемом кассового аппарат, а при использовании переходника и надежность фиксации разъемов самого переходника USB-COM.

При использовании разъема USB – важно вставить соединительный провод именно в тот разъем в котором и был подключен аппарат. Так как фискальные аппараты работают все равно в эмуляции com-порта, и каждому гнезду USB присваиваться свой номер – который в конечном итоге фигурирует во всех настройках кассовой программы. Но об этом еще по говорим ниже…

Вообще подавляющее большинство вариантов такой ошибки решается именно таким способом – ПРОВЕРЯЕМ СМОТРИМ КАБЕЛИ – простой проверкой надежности контактов соединительного кабеля.

Однако что же делать если аппарат включен – горит зеленым, провода проверили, компьютер перегрузили, а связи по прежнему нет?

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

Рассмотрим простой случай у нас кассовая программа работает под операционной системой Windows – не важно какой версии и/или поколения.

Проще всего выйти из программы – закрыть ее полностью (не гося – не закрывая смены если она отрыта конечно). Просто выходим (!Не сворачиваем, а выходим – закрываем – завершаем программу кассира).

Затем в зависимости от производителя кассы- (чаще всего из фискальников встречаются ШТРИХ и АТОЛ – в силу обратно же легкости их настройки и подключения к большинству существующих кассовых программ) заходим в меню Пуск –Все программы – АТОЛ технологии или Штрих затем в подпунктах находим «Драйвер ККМ –ФР любой версии – с любыми циферками»
Запускаем утилиту.

Затем в правой части программы с низу находим кнопочку «Свойства» нажимаем ее. Открывается под-окно, в нем ищем справа кнопочку «Поиск»«Поиск оборудования». Нажимает ее.

Кассовые аппараты порт

Открывается третье подокно. В нем нажимаем кнопочку «Поиск» или «Начать поиск». Здесь мы видим все com-порты компьютера, в том числе и виртуальные. В случае если оборудование – фискальник найден – высвечивается номер ком-порта, скорость работы ком порта фискальника, и модель аппарата.

Запомнив эти данные мы закрываем наше крайнее окно и в преведущем устанавливаем соответствующие запомненные нами значения. Жмем кнопку «Проверки связи».

Если в «Строке состоянии:» или строке «Код ошибки:» в нижней части высветился номер и название кассового аппарата, то все сделано правильно, и в случае с 1С-кой достаточно часто этого достаточно. Так как данные настройки драйвера автоматически берутся многими 1с –ками.

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

Здесь продолжим уже рассмотренные выше капризи юзб.. В случае с USB – это может объясняться тем что шнурок от кассы просто о вынули – или он сами вывалился из разъема и его воткнули по ошибки в соседний не заметив этого. НЕ смотря на то, что разъемы одинаковые, но в случае с кассами каждому их юзби разъемов присваивается виртуальный com-порт. И у каждого гнезда он свой. И если в случае с обычным принтером иногда виндовс прощает это, в случае с кассой такой номер не пройдет. Поэтому просто пометьте какое гнездо USB вы отвели под кассовый аппарат (к прикручивать ЮЗБ не возможности ).

В случае с родным com – портом, нумерация поменяться не могла, но комп-порт с данным номером может занять другое приложение. (существует два вида реализации программных продуктов – порт занимается лишь во время выполнения операции или он занимается конкретным приложением в момент его загрузки и не освобождается – становиться не доступным для других до момента завершения -закрытия данного приложения).

Иногда по невнимательности вы можете просто запустить дважды например 1-ку, при этом вторая с значительной долей вероятности может уже не найти фискальник, так как порт занят первым (в 1c – ке– вариантов реализации работы с компортом столько же сколько и программистов))).

Подробно с принсринами каждого шага о том как первоначально настроить кассу ФР для работы с компьютером (запуск, выбор портов, скорости, и тд) написано здесь:

В случае с другой скоростью аппарата: варианты скорее всего будут такими:

1) Аппарат забирали в ремонт, или просто перенастраивали – и не вернули его старые параметры обмена –т.е. скорость работы его интерфейса – com порта.

Т.е. любой фискальник может работать на следующих скоростях: 4800, 9600, 19200, 57000, 115000. Наиболее распространенные: 111500, и 9600, а так еже иногда 4800. В случае с использованием последнего – при пробитии кассового чека с значительной дополнительной информацией – длинным чеком с длинным полным наименованием товаров – может наблюдаться увеличение времени пробития чека в 2-3 раза в сравнении с использованием скорости ком-порта в 115 200 Бит. Т.е пробитие простого чего без дополнительной текстовой информации (в виде наименований товара, большого длинного клише – логотипа, просто рекламной информации) по скорости исполнения проводиться практически одинаково, так как сами суммы чека передаются при любой скорости почти мгновенно, а вот в случае если необходимо передать дополнительную информации в случае с 4800 наблюдается явное заметное снижение производительности – скорости работы аппарата. Хотя конечно не смертельное, и не всегда как уже писалось выше многими заметное.

Однако мы отвлеклись, описывая влияние скорости печати чеков от скорости обмена. Т.е. в фискальнике можно установить любую из указанных скоростей, но точно такую же скорость нужно устанавливать и в кассовой программе. В противном случае программа его не найдет.

2)Так же сброситься на 4800 скорость может по следующим причинам:
В случае продукцией Штрих – был сделан селф-тест – проверочный тест –т.е. аппарат переключили с зажатой кнопкой протяжки – аппарат прошел тест – распечатал техническую информацию и тестовый символы для проверки качества печати термоголовки, после переключения он вышел из данного состояния теста, но скорость его останется на 4800. В случае с продукцией Штрих М или (ПТК) – ФР из-за не совсем удачного расположения кнопки протяжки – данное явление периодически наблюдается в виде самопроизвольного перехода аппарата в данный режим за счет недооджима кнопки протяжки в следствии слишком малого места между корпусом и самой кнопкой.

3) Третий вариант более плачевен, аппарат обнулился, т.е. исчез заголовок- вместо названия вашей фирмы печатается например слово «Торговый объект», улетела дата на несколько лет назад (к году выпуска прошивки аппарата). В таком случае просто выключите аппарат и вызовите мастера, и лучше обойтись без попыток пробития или закрытия смены. А проверяется все просто снимаем х-отчет – документа который ни чего не делает, ни чего не двигает, а просто снимает оперативную сводку по кассе без каких либо изменений в содержании счетчиков оной.

Однако мы обратно отвлеклись..

4) слетели настройки в программы или в драйвере – очень редко, но все же не исключен и здесь вариант с вирусами на компьютере или самовольном обновлении например с операционной системой Window 8 (где для разрешения работы драйвера после стандартного обновления необходимо перегружаться по F8, и разрешать конкретному приложению работу.. безопасность мля..).

Вариант с вирусами которые до такой степени «съели систему» призрачен. Так как кроме данной проблемы обычно начинаются проблемы в работе кассовой программы и операционной системы в целом, а не только в проблемах с связью аппарата и компьютера.

Уф, устал, наверное пока хватит.. Вообще конечно сложно вот так запихнуть в одну статью не «..хнуемое» однако если будет время и желание подраскоем тему и дальше..

Каждый раз при подключении нового COM устройства или USB устройства (верно для модем, мобильных телефонов, Bluetooth, конвертеров последовательных портов в USB и т.п.), Windows определяет его через механизм Plug-n-Play и назначит ему некий номер COM порта в диапазоне от 1 до 255. При повторном подключении этого же устройств, ему назначается ранее зарезервированный за ним COM порт. Новым устройствам выдается первый незанятый номер COM порта. Не редкость, когда внешние устройства при подключении создают сразу несколько COM портов (в моем случае после подключения адаптер Bluetooth, в системе появилось сразу 10 . новых COM портов).

Ряд приложений (как правило, довольно древних), способны адресовать только двухзначные номера COM портов, отказываясь работать с COM100 и выше. В самых «запущенных» вариантах, такие программы корректно работают только портами с COM1-COM9. Что делать, если подключенное устройство получило высокий номер? Можно ли сбросить нумерацию для зарезервированных COM портов и удалить назначенные порты? Попробуем разобраться на примере Windows 7.

Как правило в свойствах оборудования изменить выданный COM порт на другой не получается, т.к. система пишет, что все «низкие» COM порт уже используются (in use).

Смена номера COM порта для конкретного устройства

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

Приведенная выше методика не всегда позволяет освободить занятый COM порт. В этом случае придется прибегнуть к редактированию реестра.

Сброс привязок COM портов через реестр

Информация об используемых COM портах хранится в ключе реестра CommDB в разделе HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCOM Name Arbiter

    Откройте редактор реестра (regedit) и перейдите в указанную ветку.


Значение параметра ComDB в двоичном формате определяет список COM портов зарезервированных в системе. Каждый бит определяет состояние соответствующего порта (от 1 до 255). К примеру, если нам нужно оставить резервацию только для COM3, hex значение ComDB будет равно 04 (0000 0100)

Ошибка открытия КОМ-порта

Я
   1ctube

06.04.19 — 13:01

Здравствуйте. Подключаем ККМ к 1С, и при тесте устройства получаем ошибку: Тест успешно выполнен. Ошибка открытия КОМ порта.

Как его открыть? А возможно это из-за того, что в 1С указана скорость 115200, а в диспетчере устройств нахожу COM1 и на вкладку параметры порта  указано 9600 в графе бит в секунду?

   Garykom

1 — 06.04.19 — 13:08

>Как его открыть

Скорее всего никак, для вас.

«Наймите специалиста»©

   1ctube

2 — 06.04.19 — 13:12

(1) Хотелось бы самим получить опыт. Вы уже сталкивались с такой проблемой? Если да, то можете подсказать как устранить выше описанную ошибку?

   Garykom

3 — 06.04.19 — 13:20

Очень просто, но для этого надо обладать некоторыми знаниями, опытом и навыками.

Например тупой вопрос а драйвер от ККТ стоит? Через тест драйвера ККТ видится, подключается и работает?

Понимаете что описанных вами сведений (вы в курсе сколько разных версий/конф 1С существуют и разных ККТ драйверов и прочих мелочей) недостаточно чтобы решить траблу.

   Garykom

4 — 06.04.19 — 13:21

Тест драйвера не из 1С а нативный от производителя ККТ.

   Garykom

5 — 06.04.19 — 13:23

«Ошибка открытия КОМ порта» чаще всего означает что порт уже открыт другим приложением.

Далее сами подумайте что это значит.

   1ctube

6 — 06.04.19 — 14:01

(3) Драйвер от ККМ стоит, при подключении через утилиту я вижу что сама ККМ определилась(в сервисной утилите устройства). Подлкючаем к ПК через интерфейсный кабель по C0M — порту.

Конфигурация 1С БП 3.0

(5) Хм, тогда нужно думаю надо посмотреть какие приложения занимают этот порт

   hhhh

7 — 06.04.19 — 14:08

(6) наверно, забыли утилиту драйвера выключить. Вот она и занимает порт.

   1ctube

8 — 06.04.19 — 14:14

(7) Хм, возможно. Спасибо, посмотрим

   Kigo_Kigo

9 — 06.04.19 — 14:27

а вы точно тот ком порт указываете, на котором висит ККМ? сделайте поиск оборудования

можно сменить номер ком порта

  

Kigo_Kigo

10 — 06.04.19 — 14:28

Скорости заявленные в свойствах компорта и в тесте драйвера не связаны, ккм работает по скорости  в тесте драйвера ККМ

TurboConf — расширение возможностей Конфигуратора 1С

ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.

Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.

Понравилась статья? Поделить с друзьями:
  • Ошибка отправки сообщения тандерберд
  • Ошибка открытия последовательного порта com3 port busy arduino
  • Ошибка открытия sam неподдерживаемый формат ключа сессии sam
  • Ошибка открытия последовательного порта com1 port busy
  • Ошибка открытия com порта fito вики принт 57 ф