Этот пример показывает, как получить данные из нескольких каналов аналогового входа с устройствами MCC с помощью основанного на сеансе интерфейса.
Этот пример использует Измерение, Вычисляя устройство USB-1608GX-2AO к данным логов от каналов аналогового входа 0 и 9, которые соединяются с выходными параметрами функционального преобразователя.
Используйте функцию daq.getDevices
, чтобы отобразить список устройств, доступных вашей машине и MATLAB®.
devices = daq.getDevices
devices = Data acquisition devices: index Vendor Device ID Description ----- ------ --------- ------------------------------------------- 1 ni Dev1 National Instruments USB-6255 2 mcc Board0 Measurement Computing Corp. USB-1208FS-Plus 3 mcc Board1 Measurement Computing Corp. USB-1608GX-2AO 4 mcc Board2 Measurement Computing Corp. USB-1604HS-2AO 5 mcc Board3 Measurement Computing Corp. USB-1608FS-Plus 6 mcc Board4 Measurement Computing Corp. USB-1616FS
Чтобы узнать больше об отдельном устройстве, кликните по имени устройства в списке в Командном окне или получите доступ к устройству в массиве, возвращенном функцией daq.getDevices
.
devices(3)
ans = mcc: Measurement Computing Corp. USB-1608GX-2AO (Device ID: 'Board1') Analog input subsystem supports: 4 ranges supported Rates from 0.1 to 500000.0 scans/sec 16 channels ('Ai0' - 'Ai15') 'Voltage' measurement type Analog output subsystem supports: -10 to +10 Volts range Rates from 0.1 to 500000.0 scans/sec 2 channels ('Ao0','Ao1') 'Voltage' measurement type
Получать данные:
Создайте сеанс, описывающий операцию, чтобы выполнить.
Добавьте входные каналы в сеанс.
Если устройство не поддерживает несколько терминальных настроек через каналы, гарантирует, что терминальная настройка добавленных каналов является тем же самым.
Запустите приобретение.
Функция daq.createSession
создает сеанс. Сеанс содержит информацию, описывающую оборудование, частоту развертки, длительность и другие свойства, сопоставленные с приобретением. Создайте сеанс и присвойте его переменной.
s = daq.createSession('mcc')
s = Data acquisition session using Measurement Computing Corp. hardware: Will run for 1 second (1000 scans) at 1000 scans/second. No channels have been added.
По умолчанию сеанс сконфигурирован для 1 000 сканирований в секунду и длительности одной секунды. В данном примере примите эти значения по умолчанию.
Функция addAnalogInputChannel
добавляет канал аналогового входа в сеанс. Можно добавить больше чем один канал в сеанс.
ch1 = addAnalogInputChannel(s,'Board1',0,'Voltage'); ch2 = addAnalogInputChannel(s,'Board1',9,'Voltage');
Warning: Vendor Driver command failed and returned Status code: 33031 Diagnostic: 'To perform any operation on this device, all channels in this subsystem must have the same terminal configuration setting' .
Определенные устройства не позволяют установку терминальной настройки для каждого канала. В этих случаях, набор терминальная настройка всех каналов, добавленных от того устройства, чтобы быть тем же самым, как описано в предупреждении выше.
s
s = Data acquisition session using Measurement Computing Corp. hardware: Will run for 1 second (1000 scans) at 1000 scans/second. Number of channels: 2 index Type Device Channel MeasurementType Range Name ----- ---- ------ ------- ------------------- ---------------- ---- 1 ai Board1 Ai0 Voltage (Diff) -10 to +10 Volts 2 ai Board1 Ai9 Voltage (SingleEnd) -10 to +10 Volts
Если устройство не поддерживает установку терминальной настройки на канал, гарантирует, что терминальная настройка добавленных каналов является тем же самым.
ch1.TerminalConfig = 'SingleEnded'
ch1 = Data acquisition analog input voltage channel 'Ai0' on device 'Board1': Coupling: DC TerminalConfig: SingleEnded Range: -10 to +10 Volts Name: '' ID: 'Ai0' Device: [1x1 daq.sdk.DeviceInfo] MeasurementType: 'Voltage'
Сеанс должен теперь посмотреть можно следующим образом:
s
s = Data acquisition session using Measurement Computing Corp. hardware: Will run for 1 second (1000 scans) at 1000 scans/second. Number of channels: 2 index Type Device Channel MeasurementType Range Name ----- ---- ------ ------- ------------------- ---------------- ---- 1 ai Board1 Ai0 Voltage (SingleEnd) -10 to +10 Volts 2 ai Board1 Ai9 Voltage (SingleEnd) -10 to +10 Volts
Функция startForeground
запускает приобретение и возвращает результаты.
[data, timestamps] = startForeground(s);
Сеанс получил 1 000 сканирований. Отобразите полученные данные на графике:
plot(timestamps, data) xlabel('Time (s)') ylabel('Voltage (V)')
По умолчанию, сеансы, запущенные в течение одной секунды на 1 000 сканирований в секунду. Чтобы получить на более высоком уровне в течение более длительного времени, измените свойства Rate
и DurationInSeconds
.
s.Rate = 5000; s.DurationInSeconds = 2; s
s = Data acquisition session using Measurement Computing Corp. hardware: Will run for 2 seconds (10000 scans) at 5000 scans/second. Number of channels: 2 index Type Device Channel MeasurementType Range Name ----- ---- ------ ------- ------------------- ---------------- ---- 1 ai Board1 Ai0 Voltage (SingleEnd) -10 to +10 Volts 2 ai Board1 Ai9 Voltage (SingleEnd) -10 to +10 Volts
Запустите приобретение и отобразите полученные данные на графике:
data = startForeground(s); plot(data) xlabel('Time (s)') ylabel('Voltage (V)')