exponenta event banner

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

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

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

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

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

Просмотр библиотеки рабочего стола Simulink в реальном времени

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

sldrtlib

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

  1. В редакторе Simulink на вкладке «Моделирование» выберите «Обозреватель библиотек».

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

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

Откроется библиотека Simulink Desktop в реальном времени.

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

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

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

После добавления и настройки блока драйвера ввода/вывода в модели Simulink можно отделить и подключить выходные сигналы от следующих блоков:

  1. В редакторе Simulink на вкладке «Моделирование» выберите «Обозреватель библиотек».

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

  3. Дважды щелкните блок Demux. Откроется диалоговое окно Параметры блока (Block Parameters: Demux). Введите количество строк, выходящих из блока Demux. Например, если в блок аналогового ввода введены три канала, введите 3 в поле Количество выходов.

  4. Нажмите кнопку ОК.

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

  6. Подключите каждую из выходных линий блока Demux к входу других блоков.

  7. На вкладке Отладка (Debug) щелкните Диагностика (Diagnostics) > Информационные наложения (Information Overlays) > Нескалярные линии (Nonscalar

  8. На вкладке Отладка (Debug) щелкните Диагностика (Diagnostics) > Информационные наложения (Information Overlays) > Размеры сигнала (Signal

Примечание

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

Настройка выбора канала

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

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

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

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

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

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

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

После размещения блока аналогового ввода в модели и выбора и конфигурирования платы ввода/вывода можно настроить блок аналогового ввода для обработки входных сигналов.

Одиночный аналоговый вход - наиболее основным случаем является одиночный аналоговый входной сигнал, который физически подключен к первому аналоговому входному каналу платы. В диалоговом окне «Параметр блока: Аналоговый ввод» и в поле «Каналы ввода» введите:

1 or [1]

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

Входной вектор с дифференциальным аналогом - количество аналоговых каналов от 1 канала до максимального количества аналоговых сигналов, поддерживаемых платой ввода/вывода.

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

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

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

[1 2 3 4]

Вектор ввода с аналоговым аналогом на одном конце - Предположим, что плата 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]

На следующем рисунке показана результирующая блок-схема.

Не указывайте больше каналов, чем фактически используется в блок-схеме. Указание неиспользуемых каналов приводит к дополнительным накладным расходам для процессора с преобразованиями АЦП или АЦП. В этом случае, например, даже если некоторые каналы не используются в блок-схеме, эти каналы все еще преобразуются.

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

На следующем рисунке показана реализация блока.

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

Связанные темы