Список форумов   Список форумов  

Генератор дискретных сигналов

Обсуждение работы в LabVIEW с оборудованием

Модераторы: Техподдержка NI, Robert, Модератор

Генератор дискретных сигналов

Сообщение dist » Вс мар 31, 2013 1:39 pm

Здравствуйте!
Работаю с железками CRIO-9073 и модулем дискретного ввода,вывода 9403. Разобрался как выдавать дискретные сигналы вручную используя переключатель boolean. Но это не совсем удобно, щелкать мышкой по нему то и дело.
возникла необходимость реализовать генератор дискретных сигналов (чередование нуля и единицы), чтобы вручную можно было задать период изменения состояния. Подскажите пожалуйста, как можно это сделать?
Заранее спасибо
dist
Пользователь
 
Сообщений: 10
Зарегистрирован: Вс июл 10, 2011 11:55 am

Re: Генератор дискретных сигналов

Сообщение Meteor » Пн апр 01, 2013 7:43 pm

dist писал(а):возникла необходимость реализовать генератор дискретных сигналов (чередование нуля и единицы), чтобы вручную можно было задать период изменения состояния. Подскажите пожалуйста, как можно это сделать?

Вот так устроит?
Можно задать длительность импульса (1) и паузы (0), далее пока не нажмете "стоп" будет генерировать импульсную последовательность. Время в мс.
Вложения
Pulse_generator.JPG
Pulse_generator.JPG (30.62 KiB) Просмотров: 2777
Meteor
Активный пользователь
 
Сообщений: 31
Зарегистрирован: Пт фев 04, 2011 1:28 pm

Re: Генератор дискретных сигналов

Сообщение dist » Чт апр 04, 2013 9:43 am

Спасибо огромное, такой вариант вполне устраивает, вот только возникла небольшая проблема при запуске его на compact rio. Входные параметры (pulse и pause) при компилировании считываются, а дальше в процессе работы программы при изменении их значений контроллер продолжает выдавать последовательность с параметрами, которые были заданы вначале, приходится останавливать работу программы, вводить новые данные, а потом опять запускать. Подскажите, пожалуйста, с чем может быть связана эта проблема?
P.S. dbl numeric control пришлось заменить на I lb numeric control, так как в случае dbl код не мог быть скомпилирован.
dist
Пользователь
 
Сообщений: 10
Зарегистрирован: Вс июл 10, 2011 11:55 am

Re: Генератор дискретных сигналов

Сообщение Техподдержка NI » Чт апр 04, 2013 10:29 am

Добрый день! Попробуйте внести controls внутрь цикла, как показно на прилагаемом рисунке.

Уточните какая ошибка возникает при компиляции с использованием numeric dbl, и на какой тип данных вы поменяли? Вы указали: I lb numeric control.

_____
Олег Шкалябин
Вложения
Continuous_PG.png
Continuous_PG.png (11.94 KiB) Просмотров: 2752
Техподдержка NI
Специалист LabVIEW
 
Сообщений: 158
Зарегистрирован: Ср мар 20, 2013 9:47 am

Re: Генератор дискретных сигналов

Сообщение dist » Вс апр 07, 2013 12:43 pm

Как я понял не поддерживается тип таких данных.
Вложения
123.JPG
вот такую ошибку выдает при использовании dbl
123.JPG (176.42 KiB) Просмотров: 2717
dist
Пользователь
 
Сообщений: 10
Зарегистрирован: Вс июл 10, 2011 11:55 am

Re: Генератор дискретных сигналов

Сообщение dist » Вс апр 07, 2013 12:47 pm

Внес controls внутрь цикла, теперь управляется в реальном времени, но возникла другая проблема. Кроме последовательности необходимы еще несколько каналов, которые переключаются в ручном режиме, но чем больше я задаю длительность импульса, тем дольше время переключения состояния вручную, скриншот программы прилагаю
Вложения
ScreenShot002.jpg
ScreenShot002.jpg (267.83 KiB) Просмотров: 2717
dist
Пользователь
 
Сообщений: 10
Зарегистрирован: Вс июл 10, 2011 11:55 am

Re: Генератор дискретных сигналов

Сообщение Техподдержка NI » Пн апр 08, 2013 3:54 pm

Добрый день!

Давайте разбираться по порядку. Во-первых, у вас ошибка должна быть из-за того, что вы делите на ноль (qoutient & remainder.vi).

Во-вторых, предлагаю упростить часть кода, отвечающего за генерацию импульсов с регулируемыми длительностью и паузой. Посмотрите во вложении. Такой вариант, кстати, избавит от вышеуказанной ошибки.

В-третьих. По поводу типа данных, использование Numeric dbl в данной части кода избыточно, поскольку задержка в миллисекундах работает с целыми числами (Numeric Unsigned), поэтому логичнее всего для controls "Pulse" и "Pause" установить тип U32.

Наконец, то, что вы меняете вручную при помощи controls, вводится в код на следующей итерации цикла, а временем между итерациями вы как раз и управляете через Pulse и Pause.
Вложения
Untitled.png
Untitled.png (6.54 KiB) Просмотров: 2703
Техподдержка NI
Специалист LabVIEW
 
Сообщений: 158
Зарегистрирован: Ср мар 20, 2013 9:47 am

Re: Генератор дискретных сигналов

Сообщение dist » Пн апр 08, 2013 6:24 pm

Спасибо большое за ответ, как ни странно, но даже при значении 0 в qoutient & remainder.vi программа запускалась и работала.
Вы писали: "Наконец, то, что вы меняете вручную при помощи controls, вводится в код на следующей итерации цикла, а временем между итерациями вы как раз и управляете через Pulse и Pause." Т.е. как я понял, сделать например на одном модуле дискретного вывода несколько генераторов последовательности на разных каналах, имеющих разные периоды нельзя?
dist
Пользователь
 
Сообщений: 10
Зарегистрирован: Вс июл 10, 2011 11:55 am

Re: Генератор дискретных сигналов

Сообщение Meteor » Вт апр 09, 2013 12:27 pm

Лучше каждый генератор выполнить отдельным подприбором.
Относительно смены управления, тоже не мешало бы выполнить отдельным ВПП и передавать значения через события.
Более подробно описано Тревиса в его "бестселлерах" по лабвью.
Meteor
Активный пользователь
 
Сообщений: 31
Зарегистрирован: Пт фев 04, 2011 1:28 pm


Вернуться в LabVIEW и оборудование National Instruments

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1