Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/15: Рейтинг темы: голосов - 15, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 22.04.2016
Сообщений: 42
1

Получение данных по запросу через COM Порт

05.09.2018, 07:22. Показов 2958. Ответов 28
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день.
Сначала немного опишу общую картину. Имеется электронная индикаторная головка с подключение к ПК через USB порт, но драйвера идущие в комплекте эмитируют дополнительный COM порт для обмена данными с устройством. На кабеле передачи данных есть кнопка при нажатии на которую индикаторная головка посылает данные в порт, но в программе которая шла в комплекте так-же имеется функция запроса данных непосредственно с ПК.
В инструкции к индикаторной головке есть описание сигнала для запроса данных, но как ее написать программный понять не могу.

Ссылка на полную инструкцию: https://eshop.mahr.com/eshop/p... -11-09.pdf

Фрагмент инструкции с описание сигнала
Миниатюры
Получение данных по запросу через COM Порт  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.09.2018, 07:22
Ответы с готовыми решениями:

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

Получение данных с весов, подключенных к ПЛК PSA-04.12.0220.00.00 через COM-порт over радиоканал
Помогите новичку. Появилась необходимость поправить программку, написанную на Дельфи. Исходников...

Авторизация на сайте и получение данных по запросу
Доброго времени суток. Ребят подскажите. В общем делаю авторизацию на сайте, все хорошо проходит я...

COM порт - получение данных
Собственно задача такая: для начало нужно получить любые данные с com порта с прибора. Есть код: ...

28
642 / 444 / 224
Регистрация: 10.06.2016
Сообщений: 2,039
05.09.2018, 16:05 2
DimaZhavoronkov, для программирования должен быть описан протокол. Посылаются и принимаются байты. Должны быть так же указаны настройки порта, скорость передачи.
0
0 / 0 / 0
Регистрация: 22.04.2016
Сообщений: 42
06.09.2018, 04:14  [ТС] 3
Протокол связи с устройством описан в инструкции. При нажатии кнопки передачи данных на кабиле данные считываются без проблем.
Миниатюры
Получение данных по запросу через COM Порт  
0
642 / 444 / 224
Регистрация: 10.06.2016
Сообщений: 2,039
06.09.2018, 08:22 4
DimaZhavoronkov, я так понимаю, вам нужно запросить с компа у этого устройства, т.е. послать запрос?
0
0 / 0 / 0
Регистрация: 22.04.2016
Сообщений: 42
06.09.2018, 09:15  [ТС] 5
Да все правильно. Нашел что обмен данным осуществляется черед интерфейс D2XX, скачал необходимую библиотеку FTD2XX_NET.dll, а дальше не могу понять пока как ей воспользоваться
0
642 / 444 / 224
Регистрация: 10.06.2016
Сообщений: 2,039
06.09.2018, 09:22 6
Описание протокола включает и запросы. Например, запрос по протоколу modbus rtu выглядит так: Request
00:07 [01][03][00][44][00][02][84][1E] - 8 байт.
0
0 / 0 / 0
Регистрация: 22.04.2016
Сообщений: 42
06.09.2018, 09:57  [ТС] 7
Вот в этом вся и соль проблемы, на первом рисунке показан как я понимаю сигнал на передачу данных от переферийного устройства, но вот команды которые нужно отправить устройству чтобы оно вернула данные я не где не нашел.
0
Эксперт .NET
10566 / 6490 / 1506
Регистрация: 25.05.2015
Сообщений: 19,659
Записей в блоге: 14
06.09.2018, 10:03 8
"Протокол" в pdf показан в 1 посте.
Цитата Сообщение от DimaZhavoronkov Посмотреть сообщение
Нашел что обмен данным осуществляется черед интерфейс D2XX, скачал необходимую библиотеку FTD2XX_NET.dll
Дрова скорее VCP, http://www.ftdichip.com/Drivers/VCP.htm Попробуйте родную прогу запустить и RS-232 сниффером подсмотреть обмен.
0
0 / 0 / 0
Регистрация: 22.04.2016
Сообщений: 42
06.09.2018, 10:10  [ТС] 9
К сожелению родного кабеля с RS-232 нет, есть только USB кабель, но драйвера которые шли в комплекте эмитируют дополнительный COM, его я пробовал мониторить, но данных нет.
0
Эксперт .NET
10566 / 6490 / 1506
Регистрация: 25.05.2015
Сообщений: 19,659
Записей в блоге: 14
06.09.2018, 10:11 10
Чем мониторить и как?
0
0 / 0 / 0
Регистрация: 22.04.2016
Сообщений: 42
06.09.2018, 10:18  [ТС] 11
Сначала пробовал Serial Port Monitor, в режиме наблюдателя, результатов нет. Потом смотрел Device Monitoring Studio уже смотрет сам USB порт, входные данные есть, но исходящих нет
0
642 / 444 / 224
Регистрация: 10.06.2016
Сообщений: 2,039
06.09.2018, 10:37 12
На рисунке - настройка порта. Это все устанавливается в свойствах SerPort. Надо связываться с разработчиком и просить у них описание протокола.

Добавлено через 7 минут
А далее программно как то так. Фрагмент на VB.net
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 s = Chr(58) + "050400020004F1" + Chr(13) + Chr(10) ' Запрос
            SerialPort1.WriteLine(s)
            s1 = ""
            i_rec = 0
 
            On Error GoTo m6
            Do
                i = SerialPort1.ReadByte()
                s1 = s1 & Chr(i)
                'MsgBox(SerialPort1.ReadByte())
                'MsgBox(i_rec)
                i_rec = i_rec + 1
                If i_rec > 100000 Then
                    MsgBox("Нет ответа")
                    i_rec = 0
                    GoTo mm2
                End If
            Loop Until i_rec >= 26 'adr 2F
0
Эксперт .NET
10566 / 6490 / 1506
Регистрация: 25.05.2015
Сообщений: 19,659
Записей в блоге: 14
06.09.2018, 11:34 13
Цитата Сообщение от slava_psk Посмотреть сообщение
На рисунке - настройка порта. Это все устанавливается в свойствах SerPort. Надо связываться с разработчиком и просить у них описание протокола.
В 1 посте есть ссылка на PDF, где в правом нижнем углу показан этот протокол.
0
642 / 444 / 224
Регистрация: 10.06.2016
Сообщений: 2,039
06.09.2018, 11:50 14
Rius, это какая то вырезка из описания форматы данных...
0
0 / 0 / 0
Регистрация: 22.04.2016
Сообщений: 42
06.09.2018, 11:56  [ТС] 15
Связался с официальным представителем, он сказал, на рисунке в первом посте показан сигнал запроса

Добавлено через 5 минут
Вообще может быть такое, что запрос осуществляется без команды устройству ???
Из данной схемы получается что компьютер через определенное время должен выставлять и убирать сигнал на ножке DTR ???
0
642 / 444 / 224
Регистрация: 10.06.2016
Сообщений: 2,039
06.09.2018, 11:58 16
При чем тут сигнал. Должно быть описание запроса. Обычно это [лидирующий байт][байты адреса параметра][байты контрольной суммы]
Да это возможно, что устройство работает как мастер, т.е. тупо кидает байты данных.
0
0 / 0 / 0
Регистрация: 22.04.2016
Сообщений: 42
06.09.2018, 12:03  [ТС] 17
В том-то и дело что в инструкции не чего похожего нет. Буду звонить представителю, что бы он в германии у них там спрашивал запрос
0
Эксперт .NET
10566 / 6490 / 1506
Регистрация: 25.05.2015
Сообщений: 19,659
Записей в блоге: 14
06.09.2018, 12:30 18
Цитата Сообщение от DimaZhavoronkov Посмотреть сообщение
Из данной схемы получается что компьютер через определенное время должен выставлять и убирать сигнал на ножке DTR ???
С Opto RS232C да. Видимо, в гальванически изолированном адаптере сигнал DTR используется для выбора направления передачи.
В простом USB-UART в этом необходимости нет обычно.

Цитата Сообщение от slava_psk Посмотреть сообщение
Обычно это [лидирующий байт][байты адреса параметра][байты контрольной суммы]
Протокол простой, текстовый. Текст измеренной величины и единиц измерения, заканчивающийся возвратом каретки.

DimaZhavoronkov, какая-то программа с этим прибором идёт? Только связывающаяся не беспроводным методом, а по RS232.

Возможно, передача не будет произведена, пока не будет нажата кнопка:
Миниатюры
Получение данных по запросу через COM Порт  
0
0 / 0 / 0
Регистрация: 22.04.2016
Сообщений: 42
07.09.2018, 04:29  [ТС] 19
Да с эти прибором идет программа. Она прекрасно работает, в ней можно делать запрос на прибор (по таймеру или по нажатию кнопки на клавиатуре) и прибор в ответ отправляет результаты измерения.
Миниатюры
Получение данных по запросу через COM Порт   Получение данных по запросу через COM Порт  
0
642 / 444 / 224
Регистрация: 10.06.2016
Сообщений: 2,039
07.09.2018, 08:57 20
DimaZhavoronkov, может быть так, что программа не посылает запросов, а просто по наличию сигнала принимает последовательные посылки данных посылаемые прибором. Это нужно уточнять.
0
07.09.2018, 08:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.09.2018, 08:57
Помогаю со студенческими работами здесь

Получение данных входящих на порт
Хочу написать программу, которая будет выводить на экран все, что приходит на определенный порт....

Передача данных с устройств через Bluetooth по запросу
Есть проект на C# который работает на простое чтение данных с com порта если он открыт. А мне нужно...

Прием данных через COM - порт
Привет! Мне нужно реализовать прием данных с МК на компьютер через COM порт. Пишу в VS 2005, С++....

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru