Аналоговый ввод. Цифровой вольтметр на базе NI PCI 6221

Аналоговый вывод. Генератор импульсов на базе NI PCI 6221.

Цифровой ввод-вывод.

Программирование контроллера NI PCI 6221

Работа с NI PCI 6221 похожа на работу со звуковой картой. Для успешной работы должна быть установлена программа от National Instruments “Measurement and Automation Explorer” версии, поддерживающей данный контроллер. Процедуры для плат М серии NI собраны в динамической библиотеке mwnidaqmx.dll, которая есть в версии MatLab 7.0.3 и старше. Не забудьте, что в языке MatLab различаются прописные и строчные буквы т.е. АО и ао – это два разных объекта! Запустите Measurement and Automation Explorer и убедитесь, что данная плата NI PCI 6221 присутствует в системе. Проверьте наличие установленных адаптеров (nidaq, parallel, winsound) командами: out = daqhwinfo; out.InstalledAdaptors

1. Создайте объект на основе NI PCI 6221 с именем, с которым данный адаптер существует в системе. Для цифрового ввод-вывода: dio = digitalio('nidaq', 'dev 1');

2. Добавим линии для вывода: lines=addline(dio, 0:2,0, 'Out',{'Line0';'Line1';'Line2'});

Здесь 0:2 – три линии для 0 порта, работающие на выход 'Out' с именами 'Line0' и.т.д.

3. Для ввода назначим 3 линии для порта 1: lines=addline(dio, 0:2,1, 'In', 'LineIn0'; 'LineIn1'; 'LineIn2'});

4. Подготовим вектор-строку данных data=[0,0,0]

5. Запустим объект на выполнение start(dio);

6. Передадим их в контроллер putvalue (dio,data);

7. Получим данные из этой линии v=getvalue(dio);

8. Остановить работу объекта stop(dio);

9. Уничтожить объект: delete(dio); clear dio

1. Создайте объект на основе NI PCI 6221 с именем, с которым данный адаптер существует в системе. Для аналогового выхода ao = analogoutput('nidaq','Dev1');

2. Создайте канал, например, с номером 0: ch0 = addchannel(ao, 0, 'Chan0');

3. Создайте вектор-столбец data=[x1;x2;x3;x4;x5];

4. Передайте данные в аналоговый выход putdata(ao,data);

5. Запустите объект на выполнение start(ao);

6. Сделаем паузу на прием данных pause(1) и остановим объект stop(ao);

7. Можно повторить пункты 3-6

8. Цикл в языке MatLab записывается как

for i=1:10

stop(ao); putdata(ao,data1); start(ao);

end

9. Уничтожить объект: delete(ao); clear ao

10. Аналогично пункта 3 подготовьте вектор-столбец с данными для генерации синусоидальных колебаний, пилообразных, треугольных, трапециидальных.

1. Создайте объект на основе NI PCI 6221 с именем, с которым данный адаптер существует в системе для аналогового входа ai = analoginput('nidaq','Dev1');

2. Добавьте массив каналов addchannel(ai, [1 2]);

3. Задайте необходимые свойства созданного объекта

ai.SamplesPerTrigger = 1000; ai.TriggerType = 'hwDigital';

4. Запустите объект на выполнение start(ai);

5. Считайте или передайте данные data = getdata(ai);

6. Для вольтметра - усредните полученные данные и выведите их пользователю.

7. Полученные данные можно вывести в виде графика plot(data); как в осциллографе.

8. Остановить работу объекта stop(ai)

9. После работы объект необходимо удалить delete(ai); clear ai

10. Необходимо иметь ввиду, что выбор предела измерения программно не управляется, поэтому не забудьте на данную линию подать соответствующий потенциал (например 0).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: