Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.55/107: Рейтинг темы: голосов - 107, средняя оценка - 4.55
4 / 4 / 2
Регистрация: 20.06.2013
Сообщений: 30

Передача данных через Com порт

20.06.2013, 21:17. Показов 21269. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день форумчане! Мне с помощью программы "free-serial-port-monitor" удалось считал данные, которыми через com порт обменивались центральный компьютер и контроллер (в виде hex кода:
Запрос:10.06.2013 13:59:24.42264

68 36 36 68 80 80 6C 00 01 84 09 00 00 00 00 00
00 00 00 00 E2 00 89 02 00 00 12 00 01 21 FF 32
00 00 41 C8 51 C8 61 C8 71 07 C8 76 08 FF FF FF
FF FF FF 04 01 F4 00 05 00 00 CD 16

Ответ:10.06.2013 13:59:24.51664 (+0.0938 seconds)

68 14 14 68 80 80 28 01 01 01 E2 00 94 02 92 40
12 00 00 21 FF 32 00 01 DA 16 ).
Подскажите пожалуйста...Возможно ли взять этот hex код и с помощью программы написанной на Delphi, послать запрос на контроллер????Если есть исходники такой программы поделитесь пожалуйста.... Заранее спасибо!!!!!
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.06.2013, 21:17
Ответы с готовыми решениями:

Передача и приём данных через COM порт
Задача такая, нужно через ком порт передавать и принимать пачки байтов, всё это по протоколу modbus rtu. Установил библиотеки ком порта...

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

Прием данных через USB порт
кто-нить может подсказать компоненты для работы с USB из Delphi, если точнее нужно считывание передаваемых данных

27
0 / 0 / 0
Регистрация: 13.01.2016
Сообщений: 8
10.04.2016, 09:56
Студворк — интернет-сервис помощи студентам
Доброго времени суток... разобрался на вашем програмее... еше раз спасыбо...
при приеме даннх можно смотрет как от ASCII..... до Int32 меня как раз интересует Int32 всн работает шоколадно...
есть вопрос при приеме данних первые 4 символа смотрет в ASCII врежиме а далнеишие Int32.. если можно автоматическии переключатся потому что Int32 делает конвертацию из HEX десятичное... вот пример от контроллела идет данние INPUT (ASCII врежиме) потом 073A8C29 HEX виде... программа делает конвертацию и полючаю десятичное число что я и хотел... как можно при приеме данних первые 4 символа смотрет в ASCII врежиме а далнеишие Int32.. что можно менят исходнике...
заранее благодарен.
жду вашего ответа

Добавлено через 14 минут
flatgad
Передача данных через Com порт
Ком порт.rar + исходники
на етом программе нужно переделка
0
geJI<|>eP
 Аватар для flatgad
188 / 187 / 19
Регистрация: 22.07.2010
Сообщений: 735
11.04.2016, 11:42
"на етом программе нужно переделка" так переделайте как Вам нужно.

"4 символа смотрет в ASCII врежиме а далнеишие Int32.. что можно менят исходнике..."
для этого Вам надо собрать строку когда Вы принимаете байты, потом делайте со строкой все что хотите. А вообще контроллер не знает такую вещь как ASCII он передает все в бинарном виде. )

Для переделки у меня времени нету, на форуме есть раздел фриланс разместите туда свое сообщение может кто Вам сделает.
0
0 / 0 / 0
Регистрация: 02.08.2017
Сообщений: 1
04.08.2017, 12:14
flatgad, спасибо за софт и исходники. Есть только маленький вопрос, программу скомпилировал, пишу команду, нажимаю Send и ничего не происходит, на конвертере Rx/Tx не мигает. Куда копать?
0
0 / 0 / 0
Регистрация: 05.04.2023
Сообщений: 6
06.04.2023, 12:39
Добрый день. Застрял с одним вопросом. Есть устройство на микроконтроллере, которое передаёт в Com порт пакет данных. В пакете есть разделители строк (0А, то есть #10). Как правильно отлавливать данные байты. что бы Memo делал перевод строки? Принимается всё в Memo, работа с Com портом через компонент BComPort.
Данные имеют вот такой тип:

Delphi
1
0A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 54 65 73 74 20 62 6F 61 72 64 20 4D 65 67 61 32 35 36 30 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 0A 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 4D 61 69 6E 20 70 61 72 61 6D 65 74 65 72 73 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0A 41 70 20 20 20 36 20 32 30 32 33 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 31 30 3A 34 34 3A 32 38 0A 42 6F 61 72 64 2D 3E 41 72 64 75 69 6E 6F 20 4D 65 67 61 20 32 35 36 30 2F 34 3B 20 20 41 72 63 68 2D 3E 41 56 52 2F 31 3B 20 20 43 6F 72 65 2D 3E 41 56 52 3B 3B 0A 53 65 6C 65 63 74 20 62 6F 61 72 64 2D 3E 42 4F 41 52 44 20 41 56 52 20 4D 45 47 41 32 35 36 30 3B 0A 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 49 6E 74 65 72 66 61 63 65 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0A
Пытаюсь "выловить" так:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
procedure TForm1.BComPort1RxChar(Sender: TObject; Count: Integer);
var
  S : String;
  Y, L : Integer;
 begin
    BComPort1.ReadStr(S, Count);  
     if CRLF.Checked and (S[Length(S)] = #13) then 
       begin
          S := S + #10;
          RzMemo1.Text := RzMemo1.Text + S;
     end;
 end;
Перепробовал кучу комбинаций, но перевод строки так и не заработал.
0
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,496
06.04.2023, 12:48
Цитата Сообщение от Vlad1451 Посмотреть сообщение
В пакете есть разделители строк (0А, то есть #10).
...
Цитата Сообщение от Vlad1451 Посмотреть сообщение
if CRLF.Checked and (S[Length(S)] = #13) then
Как-то не логично искать 13, если разделитель там 10...

Ну и в общем случае, поток читается же не по одному слову, чтобы проверять только последний символ. Нужно всё принятое просматривать на предмет разделителя.
1
0 / 0 / 0
Регистрация: 05.04.2023
Сообщений: 6
06.04.2023, 13:09
Код взят с одного из форумов. Пробовал #10, результат нулевой. Пробовал для перевода вставлять и так: S := S + #13#10;, толку нет. Как шло одним потоком так и идёт.
0
 Аватар для sendsay
1 / 1 / 0
Регистрация: 15.10.2022
Сообщений: 64
06.04.2023, 15:16
Цитата Сообщение от Vlad1451 Посмотреть сообщение
Как шло одним потоком так и идёт.
Цитата Сообщение от AzAtom Посмотреть сообщение
Нужно всё принятое просматривать на предмет разделителя.
Вот руководство к действию!
0
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,496
06.04.2023, 15:53
Vlad1451, говорю же, если передали строку из 20 символов, то не факт, что все 20 символов придут сразу одним пакетом. Надо весь поток анализировать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.04.2023, 15:53

Передача данных через vpn?
Реально ли отсылать пакеты через VPN(тоесть, с друго виртуального ip)?

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

Получение и передача данных через COM порт
Добрый день Мне кажется, я изобретаю велосипед и должно быть полно примеров такого кода. Но ничего найти не удалось. Суть:...

Передача и приём данных через COM-порт
Добрый день! Передо мной поставили задачу написать программу для работы с адаптером OBD2 Elm327 через виртуальный COM-порт. Пробую пока...

Передача данных через com -порт на микроконтроллер
Добрый день. Учусь передавать данные на микроконроллер. Данные передаются по com порту. Почитал информацию и своял во это: using System; ...


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

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru