Симуляция Режима external mode с TCP/IP или Последовательная передача

Настройте и запустите симуляцию режима external mode, которая использует TCP/IP или последовательный (RS-232) канал связи.

  1. Создайте и сконфигурируйте простую модель.

  2. Создайте целевой исполняемый файл.

  3. Запустите целевое приложение.

  4. Настройки параметров.

Пример, который использует цель GRT, не требует внешнего оборудования. Сгенерированные запуски исполняемого файла:

  • На компьютере разработчика, который размещает Simulink® и Simulink Coder™.

  • Как отдельный процесс из MATLAB® и Simulink.

Создайте и сконфигурируйте модель

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

Создать папку и модель:

  1. Из командной строки MATLAB введите:

    mkdir ext_mode_example
  2. Сделайте ext_mode_example ваша рабочая папка:

    cd ext_mode_example
  3. Создайте модель в Simulink с блоком Sine Wave для входного сигнала, два блока Gain параллельно и два блока Scope. Обязательно маркируйте Gain, и Scope блокируется как показано.

  4. Задайте и присвойте две переменные рабочего пространства MATLAB, A и B:

    A = 2;
    B = 3;
  5. Открытый блок A Gain и установленный его параметр Gain на переменную A.

  6. Открытый блок B Gain и установленный его параметр Gain на переменную B.

    Когда целевое приложение создается и соединяется с Simulink в режиме external mode, можно загрузить новые значения усиления на выполняющееся целевое приложение. Для этого можно присвоить новые значения переменным A рабочей области и B, или отредактируйте значения в диалоговом окне параметров блоков. Для получения дополнительной информации смотрите Настройки параметров.

  7. Проверьте операцию модели. Откройте блоки Scope и запустите модель. Когда A = 2 и B = 3, выход появляется как показано.

  8. Сохраните модель как ex_extModeExample.

Создайте целевой исполняемый файл

Настройте модель и параметры генерации кода, требуемые для целевого приложения режима external mode. Затем сгенерируйте код и создайте целевое приложение.

  1. От вкладки Apps на панели инструментов Simulink, в разделе Setup to Run on Hardware, нажимают Run on Custom Hardware.

  2. В разделе Hardware, из списка System Target File Description, выбирают Generic Real-Time Target (grt.tlc).

  3. В разделе Prepare нажмите Hardware Settings. Диалоговое окно Configuration Parameters открывается, отображая настройки Hardware Implementation, которые определяются системным конечным файлом.

  4. На панели Solver:

    1. В поле Type выберите Fixed-step.

    2. В поле Solver выберите discrete (no continuous states).

    3. Нажмите Solver details. В поле Fixed-step size задайте 0.1. (В противном случае, когда вы генерируете код, процесс сборки Simulink Coder производит предупреждение и предоставляет значение.)

    4. Нажмите Apply.

  5. На панели Data Import/Export снимите флажки Time и Output. В этом примере данные не регистрируются к рабочей области или к MAT-файлу. Нажмите Apply.

  6. На Code Generation> панель Optimization, проверяйте, что Default parameter behavior установлен в Tunable. Если вы вносите изменение, нажмите Apply.

  7. На Code Generation> панель Interface, в разделе Data exchange interface, выбирают External mode.

  8. В разделе External mode configuration убедитесь что значение по умолчанию tcpip выбран для параметра Transport layer.

    Режим external mode поддерживает коммуникацию через TCP/IP, последовательные, и пользовательские транспортные протоколы. MEX-file name задает имя файла MEX, который реализует целевую хостом коммуникацию. Значением по умолчанию для TCP/IP является ext_comm, файлу MEX предоставляют программное обеспечение Simulink Coder. Можно заменить это значение по умолчанию путем предоставления других файлов. Если необходимо поддержать другие транспортные уровни, смотрите, Создают Транспортный уровень для TCP/IP или Последовательной Коммуникации Режима external mode.

    Поле MEX-file arguments позволяет вам задать аргументы, такие как номер порта сервера TCP/IP, быть переданными внешней интерфейсной программе. Эти аргументы характерны для внешнего интерфейса, который вы используете. Для получения информации об установке этих аргументов смотрите Дополнительные аргументы файла MEX для Дополнительных аргументов Транспорта и файла MEX TCP/IP для Последовательного Транспорта.

    Этот пример использует параметры по умолчанию. Оставьте незаполненное поле MEX-file arguments.

    Флажок Static memory allocation управляет, как память выделяется для коммуникационных буферов режима external mode в цели. В данном примере не устанавливайте флажок. Для получения дополнительной информации смотрите Выделение Управляющей памяти для Коммуникационных Буферов в Цели.

  9. Нажмите Apply, чтобы сохранить настройки режима external mode.

  10. Сохраните модель.

  11. Выберите панель Code Generation. Убедитесь, что Generate code only очищен.

  12. Чтобы сгенерировать код и создать целевое приложение, в окне модели, нажимают Ctrl+B. Или, на вкладке Hardware, в разделе Run on Hardware, нажимают Monitor & Tune. Затем под Step By Step Commands нажмите Build for Monitoring.

    Программное обеспечение создает ex_extModeExample исполняемый файл в вашей рабочей папке.

Запустите целевое приложение

Вы теперь запускаете ex_extModeExample предназначайтесь для исполняемого файла и используйте Simulink в качестве интерактивного фронтэнда к целевому приложению запуска. Исполняемый файл находится в вашей рабочей папке. Запустите целевое приложение и установите связь между Simulink и целью.

Примечание

Программа режима external mode как ex_extModeExample основанный на хосте исполняемый файл. Его выполнение не связывается к операционной системе реального времени (RTOS) или периодическому прерыванию по таймеру, и это не запускается в режиме реального времени. Программа только запускается максимально быстро, и единицы измерения времени, которые она отсчитывает, являются симулированными единицами измерения времени, которые не соответствуют времени в мире вне программы.

Запустить целевое приложение:

  1. На вкладке Hardware, в разделе Run on Hardware:

    1. В поле Stop Time задайте inf, который делает запуск модели, пока целевое приложение не получает сообщение остановки от Simulink

    2. Нажмите Monitor & Tune. Затем под Step By Step Commands нажмите Deploy.

    Целевое приложение начинает выполнение и вводит состояние ожидания.

  2. Откройте блоки Scope в модели. Сигналы не отображаются на осциллографах, пока вы не начинаете выполнение модели.

  3. На вкладке Hardware, в разделе Run on Hardware, нажимают Monitor & Tune. Затем под Step By Step Commands нажмите Connect. Это действие инициирует квитирование между Simulink и целевым приложением. Когда Simulink и цель соединяются, изменения Кнопки соединения в Disconnect.

  4. В разделе Run on Hardware щелкните, который запускает выполнение сгенерированного типового кодекса. Два осциллографа в вашей модели отображают выводы блоков A Gain и B.

Вы установили связь между Simulink и целевым приложением запуска. Можно теперь настроить параметры блоков в Simulink и наблюдать эффекты изменений параметра.

Настройки параметров

Эта таблица описывает, как можно настроить настраиваемые параметры блоков во время симуляции.

ПодходДетали

Model Data Editor

К настройкам параметров через Model Data Editor:

  1. На вкладке Hardware Редактора Simulink, в разделе Prepare, нажимают Tune Parameters, который открывает Model Data Editor.

  2. Если вы хотите обновить несколько настраиваемых параметров одновременно в разделе Prepare, включите Hold Updates.

  3. На вкладке Parameters Model Data Editor, в столбце Value, задают новые значения для ваших настраиваемых параметров.

  4. Выключите Hold Updates или нажмите Update All Parameters (Ctrl+D). Simulink загружает новые значения на целевое приложение одновременно.

    Если Hold Updates выключен, то сразу после того, как вы задаете новое значение, Simulink загружает новое значение на целевое приложение.

Для получения дополнительной информации смотрите Model Data Editor.

Диалоговое окно Block Parameter

К настройкам параметров через диалоговое окно Block Parameter:

  1. Для каждого блока, который вы хотите обновить:

    1. Дважды кликните блок, который открывает диалоговое окно Block Parameter.

    2. В полях параметра задайте новые значения параметров.

    3. Нажмите Apply или OK.

  2. Если Hold Updates включен, выключите Hold Updates или нажмите Update All Parameters (Ctrl+D). Simulink загружает новые значения на целевое приложение одновременно.

    Если Hold Updates выключен, то сразу после того, как вы нажимаете Apply или OK, Simulink загружает новые значения блока на целевое приложение.

Рабочее пространство MATLAB

Если параметры блоков являются переменными рабочего пространства MATLAB:

  1. В Командном окне присвойте новые значения переменным.

  2. На вкладке Hardware Редактора Simulink, в разделе Prepare, нажимают Update All Parameters (Ctrl+D). Simulink загружает новые значения на целевое приложение.

Для получения дополнительной информации смотрите, Создают и Переменные Редактирования.

Вы не можете изменить шаг расчета блока Sine Wave в процессе моделирования. Блокируйтесь шаги расчета являются частью структурного определения модели и являются частью сгенерированного кода. Поэтому, если вы хотите изменить шаг расчета блока, необходимо остановить симуляцию режима external mode, сбросить шаг расчета блока и восстановить исполняемый файл.

Приспособляемость параметров блоков во время симуляции режима external mode зависит от способа, которым сгенерированный код представляет параметры блоков.

Например, в диалоговом окне блока Gain A, вы не можете изменить выражение 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
                                        */
};

Алгоритм сгенерированного кода использует то поле в коде, который представляет блок Gain A. В этом случае, глобальная переменная ex_extModeExample_P структуры использует тип P_ex_extModeExample_T_:

ex_extModeExample_B.GainA = ex_extModeExample_P.A * rtb_SineWave;

Когда вы изменяете значение A в базовом рабочем пространстве симуляция загружает новое значение на поле A в целевом приложении.

Можно изменить выражения в параметрах блоков Sine Wave в процессе моделирования, потому что сгенерированный код создает поле в глобальной структуре ex_extModeExample_P представлять каждый параметр в блоке. Когда вы изменяете выражение в диалоговом окне блока, симуляция сначала выполняет новое выражение. Симуляция затем загружает получившееся числовое значение на соответствующее поле структуры в целевом приложении.

Смотрите создают настраиваемый калибровочный параметр в сгенерированном коде.

Остановите целевое приложение

Чтобы одновременно отключить Simulink от коммуникации хоста/цели и выполнения конца целевого приложения, на вкладке Hardware, в разделе Run on Hardware, нажимают Stop.

Выделение управляющей памяти для коммуникационных буферов в цели

Если вы устанавливаете флажок Code Generation> Interface> Static memory allocation (для GRT и целей ERT), генератор кода производит код для режима external mode, который использует только выделение статического ЗУ (“malloc-свободный” код). Выбор Static memory allocation включает параметр Static memory buffer size. Используйте этот параметр, чтобы задать размер буфера статического ЗУ режима external mode. Значение по умолчанию составляет 1 000 000 байтов. Если вы вводите слишком маленькое значение для своей программы, симуляция режима external mode выпускает ошибку из памяти, когда это пытается выделить больше памяти, чем заданный. В таких случаях увеличьте значение в поле Static memory buffer size и регенерируйте код.

Чтобы определить сколько памяти, чтобы выделить, включите многословный режим на цели (включением OPTS="-DVERBOSE" на make командная строка). Как это выполняется, режим external mode отображает объем памяти, который это пытается выделить и объем памяти, доступный для него каждый раз, когда это делает попытку выделения. Если выделение перестало работать, можно использовать этот консольный журнал, чтобы определить необходимое значение для поля Static memory buffer size.

TCP/IP или Последовательная Панель управления Режима external mode

Панель управления Режима external mode обеспечивает средства управления для TCP/IP или последовательные операции режима external mode, включая:

Чтобы открыть диалоговое окно External Mode Control Panel, на вкладке Hardware, в разделе Prepare, нажимают Control Panel.

Соединитесь, запуститесь, и остановка

Панель управления Режима external mode выполняет то же подключение/разъединение, и запустите/остановите функции, искавшие на вкладке Hardware на панели инструментов Simulink (см. Сводные данные Графических Средств управления для TCP/IP или Последовательной Симуляции Режима external mode).

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

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

Загрузите данные сигнала целевого приложения, чтобы разместить

Панель управления Режима external mode позволяет вам инициировать и отменить загрузки данных на хост. Место назначения для загруженных данных может быть блоком scope, блоком Display, блоком To Workspace, или другим блоком или подсистемой, перечисленной в Блоках и Подсистемах, Совместимых с Режимом external mode.

Кнопки Arm Trigger и Cancel Trigger обеспечивают ручное управление загрузки данных на совместимые блоки или подсистемы, кроме плавания осциллографов. (Для плавания осциллографов используйте раздел Floating scope Панели управления Режима external mode.)

  • Чтобы инициировать загрузку данных на совместимые блоки или подсистемы, нажмите кнопку Arm Trigger. Кнопка превращается в Cancel Trigger.

  • Чтобы отменить загрузку данных, нажмите кнопку Cancel Trigger. Кнопка возвращается к Arm Trigger.

Можно инициировать загрузки данных вручную или автоматически. Чтобы сконфигурировать сигналы и триггеры для загрузок данных, смотрите, Конфигурируют Контроль Хоста Данных сигнала Целевого приложения.

Подмножество режима external mode совместимые блоки, включая Осциллограф, Time Scope, и К Рабочей области, позволяет вам регистрировать загруженные данные к диску. Чтобы сконфигурировать архивацию данных, смотрите, Конфигурируют Архивацию Хоста Данных сигнала Целевого приложения.

Раздел Floating scope Панели управления Режима external mode управляет, когда и как долго данные загружаются на Плавающие блоки Осциллографа. Когда используется в режиме external mode, пуская в ход осциллографы:

  • Не появляйтесь в диалоговом окне External Signal & Triggering.

  • Не делайте данных логов к архивации режима external mode.

  • Руководство по получению поддержки, инициировавшее только.

Раздел Floating scope содержит следующие параметры:

  • Опция Enable data uploading, которая функционирует как кнопку Arm Trigger для плавания осциллографов. Когда цель отключается, средства управления опцией, вооружить ли триггер при соединении плавающих осциллографов. Когда цель соединяется, действия опции как кнопка-переключатель, чтобы вооружить или отменить триггер.

    • Чтобы инициировать загрузку данных на плавание осциллографов, выберите Enable data uploading.

    • Чтобы отменить загрузку данных на плавание осциллографов, очистите Enable data uploading.

  • Поле редактирования Duration, которое задает количество шагов тарифной ставки, для которых режим external mode регистрирует плавающие данные об осциллографах после триггерного события. По умолчанию это установлено в auto, который заставляет набор значений длительности в диалоговом окне External Signal & Triggering использоваться. Значение длительности по умолчанию является 1 000 шагов базовой ставки.

Загрузите параметры на целевое приложение

Опция Batch download на Панели управления Режима external mode включает или отключает пакетные изменения параметра.

По умолчанию пакетная загрузка отключена. Если пакетная загрузка отключена, когда вы нажимаете OK или Apply, изменения, внесенные непосредственно в параметры блоков путем редактирования диалоговых окон параметров блоков, отправляются в цель. Когда вы выполняете Update Diagram, изменения в переменных рабочего пространства MATLAB отправляются.

Если вы выбираете Batch download, кнопка Download включена. Пока вы не нажимаете Download, изменения, внесенные в параметры блоков, хранятся локально. Когда вы нажимаете Download, изменения отправляются в одной передаче.

Когда изменения параметра ждут пакетной загрузки, Панель управления Режима external mode отображает сообщение Parameter changes pending... справа от кнопки Download. Это сообщение остается видимым, пока механизм Simulink не получает уведомление, что новые параметры были установлены в векторе параметра из целевой системы.

