Получите данные и сгенерируйте сигналы одновременно

Этот пример показывает, как получить данные из устройства NI 9205 с ID cDAQ1Mod1 и сгенерировать сигналы с помощью устройства NI 9263 с ID cDAQ1Mod2.

Можно получить данные и сгенерировать сигналы одновременно на устройствах на том же шасси. Когда сеанс содержит выходные каналы, длительность и количество сканирований становятся свойствами только для чтения сеанса. Количество сканирований на сеансе определяется объемом данных, поставленным в очередь, и длительность определяется s.ScansQueueds.Rate.

Шаг 1. Создайте сеанс NI, возражают и добавляют один канал аналогового входа на cDAQ1Mod1 и один канал аналогового выхода на cDAQ1Mod2:

s = daq.createSession('ni');
addAnalogInputChannel(s,'cDAQ1Mod1', 'ai0', 'Voltage');
addAnalogOutputChannel(s,'cDAQ1Mod2', 'ao0', 'Voltage')
ans = 

Data acquisition session using National Instruments hardware:
   No data queued.  Will run at 1000 scans/second.
   Number of channels: 2
      index Type  Device   Channel   MeasurementType        Range       Name
      ----- ---- --------- ------- ------------------- ---------------- ----
      1     ai   cDAQ1Mod1 ai0     Voltage (Diff)      -10 to +10 Volts
      2     ao   cDAQ1Mod2 ao0     Voltage (SingleEnd) -10 to +10 Volts

Поставьте выходные данные в очередь:

queueOutputData(s,linspace(-1, 10, 2500)');

Отобразите объект сеанса видеть изменение в длительности и количестве сканирований. Эти значения изменяются на основе поставленного в очередь объема данных.

s
s = 

Data acquisition session using National Instruments hardware:
   Will run for 2500 scans (2.5 seconds) at 1000 scans/second.
   All devices synchronized using cDAQ1 CompactDAQ chassis backplane. (Details)
      Number of channels: 2
      index Type  Device   Channel MeasurementType Range            Name
      ----- ---- --------- ------- --------------- ---------------- ----
      1     ai   cDAQ1Mod1 ai0     Voltage (Diff)  -10 to +10 Volts
      2     ao   cDAQ1Mod2 ao0     Voltage (Diff)  -10 to +10 Volts

Получите хранилище данных это в переменной, acquiredData:

acquiredData = startForeground(s);
plot(acquiredData)

Похожие темы

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