Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.95/21: Рейтинг темы: голосов - 21, средняя оценка - 4.95
0 / 0 / 0
Регистрация: 07.05.2015
Сообщений: 73

Библиотека ComPort Library ver. 2.63 для Дельфи

04.10.2020, 17:56. Показов 4742. Ответов 33
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте Все !
Я использую для связи библиотеку ComPort Library ver. 2.63 .
При запуске готового ЕХЕ файла она как-то инициализирует ComPort и дальше я с ним работаю.
Подскажите как мне программно в нужный момент произвести снова инициализацию ComPorta ?
Перезапуск программы мне не нужен.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.10.2020, 17:56
Ответы с готовыми решениями:

Зависает передача в com порт 'ComPort Library ver. 4.11f'
зависает передача в комп порт в release в debug работает нормально :( Виндовс 10, ide 10.2 Токио try CS.Enter; ...

Не компилится с ComPort Library
Привет! Для того, чтобы программа запускалась на чужом компе, что делать прочитал в теме вверху, спасибо! Я использую ComPort Library...

ComPort library Потеря символов
Кто то может работал с этой библой, делаю отправку 10 символов по нажатию кнопки с поля Edit1, первые 10 символов улетают полностью при...

33
561 / 230 / 88
Регистрация: 11.07.2015
Сообщений: 817
04.10.2020, 19:55
Обычно
Закрытие порта
Delphi
1
ComPort.Close
Открытие порта
Delphi
1
ComPort.Open
Проверка соединения
Delphi
1
if ComPort.Connected then
0
04.10.2020, 20:02

Не по теме:

Цитата Сообщение от geb2010 Посмотреть сообщение
При запуске готового ЕХЕ файла она как-то инициализирует ComPort
Зачетная фраза от создателя программы...

0
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,608
05.10.2020, 01:44

Не по теме:

Цитата Сообщение от D1973 Посмотреть сообщение
Зачетная фраза от создателя программы...
Какой уж там Создатель?

0
0 / 0 / 0
Регистрация: 07.05.2015
Сообщений: 73
05.10.2020, 05:27  [ТС]
Я с Вами согласен, что программист еще тот, но ведь я начинающий самоучка, что ж Вы хотите?!
Спасибо за советы, сегодня попробую ...
0
Модератор
 Аватар для D1973
9905 / 6442 / 2455
Регистрация: 21.01.2014
Сообщений: 27,347
Записей в блоге: 3
05.10.2020, 06:33
Цитата Сообщение от geb2010 Посмотреть сообщение
но ведь я начинающий самоучка
Но ведь и код - у Вас... Вот и разберите его по косточкам, где там и что происходит... Допускаю даже, что код библиотеки Вам не доступен - ну и черт с ним, описание функций этой библиотеки у Вас же есть? Иначе как ей пользоваться-то? Вот и смотрите, какая функция отвечает за инициализацию - и вызывайте ее в нужный момент...
0
0 / 0 / 0
Регистрация: 23.09.2020
Сообщений: 3
05.10.2020, 09:41
Логины разные.
В своей программе я инициализирую СомПорт следующим кодом:

Delphi
1
2
3
4
5
6
7
8
9
  ComPort1.Port:='COM4';
  if not(ComPort1.Connected) then begin
    try
      ComPort1.Open;
    except
      messagedlg('У компьютера СомПорт не подключен или занят другим устройством!'+ chr(13) +
                 ' Попробуйте выбрать другой СомПорт !', mtInformation,[mbOk], 0);
    end;
  end;
Но возможно я решаю проблему не тем путем.
Суть проблемы: Есть прибор измеряющий скорость вала, выполненный на Ардуино, который связан с компьютером по RS485.
1) Если сначала включаем прибор, а затем программу на ПК, то все работает, данные ПК по запросу получает.
2) Если сначала запускается программа на ПК, а затем включается прибор, то данные ПК не принимает.
3) Я смотрел обмен данными на мониторе программы для программирования Ардуино и вижу, что запрос от ПК в прибор приходит и прибор посылает ответ, но ПК ответ не получает. Но если перезагрузить программу на ПК то все работает.
Поэтому я сделал вывод, что нарушается работа программы на ПК при приеме данных, поскольку запросы на прибор поступают и ответ посылается. Вот и решил, что при нарушении обмена делать инициализацию СомПорта для восстановления обмена, но возможно я не прав и что-то нарушается совсем другое.
0
Злостный нарушитель
 Аватар для Verevkin
10232 / 5661 / 1260
Регистрация: 12.03.2015
Сообщений: 26,238
05.10.2020, 09:49
Цитата Сообщение от geb2003 Посмотреть сообщение
Я смотрел обмен данными на мониторе программы для программирования Ардуино и вижу, что запрос от ПК в прибор приходит и прибор посылает ответ, но ПК ответ не получает. Но если перезагрузить программу на ПК то все работает.
Поэтому я сделал вывод, что нарушается работа программы на ПК при приеме данных, поскольку запросы на прибор поступают и ответ посылается. Вот и решил, что при нарушении обмена делать инициализацию СомПорта для восстановления обмена, но возможно я не прав и что-то нарушается совсем другое.
Попробуй принимать данные от ардуины левой программой мониторинга порта.