Следующий рисунок показывает Панель управления Режима external mode с активированной опцией Batch download и ожидание изменений параметра.

Сконфигурируйте контроль хоста данных сигнала целевого приложения

Роль триггера в загрузке данных сигнала

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

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

  • Если триггер не вооружен, программное обеспечение не проверяет на триггерные условия, и загрузка данных не может начаться.

  • Триггер может быть вооружен автоматически, когда хост соединяется с целью, или вручную, путем нажатия кнопки Arm Trigger на Панели управления Режима external mode.

Когда триггер вооружен, и триггерные условия соблюдают, триггерные огни и загрузка данных начинается.

Когда данные были собраны на заданное время, триггерное событие завершается и остановки загрузки данных. Триггер может затем перевооружиться или остаться невооруженным, пока вы не нажимаете кнопку Arm Trigger.

Чтобы выбрать сигналы целевого приложения загрузить и сконфигурировать, как загрузки инициированы, смотрите, Конфигурируют Загрузку Данных сигнала.

Сконфигурируйте загрузку данных сигнала

Нажатие кнопки Signal & Triggering Панели управления Режима external mode открывает диалоговое окно External Signal & Triggering.

Диалоговое окно External Signal & Triggering отображается список блоков и подсистем в вашей модели, которые поддерживают загрузку сигнала режима external mode. Для получения информации о котором типы блоков являются совместимым режимом external mode, видят Блоки и Подсистемы, Совместимые с Режимом external mode.

В диалоговом окне External Signal & Triggering можно выбрать сигналы, которые собраны из целевой системы и просмотрены в режиме external mode. Можно также выбрать триггерный сигнал, который инициировал загрузку данных на основе удовлетворения определенным условиям сигнала, и задайте условия инициирования.

Триггерные опции по умолчанию

Предыдущий рисунок показывает настройки по умолчанию диалогового окна External Signal & Triggering. Операция по умолчанию диалогового окна External Signal & Triggering упрощает контроль целевого приложения. Если вы используете настройки по умолчанию, вы не должны предварительно конфигурировать сигналы и триггеры. Вы запускаете целевое приложение и соединяете механизм Simulink с ним. Режим external mode совместимые блоки выбраны и триггер, вооружен. Загрузка сигнала начинается непосредственно после связи с целевым приложением.

Настройка по умолчанию триггерных опций:

  • Select allon

  • Source: руководство

  • Mode: нормальный

  • Duration: 1000

  • Delay: 0

  • Arm when connecting to targeton

Выберите Signals to Upload

Режим external mode совместимые блоки в вашей модели появляется в списке Signal selection диалогового окна External Signal & Triggering. Вы используете этот список, чтобы выбрать сигналы, что вы хотите просмотреть. В столбце Selected, X появляется для каждого выбранного блока.

Флажок Select all выбирает все сигналы. По умолчанию Select all выбран.

Если Select all очищен, можно выбрать или очистить отдельные сигналы с помощью опций off и on. Чтобы выбрать сигнал, кликните по его записи списка и выберите опцию on. Чтобы очистить сигнал, кликните по его записи списка и выберите опцию off.

Кнопка Clear all очищает все сигналы.

Сконфигурируйте триггерные опции

Как описано в Роли Триггера в Загрузке Данных сигнала загрузка данных сигнала зависит от триггера. Триггер задает условия, которые нужно соблюдать для загрузки, чтобы начаться. Кроме того, триггер должен быть вооружен для загрузки данных, чтобы начаться. Когда триггер вооружен, и триггерные условия соблюдают, триггерные огни и загрузка начинается. Когда данные были собраны на заданное время, триггерное событие завершается и остановки загрузки данных.

Чтобы управлять, когда и как данные сигнала собраны (загруженные) из целевой системы, сконфигурируйте следующий Trigger options в диалоговом окне External Signal & Triggering.

  • Source: manual или signal. Средства управления, инициировали ли кнопка или сигнал загрузку данных.

    Выбор manual направляет режим external mode, чтобы использовать кнопку Arm Trigger на Панели управления Режима external mode как триггер, чтобы начать загружать данные. Когда вы нажимаете Arm Trigger, загрузка данных начинается.

    Выбор signal направляет режим external mode, чтобы использовать триггерный сигнал в качестве триггера, чтобы начать загружать данные. Когда триггерный сигнал удовлетворяет триггерным условиям (то есть, сигнал пересекает пороговый уровень в заданном направлении), триггерное событие имеет место. (Задайте триггерные условия в разделе Trigger signal.), Если триггер вооружен, мониторы режима external mode для вхождения триггерного события. Когда триггерное событие имеет место, загрузка данных начинается.

  • Режим: normal или one-shot. Средства управления, перевооружается ли триггер после триггерного события, завершаются.

    В normal режим, режим external mode автоматически перевооружает триггер после каждого триггерного события. Следующая загрузка данных начинается, когда триггер стреляет.

    В one-shot режим, режим external mode собирает только один буфер данных каждый раз, когда вы вооружаете триггер.

    Для получения дополнительной информации об установке Mode смотрите, Конфигурируют Архивацию Хоста Данных сигнала Целевого приложения.

  • Длительность: Задает количество шагов базовой ставки, для которых режим external mode загружает данные после триггерного события (значение по умолчанию 1000). Например, если Duration установлен в 1 000, и основной (самый быстрый) уровень модели является одной секундой:

    • Для сигнала, произведенного в базовой ставке, одна секунда (1,0 Гц), режим external mode собирает 1 000 непрерывных выборок во время триггерного события.

    • Для сигнала, произведенного в две секунды (0,5 Гц), режим external mode собирает 500 выборок во время триггерного события.

  • Delay: Задает задержку, которая будет применена к сбору данных. Задержка представляет количество времени, которое протекает между триггерным событием и запуском сбора данных. Задержка описывается на шагах базовой ставки. Это может быть положительно или отрицательно (значение по умолчанию 0). Отрицательная задержка соответствует предварительному инициированию. Когда задержка отрицательна, данные со времени, предшествующего триггерному событию, собраны и загружены.

  • Arm when connecting to target: Выбранный или очищенный. Инициировали ли кнопка или сигнал загрузку данных (как задано Source), триггер должен быть вооружен, чтобы позволить загрузке данных начинаться.

    Если вы выбираете эту опцию, соединяя с целевыми руками триггер.

    • Если триггером Source является manual, загрузка данных сразу начинается.

    • Если триггером Source является signal, контроль триггерного сигнала сразу начинается. Загрузка данных начинается, когда триггерный сигнал удовлетворяет триггерным условиям (как задано в разделе Trigger signal).

    Если вы очищаете Arm when connecting to target, вручную вооружаете триггер путем нажатия кнопки Arm Trigger на Панели управления Режима external mode.

При симуляции в режиме external mode каждый уровень в модели создает буфер на цели. Каждая запись в буфере является достаточно большой, чтобы содержать все данные, требуемые каждого сигнала в том уровне для одного временного шага (время плюс данные плюс индексы режима external mode, идентифицирующие сигнал). Количество записей в кольцевом буфере определяется триггерным параметром Duration режима external mode (ExtModeTrigDuration). Память, выделенная на цели для буферизации сигналов, пропорциональна Duration и количеству загрузки сигналов. Duration также обеспечивает индикацию относительно количества шагов базовой ставки с данными логов после триггерного события в режиме external mode.

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

Значение Duration может влиять на значение Limit data points to last блоков To Workspace и Scope. Количество точек выборки, что блоки сохраняют в рабочее пространство MATLAB, является меньшими из этих двух значений. Чтобы определить номер точек выборки, что блоки сохраняют, очистите Limit data points to last. Затем используйте Duration, чтобы задать количество сохраненных точек выборки.

Выберите Trigger Signal

Можно определять один сигнал как триггерный сигнал. Чтобы выбрать триггерный сигнал, в меню Source в разделе Trigger options, выбирают signal. Это действие включает параметры в разделе Trigger signal. Затем выберите сигнал в списке Signal selection и нажмите кнопку Trigger Signal.

Когда вы выбираете сигнал быть триггером, T появляется в столбце Trigger списка Signal selection. На следующем рисунке, Scope A сигнал является триггером. Scope B также выбран для просмотра, как обозначено X в столбце Selected.

После выбора триггерного сигнала можно использовать раздел Trigger signal, чтобы задать триггерные условия и установить триггерный сигнал параметры Element и Port.

Установите триггерные условия

Используйте раздел Trigger signal диалогового окна External Signal & Triggering, чтобы установить триггерные условия и атрибуты. параметры Trigger signal включены только, когда триггерный параметр Source устанавливается на signal в разделе Trigger options.

По умолчанию любой элемент первого входного порта заданного триггерного блока может заставить триггер стрелять (то есть, Порт 1, любой элемент). Можно изменить это поведение путем корректировки Port и значений Element в разделе Trigger signal. Поле Port принимает номер или ключевое слово last. Поле Element принимает номер или ключевые слова any или last.

В разделе Trigger signal вы также задаете условия, при которых триггерное событие имеет место.

  • Direction: rising, falling, или either. Направление, в котором должен перемещаться сигнал, когда это пересекает пороговое значение. Значением по умолчанию является rising.

  • Level: значение, указывающее на порог сигнал, должно пересечься в обозначенном направлении, чтобы запустить триггер. По умолчанию уровень 0.

  • Hold-off: Применяется только к normal режим. Описанный на шагах базовой ставки, Hold-off является временем между завершением одного триггерного события и перевооружением триггера.

Измените опции сигнала и инициирования, в то время как соединено

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

Если триггер вооружен (например, если триггерная опция, Arm when connecting to the target выбран, который является значением по умолчанию), диалоговое окно External Signal & Triggering не может быть изменено. Изменить опции инициирования и сигнал:

  1. Откройте панель управления режима external mode.

  2. Нажмите Cancel Trigger. Инициирование и отображение загруженных остановок данных.

  3. Откройте диалоговое окно External Signal & Triggering и измените сигнал и инициируйте опции как требуется. Например, в разделе Signal selection, можно включить или отключить осциллограф, и в разделе Trigger options, изменить триггер Mode, например, от normal к one-shot.

  4. Нажмите Arm Trigger. Инициирование и отображение загруженных резюме данных, с модификациями.

Сконфигурируйте архивацию хоста данных сигнала целевого приложения

В режиме external mode можно использовать Осциллограф Simulink и Для блоков Рабочей области, чтобы заархивировать данные к диску.

Чтобы изучить, как функции архивации работают, рассмотрите обработку данных, когда архивация не включена. Существует два случая, режим с одним выстрелом и режим normal mode.

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

  • В режиме normal mode режим external mode автоматически перевооружает триггер после каждого триггерного события. Следовательно, можно думать о режиме normal mode как о серии одного выстрела. Каждый - выстрел в этом ряду, за исключением последнего, упоминается как промежуточный результат. Поскольку триггер может стрелять в любое время, пишущий, что промежуточные результаты к рабочей области могут привести к непредсказуемой перезаписи переменных рабочей области. Поэтому поведение по умолчанию является к только для записи результатами итогового одного выстрела к рабочей области. Промежуточные результаты отбрасываются. Если вы знаете, что достаточно времени существует между триггерами для контроля промежуточных результатов, можно заменить поведение по умолчанию путем выбирания опции Write intermediate results to workspace. Эта опция не защищает данные о рабочей области из того, чтобы быть перезаписанным последующими триггерами.

Если вы используете блок Simulink Scope, чтобы заархивировать данные к диску, открыть диалоговое окно параметров Осциллографа и выбрать опцию Log data to workspace. Опция требуется по этим причинам:

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

  • Variable name, вводимый в диалоговое окно параметров Осциллографа, совпадает с тем в рабочем пространстве MATLAB и MAT-файле. Включение данных быть сохраненным позволяет переменной, названной параметром Variable name быть сохраненной в MAT-файл.

Примечание

Если вы не выбираете опцию блока Scope Log data to workspace, MAT-файлы для регистрации данных создаются, но они пусты.

Поддержки диалогового окна Enable Data Archiving:

  • Примечания папки

  • Записи в деле

  • Автоматизированная архивация данных

На Панели управления Режима external mode нажмите кнопку Data Archiving, чтобы открыть диалоговое окно Enable Data Archiving. Если ваша модель соединяется с целевым окружением, отключите его, в то время как вы конфигурируете архивацию данных. Чтобы включить другие средства управления в диалоговом окне, выберите Enable archiving.

Эти операции поддерживаются диалоговым окном Enable Data Archiving.

Примечания папки

Чтобы добавить аннотации для набора связанных файлов данных в папке, в диалоговом окне Enable Data Archiving, нажимают Edit Directory Note. Редактор MATLAB открывается. Поместите комментарии, что вы хотите сохраненный в файл в заданной папке в этом окне. По умолчанию комментарии сохранены в папку, в последний раз записанную в архивацией данных.

Записи в деле

Чтобы добавить аннотации для отдельного файла данных, в диалоговом окне Enable Data Archiving, нажимают Edit File Note. Окно средства поиска файла открывается, который по умолчанию установлен в последний файл, в который вы записали. Выбор MAT-file открывает окно редактирования. В этом окне добавьте или отредактируйте комментарии, что вы хотите сохраненный с вашим отдельным MAT-файлом.

Автоматизированная архивация данных

Чтобы сконфигурировать автоматическую запись логгирования результатов к диску, опционально включая промежуточные результаты, используют опцию Enable archiving и средства управления, которые это включает. Диалоговое окно обеспечивает следующие связанные средства управления:

  • Directory: Задает папку, в которой данные сохранены. Если вы выбираете Increment directory when trigger armed, режим external mode добавляет суффикс.

  • File: Задает имя файла, в котором данные сохранены. Если вы выбираете Increment file after one-shot, режим external mode добавляет суффикс.

  • Increment directory when trigger armed: Каждый раз, когда вы нажимаете кнопку Arm Trigger, режим external mode, использует другую папку для записи файлов журнала. Папки называют инкрементно, например, dirname1, dirname2, и так далее.

  • Increment file after one-shot: Новые буферы данных сохранены в инкрементных файлах: filename1, filename2, и так далее. Постепенное увеличение файла происходит автоматически в режиме normal mode.

  • Append file suffix to variable names: Каждый раз, когда имена файлов шага режима external mode, каждый файл содержит переменные с идентичными именами. Выбор Append file suffix to variable name приводит к каждому файлу, содержащему уникальные имена переменных. Например, режим external mode сохраняет переменную под названием xdata в инкрементных файлах (file_1, file_2, и так далее) как xdata_1, xdata_2, и так далее. Этот подход поддержки, загружающие MAT-файлы в рабочую область и сравнивающие переменные в командной строке MATLAB. Без уникальных имен, каждого экземпляра xdata перезаписал бы предыдущий в рабочем пространстве MATLAB.

  • Write intermediate results to workspace: Если вы хотите, чтобы программное обеспечение Simulink Coder записало промежуточные результаты в рабочую область, выберите эту опцию.

Сводные данные Графических Средств управления для TCP/IP или Последовательной Симуляции Режима external mode

Можно управлять TCP/IP или последовательной симуляцией режима external mode через:

  • Вкладка Hardware на панели инструментов Simulink. Чтобы отобразить вкладку Hardware, от вкладки Apps на панели инструментов Simulink, нажимают Run on Custom Hardware.

  • Панель управления Режима external mode. Открыть это диалоговое окно, в Редакторе Simulink, на вкладке Hardware, в разделе Prepare, нажатии кнопки. Затем под Signal Monitoring & Tracing, нажмите Control Panel.

Эта таблица приводит действия режима external mode, которые можно выполнить при помощи средств управления, которые доступны во вкладке Hardware и Панели управления Режима external mode.

Действие режима external modeАппаратная вкладкаПанель управления режима external mode

Создайте целевое приложение.

Run on Hardware> Build for Monitoring

