Добрый день,
получаю сигнал с магнитного энкодера на через модуль АЦП. Для обработки сигнала составлена следующая схема (вложение). С энкодера поступают сигналы условно 1 и 0. Цель: посчитать количество импульсов. В одном положении на счетчик должен идти ноль, в другом +1. В итоге программа зацикливается, за каждое прохождение делает много много раз "+1". Как решить эту проблему со схемой?
Или же какие вообще есть способы обработки сигнала с энкодера в Labview? На выходе импульсы.
Обработка сигнала с энкодера
-
- adviser
- Сообщения: 221
- Зарегистрирован: 18 май 2009, 10:50
- Награды: 1
- Версия LabVIEW: 8.6
- Откуда: Москва
Re: Обработка сигнала с энкодера
Основная ошибка в том, что суммирование происходит по уровню цифрового сигнала, а нужно по переднему фронту импульса. Как то так:
- Вложения
-
- Counter.vi
- (8.23 КБ) 121 скачивание
-
- Безымянный.jpg (25.78 КБ) 4608 просмотров
Считаем количество нажатий\оборотов в секунду
Здравствуйте,
О проблеме: Считываю сигналы с энкодера, дабы построить характеристику скорости по времени. Тема предшествующая такая: http://www.labviewportal.org/viewtopic.php?f=81&t=7046 Подсказали, как довести до ума счетчик. Нужно вынести на график скорость, т.е. обороты\мин. а сейчас подсчет оборотов идет по нарастающей и всё. Так понимаю, нужно применить дифференцирование по времени. Есть ли стандартные средства? Не могу найти. Или у кого то может есть готовое решение данной проблемы? Во вложении прикрепляю симулятор: количество оборотов=количество нажатий на кнопку. Спасибо заранее.
О проблеме: Считываю сигналы с энкодера, дабы построить характеристику скорости по времени. Тема предшествующая такая: http://www.labviewportal.org/viewtopic.php?f=81&t=7046 Подсказали, как довести до ума счетчик. Нужно вынести на график скорость, т.е. обороты\мин. а сейчас подсчет оборотов идет по нарастающей и всё. Так понимаю, нужно применить дифференцирование по времени. Есть ли стандартные средства? Не могу найти. Или у кого то может есть готовое решение данной проблемы? Во вложении прикрепляю симулятор: количество оборотов=количество нажатий на кнопку. Спасибо заранее.
- Вложения
-
- Counter.vi
- (8.23 КБ) 98 скачиваний
-
- Безымянный.jpg (25.78 КБ) 4387 просмотров
-
IvanLis
- guru
- Сообщения: 5463
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 86 раз
Re: Считаем количество нажатий\оборотов в секунду
В профиле 2009, а файлик 2011.trust писал(а):Во вложении рикрепляю симулятор: количество оборотов=количество нажатий на кнопку.
------------
в зависимости от частоты, нужно определиться с интервалом подсчета
т.е. считаете импульсы за (например) 1 сек
умножаете результат на 60 - получаем обороты/мин
ну и для плавности, делаем осреднение результата за 1 мин, то есть 60 отсчетов в Mean PtByPt
Это логика для первого варианта, см. ниже.
вопрос в том, каким образом функционирует программа, что является константой:
- время опроса датчика, т.е. цикл крутится с постоянной частотой, а импульс либо есть - либо нет
- или цикл запускается по приходу импульса
Нужно от этого отталкиваться, т.к. логика работы и подсчета будет принципиально разная.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- adviser
- Сообщения: 221
- Зарегистрирован: 18 май 2009, 10:50
- Награды: 1
- Версия LabVIEW: 8.6
- Откуда: Москва
Re: Обработка сигнала с энкодера
На ПЛИСе я реализовал следующим образом. Частота определяется либо при совершении одного оборота, либо при завершении времени ожидания (актуально при малых оборотах). Вам нужно только немного адаптировать для ПК.
Re: Обработка сигнала с энкодера
IvanLis,
Симулятор для 9й версии во вложении.
Первый вариант. Вопрос как раз в том, как считать импульсы именно за секунду ну протяжении всего времени работы программы. Измерение скорости. Скидываю во вложении программу, непосредственно с помощью которой и пытаюсь вывести на график показателя с энкодера.вопрос в том, каким образом функционирует программа, что является константой:
- время опроса датчика, т.е. цикл крутится с постоянной частотой, а импульс либо есть - либо нет
- или цикл запускается по приходу импульса
Симулятор для 9й версии во вложении.
- Вложения
-
- Counter9.vi
- (6.31 КБ) 103 скачивания
-
- счетчик оборотов.vi
- (11.82 КБ) 103 скачивания
-
IvanLis
- guru
- Сообщения: 5463
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 86 раз
Re: Обработка сигнала с энкодера
Я не планирую делать Вашу работу, по этому "заряжайтесь" на нее сами и приступайте к реализации.trust писал(а):Первый вариант.
Вопрос как раз в том, как считать импульсы именно за секунду ну протяжении всего времени работы программы.
Вы знаете частоту опроса датчика, например она равна 10ms. Получается, что за секунду датчик опрашивается 100 раз.- время опроса датчика, т.е. цикл крутится с постоянной частотой, а импульс либо есть - либо нет
Выполнили запрос: импульс есть = 1 / нет = 0.
Что бы посчитать за одну секунду, Вам нужно накопить массив из 100 элементов и найти их сумму. Либо используйте Add Array Elements PtByPt.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение