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. Чтобы просмотреть эту библиотеку из MATLAB® Командное окно, введите:
sldrtlib
Чтобы просмотреть библиотеку Simulink Desktop Real-Time из модели:
В редакторе Simulink, на вкладке Simulation, нажмите Library Browser.
Откроется браузер библиотеки Simulink. На левой панели показана иерархия библиотек и категорий с библиотекой Simulink в верхней части. На правой панели показаны блоки, доступные в категории, выбранной слева.
В левом столбце дважды кликните мышью Simulink Desktop Real-Time.
Откроется библиотека реального Simulink Desktop Real-Time.
Можно добавить блок ввода-вывода в библиотеку к модели Simulink, перетащив его из библиотеки в модель. После добавления блока соедините его с моделью так же, как и любой другой блок, и предоставьте значения параметров конфигурации блока.
Драйвер ввода-вывода выводит несколько сигналов как вектор вместо отдельных каналов или линий. Чтобы соединить отдельные каналы и линии с частями вашей модели Simulink, разделите вектор Demux блоком.
После того, как вы добавите и сконфигурируете блок драйверов ввода-вывода в вашей модели Simulink, можно разделить и подключить выходные сигналы от блоков:
В редакторе Simulink, на вкладке Simulation, нажмите Library Browser.
В библиотеке Simulink нажмите Signal Routing. Из списка на правой панели щелкните и перетащите Demux в модель Simulink.
Дважды кликните Demux блок. Откроется диалоговое окно Параметров блоков: Demux. Введите количество линий, покидающих блок Demux. Например, если вы ввели три канала в блок Analog Input, введите 3
в Number of outputs поле.
Нажмите OK.
Подключите Analog Input блок к входу Demux блока.
Соедините каждый из Demux блоков выхода линиями со входом других блоков.
На вкладке Debug щелкните Diagnostics > Information Overlays > Nonscalar Lines.
На вкладке 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 предоставляет вам графическую информацию в вашей блок-схеме, которая четко указывает, какие каналы вы подключили, а какие доступны. Штраф состоит в том, что даже оконечные каналы преобразуются, добавляя некоторые вычислительные накладные расходы.
Следующий рисунок показывает реализацию блока.
В зависимости от платы и количества используемых каналов, время преобразования ввода-вывода может повлиять на максимальную частоту дискретизации, которая может быть достигнута в вашей системе. Вместо преобразования неиспользуемых каналов задайте только набор каналов, который на самом деле требуется вашей модели.