Page 1 of 2

Побайтовое разделение данных с COM-порта и вывод на график

PostPosted: 11 May 2019, 12:47
by Julia25
Здравствуйте! С микроконтроллера поступают данные через COM порт. Они поступают в следующем виде по одиночному каналу. Байты идут по порядку c 6 датчиков. С датчика идет 2 байта. Примерно так: { 11, 12, 21, 22, 31, 32, 41, 42, 51, 52, 61, 62}. Их нужно объединить так, что, например, 12-старшая часть, 11-младшая (это пока не принципиально). То есть данные с первого- 1112, со второго-2122. Затем нужно эти полученные значения вывести в виде зависимости от времени на 6 графиков (но лучше на 2 по 3 зависимости). Буду рада оказанной помощи :).

Re: Побайтовое разделение данных с COM-порта и вывод на граф

PostPosted: 11 May 2019, 13:16
by IvanLis
Julia25 wrote:Здравствуйте! С микроконтроллера поступают данные через COM порт. Они поступают в следующем виде по одиночному каналу. Байты идут по порядку c 6 датчиков. С датчика идет 2 байта. Примерно так: { 11, 12, 21, 22, 31, 32, 41, 42, 51, 52, 61, 62}. Их нужно объединить так, что, например, 12-старшая часть, 11-младшая (это пока не принципиально). То есть данные с первого- 1112, со второго-2122. Затем нужно эти полученные значения вывести в виде зависимости от времени на 6 графиков (но лучше на 2 по 3 зависимости). Буду рада оказанной помощи :).


Данные разобрать можно следующим образом:
Снимок экрана от 2019-05-11 13-14-00.png
Untitled 1.vi
lv2016
(8.77 KiB) Downloaded 33 times

для отображения используйте Waveform Chart
думаю сами уже справитесь :brows:

Re: Побайтовое разделение данных с COM-порта и вывод на граф

PostPosted: 11 May 2019, 13:51
by Julia25
Спасибо, разбираюсь... Такое разделение применимо для данных в формате HEX?

Re: Побайтовое разделение данных с COM-порта и вывод на граф

PostPosted: 11 May 2019, 14:30
by Blackman
Julia25 wrote: ... Такое разделение применимо для данных в формате HEX?
:wink:

Re: Побайтовое разделение данных с COM-порта и вывод на граф

PostPosted: 11 May 2019, 15:19
by Julia25
Создала программу по заданным условиям. Есть ли в ней ошибки? Благодарю за предыдущие ответы! :)
http://prnt.sc/nn6ozx

Re: Побайтовое разделение данных с COM-порта и вывод на граф

PostPosted: 11 May 2019, 15:34
by IvanLis
Julia25 wrote:Есть ли в ней ошибки?

Так запустите и проверьте...

А выкладывать файлы на сторонние ресурсы запрещено правилами форума :nono:

Re: Побайтовое разделение данных с COM-порта и вывод на граф

PostPosted: 11 May 2019, 16:01
by Julia25
Я по структуре думала узнать :) После выходных смогу только подключить оборудование :) А так она запускается

Ой, так это просто ссылка на скриншот... Просто мне нельзя прикреплять файлы...

Re: Побайтовое разделение данных с COM-порта и вывод на граф

PostPosted: 11 May 2019, 18:50
by IvanLis
Julia25 wrote:Ой, так это просто ссылка на скриншот... Просто мне нельзя прикреплять файлы...

Почему нельзя?
Как прикрепить файл к сообщению, см. в подписи или здесь: http://www.labviewportal.ru/viewtopic.p ... 144#p27391

А программа работать будет не так как Вы ожидаете...

Re: Побайтовое разделение данных с COM-порта и вывод на граф

PostPosted: 11 May 2019, 20:33
by Julia25
Поняла ошибку... Но не поняла, почему все же значения не выводятся на графики

Re: Побайтовое разделение данных с COM-порта и вывод на граф

PostPosted: 11 May 2019, 21:03
by Julia25
Нашла еще ошибки и исправила... Пока не понимаю, что еще не так. Буду рада вашей помощи! :)

Re: Побайтовое разделение данных с COM-порта и вывод на граф

PostPosted: 11 May 2019, 22:03
by IvanLis
Julia25 wrote:Поняла ошибку... Но не поняла, почему все же значения не выводятся на графики

Потому, что графики за пределами цикла и на них информация поступит только после их остановки.

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

Я убрал из Вашей программы работу с реальным портом и заменил его для имитации очередью.

Сейчас там передаются 12 двуразрядных HEX.
Но видимо и с типами путаница тоже, т.к. двуразрядное HEX это 16-bit, а не 8-bit, как у Вас.

Пока больше вопросов, чем ответов.
Вам нужно точно знать формат посылки, используется терминальный бит или нет, с помощью него на много проще определять окончание пакета.
Почитайте: http://www.labviewportal.org/viewtopic. ... 250#p65849

Короче, поиграйтесь с примером, когда сами во всем разберетесь и все приедете в норму, по изменить источник информации не так долго.

COM-Receiver.vi
lv2016
(155.14 KiB) Downloaded 23 times

Re: Побайтовое разделение данных с COM-порта и вывод на граф

PostPosted: 12 May 2019, 09:45
by Julia25
Спасибо! Разбираюсь. В программе, которую Вы отправили, я внесла вывод на графики в цикл, но почему-то данные снова не выводятся. Количество байт я настроила. Может быть проблема в используемой функции вывода графика?

Re: Побайтовое разделение данных с COM-порта и вывод на граф

PostPosted: 12 May 2019, 11:29
by Julia25
Двойной клик по блоку Build XY Graph, уберите галочку с Clear data on each call, тогда увидите на графиках историю.

Спасибо! Теперь в обеих программах видны графики :). А как быть, если данные просто идут по порядку, не разделяются запятой или пробелом?

Re: Побайтовое разделение данных с COM-порта и вывод на граф

PostPosted: 12 May 2019, 12:21
by IvanLis
Julia25 wrote:Спасибо! Теперь в обеих программах видны графики :). А как быть, если данные просто идут по порядку, не разделяются запятой или пробелом?

Опять же, в каком формате они идут?
Если в ANSII кодах, то так:
Снимок экрана от 2019-05-12 12-19-19.png

Untitled 1.vi
lv2016
(8.21 KiB) Downloaded 19 times

Re: Побайтовое разделение данных с COM-порта и вывод на граф

PostPosted: 12 May 2019, 13:04
by Julia25
В HEX формате