Настройка и запуск моделирования внешнего режима с использованием TCP/IP или последовательного (RS-232) канала связи.
Создайте и настройте простую модель.
Создайте целевой исполняемый файл.
Запустите целевое приложение.
Настройка параметров.
Пример, в котором используется цель GRT, не требует внешнего оборудования. Созданный исполняемый файл выполняется:
На компьютере разработки, на котором размещены Coder™ Simulink ® и Simulink.
Как отдельный процесс от MATLAB ® и Simulink.
В этой части примера создается простая модель, ex_extModeExample. Также создается папка с именем ext_mode_example для хранения модели и созданного исполняемого файла.
Чтобы создать папку и модель, выполните следующие действия.
В командной строке MATLAB введите:
mkdir ext_mode_example
Сделать ext_mode_example рабочая папка:
cd ext_mode_example
Создайте модель в Simulink с блоком синусоидальной волны для входного сигнала, двумя блоками усиления параллельно и двумя блоками области действия. Не забудьте пометить блоки усиления и области действия, как показано на рисунке.

Определите и назначьте две переменные рабочей области MATLAB, A и B:
A = 2; B = 3;
Откройте блок усиления А и установите его параметр усиления в значение переменной A.

Откройте блок усиления B и установите его параметр усиления в значение переменной B.
При создании целевого приложения и подключении к Simulink во внешнем режиме можно загрузить новые значения усиления в исполняемое целевое приложение. Для этого можно назначить новые значения переменным рабочей области. A и Bили измените значения в диалоговом окне параметров блока. Дополнительные сведения см. в разделе Настройка параметров.
Проверьте работу модели. Откройте блоки области и запустите модель. Когда A = 2 и B = 3, выходные данные отображаются, как показано на рисунке.

Сохранить модель как ex_extModeExample.
Настройте модель и параметры генерации кода, необходимые для целевого приложения внешнего режима. Затем создайте код и создайте целевое приложение.
На вкладке «Приложения» на панели инструментов Simulink в разделе «Установка для запуска на оборудовании» нажмите кнопку «Выполнить на пользовательском оборудовании».
В разделе Hardware (Оборудование) в списке System Target File Description (Описание целевого файла системы) выберите Generic Real-Time Target (grt.tlc).
В разделе Подготовка выберите Параметры оборудования. Откроется диалоговое окно Configuration Parameters (Параметры конфигурации), в котором отображаются параметры реализации оборудования, определенные целевым файлом системы.
На панели решателя:
В поле Тип выберите Fixed-step.
В поле Решатель выберите discrete (no continuous states).
Щелкните Сведения о решателе (Solver details). В поле Фиксированный размер шага укажите 0.1. (В противном случае при создании кода процесс сборки Simulink Coder выдает предупреждение и возвращает значение.)
Нажмите кнопку «Применить».
На панели Импорт/экспорт данных снимите флажки Время и Вывод. В этом примере данные не регистрируются в рабочей области или в MAT-файле. Нажмите кнопку «Применить».
На панели «Создание кода» > «Оптимизация» убедитесь, что для параметра «Поведение по умолчанию» задано значение Tunable. При внесении изменений нажмите кнопку Применить.
На панели Создание кода > Интерфейс в разделе Интерфейс обмена данными выберите Внешний режим.
В разделе Конфигурация внешнего режима убедитесь, что значение по умолчанию tcpip выбран для параметра Транспортный слой.

Внешний режим поддерживает связь через TCP/IP, последовательный и пользовательский транспортные протоколы. Имя MEX-файла определяет имя MEX-файла, реализующего связь между хостом и целью. Значение по умолчанию для TCP/IP: ext_comm, MEX-файл, поставляемый с программным обеспечением Simulink Coder. Это значение по умолчанию можно переопределить, указав другие файлы. Если требуется поддержка других транспортных уровней, см. раздел Создание транспортного уровня для связи TCP/IP или последовательного внешнего режима.
Поле аргументов MEX-файла позволяет указать аргументы, такие как номер порта сервера TCP/IP, для передачи программе внешнего интерфейса. Эти аргументы относятся к используемому внешнему интерфейсу. Сведения о настройке этих аргументов см. в разделах Дополнительные аргументы MEX-файла для транспорта TCP/IP и Дополнительные аргументы MEX-файла для последовательного транспорта.
В этом примере используются аргументы по умолчанию. Оставьте поле аргументов MEX-файла пустым.
Флажок Статическое выделение памяти управляет распределением памяти для буферов связи внешнего режима в целевом объекте. В этом примере не устанавливайте флажок. Дополнительные сведения см. в разделе Управление выделением памяти для буферов связи в целевом устройстве.
Нажмите кнопку Применить (Apply), чтобы сохранить настройки внешнего режима.
Сохраните модель.
Выберите панель «Создание кода». Убедитесь, что флажок «Генерировать только код» снят.
Чтобы создать код и целевое приложение, в окне модели нажмите клавиши Ctrl + B. Или на вкладке «Оборудование» в разделе «Запуск на оборудовании» выберите «Мониторинг и настройка». Затем в разделе Пошаговые команды (Step By Step Commands) щелкните Сборка для мониторинга (Build for Monitoring).
Программное обеспечение создает ex_extModeExample исполняемый файл в рабочей папке.
Теперь вы запускаете ex_extModeExample целевой исполняемый файл и использовать Simulink в качестве интерактивного интерфейса для выполняющегося целевого приложения. Исполняемый файл находится в рабочей папке. Запустите целевое приложение и установите связь между Simulink и целевым приложением.
Примечание
Программа внешнего режима, например ex_extModeExample является исполняемым файлом на основе хоста. Его выполнение не привязано к операционной системе реального времени (RTOS) или периодическому прерыванию таймера, и оно не выполняется в реальном времени. Программа просто работает как можно быстрее, и единицы времени, которые она подсчитывает, являются моделируемыми единицами времени, которые не соответствуют времени в мире вне программы.
Для запуска целевого приложения:
На вкладке «Оборудование» в разделе «Запуск на оборудовании»:
В поле Время остановки укажите inf, что заставляет модель работать до тех пор, пока целевое приложение не получит сообщение об остановке от Simulink
Щелкните Монитор и настройка. Затем в разделе Пошаговые команды щелкните Развернуть.
Целевое приложение начинает выполнение и переходит в состояние ожидания.
Откройте блоки области в модели. Сигналы не отображаются в областях, пока не начнется выполнение модели.
На вкладке Hardware (Оборудование) в разделе Run on Hardware (Запуск на оборудовании) выберите Monitor & Tune (Мониторинг и настройка). Затем в разделе Пошаговые команды (Step By Step Commands) щелкните Подключить (Connect). Это действие инициирует установление связи между Simulink и целевым приложением. При подключении Simulink и цели кнопка Connect изменяется на Disconnect.
В разделе Run on Hardware нажмите,
чтобы начать выполнение созданного кода модели. В двух областях модели отображаются выходы блоков усиления A и B.
Установлена связь между Simulink и запущенным целевым приложением. Теперь можно настраивать параметры блоков в Simulink и наблюдать за влиянием изменений параметров.
В этой таблице описывается настройка настраиваемых параметров блока во время моделирования.
| Подход | Подробнее |
|---|---|
Редактор данных модели | Чтобы настроить параметры с помощью редактора данных модели:
Дополнительные сведения см. в разделе Настройка свойств данных с помощью редактора данных модели. |
диалоговое окно «Параметр блока» | Чтобы настроить параметры в диалоговом окне «Параметр блока»:
|
Рабочее пространство MATLAB | Если параметры блока являются переменными рабочего пространства MATLAB:
Дополнительные сведения см. в разделе Создание и редактирование переменных. |
Невозможно изменить время выборки блока синусоидальной волны во время моделирования. Время образца блока является частью структурного определения модели и частью созданного кода. Поэтому для изменения времени выборки блока необходимо остановить моделирование внешнего режима, сбросить время выборки блока и перестроить исполняемый файл.
Возможность настройки параметров блока во время моделирования внешнего режима зависит от того, каким образом сгенерированный код представляет параметры блока.
Например, в диалоговом окне «Усиление блока» невозможно изменить выражение A в параметре Gain во время моделирования. Вместо этого необходимо изменить значение переменной A в базовом рабочем пространстве. Невозможно изменить выражение, так как созданный код не выделяет хранилище в памяти для параметра Gain. Вместо этого код создает поле A в структуре:
/* Parameters (auto storage) */
struct P_ex_extModeExample_T_ {
real_T A; /* Variable: A
*/
real_T B; /* Variable: B
*/
real_T SineWave_Amp; /* Expression: 1
*/
real_T SineWave_Bias; /* Expression: 0
*/
real_T SineWave_Freq; /* Expression: 1
*/
real_T SineWave_Phase; /* Expression: 0
*/
};Сгенерированный алгоритм кода использует это поле в коде, представляющем коэффициент усиления блока A. В этом случае глобальная структурная переменная ex_extModeExample_P использует тип P_ex_extModeExample_T_:
ex_extModeExample_B.GainA = ex_extModeExample_P.A * rtb_SineWave;
При изменении значения A в базовом рабочем пространстве моделирование загружает новое значение в поле A в целевом приложении.
Во время моделирования можно изменить выражения в параметрах блока синусоидальной волны, поскольку созданный код создает поле в глобальной структуре. ex_extModeExample_P для представления каждого параметра в блоке. При изменении выражения в диалоговом окне блока моделирование сначала вычисляет новое выражение. Затем моделирование загружает результирующее числовое значение в соответствующее поле структуры в целевом приложении.
См. раздел Создание настраиваемого параметра калибровки в сгенерированном коде.
Чтобы одновременно отключить Simulink от связи между хостом и целью и завершить выполнение целевого приложения, на вкладке «Оборудование» в разделе «Запуск на оборудовании» нажмите кнопку «Остановить».
Если установлен флажок Создание кода > Интерфейс > Выделение статической памяти (для целей GRT и ERT), генератор кода создает код для внешнего режима, который использует только статическое выделение памяти (код «malloc-free»). При выборе параметра «Статическое выделение памяти» включается параметр «Размер буфера статической памяти». Этот параметр используется для указания размера буфера статической памяти внешнего режима. Значение по умолчанию - 1 000 000 байт. Если ввести слишком маленькое значение для программы, во время моделирования внешнего режима возникает ошибка нехватки памяти при попытке выделить больше памяти, чем указано. В таких случаях увеличьте значение в поле Static memory buffer size и восстановите код.
Чтобы определить объем выделяемой памяти, включите подробный режим на целевом объекте (путем включения OPTS="-DVERBOSE" на make командная строка). По мере выполнения внешний режим отображает объем памяти, который он пытается выделить, и объем памяти, доступный ему при каждой попытке выделения. Если выделение не удается, можно использовать этот журнал консоли для определения требуемого значения для поля Размер буфера статической памяти.
Панель управления внешним режимом обеспечивает управление операциями TCP/IP или последовательными внешними режимами, включая:
Чтобы открыть диалоговое окно Панель управления внешним режимом, на вкладке Оборудование в разделе Подготовка щелкните Панель управления.

Панель управления внешним режимом выполняет те же функции подключения/отключения и запуска/остановки, что и на вкладке «Оборудование» на панели инструментов Simulink (см. раздел Сводка графических элементов управления для моделирования TCP/IP или последовательного внешнего режима).
При нажатии кнопки Connect модель подключается к ожидающему или работающему целевому приложению. Во время подключения кнопка изменяется на кнопку «Отключить». Отключение отключает модель от целевой среды, но не останавливает выполнение кода в реальном времени в целевой среде.
Нажатие кнопки Start Real-Time Code (Запустить код в реальном времени) используется для запуска программы в реальном времени. Во время выполнения кода в реальном времени в целевой среде кнопка изменяется на кнопку Остановить код в реальном времени. Функция «Остановить код в реальном времени» останавливает выполнение целевого приложения и отключает модель от целевой среды.
Панель управления внешним режимом позволяет запускать и отменять отправку данных на хост. Местом назначения выгружаемых данных может быть блок области, блок отображения, блок в рабочую область или другой блок или подсистема, перечисленные в списке Блоки и подсистемы, совместимые с внешним режимом.
Кнопки Arm Trigger и Cancel Trigger обеспечивают ручное управление загрузкой данных в совместимые блоки или подсистемы, за исключением плавающих областей. (Для плавающих областей используйте раздел Плавающая область панели управления внешнего режима.)
Чтобы запустить загрузку данных в совместимые блоки или подсистемы, нажмите кнопку Arm Trigger. Кнопка изменяется на Cancel Trigger (Отмена триггера).
Для отмены отправки данных нажмите кнопку Cancel Trigger. Кнопка возвращается в состояние Arm Trigger.
Можно инициировать отправку данных вручную или автоматически. Сведения о настройке сигналов и триггеров для передачи данных см. в разделе Настройка мониторинга хоста для данных целевого сигнала приложения.
Подмножество блоков, совместимых с внешним режимом, включая «Область», «Область времени» и «В рабочую область», позволяет регистрировать загруженные данные на диск. Сведения о настройке архивирования данных см. в разделе Настройка архивирования данных сигналов целевых приложений на хосте.
Раздел Плавающая область (Floating scope) панели управления внешним режимом определяет, когда и как долго данные загружаются в блоки плавающей области. При использовании во внешнем режиме плавающие области:
Не появляйтесь в диалоговом окне External Signal & Triggering (Внешний сигнал и срабатывание).
Не регистрируйте данные во внешнем режиме архивации.
Поддержка только ручного запуска.
Раздел Плавающая область содержит следующие параметры:
Включить параметр выгрузки данных, который функционирует как кнопка Arm Trigger для плавающих областей. При отключении цели этот параметр определяет, следует ли использовать триггер при соединении плавающих областей. Когда цель подключена, эта опция действует как тумблер для включения или выключения триггера.
Чтобы инициировать отправку данных в плавающие области, выберите Включить отправку данных.
Чтобы отменить отправку данных в плавающие области, снимите флажок Включить отправку данных.
Поле редактирования длительности, указывающее количество шагов базовой скорости, для которых внешний режим регистрирует плавающие области данных после события триггера. По умолчанию он имеет значение auto, что приводит к использованию значения длительности, установленного в диалоговом окне External Signal & Triggering. Значение длительности по умолчанию - 1000 шагов базовой скорости.
Параметр Пакетная загрузка на панели управления внешнего режима включает или отключает пакетные изменения параметров.
По умолчанию пакетная загрузка отключена. Если пакетная загрузка отключена, при нажатии кнопки «ОК» или «Применить» изменения, внесенные непосредственно в параметры блока путем редактирования диалоговых окон параметров блока, отправляются в целевой объект. При выполнении схемы обновления отправляются изменения переменных рабочей области MATLAB.
Если выбрать Пакетная загрузка, кнопка Загрузка будет включена. Пока не нажата кнопка Загрузить (Download), изменения, внесенные в параметры блока, хранятся локально. При нажатии кнопки Download изменения отправляются за одну передачу.
Когда изменения параметров ожидают пакетной загрузки, на панели управления внешним режимом отображается сообщение Parameter changes pending... справа от кнопки Download. Это сообщение остается видимым до тех пор, пока механизм Simulink не получит уведомление о том, что в векторе параметров целевой системы установлены новые параметры.
На следующем рисунке показана панель управления внешнего режима с активированным параметром пакетной загрузки и ожидающими изменений параметров.

Во внешнем режиме загрузка данных целевого сигнала приложения на хост зависит от триггера. Триггер - это набор условий, которые должны быть выполнены для начала загрузки данных. Спусковой крючок может быть вооружен или не вооружен.
Когда триггер вооружен, программное обеспечение проверяет условия триггера, которые позволяют начать загрузку данных.
Если триггер не активирован, программное обеспечение не проверяет условия триггера, и загрузка данных не может начаться.
Триггер можно активировать автоматически при подключении хоста к цели или вручную, нажав кнопку Arm Trigger на панели управления внешним режимом.
Когда триггер вооружен и условия триггера выполнены, триггер срабатывает, и начинается загрузка данных.
После сбора данных в течение определенной продолжительности событие триггера завершается, и загрузка данных прекращается. После этого триггер может перевооружиться или остаться безоружным до тех пор, пока не будет нажата кнопка Arm Trigger.
Чтобы выбрать сигналы целевого приложения для выгрузки и настроить способ запуска выгрузки, см. раздел Настройка выгрузки сигнальных данных.
При нажатии кнопки Signal & Triggering на панели управления внешним режимом открывается диалоговое окно External Signal & Triggering.