0
0 / 0 / 0
Регистрация: 07.05.2015
Сообщений: 73
06.10.2020, 05:06  [ТС]
Большое спасибо !
При использовании программы Терминал стало понятно, что во время включения прибора в сети RS485 появляются произвольны данные, которые принимаются программой ПК и нарушают нормальный прием данных.
0
0 / 0 / 0
Регистрация: 23.09.2020
Сообщений: 3
09.10.2020, 09:54
Здравствуйте ВСЕ !
Проблема решена с помощью изменения кода программы при приеме данных.
Но устранено следствие, а хотелось бы найти причину появления помех в RS485 и устранить.
Может мне кто-нибудь помочь в этом вопросе ?
0
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,608
10.10.2020, 04:16
Никаких помех в RS485 не бывает.
Изучайте логический протокол общения с вашим устройством и пишите грамотную программу.
0
0 / 0 / 0
Регистрация: 07.05.2015
Сообщений: 73
10.10.2020, 04:54  [ТС]
northener
Я с Вами не согласен. У меня помехи в RS485 появляются только в момент включения и я думаю, что это наверно из-за переходных процессов. Поэтому и хочется понять, где конкретно в контроллере или в формирователе TTl - RS485 ?
Может сделать задержки на момент включения- но как и где ?
0
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,332
10.10.2020, 05:18
Через порт передаётся поток. Нужно вычитать всё, что там пришло и уже потом отправлять свой запрос и после него искать некий идентификатор своего ответа.
0
0 / 0 / 0
Регистрация: 07.05.2015
Сообщений: 73
10.10.2020, 09:24  [ТС]
Я так и делаю. Все работает, проблем нет. Просто мне хочется узнать - можно ли избавиться от помех, которые возникают при включении питания, с помощью электроники. Самый простой способ, который я сообразил, включение реле, которое подключает с задержкой RS485 к общей сети. Но это мне не очень нравится.
0
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,332
10.10.2020, 09:55
Цитата Сообщение от geb2010 Посмотреть сообщение
во время включения прибора в сети RS485 появляются произвольны данные
Что они содержат? Длина одинакова? Может, это прибор передаёт свои начальные данные?
При включении компьютерные мышки на RS232 тоже передают какие-то данные. Может, и тут так?
0
0 / 0 / 0
Регистрация: 07.05.2015
Сообщений: 73
10.10.2020, 10:35  [ТС]
Нет, длина разная, то 2 симола, то 5, то 1. Я предполагаю, что во время включения на входах модуля RS485 нет сигналов определяющих его работу, которые приходят от Ардуино, и поэтому может в сеть и проходит "бяка" ?
0
Эксперт .NET
 Аватар для Rius
13026 / 7591 / 1661
Регистрация: 25.05.2015
Сообщений: 23,090
Записей в блоге: 14
10.10.2020, 10:38
geb2010,
От помех при включении не избавиться.
Перед началом обмена с устройством надо сбросить буфер принятых данных. Для этого в WinAPI есть соответствующие функции.
0
561 / 230 / 88
Регистрация: 11.07.2015
Сообщений: 817
10.10.2020, 11:03
Цитата Сообщение от geb2010 Посмотреть сообщение
можно ли избавиться от помех
Надо усовершенствовать прошивку Ардуино.
0
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,608
11.10.2020, 02:01
Цитата Сообщение от geb2010 Посмотреть сообщение
northener
Я с Вами не согласен. У меня помехи в RS485 появляются только в момент включения и я думаю, что это наверно из-за переходных процессов.
Это чушь!
Больше 30 лет работаю с последовательными портами как на уровне микроконтроллеров, так и на уровне ПО для персональных компьютеров. Переходные процессы действительно могут сформировать на линии последовательного порта один ложный байт. Но два байта это уже очень маловероятно. Ну а уж 5 ложных байт - это ненаучная фантастика!
Цитата Сообщение от Rius Посмотреть сообщение
От помех при включении не избавиться.
От каких помех?
0
14 / 14 / 3
Регистрация: 24.03.2012
Сообщений: 175
11.10.2020, 02:32
Может не совсем по теме сабжа но, поддерживаю Northener - таймер разрешения работы по включению питания в конфиге это должно быть максимумом запускающегося контролера для компенсации помех на аппаратном уровне. Но был момент с которым столкнулся - funktionsrahmen для устройства, где в примерах API были указаны параметры, результат которых захватывал не верные значения указателя и после инициализации спорадически сыпало мусор.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.10.2020, 02:32
Помогаю со студенческими работами здесь

Библиотека TechNet Library
Кто-нибудь может подсказать, где найти информации об этой библиотеки(Библиотека TechNet Library): функции цели задачи Весь интернет...

Не подключается библиотека SmallBasic.Library
Здравствуйте подскажите пожалуйста , пытаюсь разобраться в этом примере и почему-то не подключается библиотека ...

Пустая библиотека Simulink Library Browser
Здравствуйте! После установки Matlab 2015a пытаюсь запустить Simulink Library Browser, а там пусто... ни одного блока нет... Как в данную...

Нужен очень инструмент для интенсивной работы с COMPort
Нужен очень инструмент для интенсивной работы с COMPort (кроме MSCOM).

Ищу исходники модуля ComSignal для работы с ComPort
Помогите откомпилировать программу для работы с Com портом, требовались файлы ComPort и ComSignal, ComPort нашел, а вот ComSignal.hpp и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru