Программа LabVIEW

Содержание

Слайд 2

Проведем измерение прибором, используя язык LABVIEW.

Открываем сессию VISA

Посылаем команду в прибор

Считываем реакцию

Проведем измерение прибором, используя язык LABVIEW. Открываем сессию VISA Посылаем команду в
прибора на команду

Закрываем сессию VISA

Слайд 3

Программа Labview – это виртуальный прибор (Virtual Instruments, VI)
Этот

Программа Labview – это виртуальный прибор (Virtual Instruments, VI) Этот виртуальный прибор
виртуальный прибор состоит из «лицевой панели» (Front Panel) и «внутренней схемы» (Block Diagram).
Переход между ними через “Window>>Show Block Diagram”, или Ctrl+E, или двойной клик по переменной.
Front Panel — для элементов управления программой — кнопки, графики и т.д.
Block Diagram— алгоритм работы программы.
1 - пременная Control
2 - константа
3 - переменная Indicator

команды

Wires, провода, нити

3

2

1

Слайд 4

Tools Palette
Создавать, редактировать и отлаживать VI можно с помощью инструментов, расположенных на

Tools Palette Создавать, редактировать и отлаживать VI можно с помощью инструментов, расположенных
этой палитре. Палитра доступна и на лицевой панели, и на схеме.
Чтобы открыть палитру, откройте View>>Tools Palette.
Каждому действию соответствует свой вид курсора.

Если включен режим автоматического выбора инструментов (горит зеленая лампочка), то при наведении курсора мыши на различные объекты LabVIEW автоматически выберет нужный инструмент. Этот режим можно отключить (горячая клавиша - Shift-Tab). Если режим отключен, то выбор нужного инструмента происходит вручную на палитре, или нажатием клавиши пробел (циклический выбор).

курсор для изменения значения переменной

курсор для выделения переменной

курсор для записи

курсор для провода (Connect Wire)

Слайд 5

Controls Palette:
позволяет задать переменные из
Front Panel

Toolbar – запуск, циклический запуск,

Controls Palette: позволяет задать переменные из Front Panel Toolbar – запуск, циклический
стоп, пауза

Functions Palette:
сборник команд
в Block Diagram

пошаговое исполнение программы

Слайд 6

Окно контекстной помощи (Context Help Window)
Чтобы сделать его видимым, нужно нажать

Окно контекстной помощи (Context Help Window) Чтобы сделать его видимым, нужно нажать
сочетание клавиш Ctrl-H. Показывает входящие и выходящие терминалы команды.
Подробно - "Click here for more help"

Поиск примеров (NI Example Finder)
При запуске LabVIEW нажать Open->Example

Задача №1

Быстрые клавиши
Ctrl-R - Запуск VI.
Ctrl-E - Переключение между лицевой панелью и блок-схемой.
Ctrl-H - Включает показ окна контекстной помощи.
Ctrl-B - Убирает все "испорченные" связи на блок-схеме.
Ctrl-F - Находит все VI, глобальные переменные, функции, текст или другие объекты в памяти или в определенном списке VI.

Слайд 7

Позволяет добавлять команды
без Functions Palette

Правая кнопка мыши в Block Diagram

В режиме курсора

Позволяет добавлять команды без Functions Palette Правая кнопка мыши в Block Diagram
Connect Wire
позволяет создавать для терминалов
cоответствующие переменные

Слайд 8

Цикл For

Цикл While

Цикл For Цикл While

Слайд 9

Case Structure (Структура выбора)

Задачи №2-5

Sequence Structure (Последовательность)

Case Structure (Структура выбора) Задачи №2-5 Sequence Structure (Последовательность)

Слайд 10

Переменные, которые можно создать в Controls Palette

Переменные могут быть в двух

Переменные, которые можно создать в Controls Palette Переменные могут быть в двух
состояниях: Control, Indicator.
Но это деление условное.

Переменные бывают разных типов: Numeric, Boolean, String, Path, Array, Cluster, Graph, Ring и т.д.
В Block Diagram от типа зависит цвет иконки переменной.

Слайд 11

Подробно о переменной типа Numeric
(правая кнопка мыши во Front Panel)

Диапазон значений

Подробно о переменной типа Numeric (правая кнопка мыши во Front Panel) Диапазон
переменной:

Как переменная отображается на
Front Panel:

Слайд 12

Подробно о переменной типа Numeric
(правая кнопка мыши в Block Diagram)

Hide – переменная

Подробно о переменной типа Numeric (правая кнопка мыши в Block Diagram) Hide
не
будет видна в Front Panel

Property Node (свойства): включают цвет, расположение, размер, прозрачность переменной

Invoke Nodes вызывает действие над объектом

Local Variable
(Локальная переменная): обращение к значению переменной

Слайд 13

Local Variable (Локальная переменная)

Локальная переменная позволяет в месте установки обратиться к переменной,

Local Variable (Локальная переменная) Локальная переменная позволяет в месте установки обратиться к
а также считать или записать в переменную независимо от ее состояния Control или Indicator.

Слайд 14

Подробно о переменных типа Boolean и String

Переменная может работать в режиме
переключателя

Подробно о переменных типа Boolean и String Переменная может работать в режиме
или клавиши,
менять свое значение в начале или
конце нажатия

Изображение строковой
переменной

Слайд 15

Заполнение переменной типа Ring

Массив и изменение
его размерности

Задачи №6-9

Заполнение переменной типа Ring Массив и изменение его размерности Задачи №6-9

Слайд 16

Array (Массив)

Массив

Build Array

Array Size

Index Array

Insert Into Array

Команды для работы с

Array (Массив) Массив Build Array Array Size Index Array Insert Into Array
массивами

Создать массив

Размер массива

Извлечь элемент массива

Добавить в массив

Слайд 17

Кластер
Кластер - это объединение элементов разных типов.
Кластеры используют для уменьшения количества

Кластер Кластер - это объединение элементов разных типов. Кластеры используют для уменьшения
связей на Block Diagram.

Сборка кластера - функция Bundle

Разборка кластера:
Unbundle
Unbundle By Name

Слайд 18

Для передачи значения из кадра в кадр приходится создавать Sequence Local:

Flat Sequence

Для передачи значения из кадра в кадр приходится создавать Sequence Local: Flat
Structure (Открытая последовательность)

Stacked Sequence Structure (Последовательность)

Слайд 19

Туннели – выход из цикла

Disable indexing – индексирование запрещено.
Из цикла будет выведено

Туннели – выход из цикла Disable indexing – индексирование запрещено. Из цикла
последнее значение.

Enable indexing – индексирование разрешено.
Из цикла будут выведены все значения c
созданием массива.

Shift Registers (Сдвиговые регистр)
Используются для передачи значения
переменной из предыдущей итерации в следующую.

Слайд 20

Пример: создаем SubVI

Пример: создаем SubVI

Слайд 21

Icon and Connector Panel

Задачи №10-12

Icon and Connector Panel Задачи №10-12

Слайд 22

График Waveform Chart – аналог самописца

На рисунке цифрами обозначены:
1 - название графика

График Waveform Chart – аналог самописца На рисунке цифрами обозначены: 1 -
(можно поменять на любое другое)
2,3 - названия осей. Аналогично, обозначаем как нам удобно
4 - панель управления осями (название, включение-выключение Autoscale и т.п.)
5 - панель управления изображением (двигать туда-сюда, зум и все такое)
6 - список графиков. Названия и вид отображения настраиваются по вкусу

Слайд 23

XY Graph
Чтобы вывести один график, на вход XY Graph надо подать кластер

XY Graph Чтобы вывести один график, на вход XY Graph надо подать
с двумя массивами - в одном из которых значения x, а в другом - значения y, соответственно.
Чтобы вывести несколько графиков одновременно, нужно подать на вход массив из кластеров, в каждом из которых содержится по два массива со значениями для x и y.

Слайд 24

String – переменная типа строка

Scan From String
Показания приборов считываются в формате String.

String – переменная типа строка Scan From String Показания приборов считываются в
Эта команда переводит строку в число.

Для записи в файл нужно перевести числовой массив в String.

Слайд 25

Запись в файл из массива

Чтение из файла в массив

Файлы – запись, чтение
Write

Запись в файл из массива Чтение из файла в массив Файлы –
to Spreadsheet File

Создать директорию Data2

Слайд 26

Математика и статистика

среднее значение

дисперсия

гистограмма распределения

вычисление производной

Математика и статистика среднее значение дисперсия гистограмма распределения вычисление производной

Слайд 27

интерполяция одномерного
массива (разные методы)

интерполяция сплайном

Аппроксимация (фитирование) данных

Интерполяция данных

фитирование линейной функцией

фитирование

интерполяция одномерного массива (разные методы) интерполяция сплайном Аппроксимация (фитирование) данных Интерполяция данных
полиномом

фитирование произвольной функцией

Слайд 28

Дискретное преобразование Фурье

Прямое преобразование:

Обратное преобразование:

— количество измеренных точек, а также количество компонент

Дискретное преобразование Фурье Прямое преобразование: Обратное преобразование: — количество измеренных точек, а
разложения

— частота k-го элемента преобразования  , где  — время измерения

Быстрое Фурье преобразование (FFT)

Переменная типа Waveform

Задачи №13-18

Слайд 29

Между NI DAQ и LabVIEW функционирует связующая программа, называемая MAX (Measurement and

Между NI DAQ и LabVIEW функционирует связующая программа, называемая MAX (Measurement and
Automation Explorer) программа анализа измерений и автоматизации). МАХ является программным интерфейсом Windows, который предоставляет возможность доступа ко всем платам NI.

