Считайте импульсы на цифровой сигнал Используя устройства NI

Этот пример показывает, как определить уровень вращения моторного контроллера Автоматизации Анахайма путем подсчета количества возрастающих ребер в сигнале. Контроллер возвращает импульсы эффекта Холла (прямоугольные волны), которые служат обратной связью частоты для моторных скоростей вращения.

Создайте встречный входной канал

Создайте Сеанс DAQ и добавьте встречный входной канал с типом измерения EdgeCount. В данном примере используйте шасси NI c9178 CompactDAQ и модуль NI 9402 с ID cDAQ1Mod5.

s = daq.createSession('ni');
addCounterInputChannel(s,'cDAQ1Mod5', 'ctr0', 'EdgeCount');
s
s = 

Data acquisition session using National Instruments hardware:
   Will run for 1 second (1000 scans) at 1000 scans/second.
   Number of channels: 1
      index Type  Device   Channel MeasurementType Range Name
      ----- ---- --------- ------- --------------- ----- ----
      1     ci   cDAQ1Mod5 ctr0    EdgeCount       n/a
   

Определите терминал встречного входного канала

Чтобы соединить входной сигнал с правильным терминалом, исследуйте свойство Terminal канала. Терминал определяется оборудованием.

s.Channels(1).Terminal
ans =

  1×4 char array

PFI0

Считайте встречный канал

Чтобы определить, является ли счетчик операционным, вводит одно сканирование, делают паузу, в то время как двигатель вращается, затем считайте счетчик снова.

s.inputSingleScan()
ans =

     6

pause(0.1);
s.inputSingleScan()
ans =

    18

pause(0.1);
s.inputSingleScan()
ans =

    29

Измерьте обороты в секунду

Считайте количество импульсов путем сброса в противоречии с нулем, сделайте паузу в течение одной секунды, и считайте счетчик. Эффекты Холла ориентированы на каждые 120 градусов и генерируют три импульса прямоугольной волны для каждого вращения.

s.resetCounters();
pause(1);
s.inputSingleScan() / 3
ans =

   33.3333

Используйте аппаратные часы для более высокой точности

Аппаратные часы очень точны. Используйте аппаратные часы, чтобы получить несколько встречных измерений. Устройства счетчика NI требуют внешнего таймера. Путем добавления канала аналогового входа для модуля на том же шасси сеанс совместно использует внутренние часы с обоими модулями.

s = daq.createSession('ni');
addAnalogInputChannel(s,'cDAQ1Mod1', 0, 'Voltage');
addCounterInputChannel(s,'cDAQ1Mod5', 0, 'EdgeCount');
s.DurationInSeconds = 0.25;
[data, time] = s.startForeground();
plot(time, data);

Для просмотра документации необходимо авторизоваться на сайте