В диалоговом окне External Signal & Triggering (Внешний сигнал и запуск) отображается список блоков и подсистем в модели, поддерживающих загрузку сигналов во внешнем режиме. Сведения о том, какие типы блоков совместимы с внешним режимом, см. в разделе Блоки и подсистемы, совместимые с внешним режимом.
В диалоговом окне External Signal & Triggering можно выбрать сигналы, которые собираются из целевой системы и просматриваются во внешнем режиме. Можно также выбрать триггерный сигнал, который запускает загрузку данных на основе выполнения определенных условий сигнала, и определить триггерные условия.
На предыдущем рисунке показаны настройки по умолчанию в диалоговом окне External Signal & Triggering. Работа диалогового окна External Signal & Triggering по умолчанию упрощает мониторинг целевого приложения. При использовании настроек по умолчанию предварительная настройка сигналов и триггеров не требуется. Вы запускаете целевое приложение и подключаете к нему модуль Simulink. Выбираются блоки, совместимые с внешним режимом, и срабатывает триггер. Загрузка сигнала начинается сразу после подключения к целевому приложению.
Конфигурация по умолчанию для опций триггера:
Select all: вкл.
Source: вручную
Mode: нормаль
Duration: 1000
Delay: 0
Arm when connecting to target: вкл.
Блоки модели, совместимые с внешним режимом, отображаются в списке Выбор сигнала (Signal selection) диалогового окна Внешний сигнал и срабатывание (External Signal & Triggering). Этот список используется для выбора сигналов, которые требуется просмотреть. В столбце Выбранные (Selected) X отображается для каждого выбранного блока.
Флажок Select all (Выбрать все) используется для выбора всех сигналов. По умолчанию выбрано Выбрать все.
Если флажок Выбрать все снят, можно выбрать или сбросить отдельные сигналы с помощью опций включения и выключения. Для выбора сигнала щелкните по его списку и выберите опцию on. Чтобы очистить сигнал, щелкните его список и выберите опцию off.
Кнопка Очистить все очищает все сигналы.
Как описано в разделе Роль триггера при загрузке сигнальных данных, загрузка сигнальных данных зависит от триггера. Триггер определяет условия, которые должны быть выполнены для начала загрузки. Кроме того, для начала загрузки данных должен быть задействован триггер. Когда триггер вооружен и условия триггера выполнены, триггер срабатывает и начинается загрузка. После сбора данных в течение определенной продолжительности событие триггера завершается, и загрузка данных прекращается.
Для управления сбором (выгрузкой) данных сигнала из целевой системы настройте следующие параметры триггера в диалоговом окне External Signal & Triggering.
Источник: manual или signal. Определяет, инициирует ли загрузка данных кнопка или сигнал.
Выбор manual управляет внешним режимом для использования кнопки Arm Trigger на панели управления внешним режимом в качестве триггера для начала загрузки данных. При нажатии кнопки Arm Trigger начинается загрузка данных.
Выбор signal управляет внешним режимом для использования триггерного сигнала в качестве триггера для начала загрузки данных. Когда сигнал триггера удовлетворяет условиям триггера (то есть сигнал пересекает уровень триггера в заданном направлении), происходит событие триггера. (Укажите условия триггера в разделе Триггерный сигнал.) Если триггер вооружен, внешний режим отслеживает возникновение события триггера. При возникновении события триггера начинается загрузка данных.
Режим: normal или one-shot. Управляет тем, выполняется ли повторное выполнение триггера после завершения события триггера.
В normal режим, внешний режим автоматически перевооружает триггер после каждого события триггера. Следующая загрузка данных начинается при срабатывании триггера.
В one-shot режим, внешний режим собирает только один буфер данных при каждом срабатывании триггера.
Дополнительные сведения о настройке режима см. в разделе Настройка архивирования данных сигналов целевых приложений на хосте.
Длительность: Указывает количество шагов базовой скорости, для которых внешний режим загружает данные после события триггера (по умолчанию - 1000). Например, если значение Duration равно 1000, а базовая (самая быстрая) скорость модели равна одной секунде:
Для сигнала, дискретизированного с базовой скоростью, в течение одной секунды (1,0 Гц) внешний режим собирает 1000 смежных выборок во время триггерного события.
Для сигнала, дискретизированного через две секунды (0,5 Гц), внешний режим собирает 500 выборок во время триггерного события.
Задержка: указывает задержку, применяемую к сбору данных. Задержка представляет собой промежуток времени между событием триггера и началом сбора данных. Задержка выражается в шагах базовой скорости. Он может быть положительным или отрицательным (по умолчанию - 0). Отрицательная задержка соответствует предварительной настройке. Когда задержка отрицательна, данные за время, предшествующее событию триггера, собираются и загружаются.
Рука при подключении к цели: Выбрано или снято. Независимо от того, инициирует ли кнопка или сигнал загрузку данных (в соответствии с определением источника), триггер должен быть вооружен для начала загрузки данных.
При выборе этой опции подключение к цели приводит к срабатыванию триггера.
Если триггер Source имеет значение manual, загрузка данных начинается немедленно.
Если триггер Source имеет значение signal, контроль триггерного сигнала начинается немедленно. Загрузка данных начинается, когда сигнал триггера удовлетворяет условиям триггера (как определено в разделе Сигнал триггера).
Если при подключении к цели флажок Arm (Рука) снят, ручное нажатие триггера осуществляется нажатием кнопки Arm Trigger на панели управления внешним режимом.
При моделировании во внешнем режиме каждая скорость в модели создает буфер на цели. Каждая запись в буфере достаточно велика, чтобы удерживать все данные, необходимые для каждого сигнала, на этой скорости в течение одного временного шага (время плюс данные плюс индексы внешнего режима, идентифицирующие сигнал). Количество записей в кольцевом буфере определяется параметром длительности триггера внешнего режима (ExtModeTrigDuration). Память, выделенная на цели для буферизации сигналов, пропорциональна длительности и количеству загружаемых сигналов. Duration также обеспечивает индикацию количества шагов базовой скорости с данными журнала после триггерного события во внешнем режиме.
Значение Duration указывает количество смежных точек данных, собираемых в каждом буфере данных. Необходимо ввести значение Duration, равное количеству непрерывных точек выборки, которые необходимо собрать, вместо того, чтобы полагаться на последовательность буферов, которые должны быть непрерывными. Если ввести значение, меньшее, чем общее количество точек выборки, можно потерять точки выборки в течение времени, затраченного на перенос значений из буфера данных в рабочую область MATLAB. Программное обеспечение Simulink поддерживает непрерывность точек только в одном буфере. Между буферами из-за времени передачи некоторые выборки могут быть опущены.
Значение Длительность (Duration) может влиять на точки данных ограничения последнего значения блоков Область (Scope) и В рабочую область (To Workspace). Число точек образца, сохраняемых блоками в рабочей области MATLAB, меньше двух значений. Чтобы задать количество точек выборки, сохраняемых блоками, снимите флажок «Ограничить число точек данных». Затем с помощью параметра «Длительность» укажите количество сохраненных точек образца.
Один сигнал можно обозначить как сигнал запуска. Для выбора триггерного сигнала в меню Source в разделе Trigger options выберите signal. Это действие активирует параметры в разделе Триггерный сигнал. Затем выберите сигнал в списке Signal selection и нажмите кнопку Trigger Signal.
При выборе сигнала в качестве триггера T появляется в столбце Trigger списка Signal selection. На следующем рисунке Scope A сигнал - это триггер. Scope B также выбран для просмотра, как указано X в столбце Выбранные.

После выбора триггерного сигнала можно использовать раздел Триггерный сигнал для определения условий триггера и установки параметров триггерного сигнала Порт и Элемент.
Используйте раздел Триггерный сигнал (Trigger signal) диалогового окна Внешний сигнал и триггер (External Signal & Triggering) для установки условий и атрибутов триггера. Параметры триггерного сигнала активируются только в том случае, если для параметра триггера Source установлено значение signal в разделе Параметры триггера.
По умолчанию любой элемент первого входного порта указанного блока триггера может вызвать срабатывание триггера (то есть порт 1, любой элемент). Можно изменить это поведение, настроив значения Port и Element в разделе Trigger signal. Поле Port принимает число или ключевое слово last. Поле Element принимает число или ключевые слова any или last.
В разделе Триггерный сигнал также определяются условия, при которых происходит триггерное событие.
Направление: rising, falling, или either. Направление, в котором сигнал должен перемещаться, когда он пересекает пороговое значение. Значение по умолчанию: rising.
Уровень: Значение, указывающее пороговое значение, которое должен преодолеть сигнал в заданном направлении для запуска триггера. По умолчанию уровень равен 0.
Удержание: Применяется только к normal режим. Выраженное в шагах базовой скорости, Hold-off - это время между завершением одного события триггера и перевооружением триггера.
После настройки загрузки данных сигнала и подключения Simulink к исполняемому целевому файлу можно изменить параметры сигнала и запуска без отключения от целевого файла.
Если триггер вооружен (например, если выбрана опция триггера Arm при подключении к цели, которая используется по умолчанию), диалоговое окно External Signal & Triggering (Внешний сигнал и срабатывание) не может быть изменено. Для изменения параметров сигнала и запуска:
Откройте панель управления внешним режимом.
Нажмите кнопку Cancel Trigger (Отмена триггера). Инициирование и отображение загруженных данных прекращается.
Откройте диалоговое окно External Signal & Triggering и при необходимости измените параметры сигнала и триггера. Например, в разделе Выбор сигнала можно включить или отключить область, а в разделе Параметры триггера изменить режим триггера, например, из normal кому one-shot.
Щелкните Рычаг (Arm) Триггер (Trigger). Инициирование и отображение загруженных данных возобновляется с изменениями.