N/A

Запустите приложение на целевом компьютере.

Run on Hardware> Deploy

N/A

Соедините Simulink с ожиданием или запуском целевого приложения.

Run on Hardware> Connect

То, когда Simulink соединяется с целевым приложением, Connect появляется, потускнело, и Disconnect активен.

Connect

Когда Simulink соединяется с целевым приложением, изменениями Connect в Disconnect.

Запустите выполнение в реальном времени сгенерированного кода в целевом окружении.

Run on Hardware> Start

Start Real-Time Code

Когда сгенерированный код начинает выполняться, изменения кнопки в Stop Real-Time Code.

Отключите Simulink от целевого окружения, но не останавливайте подписание в реальном времени кода.

Run on Hardware> Disconnect

То, когда Simulink отключается от целевого приложения, Disconnect появляется, потускнело, и Connect активен.

Disconnect

Остановите выполнение целевого приложения и отключите Simulink от целевого окружения.

В разделе Run on Hardware, кнопке Stop.

Stop Real-Time Code

Настройте пакет параметров блоков.

В разделе Prepare, кнопках Hold Updates и Update All Parameters.

Batch download и Download

Блоки и подсистемы, совместимые с режимом external mode

Совместимые блоки

В режиме external mode можно использовать следующие типы блоков, чтобы получить и просмотреть сигналы, загруженные из целевого приложения:

  • Плавание блоков Scope и Scope

  • Спектр Анализатор и Time Scope блокируется от продукта DSP System Toolbox™

  • Отобразите блоки

  • С блоками Рабочей области

  • Написанные пользователем Блоки s-function

    Метод режима external mode встроен в API S-функции. Этот метод позволяет написанным пользователем блокам поддерживать режим external mode. Смотрите matlabroot/simulink/include/simstruc.h.

  • Блоки Record, XY Graph

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

Вы выбираете режим external mode совместимые блоки и подсистемы, и вооружаете триггер, при помощи диалогового окна External Signal & Triggering. По умолчанию такие блоки в модели выбраны, и ручной триггер собирается быть вооруженным, когда соединено с целевым приложением.

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

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

Примечание

Подсистемы Просмотра сигнала неактивны, если помещено в SIL или компоненте PIL, таковы как топ-модель в режиме SIL или PIL, блок Model в режиме SIL или PIL или блок SIL или PIL. Однако SIL или компонент PIL могут питать Сигнал, Просматривающий Подсистему, запускающуюся в поддерживаемом режиме.

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

Как другой режим external mode совместимые блоки, Подсистемы Просмотра Сигнала отображены в диалоговом окне External Signal & Triggering.

Объявить, что подсистема Подсистема Просмотра Сигнала:

  1. В диалоговом окне Block Parameters выберите опцию Treat as atomic unit.

    Для получения дополнительной информации об атомарных подсистемах смотрите Генерацию Управления Функций для Подсистем.

  2. Чтобы включить свойство SimViewingDevice, используйте set_param команда:

    set_param('blockname', 'SimViewingDevice','on')

    'blockname' имя подсистемы.

  3. Убедитесь, что подсистема удовлетворяет следующие требования:

    • Это должен быть чистый блок Sink. Таким образом, это не должно содержать блоки Выходного порта или блоки Data Store. Это может содержать блоки Goto, только если соответствующие блоки From содержатся в контурах подсистемы.

    • Это не должно иметь непрерывных состояний.

Следующая модель, sink_examp, содержит атомарную подсистему, theSink.

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

Если theSink объявляется как Подсистема Просмотра Сигнала, сгенерированное целевое приложение включает только код для блока Sine Wave. Если theSink выбран и вооружен в диалоговом окне External Signal & Triggering, целевое приложение загружает синусоидальный сигнал на theSink в процессе моделирования. Можно затем изменить параметры блоков в theSink и наблюдайте загруженный сигнал.

Если theSink не были объявлены как Подсистема Просмотра Сигнала, ее Усиление, Постоянное, и блоки Суммы, запустится как код подсистемы по целевой системе. Синусоидальный сигнал был бы загружен на механизм Simulink, будучи обработанным этими блоками и просмотрен на sink_examp/theSink/Scope2. Обработка требований на целевую систему была бы увеличена на дополнительную обработку сигналов, и на загрузку изменений в параметрах блоков от хоста.

Поддерживаемые блоки для архивации данных

В режиме external mode можно использовать следующие типы блоков, чтобы заархивировать данные к диску:

  • Определите объем блоков

  • С блоками Рабочей области

Вы конфигурируете архивацию данных при помощи диалогового окна Enable Data Archiving, как описано в Конфигурируют Архивацию Хоста Данных сигнала Целевого приложения.

Механизм режима external mode для загрузки настраиваемых параметров

В зависимости от установки опции Default parameter behavior, когда целевое приложение сгенерировано, существуют различия в способе, которым обработаны обновления параметра. Загрузите Механизм, описывает операцию связи режима external mode с набором Default parameter behavior к Tunable. Встроенный и Настраиваемые параметры описывает операцию режима external mode с набором Default parameter behavior к Inlined.

Загрузите механизм

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

Когда вы изменяете параметр в блок-схеме, механизм Simulink вызывает внешний интерфейсный файл MEX, передавая новые значения параметров (наряду с другой информацией) в качестве аргументов. Внешний интерфейсный файл MEX содержит код, который реализует одну сторону межпроцессного взаимодействия (IPC) канал. Этот канал соединяет процесс Simulink (где файл MEX выполняется) к процессу, который выполняет внешнюю программу. Файл MEX передает новые значения параметров при помощи этого канала к внешней программе.

Другая сторона канала связи реализована в рамках внешней программы. Эта сторона пишет новые значения параметров в структуру параметра цели (modelP).

Сторона Simulink инициирует операцию загрузки параметра путем отправки сообщения, содержащего информацию о параметре к внешней программе. В терминологии клиент-серверного вычисления сторона Simulink является клиентом, и внешняя программа является сервером. Эти два процесса могут быть удаленными, или они могут быть локальными. Где клиент-сервер является удаленным, протокол, такой как TCP/IP используется, чтобы передать данные. Где клиент-сервер локален, последовательная связь или общая память могут использоваться, чтобы передать данные.

Следующий рисунок показывает это отношение. Механизм Simulink вызывает внешний интерфейсный файл MEX каждый раз, когда вы изменяете параметры в блок-схеме. Файл MEX затем загружает параметры на внешнюю программу при помощи канала связи.

Архитектура режима external mode

Встроенный и настраиваемые параметры

По умолчанию параметры (кроме перечисленных в TCP/IP и Последовательных Ограничениях Режима external mode) в программе режима external mode являются настраиваемыми; то есть, можно изменить их при помощи механизма загрузки, описанного в этом разделе.

Если вы устанавливаете Default parameter behavior на Inlined (на панели Optimization диалогового окна Configuration Parameters), генератор кода Simulink Coder встраивает численные значения параметров модели (константы), вместо символьных названий параметра, в сгенерированном коде. Встраивание параметров генерирует меньший и более эффективный код. Однако встроенные параметры, потому что они эффективно становятся константами, не являются настраиваемыми.

Программное обеспечение Simulink Coder позволяет вам повысить полную эффективность путем встраивания большинства параметров, одновременно сохраняя гибкость времени выполнения, настраивающегося для выбранных параметров, которые важны для приложения. Когда вы встраиваете параметры, можно использовать Simulink.Parameter объекты удалить отдельные параметры из встраивания и объявить, что они являются настраиваемыми. Кроме того, можно использовать эти объекты управлять, как параметры представлены в сгенерированном коде.

Для получения дополнительной информации о настраиваемых параметрах смотрите, Создают Настраиваемый Калибровочный Параметр в Сгенерированном коде.