VISA, Virtual Instrument Software Architecture —стандартизированный интерфейс ввода-вывода для управления приборами с персонального компьютера. Поддерживает интерфейсы GPIB, RS-232, LAN, USB.

GPIB
General Purpose Interface Bus (GPIB), описывает интерфейс для коммутации между приборами и контроллерами различных производителей. GPIB – это цифровой, параллельный 8-битный интерфейс связи, со скоростью передачи данных от 1 Мбайт/сек и выше. Шина поддерживает один контроллер (обычно компьютер) и до 14 дополнительных устройств.
Шина GPIB состоит из 24 проводов, из них 8 – линии передачи данных, 5 линий управления шиной (TN, EOI, IFC, REN, и SRQ), 3 линии квитирования ( установления связи ), и 8 линий земли.

Слайд 30

Стандартные команды GPIB

Открыть VISA сессию

Закрыть VISA сессию

Отправить команду в прибор

Считать данные из

Стандартные команды GPIB Открыть VISA сессию Закрыть VISA сессию Отправить команду в
прибора

Дистанционное управление прибором

Слайд 31

Читаем Users Guide Agilent 34401

Команды, исполняемые прибором

Читаем Users Guide Agilent 34401 Команды, исполняемые прибором

Слайд 32

Instruments Drivers –Agilent 34401

— программа с описанием команд мультиметра

Instruments Drivers –Agilent 34401 — программа с описанием команд мультиметра

Слайд 33

Работа с платой АЦП-ЦАП в модуле DAQmx

выбор параметров канала измерения

установка частоты измерения

Работа с платой АЦП-ЦАП в модуле DAQmx выбор параметров канала измерения установка
и размера буфера

триггер старта измерения

команда считывания содержания буффера

Слайд 34

Работа с прибором без LV – стандартные команды. Подключение
через IO и

Работа с прибором без LV – стандартные команды. Подключение через IO и
NI-MAX, подключение АЦП-ЦАП.
Задача по подключению прибора
Задача по подключению АЦП-ЦАП в модуле DAQmx
Параллельная работа SubVI.
Вызов SubVI программными методами.
Event и Event mashine.

Слайд 35

Узлы вызовов (Invoke Nodes)

Следующий набор узлов, упомянутых выше – Property Node (Узел

Узлы вызовов (Invoke Nodes) Следующий набор узлов, упомянутых выше – Property Node
свойства)
и Invoke Node (Узел метода), позволяет реализовать в LabVIEW методологию
объектно-ориентированного программирования, когда программный объект
описывается набором свойств и методов (а также событий). Программными объектами в LabVIEW могут быть как объекты самой среды LabVIEW, доступные через технологию VI Server (Сервер ВП), так и объекты, доступные через технологии ActiveX, .NET, DataSocket, IMAQImage, Sequrity, SharedVariable и VISA.

Call By Reference Node (Узел вызова по ссылке) служит для динамического вызова локального или удаленного VI по его ссылке (reference).

Call Library Function Node (Узел вызова библиотечной функции) применяется для вызова процедур, написанных на других языках и оформленных в виде внешних динамически подключаемых библиотек (DLL).

http://digital.ni.com/public.nsf/allkb/4838398F3B2798A186256B82007B4ED0

Слайд 36

Ставим на диаграмму кубик Call By Reference Node
(он находится все там

Ставим на диаграмму кубик Call By Reference Node (он находится все там
же в палитре Application Control).
Должно получитсья примерно вот так:

Итак: заходим в палитру Application Control, и выбираем там кубик Open VI Reference - . С помощью него будет определяться "тип" subVI, который мы вызываем. Под типом здесь подрозумевается количество входных и выходных коннекторов. Щелкаем по входу "type specifier VI refnum" правой кнопкой мыши, создаем регулятор. Затем жмем на него опять же правой кнопкой, в контекстном меню выбираем "Select VI class server"-> Browse и открываем тот файл, который будет использован в качестве образца

Вызов SubVI с помощью ссылки

Слайд 37

Differences Between Calling a VI with an Invoke Node and Calling a

Differences Between Calling a VI with an Invoke Node and Calling a
VI with a Call by Reference Node

Слайд 38

Если же Вы работаете не с VI, а с приложением, необ
ходимо вместо

Если же Вы работаете не с VI, а с приложением, необ ходимо
функции Open VI Reference (Открыть
ссылку на VI) использовать Open Application Reference
(Открыть ссылку на Приложение), находящуюся в этом же
подменю по соседству. Закрывается приложение той же
Close Reference. Далее для управление свойствами VI,
его запуска и, при необходимости, останова, следует ис
пользовать функции Property Node (Узел свойств) и
Invoke Node (Узел вызова).

Узел свойств возвращает либо записывает свойства
VI приложения, на который указывает ссылка. Свойства
это разнообразные данные, например, открыта ли лицевая
панель, каково ее название, активна ли она, и масса дру
гих. При выборе этой функции из подпалитры Управление