Во внешнем режиме для архивирования данных на диск можно использовать блоки «Simulink Scope» и «To Workspace».
Чтобы понять, как работают функции архивирования, рассмотрим обработку данных, когда архивация не включена. Существует два варианта: одномоментный режим и обычный режим.
В одномоментном режиме после события триггера каждый выбранный блок записывает свои данные в рабочую область, как и в конце моделирования. Если запускается еще один снимок, существующие данные рабочей области перезаписываются.
В обычном режиме внешний режим автоматически перезагружает триггер после каждого события триггера. Следовательно, обычный режим можно рассматривать как серию из одного выстрела. Каждый однозарядный в этой серии, кроме последнего, упоминается как промежуточный результат. Поскольку триггер может срабатывать в любое время, запись промежуточных результатов в рабочую область может привести к непредсказуемой перезаписи переменных рабочей области. По этой причине поведение по умолчанию заключается в записи в рабочую область только результатов заключительного однократного снимка. Промежуточные результаты отбрасываются. Если известно, что между триггерами существует достаточно времени для проверки промежуточных результатов, можно переопределить поведение по умолчанию, выбрав опцию Записать промежуточные результаты в рабочую область. Этот параметр не защищает данные рабочей области от перезаписи последующими триггерами.
Если для архивирования данных на диск используется блок Simulink Scope, откройте диалоговое окно Scope parameters и выберите опцию Log data to workspace. Опция необходима по следующим причинам:
Данные сначала передаются из буфера данных области в рабочую область MATLAB, а затем записываются в MAT-файл.
Имя переменной, введенное в диалоговом окне Параметры области (Scope parameters), совпадает с именем переменной в рабочей области MATLAB и MAT-файле. Включение сохранения данных позволяет сохранить переменную с именем с параметром Имя переменной в MAT-файле.
Примечание
Если не выбрать параметр Блок области (Scope block) Данные журнала в рабочую область (Log data to workspace), создаются MAT-файлы для регистрации данных, но они пусты.
Диалоговое окно «Включить архивирование данных» поддерживает:
Примечания к папке
Примечания к файлу
Автоматизированное архивирование данных
На панели управления внешним режимом нажмите кнопку «Архивирование данных», чтобы открыть диалоговое окно «Включить архивирование данных». Если модель подключена к целевой среде, отключите ее во время настройки архивирования данных. Чтобы включить другие элементы управления в диалоговом окне, выберите Включить архивирование.

Эти операции поддерживаются диалоговым окном «Включить архивирование данных».
Чтобы добавить аннотации для коллекции связанных файлов данных в папке, в диалоговом окне Включить архивирование данных (Enable Data Archiving) щелкните Править заметку каталога (Edit Directory Note). Откроется редактор MATLAB. Поместите комментарии, которые необходимо сохранить в файл, в указанную папку в этом окне. По умолчанию комментарии сохраняются в папке, в которую последний раз записывался при архивировании данных.
Чтобы добавить аннотации для отдельного файла данных, в диалоговом окне Включить архивирование данных (Enable Data Archiving) щелкните Править заметку файла (Edit File Note). Откроется окно поиска файлов, в котором по умолчанию установлен последний файл, в который была записана запись. При выборе MAT-файла открывается окно правки. В этом окне добавьте или отредактируйте комментарии, которые необходимо сохранить в отдельном MAT-файле.
Чтобы настроить автоматическую запись результатов регистрации на диск, в том числе промежуточных результатов, используйте параметр Включить архивирование и включенные элементы управления. Диалоговое окно предоставляет следующие связанные элементы управления:
Каталог: Указывает папку, в которой сохраняются данные. Если выбрать Increment directory, когда триггер вооружен, внешний режим добавляет суффикс.
Файл: имя файла, в котором сохраняются данные. Если выбрать Increment file after one-shot, внешний режим добавит суффикс.
Increment directory when trigger armed: Каждый раз, когда вы нажимаете кнопку Arm Trigger, внешний режим использует другую папку для записи файлов журнала. Папки именуются постепенно, например: dirname1, dirname2и так далее.
Increment file after one-shot: Новые буферы данных сохраняются в инкрементных файлах: filename1, filename2и так далее. Приращение размера файла происходит автоматически в обычном режиме.
Если внешний режим увеличивает имена файлов, каждый файл содержит переменные с одинаковыми именами. Выбор суффикса добавления файла к имени переменной приводит к тому, что каждый файл содержит уникальные имена переменных. Например, внешний режим сохраняет переменную с именем xdata в добавочных файлах (file_1, file_2, и так далее) как xdata_1, xdata_2и так далее. Этот подход поддерживает загрузку MAT-файлов в рабочее пространство и сравнение переменных в командной строке MATLAB. Без уникальных имен каждый экземпляр xdata перезаписывает предыдущую запись в рабочей области MATLAB.
Записать промежуточные результаты в рабочую область: если необходимо, чтобы программа Simulink Coder записывала промежуточные результаты в рабочую область, выберите этот параметр.
Можно управлять моделированием TCP/IP или последовательного внешнего режима с помощью:
Вкладка «Оборудование» на панели инструментов Simulink. Чтобы открыть вкладку Оборудование, на вкладке Приложения на панели инструментов Simulink нажмите кнопку Выполнить на пользовательском оборудовании.
Панель управления внешним режимом. Чтобы открыть это диалоговое окно, в редакторе Simulink на вкладке «Оборудование» в разделе «Подготовка» нажмите.
Затем в разделе Мониторинг и трассировка сигналов щелкните Панель управления.
В этой таблице перечислены действия внешнего режима, которые можно выполнить с помощью элементов управления, доступных на вкладке «Оборудование» и на панели управления внешнего режима.
| Действие внешнего режима | Вкладка «Оборудование» | Панель управления внешним режимом |
|---|---|---|
Построить целевое приложение. | Запуск на оборудовании > Сборка для мониторинга
| Н/Д |
Запустите приложение на целевом оборудовании. | Запустить на оборудовании > Развернуть
| Н/Д |
Подключите Simulink к ожидающему или работающему целевому приложению. | Запустить на оборудовании > Подключить
Когда приложение Simulink подключено к целевому приложению, функция Connect становится недоступной, а функция Disconnect
активна. | Соединиться При подключении Simulink к целевому приложению параметр Подключить изменяется на Отключить. |
Запуск выполнения в реальном времени сгенерированного кода в целевой среде. | Запустить на оборудовании > Пуск
| Запуск кода в реальном времени Когда генерируемый код начинает выполняться, кнопка изменяется на Stop Real-Time Code (Остановить код в реальном времени). |
Отключите Simulink от целевой среды, но не останавливайте выполнение кода в реальном времени. | Запустить на оборудовании > Отключить
При отключении Simulink от целевого приложения функция Disconnect становится недоступной, а функция Connect
активна. | Разъединить |
Остановите выполнение целевого приложения и отключите Simulink от целевой среды. | В разделе Run on Hardware нажмите кнопку Stop. | Остановить код в реальном времени |
Настройка пакета параметров блока. | В разделе Подготовка
| Пакетная загрузка и загрузка |
Во внешнем режиме для приема и просмотра сигналов, загруженных из целевого приложения, можно использовать следующие типы блоков:
Плавающая область и блоки области
Блоки Spectrum Analyzer и Time Scope от продукта DSP System Toolbox™
Блоки отображения
В блоки рабочей области
Записанные пользователем S-функциональные блоки
Метод внешнего режима встроен в S-функцию API. Этот метод позволяет записанным пользователем блокам поддерживать внешний режим. Посмотрите .matlabroot/simulink/include/simstruc.h
Блоки графика XY
Можно назначить определенные подсистемы подсистемами просмотра сигналов и использовать их для приема и просмотра сигналов, загруженных из целевого приложения. Дополнительные сведения см. в разделе Подсистемы просмотра сигналов.
Выберите блоки и подсистемы, совместимые с внешним режимом, и активируйте триггер с помощью диалогового окна External Signal & Triggering. По умолчанию такие блоки в модели выбираются, и при подключении к целевому приложению устанавливается ручной триггер.
Подсистема просмотра сигналов - это атомарная подсистема, которая инкапсулирует обработку и просмотр сигналов, принимаемых от целевой системы. Подсистема просмотра сигналов работает только на хосте и не генерирует код в целевой системе. Сигнал, Рассматривающий Подсистемы, бежит в нормальном, акселераторе, быстром акселераторе и внешних способах моделирования.
Примечание
Подсистемы просмотра сигналов неактивны, если они размещены внутри компонента SIL или PIL, такого как верхняя модель в режиме SIL или PIL, блок модели в режиме SIL или PIL или блок SIL или PIL. Однако компонент SIL или PIL может использовать подсистему просмотра сигналов, работающую в поддерживаемом режиме.
Подсистемы просмотра сигналов полезны в ситуациях, когда требуется обработать или привести в состояние сигналы перед их просмотром или протоколированием, но выполнение этих задач в целевой системе не требуется. Используя подсистему просмотра сигналов, можно создавать меньший и более эффективный код в целевой системе.
Как и другие блоки, совместимые с внешним режимом, подсистемы просмотра сигналов отображаются в диалоговом окне «Внешний сигнал и запуск».
Чтобы объявить подсистему подсистемой просмотра сигналов:
В диалоговом окне «Параметры блока» выберите опцию «Считать атомными единицами».
Дополнительные сведения об атомных подсистемах см. в разделе Управление генерацией функций для подсистем.
Чтобы включить свойство SimViewingDevice, используйте set_param команда:
set_param('blockname', 'SimViewingDevice','on')'blockname' - имя подсистемы.
Убедитесь, что подсистема удовлетворяет следующим требованиям:
Это должен быть чистый блок раковины. То есть он не должен содержать блоки Outport или Data Store. Он может содержать блоки Goto, только если соответствующие блоки From содержатся в границах подсистемы.
Он не должен иметь непрерывных состояний.
Следующая модель, sink_examp, содержит атомную подсистему, theSink.