Автоматическая Загрузка Параметра на Связи Хоста/Цели.  Каждый раз механизм Simulink соединяется с целевым приложением, которое было сгенерировано с набором Default parameter behavior к Inlined, целевое приложение загружает текущее значение своих настраиваемых параметров к хосту. Эти значения присвоены соответствующим переменным рабочего пространства MATLAB. Эта процедура синхронизирует хост и цель относительно значений параметров. Если настраиваемые параметры хранятся в рабочем пространстве модели или словаре данных, значения не загружаются, и Simulink производит предупреждение.

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

Автоматическая загрузка параметра происходит, только если целевое приложение было сгенерировано с набором Default parameter behavior к Inlined. Загрузите Механизм, описывает операцию связи режима external mode с набором Default parameter behavior к Tunable.

Выберите Communication Protocol for Client and Server

Введение

Продукт Simulink Coder предоставляет код, чтобы реализовать обоих сторона клиент-сервера коммуникации режима external mode с помощью или TCP/IP или последовательных протоколов. Можно использовать основанную на сокете реализацию режима external mode, обеспеченную продуктом Simulink Coder сгенерированным кодом, при условии, что целевая система поддерживает TCP/IP. В противном случае используйте или настройте последовательную предоставленную возможность транспортного уровня.

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

Используя Реализацию TCP/IP

Можно использовать клиент-серверную реализацию TCP/IP-based режима external mode с программами в реальном времени на UNIX Open Group® или системы PC. Для справки в настройке транспортных уровней режима external mode смотрите, Создают Транспортный уровень для TCP/IP или Последовательной Коммуникации Режима external mode.

