Протокол обмена с COM-портом
Протокол обмена с COM-портом
Подскажите пожалуйста, вот какая проблема стоит. Хочу считать с ком-порта данные, но мой ВП пока отказывается это правильно делать. В настоящее время контроллер выдает 3 байта, один из которых статусный. Между ними разделитель - табуляция. Эти байты я перевожу в ASCII символы и передаю уже 6 байт в порт. На данном этопе работы я пытаюсь пвывести на самописец пилу - 0000, 0001...00FF. И получается вот какая ситуация. Первая недоработка в том, что LV считывает с запозданием(терминал принимает за 1:45 55000 байт, а LV - 31000).Вторая недоработка в том, что значения в LV выводится правильно на протяжении приблизительно 200 циклов(50000 байт), потом начинаются искажения.Проверял несколько раз. В терминале считывание нормальное. Есть ли какой-нибудь пример ВП, который поможет решить мою задачу - считать данные и вывести их на самописец. Я ведь наверное не первый, кто такие вещи делает.
P.S. Могу не передавать ASCII символы, а передавать шестнадцатиричные значения выборок.
P.S. Могу не передавать ASCII символы, а передавать шестнадцатиричные значения выборок.
- Вложения
-
- Version 0_without for loop.vi
- (41.83 КБ) 293 скачивания
-
Jakob Brontfeyn
- expert
- Сообщения: 1729
- Зарегистрирован: 28 фев 2008, 11:01
- Награды: 6
- Благодарил (а): 1 раз
- Контактная информация:
Re: Протокол обмена с COM-портом
Если ты хочешь что бы тебе помогли изложи так, что бы посторонний человек
мог четко понять, и не у всех есть десятая версия, за NI не угонишся.
они меняют версию каждый год.
Пришли картинку, где схематично изображено подключение железа.
Кроме того мне непонятно слово самописец (граф, чат, ХY - Граф ?)
и слово терминал, в данном контексте,
что это за контроллер и зачем что то передавать в порт.
Не поленись, пожалуйста, четко обьяснить
Мне много приходилось заниматься ц ком-портами смотри например здесь
http://www.labviewportal.org/viewtopic. ... 964#p23964
мог четко понять, и не у всех есть десятая версия, за NI не угонишся.
они меняют версию каждый год.
Пришли картинку, где схематично изображено подключение железа.
Кроме того мне непонятно слово самописец (граф, чат, ХY - Граф ?)
и слово терминал, в данном контексте,
что это за контроллер и зачем что то передавать в порт.
Не поленись, пожалуйста, четко обьяснить
Мне много приходилось заниматься ц ком-портами смотри например здесь
http://www.labviewportal.org/viewtopic. ... 964#p23964
-
mzu2006
- doctor
- Сообщения: 2456
- Зарегистрирован: 16 авг 2008, 02:12
- Награды: 3
- Версия LabVIEW: 7.1 10 11 12
- Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
- Контактная информация:
Re: Протокол обмена с COM-портом
1. Обработку убрать из того цикла, где читаешь. Как-то так:
2. А по поводу того, как проводить обработку, то Jakob прав, нарисуй картинку - станет прощё понимать, что к чемуПравила форума (Forum rules in Russian)
rm -rf /mnt/windows
rm -rf /mnt/windows
Re: Протокол обмена с COM-портом
просто 2010 у меня лицензионная, поэтому я в ней и работаю. В качестве графиков я использую Waveform Graph и Waveform chart. Под терминалом понимается программа, просматривающая данные, идущие с ком-порта, и записывающая их в файл. Контроллер я использую ATmega16, на который приходят выборки с АЦП(вообще я пытаюсь биопотенциалы регистрировать, электрокардиосигнал). А уже с контроллера я передаю выборки в ком-порт.Jakob Brontfeyn писал(а):Если ты хочешь что бы тебе помогли изложи так, что бы посторонний человек
Не поленись, пожалуйста, четко обьяснить
Re: Протокол обмена с COM-портом
А ВП сам можно?mzu2006 писал(а):1. Обработку убрать из того цикла, где читаешь. Как-то так:
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Протокол обмена с COM-портом
Мне кажется не успевает рисовать графики при получении каждого числа.
Отдели как нибудь вывод данных на лицевую панель от чтения с ком-порта или показывай данные не каждый раз.
Второе это количество данных, со временем оно наростает в массиве и прога начинает работать всё медленней и медленней.
Убери для теста из цикла всё кроме чтения данных с порта и складывай количество считанных байтов, чтобы убедится, что не тормоз.
Отдели как нибудь вывод данных на лицевую панель от чтения с ком-порта или показывай данные не каждый раз.
Второе это количество данных, со временем оно наростает в массиве и прога начинает работать всё медленней и медленней.
Убери для теста из цикла всё кроме чтения данных с порта и складывай количество считанных байтов, чтобы убедится, что не тормоз.
-
mzu2006
- doctor
- Сообщения: 2456
- Зарегистрирован: 16 авг 2008, 02:12
- Награды: 3
- Версия LabVIEW: 7.1 10 11 12
- Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
- Контактная информация:
Re: Протокол обмена с COM-портом
Это snipplet - перетаскивай его на БД. Но вот и сам прибор:Kvanto писал(а):А ВП сам можно?
- Вложения
-
- VISA_dropped_bytes.vi
- (15.15 КБ) 357 скачиваний
Правила форума (Forum rules in Russian)
rm -rf /mnt/windows
rm -rf /mnt/windows
Re: Протокол обмена с COM-портом
заработало. Просматривал пилу от 0 до 255 минут 20, искажений нет. Теперь вот регистрирую сигнал с электродов. Идет настырная синусоида 50 Гц. Ставил и режекторный фильтр из палитры Point by point с частотами среза 49 и 51 Гц. Ставил и ФНЧ на 40 Гц из палитры Filter, также ставил Filter Express. В результате уменьшается амплитуда синусоиды, а вот что-то похожего на кардиосигнал не видно. Зато при подключении электродов к симулятору ЭКГ достаточно большой амплитуды у нас в лаборатории четко виден нужный сигнал без включения фильтров. что можете посоветовать?
-
Viktor
- expert
- Сообщения: 1408
- Зарегистрирован: 23 мар 2008, 10:56
- Награды: 4
- Версия LabVIEW: 2020
- Откуда: Санкт-Петербург
- Благодарил (а): 17 раз
- Поблагодарили: 3 раза
- Контактная информация:
Re: Протокол обмена с COM-портом
Нужен измерительный усилитель на входе, что-то вроде этого:Теперь вот регистрирую сигнал с электродов.
Re: Протокол обмена с COM-портом
как раз такой у меня и стоит. Кажется проблема проясняется. Увеличил порядок фильтра со 2 до 10 и синусоида подавилась лучше, начался просматриваться ЭКС.
Re: Протокол обмена с COM-портом
я думаю схемотехнически устройство не стоит дорабатывать, хотелось бы осуществить цифровую фильтрацию сигнала. Я записывал ЭКГ с себя и сделал фильтрацию в Cool edit(прилагаю скриншоты). Ну в лабвью к сожалению при использовании режекторных фильтров, так подавить синусоиду не получается. Даже при использовании фильтров высоких порядков, получить более менее похожий на ЭКГ сигнал удается лишь с помощью ФНЧ на 30 Гц(на скриншоте ЭКГ с другого человека, не с меня).Если ставить частоту среза выше даже например 45, то сигнал будет в шуме.А мне хотелось увидеть составляющие сигнала где-то до 240 Гц. Мне советуют использовать сначала Real FFT, потом подавить нужные спектральные составляющие, а потом использовать Inverse Real FFT. Каким образом можно подавить нужные гармоники?
- Вложения
-
- Version 7_millivolts.vi
- (47.76 КБ) 242 скачивания
Re: Протокол обмена с COM-портом
помогите пожалуйста разобраться. Хочу понять, почему не фильтруется сигнал, и как его лучше отфильтровать. Поставил Express Filter и указал ему тип фильтра: ФНЧ, порядок 10, баттерворта, частоту среза 45 Гц. А он мне выдает ошибку(на скриншоте). Вот я и думаю проанализировать, что за спектр моего сигнала. Поставил действительное преобразование фурье из палитры Point by point. Вроде бы спектр отображается, и при включении фильтр изменяется, но вот неясно какие значения частот он показывает.график получается симметричный относительно значения sample length(входа функции FFT). Не совсем понял из справки, что этот вход означает .Каким в моем случае он должно быть,чтобы частоты были верны?
- Вложения
-
- Version 8_FFT.vi
- (51.13 КБ) 214 скачиваний
Re: Протокол обмена с COM-портом
кажется нащупал нужное значение sample length, и ставлю равным частоте дискретизации. mzu2006, не подскажите, можно ли с помощью очередей отделить еще один цикл в моем ВП, где можно будет разместить блок фильтрации и преобразования фурье? А то я чувствую у меня притормаживать немного стал ВП из такого нагромождения.
-
mzu2006
- doctor
- Сообщения: 2456
- Зарегистрирован: 16 авг 2008, 02:12
- Награды: 3
- Версия LabVIEW: 7.1 10 11 12
- Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
- Контактная информация:
Re: Протокол обмена с COM-портом
А почему ты считаешь, что введение ещё одного буфера решит проблему?
И ещё, у тебя в число преобразуется только последняя посылка, а должна преобразовываться ещё вся необработанная строка.
И ещё, у тебя в число преобразуется только последняя посылка, а должна преобразовываться ещё вся необработанная строка.
Правила форума (Forum rules in Russian)
rm -rf /mnt/windows
rm -rf /mnt/windows