Использование блоков драйверов ввода-вывода

Simulink® Desktop Real-Time™ ввода-вывода блоков драйвера позволяют вам выбрать и подключить определенные аналоговые каналы и цифровые линии к своей модели Simulink через ввод-вывод блоков драйверов. Эти блоки обеспечивают интерфейс для ваших физических плат ввода-вывода и вашего приложения реального времени. Они позволяют коду С, созданному программным обеспечением генерации кода Simulink Coder™, сопоставить сигналы блока с соответствующими каналами ввода-вывода. Все блоки ввода-вывода поддерживают все применимые типы данных Simulink.

С каждым типом ввода-вывода платы может быть связано несколько блоков ввода-вывода. Для примера можно иметь один блок Analog Input для каналов 1-4 и другой блок для каналов 5-8. Каждый блок ввода-вывода в модели задает свои собственные параметры конфигурации блоков, которые применяются только к тому образцу этого блока.

Возможность блока драйверов ввода-вывода доступна только в том случае, если соответствующее аппаратное устройство ввода-вывода поддерживает эту возможность. Для примеров, ориентированных на данные устройств, таких как Последовательный Порт и Файл поддержки пакеты и потоковые блоки ввода-вывода. Однако устройства сбора данных не поддерживают блоки ввода-вывода пакетов и потоков.

Библиотека Simulink Desktop Real-Time Library предоставляет блоки, которые можно использовать с поддерживаемыми платами ввода-вывода. Можно также создать свои собственные блоки ввода-вывода для работы с программным обеспечением Simulink Desktop Real-Time. Для получения дополнительной информации см. раздел «Основы пользовательских драйверов ввода-вывода».

Просмотр библиотеки Simulink Desktop Real-Time

Блоки драйверов ввода-вывода доступны в библиотеке Simulink Desktop Real-Time. Чтобы просмотреть эту библиотеку из MATLAB® Командное окно, введите:

sldrtlib

Чтобы просмотреть библиотеку Simulink Desktop Real-Time из модели:

  1. В редакторе Simulink, на вкладке Simulation, нажмите Library Browser.

    Откроется браузер библиотеки Simulink. На левой панели показана иерархия библиотек и категорий с библиотекой Simulink в верхней части. На правой панели показаны блоки, доступные в категории, выбранной слева.

  2. В левом столбце дважды кликните мышью Simulink Desktop Real-Time.

Откроется библиотека реального Simulink Desktop Real-Time.

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

Маршрутизация сигналов из блока ввода-вывода

Драйвер ввода-вывода выводит несколько сигналов как вектор вместо отдельных каналов или линий. Чтобы соединить отдельные каналы и линии с частями вашей модели Simulink, разделите вектор Demux блоком.

После того, как вы добавите и сконфигурируете блок драйверов ввода-вывода в вашей модели Simulink, можно разделить и подключить выходные сигналы от блоков:

  1. В редакторе Simulink, на вкладке Simulation, нажмите Library Browser.

  2. В библиотеке Simulink нажмите Signal Routing. Из списка на правой панели щелкните и перетащите Demux в модель Simulink.

  3. Дважды кликните Demux блок. Откроется диалоговое окно Параметров блоков: Demux. Введите количество линий, покидающих блок Demux. Например, если вы ввели три канала в блок Analog Input, введите 3 в Number of outputs поле.

  4. Нажмите OK.

  5. Подключите Analog Input блок к входу Demux блока.

  6. Соедините каждый из Demux блоков выхода линиями со входом других блоков.

  7. На вкладке Debug щелкните Diagnostics > Information Overlays > Nonscalar Lines.

  8. На вкладке Debug щелкните Diagnostics > Information Overlays > Signal Dimensions.

Примечание

В этом примере входы 1 и 2 не соединены, но они могут быть соединены с другими блоками Simulink.

Сконфигурируйте выбор канала

Чтобы показать, как задать настройки устройства при использовании как аналоговых, так и цифровых сигналов, этот пример использует Keithley® Metrabyte™ DAS-1601 ввода-вывода. Ниже приведены сводные данные спецификаций платы DAS-1601:

  • Аналоговый вход (A/D) - 16 однокомпонентных или 8 дифференциальных аналоговых входов (12-битный), переключатель настроен как униполярный (0-10 вольт) или биполярный (± 10 вольт). Коэффициент усиления - это программное обеспечение, настроенное на значения 1, 10, 100 и 500.

  • Цифровой вход - Четыре однонаправленных цифровых входа

  • Аналоговый выход (D/A) - Два аналоговых выхода (12-битный). Коэффициент усиления конфигурируется как 0-5 вольт, 0-10 вольт, ± 5 вольт или ± 10 вольт

  • Цифровой выход - Четыре однонаправленных цифровых выхода

  • Базовый адрес - Конфигурированный коммутатором базовый адрес

В этом разделе рассматриваются различные строения входных сигналов.

После размещения блока Analog Input в модели и выбора и настройки платы ввода-вывода можно настроить блок Analog Input для обработки входных сигналов.

Single analog input - Самый основной случай является одним аналоговым входным сигналом, который физически соединяется с первым аналоговым входным каналом на плате. В диалоговом окне Параметры Блоков: Analog Input и в Input channels поле введите:

1 or [1]

Использование скобок опционально для одного входа.

Input vector with differential analog - Количество аналоговых каналов от канала 1 до максимального количества аналоговых сигналов, поддерживаемых платой ввода-вывода.

В случае DAS-1601, если он сконфигурирован как дифференциальные входные параметры, поддерживаются восемь аналоговых каналов. Аналоговые входные линии пронумерованы с 1 по 8. Полный входной вектор:

[1 2 3 4 5 6 7 8] or [1:8]

Если вы хотите использовать первые четыре дифференциальных аналоговых канала, введите

[1 2 3 4]

Input vector with single-ended analog - предположим, что ваша DAS-1601 плата сконфигурирована как аналоговый вход с одним концом. В этом случае поддерживаются 16 аналоговых входных каналов. Полный входной вектор:

[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16] or [1:16]

Чтобы использовать первые четыре однокомпонентных аналоговых входных канала, введите:

[1 2 3 4] or [1:4]

Следующий рисунок показывает получившийся блок.

Не указывайте больше каналов, чем вы фактически используете в своём блоке. Определение неиспользованных каналов приводит к дополнительным накладным расходам для процессора с преобразованиями A/D или D/A. В этом случае, например, даже если некоторые каналы не используются в блоке, эти каналы все еще преобразуются.

Можно прикрепить блоки terminator к каналам 4 и 5 внутри вашей блок-схемы после передачи вектора Analog Input блока в блок Demux. Добавление блоков terminator предоставляет вам графическую информацию в вашей блок-схеме, которая четко указывает, какие каналы вы подключили, а какие доступны. Штраф состоит в том, что даже оконечные каналы преобразуются, добавляя некоторые вычислительные накладные расходы.

Следующий рисунок показывает реализацию блока.

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

Похожие темы