Использовать режим external mode Simulink по TCP/IP:

  • Убедитесь, что внешний интерфейсный файл MEX для транспорта TCP/IP вашей цели задан.

    Цели обеспечиваются MathWorks® задайте имя внешнего интерфейсного файла MEX в matlabroot/toolbox/simulink/simulink/extmode_transports.m. Имя интерфейса появляется как недоступный для редактирования текст в разделе External mode configuration панели Interface диалогового окна Configuration Parameters. Значением по умолчанию TCP/IP является ext_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 транспортное имя должно отобразиться в меню Transport layer на панели Interface диалогового окна Configuration Parameters (например, 'tcpip')

    • mexfile имя связанного внешнего интерфейсного файла MEX транспорта (например, '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 на режим external mode и подключение к цели.

Следующий рисунок показывает структуру реализации TCP/IP-based.

Реализация Клиента/сервера TCP/IP-Based для Режима external mode

Дополнительные аргументы файла MEX для Транспорта TCP/IP.  В диалоговом окне External Target Interface можно задать дополнительные аргументы, которые передаются файлу MEX интерфейса режима external mode для связи с выполнением целей.

  • Целевое сетевое имя: сетевое имя компьютера, запускающего внешнюю программу. По умолчанию это - компьютер, на котором продукт 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.

Чтобы использовать режим external mode Simulink по последовательному каналу, вы должны:

  • Убедитесь, что внешний интерфейсный файл MEX для последовательного транспорта вашей цели задан.

    Цели, обеспеченные MathWorks, задают имя внешнего интерфейсного файла MEX в matlabroot/toolbox/simulink/simulink/extmode_transports.m. Имя интерфейса появляется как недоступный для редактирования текст в разделе External mode configuration панели Interface диалогового окна Configuration Parameters. Последовательным значением по умолчанию является serial.

    Чтобы задать последовательный транспорт для пользовательской цели, необходимо добавить запись следующей формы к sl_customization.m файл на пути MATLAB:

    function sl_customization(cm)
      cm.ExtModeTransports.add('stf.tlc', 'transport', 'mexfile', 'Level1');
    %end function
    • stf.tlc имя системного конечного файла, для которого вы указываете транспорт (например, 'mytarget.tlc')

    • transport транспортное имя должно отобразиться в меню Transport layer на панели Interface диалогового окна Configuration Parameters (например, 'serial')

    • mexfile имя связанного внешнего интерфейсного файла MEX транспорта (например, '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 на режим external mode и подключение к цели.

Дополнительные аргументы файла MEX для Последовательного Транспорта.  В поле MEX-file arguments панели Interface диалогового окна Configuration Parameters можно задать аргументы, которые передаются файлу MEX интерфейса режима external mode для связи с выполняющимися целями. Для последовательного транспорта, дополнительных аргументов к ext_serial_win32_comm следующие:

  • Уровень многословия: Этот аргумент управляет уровнем детализации информации, отображенной во время передачи данных. Значение этого аргумента:

    • 0 (никакая информация), или

    • 1 (подробная информация)

  • ID последовательного порта: порт ID хоста в виде целого числа или вектора символов. Например, задайте порт ID USB к последовательному конвертеру как '/dev/ttyusb0'. Целочисленный порт IDs префиксов Simulink Coder с \\.\COM на Windows® и /dev/ttyS на Unix.

    Когда вы запускаете целевое приложение с помощью последовательной связи, необходимо задать порт ID, чтобы использовать, чтобы соединить его с хостом. Сделайте это включением -port параметр командной строки. Например:

    mytarget.exe -port 2 -w
  • BaudRate: Задайте целочисленное значение. Значением по умолчанию является 57600.

Аргументы опций файла MEX позиционны и должны быть заданы в следующем порядке:

<VerbosityLevel> <SerialPortID> <BaudRate>

Например, если вы хотите задать ID последовательного порта (второй аргумент), затем необходимо также задать уровень многословия (первый аргумент). Аргументы могут быть разграничены пробелом или запятыми. Например:

1 '/dev/ttyusb0' 57600

Когда вы запускаете внешнюю программу, можно задать параметры командной строки.

Запустите внешнюю программу

Прежде чем можно будет использовать продукт Simulink в режиме external mode, внешняя программа должна запускаться.

Если целевое приложение выполняется на той же машине как хост, и коммуникация через петлевой последовательный кабель, порт ID цели должен отличаться от того из хоста (как задано в поле редактирования MEX-file arguments).

Чтобы запустить внешнюю программу, вы вводите команду формы:

model -opt1 ... -optN

model имя внешней программы и -opt1 ...-optN опции. (См. Параметры командной строки для Внешней Программы.) В примерах в этом разделе именем внешней программы является ext_example.

Выполнение Внешней Программы в Windows Environment.  В среде Windows можно запустить внешние программы любым из следующих способов:

  • Откройте окно Command Prompt. В командной строке введите имя целевого исполняемого файла, сопровождаемого возможными вариантами, такими как:

    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 &

    Амперсанд (&) заставляет операционную систему порождать другой процесс, чтобы запустить целевой исполняемый файл.

Параметры командной строки для Внешней Программы.  Целевые исполняемые файлы режима external mode, сгенерированные генератором кода Simulink Coder, поддерживают следующие параметры командной строки:

  • -tf n

    -tf опция заменяет набор времени остановки в модели Simulink. Аргумент n задает номер секунд, которые запустит программа. Значение inf направляет модель, чтобы запуститься неопределенно. В этом случае запуски типового кодекса до целевого приложения получают сообщение остановки от механизма Simulink.

    Следующий пример устанавливает время остановки на 10 секунд.

    ext_example -tf 10

Когда только для целого числа цели ERT создаются и выполняются в режиме external mode, параметр времени остановки (-tf) интерпретирован к установленному сроку как количество шагов базовой ставки, а не номер секунд, чтобы выполниться.

  • -w

    Дает целевому приложению команду вводить состояние ожидания, пока оно не получает сообщение от хоста. На данном этапе цель запускается, но не выполняет типовой код. Сообщение запуска отправляется, когда вы выбираете Start Real-Time Code из меню Simulation или нажимаете кнопку Start Real-Time Code в Панели управления Режима external mode.

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

  • -port n

    Задает номер порта TCP/IP или ID последовательного порта, n, для целевого приложения. Номер порта целевого приложения должен совпадать с номером порта хоста к транспорту TCP/IP. Номер порта зависит от типа транспорта.

    • Для транспорта TCP/IP: Номер порта является целым числом между 256 и 65535, со значением по умолчанию, являющимся 17725. Выбранный порт не должен использоваться другим сервисом TCP/IP, который работает на целевом компьютере.

    • Для последовательного транспорта: ID Порта является целым числом или вектором символов. Например, задайте порт ID USB к последовательному конвертеру как '/dev/ttyusb0'

  • -baud r

    Заданный как целое число, эта опция только доступна для последовательного транспорта.

Реализуйте слой протокола режима external mode

Если вы хотите реализовать свой собственный транспортный уровень для коммуникации режима external mode, необходимо изменить определенные модули кода, обеспеченные продуктом Simulink Coder, и создать новый внешний интерфейсный файл MEX. Смотрите Создают Транспортный уровень для TCP/IP или Последовательной Коммуникации Режима external mode.

Используйте режим external mode программно

Можно запустить симуляции режима external mode из командной строки MATLAB или программно в скриптах. Используйте get_param и set_param команды, чтобы получить и установить значения параметров командной строки симуляции модели, такие как SimulationMode и SimulationCommand, и параметры командной строки режима external mode, такие как ExtModeCommand и ExtModeTrigType.

Следующие команды симуляции модели принимают, что модель Simulink открыта и что вы загрузили целевое приложение, с которым модель соединит режим external mode использования.

  1. Измените модель Simulink в режим external mode:

    set_param(gcs,'SimulationMode','external')
  2. Соедините открытую модель с загруженным целевым приложением:

    set_param(gcs,'SimulationCommand','connect')
  3. Начните запускать целевое приложение:

    set_param(gcs,'SimulationCommand','start')
  4. Остановка, запускающая целевое приложение:

    set_param(gcs,'SimulationCommand','stop')
  5. Отключите целевое приложение от модели:

    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;

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

set_param(gcs,'SimulationCommand','update')

Чтобы инициировать или отменить загрузку данных на осциллографы, используйте ExtModeCommand значения armFloating и cancelFloating, или armWired и cancelWired. Например, чтобы инициировать и затем отменить загрузку данных на соединенный проводом (неплавание) осциллографы:

set_param(gcs,'ExtModeCommand','armWired')
set_param(gcs,'ExtModeCommand','cancelWired')

В следующей таблице перечислены параметры командной строки режима external mode, в которых можно использовать get_param и set_param команды. Таблица предоставляет краткие описания, допустимые значения (жирный шрифт подсвечивает значения по умолчанию), и отображение с эквивалентами диалогового окна External Mode. Для параметров режима external mode, которые эквивалентны опциям панели Interface в диалоговом окне Configuration Parameters, смотрите Параметры конфигурации Модели: Интерфейс Генерации кода.

Параметры командной строки режима external mode

Параметр и значенияЭквивалентное диалоговое окноОписание
ExtModeAddSuffixToVar
offon
Включите Архивацию Данных: флажок Append file suffix to variable namesИнкрементные имена переменных для каждого постепенно увеличенного имени файла.
ExtModeArchiveDirName
character vector
Включите Архивацию Данных: текстовое поле DirectoryСохраните данные в заданной папке.
ExtModeArchiveFileName
character vector
Включите Архивацию Данных: текстовое поле FileСохраните данные в заданном файле.
ExtModeArchiveMode
character vector off'auto', manual
Включите Архивацию Данных: флажок Enable archiving

Активируйте автоматизированные опции архивации данных.

Задавать manual, запустите set_param(gcs, 'ExtModeArchiveMode', 'manual').

Обратите внимание на то, что, если вы задаете auto, ExtModeAutoIncOneShot установлен в on.

ExtModeArmWhenConnect
offon
Внешняя Signal & Triggering: флажок Arm when connecting to targetВооружите триггер, как только программное обеспечение Simulink Coder соединяется с целью.
ExtModeAutoIncOneShot
offon
Включите Архивацию Данных: флажок Increment file after one-shotСохраните новые буферы данных в инкрементных файлах.
ExtModeAutoUpdateStatusClock (Только платформы Windows)
offon
Не доступныйПостоянно загрузите и отобразите целевое время в строке состояния окна модели.
ExtModeBatchMode
offon
Панель управления Режима external mode: флажок Batch downloadВключите или отключите загрузку параметров в пакетном режиме.
ExtModeChangesPending
offon
Не доступныйКогда ExtModeBatchMode включен, указывает, остаются ли параметры в очереди параметров, которые будут загружены на цель.
ExtModeCommand
character vector - armFloating, armWired, cancelFloating, cancelWired
  • armFloating и cancelFloating эквивалентны выбору и снятию флажка External Mode Control Panel Floating scope> Enable data uploading

  • armWired и cancelWired эквивалентны кнопкам External Mode Control Panel Arm Trigger и Cancel Trigger

Дайте команду режима external mode к целевому приложению.
ExtModeConnected
offon
Панель управления Режима external mode: кнопка Connect/DisconnectУкажите на состояние связи с целевым приложением.
ExtModeEnableFloating
offon
Панель управления Режима external mode: флажок Enable data uploadingВключите или отключите вооружение и отмену триггеров, когда связь будет установлена с плаванием осциллографов.
ExtModeIncDirWhenArm
offon
Включите Архивацию Данных: флажок Increment directory when trigger armedЗапишите файлы журнала в инкрементные папки каждый раз, когда триггер вооружен.
ExtModeLogAll
offon
Внешняя Signal & Triggering: флажок Select allЗагрузите доступные сигналы от цели до хоста.
ExtModeParamChangesPending
offon
Не доступныйКогда программное обеспечение Simulink Coder соединяется с целью и ExtModeBatchMode включен, указывает, остаются ли параметры в очереди параметров, которые будут загружены на цель. Более эффективный, чем ExtModeChangesPending, потому что это проверяет на связь с целью.
ExtModeSkipDownloadWhenConnect
offon
Не доступныйСоединитесь с целевым приложением, не загружая параметры.
ExtModeTrigDelay
integer(0 )
Внешняя Signal & Triggering: текстовое поле DelayЗадайте количество времени (описанный на шагах базовой ставки), который протекает между триггерным вхождением и запуском сбора данных.
ExtModeTrigDirection
character vector - rising, falling, either
Внешняя Signal & Triggering: меню DirectionЗадайте направление, в котором должен перемещаться сигнал, когда это пересекает пороговое значение.
ExtModeTrigDuration
integer(1000 )
Внешняя Signal & Triggering: текстовое поле DurationЗадайте количество шагов базовой ставки, для которых режим external mode к данным логов после триггерного события.
ExtModeTrigDurationFloating
character vector Целое число 'auto')
Панель управления Режима external mode: текстовое поле DurationЗадайте длительность для плавания осциллографов. Если auto задан, значение ExtModeTrigDuration используется.
ExtModeTrigElement
character vector Целое числолюбой, last
Внешняя Signal & Triggering: текстовое поле ElementУкажите элементы входного порта заданного триггерного блока, который может заставить триггер стрелять.
ExtModeTrigHoldOff
integer(0 )
Внешняя Signal & Triggering: текстовое поле Hold-offЗадайте шаги базовой ставки между тем, когда триггерное событие завершает работу, и триггер перевооружен.
ExtModeTrigLevel
integer(0 )
Внешняя Signal & Triggering: текстовое поле LevelЗадайте пороговое значение, которое триггерный сигнал должен пересечь, чтобы запустить триггер.
ExtModeTrigMode
character vector - normal, oneshot
Внешняя Signal & Triggering: меню ModeЗадайте, должен ли триггер перевооружиться автоматически после каждого триггерного события или должен ли только один буфер данных быть собран каждый раз, когда триггер вооружен.
ExtModeTrigPort
character vector Целое число(1 ), last
Внешняя Signal & Triggering: текстовое поле PortЗадайте входной порт заданного триггерного блока, для которого элементы могут заставить триггер стрелять.
ExtModeTrigType
character vector - manual, signal
Внешняя Signal & Triggering: меню SourceЗадайте, начать ли регистрировать данные, когда триггер вооружен или когда заданный триггерный сигнал удовлетворяет триггерным условиям.
ExtModeUploadStatus
character vector - inactive, armed, uploading
Не доступныйВозвратите состояние механизма загрузки режима external mode — неактивный, вооруженный, или загрузка.
ExtModeWriteAllDataToWs
offon
Включите Архивацию Данных: флажок Write intermediate results to workspaceЗапишите промежуточные результаты в рабочую область.

Анимационные диаграммы Stateflow в режиме external mode

Если у вас есть Stateflow®, можно анимировать график в режиме external mode. В режиме external mode можно анимировать состояния в графике, и просмотреть сигналы тестовой точки в плавающем осциллографе или предупредить о средстве просмотра.

Анимационные состояния в процессе моделирования в режиме external mode

Анимировать состояния в графике в режиме external mode:

  1. Загрузите график, который вы хотите анимировать к целевой машине.

  2. В диалоговом окне Configuration Parameters установите флажок External mode.

  3. Откройте диалоговое окно External Mode Control Panel.

  4. Нажмите Signal & Triggering.

  5. В диалоговом окне External Signal & Triggering, установленном эти параметры.

    \in:Выбор:
    Панель Signal selectionСтройте диаграмму вы хотите анимировать
    Панель Trigger optionsФлажок Arm when connecting to target
    Панель Trigger optionsnormal в выпадающем меню в поле Mode
  6. Создайте модель, чтобы сгенерировать исполняемый файл.

  7. Разверните целевое приложение.

  8. Соедините Simulink с целевым приложением.

  9. Запустите выполнение сгенерированного типового кодекса. График подсвечивает состояния, как они выполняются.

Просмотрите данные о тестовой точке в плавании осциллографов и средств просмотра сигнала

Когда вы симулируете график в режиме external mode, можно определять данные о графике локального осциллографа быть тестовыми точками и просматривать данные о тестовой точке в плавании осциллографов и средств просмотра сигнала.

Просмотреть данные о тестовой точке в процессе моделирования в режиме external mode:

  1. Откройте Model Explorer, и для каждых данных вы хотите просмотреть, выполнить эти шаги:

    1. В средней панели Contents выберите или локальные данные состояния интереса.

    2. В правильной панели Dialog выберите вкладку Logging и установите флажок Test point.

  2. От плавающего осциллографа или средства просмотра сигнала, кликните по кнопке выбора сигнала:

    Селекторное диалоговое окно Сигнала открывается.

  3. В Селекторной панели Model hierarchy Сигнала выберите график.

  4. В меню Signal Selector List contents выберите Testpointed/Logged signals only и затем выберите сигналы, которые вы хотите просмотреть.

  5. Симулируйте модель в режиме external mode как описано в Анимационных состояниях В процессе моделирования в Режиме external mode.

    Осциллограф или средство просмотра отображают значения сигналов тестовой точки, когда симуляция запускается.

Для получения дополнительной информации смотрите Поведение Осциллографов и Средств просмотра с Быстрым Режимом Accelerator.

TCP/IP и Последовательные Ограничения Режима external mode

ФункцияДетали
Изменение параметров

В общем случае вы не можете изменить параметр при выполнении так результаты в изменении в структуре модели. Например, вы не можете измениться

  • Количество состояний, входных параметров или выходных параметров блока

  • Шаг расчета или количество шагов расчета

  • Алгоритм интегрирования для непрерывных систем

  • Имя модели или блока

Если вы вносите эти изменения в блок-схему, то необходимо восстановить программу с недавно сгенерированным кодом.

Можно изменить параметры в передаточной функции и блоки представления пространства состояний в особенных методах:

  • Параметры (полином числителя и полином знаменателя) для Transfer Fcn (непрерывный и дискретный) и блоки Discrete Filter могут быть изменены (как долго, когда количество состояний не изменяется).

  • Нулевые записи в Пространстве состояний и Нулевом полюсе (и непрерывный и дискретный) блоки в заданных пользователями или вычисленных параметрах (то есть, A, B, C, и матрицы D, полученные нулевым полюсным к преобразованию пространства состояний), не могут быть изменены, если внешняя симуляция запускается.

  • В блоке State-Space, если вы задаете матрицы в управляемой канонической реализации, затем позволены все изменения в A, B, C, D матрицы, которые сохраняют эту реализацию и размерности матриц.

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

Загрузка данных

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

Загрузка сигналов переменного размера

Загрузка сигналов переменного размера не поддерживается для этих целей:

  • Simulink Real-Time™

  • Instruments™ C2000™ Техаса

Отображение значения сигналов в симуляции

Графический дисплей значений сигналов в моделях (описанный в Значениях сигналов Отображения в Диаграммах модели) не поддерживается. Например, вы не можете использовать выборы пункта меню Data Display in Simulation Show Value Labels When Hovering, Toggle Value Labels When Clicked и Show Value Label of Selected Port.

Настраиваемые параметры структуры

Загрузка или загрузка настраиваемых параметров структуры не поддерживаются.

Чистый целочисленный код

Чистый целочисленный код поддерживается.

Если вы не задаете-tf finalTime в команде выполнения целевое приложение запускает сгенерированный типовой кодекс неопределенно, игнорируя StopTime.

Если вы задаете-tf finalTime в команде выполнения:

  • finalTime значение представляет шаги базовой ставки, не секунды.

  • Максимальное значение для finalTime, в метках деления, MAX_int32_T.

  • Когда 16-битное или 32-битное переполнение счетчика метки деления, время симуляции в Scope блокирует возвраты к нулю.

Половина точности

Типы данных полуточности не поддерживаются.

Архивация данных

Для архивации данных к диску поддерживается Осциллограф и С блоками Рабочей области. Однако другие осциллографы не поддерживаются для архивации данных. Например, вы не можете использовать Плавающего менеджера по Средствам просмотра и блокам или Генераторов Осциллографа, которому средство просмотра возражает, чтобы заархивировать данные.

Осциллографы в моделях, на которые ссылаются,

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

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

Время начала симуляции

Ненулевая симуляция запускается, времена не поддерживаются. В диалоговом окне Configuration Parameters, панели Solver, наборе Start time отпуска к значению по умолчанию 0.0.

Промежуточные значения шага

Некоторые блоки Simulink могут сгенерировать несколько значений на шаге времени симуляции. Например:

Для каждого временного шага в симуляции режима external mode Simulink загружает из целевого приложения только окончательные значения таких блоков. Simulink не загружает промежуточные значения, сгенерированные во время шага.

Ограниченные по объему файлом данные

Ограниченные по объему файлом данные не поддерживаются, например, элементы данных, к которым вы применяете встроенный пользовательский класс памяти, FileScope. Ограниченные по объему файлом данные не внешне доступны.

Сигналы с пользовательскими классами памяти

Загрузка сигналов с пользовательскими классами памяти (CSC) не поддерживается.

Использование printf Операторы

Чтобы показать сообщения об ошибке целевого приложения и информационные сообщения на отображении целевого компьютера, можно использовать printf вызовы. Для некоторого целевого компьютера, использования printf операторы могут увеличить размер двоичного файла режима external mode. Отключить printf вызовы, задайте макроопределение препроцессора EXTMODE_DISABLEPRINTF для вашего компилятора целевого приложения.

Параметры командной строки

Можно использовать параметры командной строки для запуска целевых приложений. Эти ограничения применяются:

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

  • Некоторые целевые приложения не принимают параметры командной строки.

Если ваш целевой компьютер не поддерживает парсинг параметров командной строки, задайте макроопределение препроцессора EXTMODE_DISABLE_ARGS_PROCESSING=1 для вашего компилятора целевого приложения.

Заменять -w опция, можно использовать эту команду, чтобы указать, что целевое приложение входит и остается в состоянии ожидания, пока это не получает сообщение Подключения от Simulink:

set_param(modelName, 'OnTargetWaitForStart', 'on');
Процесс сборки предоставляет необходимую возможность (-DON_TARGET_WAIT_FOR_START=1) к компилятору.

Упорядоченная по строкам генерация кода

Код, сгенерированный с упорядоченным по строкам форматом, не поддерживается.

Похожие темы