Проблема с подключением к COM порту.

Ответить


Этот вопрос предназначен для предотвращения автоматической отправки форм спам-ботами.
Смайлики
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :arrow: :| :mrgreen: :geek: :ugeek:

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[flash] ОТКЛЮЧЕН
[url] ВКЛЮЧЁН
Смайлики ВКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Проблема с подключением к COM порту.

Re: Проблема с подключением к COM порту.

admin » 17 янв 2017, 10:48

Хорошо. Релизная версия будет выпущена в конце недели.
Можете пока использовать отладочную версию.

Re: Проблема с подключением к COM порту.

Pavell » 17 янв 2017, 10:44

ну вот - шикардос) теперь все завелось и работает замечательно. Протестировал и на блютус порте и на проводном и на виртуальном.
при отключении питания на устройстве в лог пишется ошибка "устройство не отвечает", "ошибка записи в порт".. потом при включении питания устройства связь восстанавливается.
вот лог файл
сначала тестировал COM10 блютус
потом COM11 проводной USB-SERIAL чип CH340
затем COM2 виртуальный мост от ELTIMA
т.е. я сначала запускал опрос, потом отключал устройство, затем включал.
на виртуальном мосту порт всегда открыт и там просто устройство на другом конце переставало отвечать. ошибки записи в ком порт не было вродеб.
спасибо за оперативность и профессионализм.

Re: Проблема с подключением к COM порту.

admin » 17 янв 2017, 10:12

1) Протестируйте на отладочной версии. Удалена проверка доступности COM порта.
http://lectussoft.com/programs/debug/Modbus/ServOPC.zip
Нужно распаковать ServOPC.exe в каталог сервера.
По умолчанию: "C:\Program Files (x86)\Lectus Modbus OPC and DDE server"

2) Из-за некорректной работы драйвера порт зависнет после переподключения - отключения и подключения OPC клиента
или ошибки при чтении/записи порта.

Re: Проблема с подключением к COM порту.

Pavell » 16 янв 2017, 20:49

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

Re: Проблема с подключением к COM порту.

admin » 16 янв 2017, 20:28

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

Re: Проблема с подключением к COM порту.

Pavell » 16 янв 2017, 19:49

ну в общем все стало ясно.
общение с портом терминальной программы и другого орс сервера начинаются командами:
000161: Create Request (DOWN), 2017-01-16 19:49:49.0780133 +490.1343545 (1. Device: Стандартный последовательный порт по соединению Bluetooth (COM10))
Process 0x1a60 (Terminal.exe) attempted to open the device


000162: Create Request (UP), 2017-01-16 19:49:50.7764510 +1.6984377 (1. Device: Стандартный последовательный порт по соединению Bluetooth (COM10))
Process 0x1a60 (Terminal.exe) create request status: 0x00000000
дальше идет запрос скорости, остальной фигни и собственно работа с портом.

а Lectus сервер делает так:
001287: Create Request (DOWN), 2017-01-16 20:20:28.0536721 +69.4213979 (1. Device: Стандартный последовательный порт по соединению Bluetooth (COM10))
Process 0x10ac (ServOPC.exe) attempted to open the device


001288: Create Request (UP), 2017-01-16 20:20:29.8522286 +1.7995468 (1. Device: Стандартный последовательный порт по соединению Bluetooth (COM10))
Process 0x10ac (ServOPC.exe) create request status: 0x00000000


001291: Create Request (DOWN), 2017-01-16 20:20:29.8588464 +0.0062825 (1. Device: Стандартный последовательный порт по соединению Bluetooth (COM10))
Process 0x10ac (ServOPC.exe) attempted to open the device


001292: Create Request (UP), 2017-01-16 20:20:30.2485029 +0.3896565 (1. Device: Стандартный последовательный порт по соединению Bluetooth (COM10))
Process 0x10ac (ServOPC.exe) create request status: 0xc0000225
т.е. он спустя 6 тысячных секунд после создания нулевого статуса о том что порт окрылся опять пытается открыть этот порт. и спустя 400 мс создает статус 225 типа что ничего не получилось.
Удивительно, но такой алгоритм (повторное открытие порта) проходит с другими драйверами, т.е. повторный запрос открытия порта, потом статус 000000 выходит а потом начинает работать с портом. а с этим драйвером такое дело не прокатывает.

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

Re: Проблема с подключением к COM порту.

Pavell » 16 янв 2017, 18:28

блин сразу первая ссылка в гугле на работающий сниффер.) сейчас разберусь что там и как.

Re: Проблема с подключением к COM порту.

admin » 16 янв 2017, 17:59

Можно посмотреть разницу работы с COM портом и на демо версии снифера COM порта.
Для примера:
http://www.eltima.com/ru/products/serial-port-monitor/
http://www.serial-port-monitor.com/
и другие: https://www.google.ru/?gws_rd=ssl#newwi ... r+x64+free

Re: Проблема с подключением к COM порту.

Pavell » 16 янв 2017, 17:49

Ну понятно что проблема с COM10, но вопрос почему?
Драйвера этих портов: (ссылки на скриншоты на яндекс диске)

COM11
COM2
COM10

т.е. файл драйвера btmodem.sys Стандартный последовательный порт по соединению Bluetooth . Драйвер от майкрософта и с ним работают все терминальные программы, и другие серверы.
Затык где-то в инициализации.. может быть ввести задержку при повторном открытии порта после инициализации? может быть драйвер ожидает подтверждения закрытия от блютус модуля HC-05 и не успевает его получить? и на модуле остается открытым порт? но модуль HC-05 довольно распространенная и удобная штука очень хотелось бы чтобы с ней тоже можно было работать с помощью вашего сервера, а то у всех работает, а у вас нет)
Я конечно поищу сниффер портов, но пару лет назад искал безрезультатно, пока щас проводами припаялся к контроллеру.
но все равно ваш сервер лучший) вот этот небольшой ньюанс решить и вообще будет огонь. тип данных регистр с возможностью побитовой обработки регистра просто отлично работает. как я понял он берет регистр, заменяет в нем нужные биты и записывает весь регистр стандартной командой записи.. сначала все искал где он coils записывает). еще в тип данных "произвольная" надо бы на вкладках чтения и записи сделать флаг типа "добавлять адрес устройства в начало строки" чтоб можно было копировать в другое устройство и не переписывать адреса.

Re: Проблема с подключением к COM порту.

admin » 16 янв 2017, 16:29

1) Какая то проблема с COM10. При тестировании порта открытие/закрытие прошли нормально.
При попытке использования порт не открывается.

2) Судя по логу другие порты работают нормально: COM2, COM11.

Разбирайтесь с COM10.

Вернуться к началу