Подсистема theSink применяет коэффициент усиления и смещение к входному сигналу и отображает его в блоке Scope.

Если theSink объявляется как подсистема просмотра сигналов, генерируемое целевое приложение включает в себя только код для блока синусоидальной волны. Если theSink выбирается и активируется в диалоговом окне External Signal & Triggering, целевое приложение загружает синусоидальный сигнал в theSink во время моделирования. Затем можно изменить параметры блоков в theSink и наблюдать за загруженным сигналом.
Если theSink не были объявлены как подсистема просмотра сигнала, ее блоки усиления, константы и суммы будут выполняться как код подсистемы в целевой системе. Сигнал синусоидальной волны загружается в механизм Simulink после обработки этими блоками и просматривается на sink_examp/theSink/Scope2. Требования к обработке целевой системы могут быть увеличены за счет дополнительной обработки сигнала и за счет загрузки изменений параметров блока с хоста.
Во внешнем режиме для архивирования данных на диск можно использовать следующие типы блоков:
Блоки объема
В блоки рабочей области
Архивирование данных настраивается с помощью диалогового окна Enable Data Archiving (Включить архивирование данных), как описано в разделе Configure Host Archiving of Target Application Signal Data (Настройка архивирования данных целевого сигнала приложения).
В зависимости от настройки параметра Поведение параметров по умолчанию при создании целевого приложения, существуют различия в способе обработки обновлений параметров. Механизм загрузки (Download Mechanism) описывает работу связи во внешнем режиме с параметром По умолчанию (Default parameter behavior), установленным в значение Tunable. Встроенные и настраиваемые параметры описывают работу внешнего режима с параметрами по умолчанию, для которых установлено значение Inlined.
Во внешнем режиме модуль Simulink не моделирует систему, представленную блок-схемой. По умолчанию при включенном внешнем режиме модуль Simulink загружает параметры в целевую систему. После начальной загрузки движок остается в режиме ожидания до тех пор, пока вы не измените параметры в блок-схеме или пока движок не получит данные от цели.
При изменении параметра в блок-схеме модуль Simulink вызывает внешний интерфейс MEX-файл, передавая новые значения параметров (вместе с другой информацией) в качестве аргументов. Внешний интерфейс MEX-файл содержит код, реализующий одну сторону канала межпроцессной связи (IPC). Этот канал соединяет процесс Simulink (где выполняется файл MEX) с процессом, выполняющим внешнюю программу. MEX-файл передает новые значения параметров с использованием этого канала во внешнюю программу.
Другая сторона канала связи реализована во внешней программе. Эта сторона записывает новые значения параметров в структуру параметров цели ().model_P
Сторона Simulink инициирует операцию загрузки параметров, посылая сообщение, содержащее информацию о параметрах, во внешнюю программу. В терминологии клиентских/серверных вычислений сторона Simulink является клиентом, а внешняя программа - сервером. Эти два процесса могут быть удаленными или локальными. Если клиент и сервер являются удаленными, для передачи данных используется протокол, например TCP/IP. Если клиент и сервер являются локальными, для передачи данных можно использовать последовательное соединение или общую память.
На следующем рисунке показана эта взаимосвязь. Модуль Simulink вызывает внешний интерфейс MEX-файл при каждом изменении параметров в блок-схеме. Затем MEX-файл загружает параметры во внешнюю программу с использованием канала связи.
По умолчанию параметры (за исключением перечисленных в TCP/IP и Serial External Mode Limitions) в программе внешнего режима настраиваются; то есть их можно изменить с помощью механизма загрузки, описанного в этом разделе.
Если для параметра Поведение по умолчанию (Default parameter behavior) задано значение Inlined (на панели Оптимизация (Optimization) диалогового окна Параметры конфигурации (Configuration Parameters)) генератор кода Simulink Coder встраивает в создаваемый код числовые значения параметров модели (констант) вместо символьных имен параметров. Параметры встраивания генерируют меньший и более эффективный код. Однако встроенные параметры, поскольку они фактически становятся константами, не поддаются настройке.
Программное обеспечение Simulink Coder позволяет повысить общую эффективность за счет встраивания большинства параметров при сохранении гибкости настройки во время выполнения для выбранных параметров, важных для приложения. При включении параметров можно использовать Simulink.Parameter объекты для удаления отдельных параметров из строки и объявления их настраиваемыми. Кроме того, эти объекты можно использовать для управления представлением параметров в создаваемом коде.
Дополнительные сведения о настраиваемых параметрах см. в разделе Создание настраиваемого калибровочного параметра в сгенерированном коде.
Автоматическая загрузка параметров по соединению хост-компьютер/конечный объект. Каждый раз при подключении модуля Simulink к целевому приложению, созданному с параметром Default, для которого установлено значение Inlined, целевое приложение загружает текущее значение своих настраиваемых параметров на хост. Эти значения присваиваются соответствующим переменным рабочей области MATLAB. Эта процедура синхронизирует хост и цель относительно значений параметров.
Переменные рабочей области, необходимые для модели, должны быть инициализированы во время подключения хоста/цели. В противном случае загрузка не может быть продолжена, и в результате будет получена ошибка. После установления соединения эти переменные обновляются для отражения текущих значений параметров в целевой системе.
Автоматическая загрузка параметров выполняется только в том случае, если целевое приложение было создано со значением Поведение параметров по умолчанию Inlined. Механизм загрузки (Download Mechanism) описывает работу связи во внешнем режиме с параметрами По умолчанию (Default parameter behav Tunable.
Продукт Simulink Coder предоставляет код для реализации связи с клиентом и сервером во внешнем режиме с использованием протоколов TCP/IP или последовательных протоколов. Можно использовать реализацию внешнего режима на основе сокетов, предоставляемую продуктом Simulink Coder с сгенерированным кодом, при условии, что целевая система поддерживает TCP/IP. Если нет, используйте или настройте предоставленный параметр уровня последовательного переноса.
Транспортный уровень низкого уровня обрабатывает физическую передачу сообщений. Механизм Simulink и код модели не зависят от этого слоя. Как транспортный уровень, так и код, непосредственно взаимодействующие с транспортным уровнем, изолированы в отдельных модулях, которые форматируют, передают и принимают сообщения и пакеты данных.
Можно использовать реализацию внешнего режима на основе TCP/IP с программами реального времени в системах Open Group UNIX ® или PC. Для получения справки по настройке транспортных уровней внешнего режима см. Создание транспортного уровня для связи TCP/IP или последовательного внешнего режима.
Использование внешнего режима Simulink через TCP/IP:
Убедитесь, что указан внешний интерфейс MEX-файл для транспорта TCP/IP целевого объекта.
Цели, предоставляемые MathWorks ®, указывают имя MEX-файла внешнего интерфейса в. Имя интерфейса отображается в виде нередактируемого текста в разделе Конфигурация внешнего режима (External mode configuration) панели Интерфейс (Interface) диалогового окна Параметры конфигурации (Configuration Parameters). По умолчанию используется TCP/IP matlabroot/toolbox/simulink/simulink/extmode_transports.mext_comm.
Чтобы указать транспорт TCP/IP для настраиваемого конечного объекта, необходимо добавить запись следующей формы в sl_customization.m файл по пути MATLAB:
function sl_customization(cm)
cm.ExtModeTransports.add('stf.tlc', 'transport', 'mexfile', 'Level1');
%end function - имя целевого файла системы, для которого регистрируется транспорт (например, stf.tlc'mytarget.tlc')
- имя транспорта, отображаемое в меню транспортного слоя на панели «Интерфейс» диалогового окна «Параметры конфигурации» (например, transport'tcpip')
- имя связанного с транспортом внешнего интерфейса MEX-файла (например, mexfile'ext_comm')
Можно указать несколько целей и/или переносов с дополнительными cm.ExtModeTransports.add линии, например:
function sl_customization(cm)
cm.ExtModeTransports.add('mytarget.tlc', 'tcpip', 'ext_comm', 'Level1');
cm.ExtModeTransports.add('mytarget.tlc', 'serial', ...
'ext_serial_win32_comm', 'Level1');
%end functionУбедитесь, что файл make шаблона настроен на связывание исходных файлов для кода сервера TCP/IP и что он определяет флаги компилятора при построении сгенерированного кода.
Создайте внешнюю программу.
Запустите внешнюю программу.
Установите модель Simulink во внешний режим и подключитесь к цели.
На следующем рисунке показана структура реализации на основе TCP/IP.
Реализация клиента/сервера на основе TCP/IP для внешнего режима

Дополнительные аргументы MEX-файла для транспорта TCP/IP. В диалоговом окне Внешний целевой интерфейс (External Target Interface) можно указать необязательные аргументы, передаваемые в интерфейс внешнего режима MEX-file для связи с исполняемыми целевыми объектами.
Имя целевой сети: сетевое имя компьютера, на котором выполняется внешняя программа. По умолчанию это компьютер, на котором работает продукт Simulink, например: 'myComputer'. Можно также использовать IP-адрес, например: '148.27.151.12'.
Уровень детализации: управляет уровнем детализации информации, отображаемой при передаче данных. Значение: 0 или 1 и имеет следующее значение:
0 - Нет информации - Подробная информация
1
Номер порта сервера TCP/IP: Значение по умолчанию: 17725. Номер порта можно изменить на значение между 256 и 65535 во избежание конфликта портов.
Аргументы позиционные и должны быть указаны в следующем порядке:
<TargetNetworkName> <VerbosityLevel> <ServerPortNumber>
Например, если требуется указать уровень детализации (второй аргумент), необходимо также указать имя целевой сети (первый аргумент). Аргументы могут быть разделены пробелами или запятыми. Например:
'148.27.151.12' 1 30000
При запуске внешней программы можно задать параметры командной строки. См. раздел Запуск внешней программы.
Управление связью хост/цель по последовательному каналу аналогично управлению связью хост/цель по каналу TCP/IP.
Для использования внешнего режима Simulink по последовательному каналу необходимо:
Убедитесь, что указан внешний интерфейс MEX-файл для последовательного переноса целевого объекта.
Цели, предоставляемые MathWorks, указывают имя MEX-файла внешнего интерфейса в . Имя интерфейса отображается в виде нередактируемого текста в разделе Конфигурация внешнего режима (External mode configuration) панели Интерфейс (Interface) диалогового окна Параметры конфигурации (Configuration Parameters). Последовательное значение по умолчанию: matlabroot/toolbox/simulink/simulink/extmode_transports.mserial.
Чтобы указать последовательный транспорт для настраиваемого целевого объекта, необходимо добавить запись следующей формы в sl_customization.m файл по пути MATLAB:
function sl_customization(cm)
cm.ExtModeTransports.add('stf.tlc', 'transport', 'mexfile', 'Level1');
%end function - имя целевого файла системы, для которого регистрируется транспорт (например, stf.tlc'mytarget.tlc')
- имя транспорта, отображаемое в меню транспортного слоя на панели «Интерфейс» диалогового окна «Параметры конфигурации» (например, transport'serial')
- имя связанного с транспортом внешнего интерфейса MEX-файла (например, mexfile'ext_serial_win32_comm')
Можно указать несколько целей и/или переносов с дополнительными cm.ExtModeTransports.add линии, например:
function sl_customization(cm)
cm.ExtModeTransports.add('mytarget.tlc', 'tcpip', 'ext_comm', 'Level1');
cm.ExtModeTransports.add('mytarget.tlc', 'serial', ...
'ext_serial_win32_comm', 'Level1');
%end functionУбедитесь, что файл make шаблона настроен на связывание исходных файлов для кода последовательного сервера и что он определяет флаги компилятора при построении сгенерированного кода.
Создайте внешнюю программу.
Запустите внешнюю программу.
Установите модель Simulink во внешний режим и подключитесь к цели.
MEX-файл Необязательные аргументы для последовательного транспорта. В поле MEX-file arguments панели Interface диалогового окна Configuration Parameters можно указать аргументы, передаваемые в интерфейс внешнего режима MEX-file для связи с исполняемыми целевыми объектами. Для последовательного переноса необязательные аргументы: ext_serial_win32_comm являются следующими:
Уровень детализации: Этот аргумент управляет уровнем детализации информации, отображаемой при передаче данных. Значение этого аргумента:
0 (без информации), или
1 (подробная информация)
Идентификатор последовательного порта: идентификатор порта хоста, указанный как целочисленный или символьный вектор. Например, укажите идентификатор порта USB-последовательного преобразователя как '/dev/ttyusb0'. Simulink Coder префиксы целочисленных идентификаторов портов с \\.\COM в ОС Windows ® и /dev/ttyS в Unix.
При запуске целевого приложения с использованием последовательного соединения необходимо указать идентификатор порта для подключения к хосту. Сделайте это, включив -port параметр командной строки. Например:
mytarget.exe -port 2 -w
Скорость передачи: укажите целое значение. Значение по умолчанию: 57600.
Параметры MEX-файла являются позиционными и должны быть указаны в следующем порядке:
<VerbosityLevel> <SerialPortID> <BaudRate>
Например, если требуется указать идентификатор последовательного порта (второй аргумент), необходимо также указать уровень детализации (первый аргумент). Аргументы могут быть разделены пробелами или запятыми. Например:
1 '/dev/ttyusb0' 57600
При запуске внешней программы можно задать параметры командной строки.
Перед использованием продукта Simulink во внешнем режиме должна быть запущена внешняя программа.
Если целевое приложение выполняется на том же компьютере, что и хост, и связь осуществляется через последовательный кабель с закольцовыванием, идентификатор порта получателя должен отличаться от идентификатора хоста (как указано в поле редактирования аргументов MEX-файла).
Чтобы запустить внешнюю программу, введите команду формы:
model -opt1 ... -optN - имя внешней программы и model являются опциями. (См. раздел Параметры командной строки для внешней программы.) В примерах в этом разделе имя внешней программы: -opt1 ... -optNext_example.
Запуск внешней программы в среде Windows. В среде Windows внешние программы можно запускать одним из следующих способов:
Откройте окно командной строки. В командной строке введите имя целевого исполняемого файла, а затем возможные параметры, такие как:
ext_example -tf inf -w
Можно также запустить целевой исполняемый файл из окна команд MATLAB. Команде должен предшествовать восклицательный знак (!) и затем амперсанд (&), как в следующем примере:
!ext_example -tf inf -w &
Амперсанд (&) заставляет операционную систему создать другой процесс для запуска целевого исполняемого файла. Если амперсанд не включен, программа по-прежнему выполняется, но невозможно ввести команды в командной строке MATLAB или завершить выполнение исполняемого файла вручную.
Запуск внешней программы в среде UNIX. В среде UNIX внешние программы можно запускать одним из следующих способов:
Открыть Xterm окно. В командной строке введите имя целевого исполняемого файла, а затем возможные параметры, такие как:
./ext_example -tf inf -w
Можно также запустить целевой исполняемый файл из окна команд MATLAB. Его необходимо запустить в фоновом режиме, чтобы по-прежнему иметь доступ к среде Simulink. Команде должен предшествовать восклицательный знак (!), косая черта (./с указанием текущего каталога), а затем амперсанд (&), как в следующем примере:
!./ext_example -tf inf -w &
Амперсанд (&) заставляет операционную систему создать другой процесс для запуска целевого исполняемого файла.
Параметры командной строки для внешней программы. Целевые исполняемые файлы внешнего режима, созданные генератором кода Simulink Coder, поддерживают следующие параметры командной строки:
-tf n
-tf переопределяет время остановки, установленное в модели Simulink. Аргумент n указывает количество секунд, в течение которых будет выполняться программа. Стоимость inf задает бесконечное выполнение модели. В этом случае код модели выполняется до тех пор, пока целевое приложение не получит сообщение об остановке от модуля Simulink.
В следующем примере устанавливается время остановки 10 секунд.
ext_example -tf 10
При построении и выполнении во внешнем режиме целочисленных целей ЭРТ параметр времени остановки (-tf) интерпретируется целевым объектом как число шагов базовой скорости, а не как число секунд для выполнения.
-w
Предписывает целевому приложению войти в состояние ожидания, пока оно не получит сообщение от хоста. На этом этапе целевой объект выполняется, но не выполняется код модели. Начальное сообщение отправляется при выборе в меню Simulation команды Start Real-Time Code или нажатии кнопки Start Real-Time Code на панели управления внешнего режима.
Используйте -w опция, если требуется просмотреть данные выполнения целевого приложения с шага времени 0, или если требуется изменить параметры до того, как целевое приложение начнет выполнение кода модели.
-port n
Указывает номер порта TCP/IP или идентификатор последовательного порта, n, для целевого приложения. Номер порта целевого приложения должен совпадать с номером порта узла для транспорта TCP/IP. Номер порта зависит от типа транспорта.
Для транспорта TCP/IP: номер порта является целым числом между 256 и 65535, со значением по умолчанию 17725.
Для последовательного транспорта: идентификатор порта является целым числом или символьным вектором. Например, укажите идентификатор порта USB-последовательного преобразователя как '/dev/ttyusb0'
-baud r
Указанный как целое число, этот параметр доступен только для последовательного переноса.
Если требуется реализовать собственный транспортный уровень для связи во внешнем режиме, необходимо изменить определенные модули кода, предоставляемые продуктом Simulink Coder, и создать новый файл MEX внешнего интерфейса. См. раздел Создание транспортного уровня для связи TCP/IP или последовательного внешнего режима.
Моделирование внешнего режима можно выполнять из командной строки MATLAB или программно в сценариях. Используйте get_param и set_param команды для извлечения и установки значений параметров командной строки моделирования модели, таких как SimulationMode и SimulationCommandи параметры командной строки внешнего режима, такие как ExtModeCommand и ExtModeTrigType.
Следующие команды моделирования модели предполагают, что модель Simulink открыта и загружено целевое приложение, к которому модель будет подключаться с помощью внешнего режима.
Измените модель Simulink на внешний режим:
set_param(gcs,'SimulationMode','external')
Подключите открытую модель к загруженному целевому приложению:
set_param(gcs,'SimulationCommand','connect')
Запустите целевое приложение:
set_param(gcs,'SimulationCommand','start')
Остановить запуск целевого приложения:
set_param(gcs,'SimulationCommand','stop')
Отсоедините целевое приложение от модели:
set_param(gcs,'SimulationCommand','disconnect')
set_param команды, которые используют 'SimulationCommand' аргументы асинхронны. При последовательном выполнении команд из сценария каждая команда запускается без ожидания выполнения предыдущей команды. Для проверки выполнения каждой команды в сценарии используйте команду get_param с помощью команды 'SimulationStatus' аргумент. Например, для шагов 1-3 укажите следующие команды в сценарии:
set_param(gcs,'SimulationMode','external'); set_param(gcs,'SimulationCommand','connect'); isExternalSimulationActive = false; while ~isExternalSimulationActive simStatus = get_param(gcs, 'SimulationStatus'); isExternalSimulationActive = strcmp(simStatus, 'external'); end set_param(gcs,'SimulationCommand','start');
Дополнительные сведения см. в разделе Программное моделирование.
Средство просмотра диагностики отображает сообщения об ошибках, созданные get_param и set_param команды.
Чтобы настроить параметр рабочего пространства, измените его значение в командной строке. Если параметр рабочей области является Simulink.Parameter , назначьте новое значение Value собственность.
myVariable = 5.23; myParamObj.Value = 5.23;
Чтобы загрузить параметр рабочей области во внешнем режиме, обновите схему модели. Следующая команда моделирования модели инициирует обновление модели:
set_param(gcs,'SimulationCommand','update')
Чтобы запустить или отменить отправку данных в области, используйте ExtModeCommand ценности armFloating и cancelFloating, или armWired и cancelWired. Например, чтобы запустить, а затем отменить загрузку данных в проводные (ненаполненные) области:
set_param(gcs,'ExtModeCommand','armWired') set_param(gcs,'ExtModeCommand','cancelWired')
В следующей таблице перечислены параметры командной строки внешнего режима, которые можно использовать в get_param и set_param команды. Таблица содержит краткие описания, допустимые значения (по умолчанию выделены жирным шрифтом) и сопоставление с эквивалентами диалогового окна Внешний режим (External Mode). Параметры внешнего режима, эквивалентные параметрам панели «Интерфейс» в диалоговом окне «Параметры конфигурации», см. в разделе Параметры конфигурации модели: интерфейс генерации кода.
Параметры командной строки внешнего режима
| Параметры и значения | Эквивалент диалогового окна | Описание |
|---|---|---|
ExtModeAddSuffixToVaroff, on | Включить архивирование данных: флажок Добавить суффикс файла к именам переменных | Инкрементные имена переменных для каждого инкрементированного имени файла. |
ExtModeArchiveDirNamecharacter vector | Включить архивирование данных: Текстовое поле каталога | Сохранить данные в указанной папке. |
ExtModeArchiveFileNamecharacter vector | Включить архивирование данных: Текстовое поле файла | Сохранить данные в указанном файле. |
ExtModeArchiveModecharacter vector - off, auto, manual | Включить архивирование данных: флажок Включить архивирование | Активируйте функции автоматического архивирования данных. Определить Обратите внимание, что при указании |
ExtModeArmWhenConnectoff, on | Внешний сигнал и срабатывание: флажок Рука при подключении к цели | Активируйте триггер, как только программное обеспечение Simulink Coder подключится к цели. |
ExtModeAutoIncOneShotoff, on | Включить архивирование данных: флажок «Инкремент файла после однократного снимка» | Сохранение новых буферов данных в добавочных файлах. |
ExtModeAutoUpdateStatusClock(только платформы Windows)off, on | Недоступно | Непрерывная загрузка и отображение целевого времени в строке состояния окна модели. |
ExtModeBatchModeoff, on | Панель управления внешнего режима: флажок Загрузка пакета | Включение или отключение загрузки параметров в пакетном режиме. |
ExtModeChangesPendingoff, on | Недоступно | Когда ExtModeBatchMode включен, указывает, остаются ли параметры в очереди параметров для загрузки в целевой объект. |
ExtModeCommandcharacter vector - armFloating, armWired, cancelFloating, cancelWired |
| Выполните команду внешнего режима для целевого приложения. |
ExtModeConnectedoff, on | Панель управления внешним режимом: кнопка подключения/отключения | Укажите состояние соединения с целевым приложением. |
ExtModeEnableFloatingoff, on | Панель управления внешним режимом: флажок «Включить отправку данных» | Включение или отключение подрыва и отмены триггеров при установлении соединения с плавающими областями. |
ExtModeIncDirWhenArmoff, on | Включить архивирование данных: приращение каталога, если триггер вооружен | Запись файлов журнала в добавочные папки при каждом срабатывании триггера. |
ExtModeLogAlloff, on | Внешний сигнал и срабатывание: флажок «Выбрать все» | Загрузите доступные сигналы от цели на хост. |
ExtModeParamChangesPendingoff, on | Недоступно | Когда программное обеспечение Simulink Coder подключено к цели и ExtModeBatchMode включен, указывает, остаются ли параметры в очереди параметров для загрузки в целевой объект. Более эффективный, чем ExtModeChangesPending, потому что он проверяет подключение к цели. |
ExtModeSkipDownloadWhenConnectoff, on | Недоступно | Подключитесь к целевому приложению без загрузки параметров. |
ExtModeTrigDelayinteger (0) | Внешний сигнал и срабатывание: Текстовое поле задержки | Укажите время (выраженное в шагах базовой скорости) между наступлением триггера и началом сбора данных. |
ExtModeTrigDirectioncharacter vector - rising, falling, either | Внешний сигнал и срабатывание: меню «Направление» | Укажите направление прохождения сигнала при превышении порогового значения. |
ExtModeTrigDurationinteger (1000) | Внешний сигнал и срабатывание: Текстовое поле длительности | Укажите количество шагов базовой скорости, для которых внешний режим должен регистрировать данные после события триггера. |
ExtModeTrigDurationFloatingcharacter vector - integer (auto) | Панель управления внешнего режима: Текстовое поле длительности | Укажите длительность плавающих областей. Если auto указано, значение ExtModeTrigDuration используется. |
ExtModeTrigElementcharacter vector - integer, any, last | Внешний сигнал и срабатывание: Текстовое поле элемента | Укажите элементы входного порта указанного блока триггера, которые могут вызвать срабатывание триггера. |
ExtModeTrigHoldOffinteger (0) | Внешний сигнал и срабатывание: Текстовое поле удержания | Укажите шаги базовой скорости между завершением события триггера и перевооружением триггера. |
ExtModeTrigLevelinteger (0) | Внешний сигнал и срабатывание: Текстовое поле уровня | Укажите пороговое значение, которое должен преодолеть сигнал триггера для запуска триггера. |
ExtModeTrigModecharacter vector - normal, oneshot | Внешний сигнал и запуск: меню «Режим» | Укажите, должен ли триггер автоматически перевооружаться после каждого события триггера или только один буфер данных должен собираться при каждом срабатывании триггера. |
ExtModeTrigPortcharacter vector - integer (1), last | Внешний сигнал и срабатывание: Текстовое поле порта | Укажите входной порт указанного блока триггера, элементы которого могут вызвать срабатывание триггера. |
ExtModeTrigTypecharacter vector - manual, signal | Внешний сигнал и запуск: меню «Источник» | Укажите, следует ли начинать регистрировать данные при срабатывании триггера или если заданный сигнал триггера удовлетворяет условиям триггера. |
ExtModeUploadStatuscharacter vector - inactive, armed, uploading | Недоступно | Возвращает статус механизма загрузки во внешнем режиме - неактивный, вооруженный или выгружаемый. |
ExtModeWriteAllDataToWsoff, on | Включить архивирование данных: флажок «Записать промежуточные результаты в рабочую область» | Запись промежуточных результатов в рабочую область. |
При наличии Stateflow ® можно анимировать диаграмму во внешнем режиме. Во внешнем режиме можно анимировать состояния на диаграмме и просматривать сигналы контрольных точек в плавающей области или средстве просмотра сигналов.
Чтобы анимировать состояния на диаграмме во внешнем режиме:
Загрузите диаграмму, которую требуется анимировать, на целевой компьютер.
В диалоговом окне «Параметры конфигурации» установите флажок «Внешний режим».
Откройте диалоговое окно «Панель управления внешним режимом».
Нажмите Signal & Triggering (Сигнал и запуск).
В диалоговом окне External Signal & Triggering установите эти параметры.
| В: | Выберите: |
|---|---|
| Панель выбора сигнала | Диаграмма, которую требуется анимировать |
| Панель параметров триггера | Флажок Вооружить при подключении к цели |
| Панель параметров триггера | normal из раскрывающегося меню в поле Mode |
Создайте модель для создания исполняемого файла.
Развертывание целевого приложения.
Подключите Simulink к целевому приложению.
Запустите выполнение созданного кода модели. Диаграмма выделяет состояния при их выполнении.
При моделировании диаграммы во внешнем режиме можно определить данные диаграммы локального объема в качестве контрольных точек и просмотреть данные контрольных точек в плавающих областях и средствах просмотра сигналов.
Для просмотра данных контрольных точек во время моделирования во внешнем режиме:
Откройте обозреватель моделей и для всех данных, которые требуется просмотреть, выполните следующие действия.
На средней панели «Содержимое» выберите состояние или локальные данные, представляющие интерес.
На правой диалоговой панели выберите вкладку Logging и установите флажок Test point.
В плавающей области или средстве просмотра сигналов нажмите кнопку выбора сигнала:
![]()
Откроется диалоговое окно Выбор сигнала (Signal Selector).
На панели иерархии модели селектора сигналов выберите диаграмму.
В меню Signal Selector List contents выберите Tested/Logged signals only, а затем выберите сигналы, которые требуется просмотреть.
Моделирование модели во внешнем режиме, как описано в разделе Состояния анимации во время моделирования во внешнем режиме.
Область или средство просмотра отображает значения сигналов контрольных точек при выполнении моделирования.
Дополнительные сведения см. в разделе Поведение областей и объектов просмотра в режиме быстрого ускорения.
| Особенность | Подробнее |
|---|---|
| Изменение параметров | Как правило, невозможно изменить параметр, если это приводит к изменению структуры модели. Например, нельзя изменить
При внесении этих изменений в блок-схему необходимо перестроить программу с вновь созданным кодом. Параметры в блоках представления передаточной функции и пространства состояний можно изменять определенными способами:
Если блок-схема Simulink не соответствует внешней программе, Simulink выдает ошибку, указывающую на несоответствие контрольных сумм. Контрольные суммы учитывают верхние модели, но не ссылочные модели. Используйте обновленную блок-схему для восстановления целевого приложения. |
| Загрузка данных | Отправка значений данных для фиксированных или перечисляемых типов в параметры рабочей области не поддерживается. |
| Загрузка сигналов переменного размера | Загрузка сигналов переменного размера не поддерживается для следующих целей:
|
| Отображение значения сигнала при моделировании | Графическое отображение значений сигналов в моделях (описано в разделе Отображение значений сигналов в схемах моделей) не поддерживается. Например, нельзя использовать пункты меню «Отображение данных в моделировании», «Показать метки значений при наведении», «Переключить метки значений при щелчке» и «Показать метку значений выбранного порта». |
| Настраиваемые параметры структуры | Загрузка или загрузка настраиваемых параметров структуры не поддерживается. |
| Чистый целочисленный код | Поддерживается чистый целочисленный код. Если не указать При указании
|
| Половинная точность | Типы данных половинной точности не поддерживаются. |
| Архивирование данных | Для архивирования данных на диск поддерживаются блоки Scope и To Workspace. Однако другие области не поддерживаются для архивирования данных. Например, для архивирования данных нельзя использовать плавающие блоки области или объекты Viewers и Generators Manager Viewer. |
| Области в ссылочных моделях | В иерархии модели, если верхняя модель моделируется во внешнем режиме, а ссылочная модель моделируется в обычном режиме или режиме акселератора, области в ссылочной модели не отображаются. Однако при изменении модели верхнего уровня для моделирования в нормальном режиме поведение областей в ссылочных моделях отличается между нормальным и ускорительным режимами. Области в ссылочной модели, моделируемой в обычном режиме, отображаются, в то время как области в ссылочной модели, моделируемой в режиме акселератора, не отображаются. |
| Время начала моделирования | Ненулевое время начала моделирования не поддерживается. В диалоговом окне «Параметры конфигурации» на панели «Решатель» оставьте для параметра «Время начала» значение по умолчанию |
| Промежуточные значения шага |
Некоторые блоки Simulink могут генерировать несколько значений на этапе моделирования. Например:
Для каждого временного шага во внешнем моделировании Simulink выгружает из целевого приложения только конечные значения таких блоков. Simulink не загружает промежуточные значения, сгенерированные во время шага. |
| Данные в области файлов | Данные в области файлов не поддерживаются, например, элементы данных, к которым применяется встроенный пользовательский класс хранения, |
| Сигналы с пользовательскими классами хранения | Загрузка сигналов с пользовательскими классами хранения (CSC) не поддерживается. |
Использование printf Заявления | Для отображения ошибок целевого приложения и информационных сообщений на дисплее целевого оборудования можно использовать |
| Аргументы командной строки | Аргументы командной строки можно использовать для запуска целевых приложений. Применяются следующие ограничения:
Если оконечное оборудование не поддерживает синтаксический анализ аргументов командной строки, укажите определение макроса препроцессора Для замены set_param(modelName, 'OnTargetWaitForStart', 'on'); -DON_TARGET_WAIT_FOR_START=1) компилятору. |
| Генерация основного кода строки | Код, созданный с использованием основного формата строки, не поддерживается. |