Настройте и запустите симуляцию режима external mode, которая использует TCP/IP или последовательный (RS-232) канал связи.
Создайте и сконфигурируйте простую модель.
Создайте целевой исполняемый файл.
Запустите целевое приложение.
Настройки параметров.
Пример, который использует цель GRT, не требует внешнего оборудования. Сгенерированные запуски исполняемого файла:
На компьютере разработчика, который размещает Simulink® и Simulink Coder™.
Как отдельный процесс от MATLAB® и Simulink.
В этой части примера вы создаете простую модель, ex_extModeExample
. Вы также создаете папку под названием ext_mode_example
сохранить модель и сгенерированный исполняемый файл.
Создать папку и модель:
Из командной строки MATLAB введите:
mkdir ext_mode_example
Сделайте ext_mode_example
ваша рабочая папка:
cd ext_mode_example
Создайте модель в Simulink с блоком Sine Wave для входного сигнала, два блока Gain параллельно и два блока Scope. Обязательно маркируйте Gain, и Scope блокируется как показано.
Задайте и присвойте две переменные рабочего пространства MATLAB, A
и B
:
A = 2; B = 3;
Открытый блок A Gain и установленный его параметр Gain на переменную A
.
Открытый блок B Gain и установленный его параметр Gain на переменную B
.
Когда целевое приложение создается и соединяется с Simulink в режиме external mode, можно загрузить новые значения усиления на выполняющееся целевое приложение. Для этого можно присвоить новые значения переменным A
рабочей области и
B
, или отредактируйте значения в диалоговом окне параметров блоков. Для получения дополнительной информации смотрите Настройки параметров.
Проверьте операцию модели. Откройте блоки Scope и запустите модель. Когда A = 2
и B = 3
, выход появляется как показано.
Сохраните модель как ex_extModeExample
.
Настройте модель и параметры генерации кода, требуемые для целевого приложения режима external mode. Затем сгенерируйте код и создайте целевое приложение.
От вкладки Apps на панели инструментов Simulink, в разделе Setup to Run on Hardware, нажимают Run on Custom Hardware.
В разделе Hardware, из списка System Target File Description, выбирают Generic Real-Time Target (grt.tlc)
.
В разделе Prepare нажмите Hardware Settings. Диалоговое окно Configuration Parameters открывается, отображая настройки Hardware Implementation, которые определяются системным конечным файлом.
На панели Solver:
В поле Type выберите Fixed-step
.
В поле Solver выберите discrete (no continuous states)
.
Нажмите Solver details. В поле Fixed-step size задайте 0.1
. (В противном случае, когда вы генерируете код, процесс сборки Simulink Coder производит предупреждение и предоставляет значение.)
Нажмите Apply.
На панели Data Import/Export снимите флажки Time и Output. В этом примере данные не регистрируются к рабочей области или к MAT-файлу. Нажмите Apply.
На Code Generation> панель Optimization, проверяйте, что Default parameter behavior установлен в Tunable
. Если вы вносите изменение, нажмите Apply.
На Code Generation> панель Interface, в разделе Data exchange interface, выбирают External mode.
В разделе 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 (Simulink Coder).
Поле MEX-file arguments позволяет вам задать аргументы, такие как номер порта сервера TCP/IP, быть переданными внешней интерфейсной программе. Эти аргументы характерны для внешнего интерфейса, который вы используете. Для получения информации об установке этих аргументов смотрите Дополнительные аргументы файла MEX для Транспорта TCP/IP (Simulink Coder) и Дополнительные аргументы файла MEX для Последовательного Транспорта (Simulink Coder).
Этот пример использует параметры по умолчанию. Оставьте незаполненное поле MEX-file arguments.
Флажок Static memory allocation управляет, как память выделяется для коммуникационных буферов режима external mode в цели. В данном примере не устанавливайте флажок. Для получения дополнительной информации смотрите Выделение Управляющей памяти для Коммуникационных Буферов в Цели.
Нажмите Apply, чтобы сохранить настройки режима external mode.
Сохраните модель.
Выберите панель Code Generation. Убедитесь, что Generate code only очищен.
Чтобы сгенерировать код и создать целевое приложение, в окне модели, нажимают 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) или периодическому прерыванию по таймеру, и это не запускается в режиме реального времени. Программа только запускается максимально быстро, и единицы измерения времени, которые она отсчитывает, являются симулированными единицами измерения времени, которые не соответствуют времени в мире вне программы.
Запустить целевое приложение:
На вкладке Hardware, в разделе Run on Hardware:
В поле Stop Time задайте inf
, который делает запуск модели, пока целевое приложение не получает сообщение остановки от Simulink
Нажмите Monitor & Tune. Затем под Step By Step Commands нажмите Deploy.
Целевое приложение начинает выполнение и вводит состояние ожидания.
Откройте блоки Scope в модели. Сигналы не отображаются на осциллографах, пока вы не начинаете выполнение модели.
На вкладке Hardware, в разделе Run on Hardware, нажимают Monitor & Tune. Затем под Step By Step Commands нажмите Connect. Это действие инициирует квитирование между Simulink и целевым приложением. Когда Simulink и цель соединяются, изменения Кнопки соединения в Disconnect.
В разделе Run on Hardware щелкните, который запускает выполнение сгенерированного типового кодекса. Два осциллографа в вашей модели отображают выводы блоков A Gain и B.
Вы установили связь между Simulink и целевым приложением запуска. Можно теперь настроить параметры блоков в Simulink и наблюдать эффекты изменений параметра.
Эта таблица описывает, как можно настроиться настраиваемый (Simulink) параметры блоков во время симуляции.
Подход | Детали |
---|---|
Model Data Editor | К настройкам параметров через Model Data Editor:
Для получения дополнительной информации смотрите Configure Data Properties при помощи Model Data Editor (Simulink). |
Диалоговое окно Block Parameter | К настройкам параметров через диалоговое окно Block Parameter:
|
Рабочее пространство MATLAB | Если параметры блоков являются переменными рабочего пространства MATLAB:
Для получения дополнительной информации смотрите, Создают и Переменные Редактирования (MATLAB). |
Вы не можете изменить шаг расчета блока 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.
Панель управления Режима external mode обеспечивает централизованное управление операций режима external mode, включая:
Чтобы открыть диалоговое окно External Mode Control Panel, на вкладке Hardware, в разделе Prepare, нажимают Control Panel.
Панель управления Режима external mode выполняет то же подключение/разъединение, и запустите/остановите функции, искавшие на вкладке Hardware на панели инструментов Simulink (см. Сводные данные Графических Средств управления для Симуляции Режима 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 совместимые блоки, включая Осциллограф, Осциллограф Времени, и К Рабочей области, позволяет вам регистрировать загруженные данные к диску. Чтобы сконфигурировать архивацию данных, смотрите, Конфигурируют Архивацию Хоста Данных сигнала Целевого приложения.
Раздел 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 all
: на
Source
: руководство
Mode
: нормальный
Duration
: 1000
Delay
: 0
Arm when connecting to target
: на
Режим 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, чтобы задать количество сохраненных точек выборки.
Можно определять один сигнал как триггерный сигнал. Чтобы выбрать триггерный сигнал, в меню 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 не может быть изменено. Изменить опции инициирования и сигнал:
Откройте панель управления режима external mode.
Нажмите Cancel Trigger. Инициирование и отображение загруженных остановок данных.
Откройте диалоговое окно External Signal & Triggering и измените сигнал и инициируйте опции как требуется. Например, в разделе Signal selection, можно включить или отключить осциллограф, и в разделе Trigger options, изменить триггер Mode, например, от normal
к one-shot
.
Нажмите 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 записало промежуточные результаты в рабочую область, выберите эту опцию.
Можно управлять симуляцией режима external mode XCP через:
Вкладка Hardware на панели инструментов Simulink. Чтобы отобразить вкладку Hardware, от вкладки Apps на панели инструментов Simulink, нажимают Run on Custom Hardware.
Панель управления Режима external mode. Открыть это диалоговое окно, в Редакторе Simulink, на вкладке Hardware, в разделе Prepare, нажатии кнопки. Затем под Signal Monitoring & Tracing, нажмите Control Panel.
Эта таблица дает функции вкладки Hardware, которые можно использовать, чтобы управлять симуляцией режима external mode.
Действие режима external mode | Аппаратная вкладка | Кнопка панели управления режима external mode |
---|---|---|
Соедините свою модель с ожиданием или запуском целевого приложения | Run on Hardware> Кнопка соединения | Connect |
Начните запускать код в реальном времени в целевом окружении | Кнопка Start | Start Real-Time Code |
Разъединитесь ваша модель от целевого окружения (не останавливает под управлением код в реальном времени), | Run on Hardware> Кнопка Disconnect | Disconnect |
Остановите выполнение целевого приложения и отключите вашу модель от целевого окружения | Кнопка Stop | Stop Real-Time Code |
В режиме external mode можно использовать следующие типы блоков, чтобы получить и просмотреть сигналы, загруженные из целевого приложения:
Плавание блоков Scope и Scope
Спектр Анализатор и Осциллограф Времени блокируется от продукта DSP System Toolbox™
Отобразите блоки
С блоками Рабочей области
Написанные пользователем Блоки s-function
Метод режима external mode встроен в API S-функции. Этот метод позволяет написанным пользователем блокам поддерживать режим external mode. Смотрите
.matlabroot
/simulink/include/simstruc.h
Блоки XY Graph
Можно определять определенные подсистемы как Подсистемы Просмотра Сигнала и использовать их, чтобы получить и просмотреть сигналы, загруженные из целевого приложения. Смотрите Сигнал Просмотреть Подсистемы для получения дополнительной информации.
Вы выбираете режим external mode совместимые блоки и подсистемы, и вооружаете триггер, при помощи диалогового окна External Signal & Triggering. По умолчанию такие блоки в модели выбраны, и ручной триггер собирается быть вооруженным, когда соединено с целевым приложением.
Подсистема Просмотра Сигнала является атомарной подсистемой, которая инкапсулирует обработку и просмотр сигналов, полученных от целевой системы. Сигнал, Просматривающий Подсистему, запускается только на хосте и не генерирует код в целевой системе. Сигнал, Просматривающий Подсистемы, запущенные в нормальном, акселераторе, быстром акселераторе и внешних режимах симуляции.
Подсистемы Просмотра сигнала неактивны, если помещено в SIL или компоненте PIL, таковы как топ-модель в режиме SIL или PIL, блок Model в режиме SIL или PIL или блок SIL или PIL. Однако SIL или компонент PIL могут питать Сигнал, Просматривающий Подсистему, запускающуюся в поддерживаемом режиме.
Подсистемы Просмотра сигнала полезны в ситуациях, где вы хотите обработать или обусловить сигналы прежде, чем просмотреть или регистрировать их, но вы не хотите выполнять эти задачи в целевой системе. При помощи Подсистемы Просмотра Сигнала можно сгенерировать меньший и более эффективный код по целевой системе.
Как другой режим external mode совместимые блоки, Подсистемы Просмотра Сигнала отображены в диалоговом окне External Signal & Triggering.
Объявить, что подсистема Подсистема Просмотра Сигнала:
В диалоговом окне Block Parameters выберите опцию Treat as atomic unit.
Для получения дополнительной информации об атомарных подсистемах смотрите Генерацию Управления Функций для Подсистем (Simulink Coder).
Чтобы включить свойство SimViewingDevice, используйте set_param
команда:
set_param('blockname', 'SimViewingDevice','on')
'blockname'
имя подсистемы.
Убедитесь, что подсистема удовлетворяет следующие требования:
Это должен быть чистый блок 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, как описано в Конфигурируют Архивацию Хоста Данных сигнала Целевого приложения.
В зависимости от установки опции 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 передает новые значения параметров при помощи этого канала к внешней программе.
Другая сторона канала связи реализована в рамках внешней программы. Эта сторона пишет новые значения параметров в структуру параметра цели (
).model
P
Сторона Simulink инициирует операцию загрузки параметра путем отправки сообщения, содержащего информацию о параметре к внешней программе. В терминологии клиент-серверного вычисления сторона Simulink является клиентом, и внешняя программа является сервером. Эти два процесса могут быть удаленными, или они могут быть локальными. Где клиент-сервер является удаленным, протокол, такой как TCP/IP используется, чтобы передать данные. Где клиент-сервер локален, последовательная связь или общая память могут использоваться, чтобы передать данные.
Следующий рисунок показывает это отношение. Механизм Simulink вызывает внешний интерфейсный файл MEX каждый раз, когда вы изменяете параметры в блок-схеме. Файл MEX затем загружает параметры на внешнюю программу при помощи канала связи.
По умолчанию параметры (кроме перечисленных в 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. Эта процедура синхронизирует хост и цель относительно значений параметров.
Переменные рабочей области, требуемые моделью, должны быть инициализированы во время связи хоста/цели. В противном случае загрузка не может продолжить, и ошибка заканчивается. Если связь установлена, эти переменные обновляются, чтобы отразить текущие значения параметров в целевой системе.
Автоматическая загрузка параметра происходит, только если целевое приложение было сгенерировано с набором Default parameter behavior к Inlined
. Загрузите Механизм, описывает операцию связи режима external mode с набором Default parameter behavior к Tunable
.
Продукт Simulink Coder предоставляет код, чтобы реализовать обоих сторона клиент-сервера коммуникации режима external mode с помощью или TCP/IP или последовательных протоколов. Можно использовать основанную на сокете реализацию режима external mode, обеспеченную продуктом Simulink Coder сгенерированным кодом, при условии, что целевая система поддерживает TCP/IP. В противном случае используйте или настройте последовательную предоставленную возможность транспортного уровня.
Низкоуровневый транспортный уровень обрабатывает физическую передачу сообщений. И механизм Simulink и типовой кодекс независимы от этого слоя. И транспортный уровень и код, непосредственно взаимодействующий через интерфейс к транспортному уровню, изолируются в отдельных модулях, что формат, передача, и получают пакеты данных и сообщения.
Можно использовать клиент-серверную реализацию TCP/IP-based режима external mode с программами в реальном времени в системах PC или Open Group UNIX®. Для справки в настройке транспортных уровней режима external mode смотрите, Создают Транспортный уровень для TCP/IP или Последовательной Коммуникации Режима external mode (Simulink Coder).
Использовать режим external mode 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 layer на панели Interface диалогового окна Configuration Parameters (например, 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 на режим 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 в
. Имя интерфейса появляется как недоступный для редактирования текст в разделе 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 layer на панели Interface диалогового окна Configuration Parameters (например, 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 на режим external mode и подключение к цели.
Дополнительные аргументы файла MEX для Последовательного Транспорта. В поле MEX-file arguments панели Interface диалогового окна Configuration Parameters можно задать аргументы, которые передаются файлу MEX интерфейса режима external mode для связи с выполняющимися целями. Для последовательного транспорта, дополнительных аргументов к ext_serial_win32_comm
следующие:
Уровень многословия: Этот аргумент управляет уровнем детализации информации, отображенной во время передачи данных. Значение этого аргумента:
0 (никакая информация), или
1 (подробная информация)
ID последовательного порта: порт ID хоста в виде целого числа или вектора символов. Например, задайте порт ID USB к последовательному конвертеру as'/dev/ttyusb0'
Целочисленный порт IDs префиксов Кодера.Simulink с \\.\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
.
Для последовательного транспорта: ID Порта является целым числом или вектором символов. Например, задайте порт ID USB к последовательному конвертеру как '/dev/ttyusb0'
-baud r
Заданный как целое число, эта опция только доступна для последовательного транспорта.
Если вы хотите реализовать свой собственный транспортный уровень для коммуникации режима external mode, необходимо изменить определенные модули кода, обеспеченные продуктом Simulink Coder, и создать новый внешний интерфейсный файл MEX. Смотрите Создают Транспортный уровень для TCP/IP или Последовательной Коммуникации Режима external mode (Simulink Coder).
Можно запустить симуляции режима external mode из командной строки MATLAB или программно в скриптах. Используйте get_param
и set_param
команды, чтобы получить и установить значения параметров командной строки симуляции модели, такие как SimulationMode
и SimulationCommand
, и параметры командной строки режима external mode, такие как ExtModeCommand
и ExtModeTrigType
.
Следующие команды симуляции модели принимают, что модель Simulink открыта и что вы загрузили целевое приложение, с которым модель соединит режим external mode использования.
Измените модель Simulink в режим external mode:
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');
Для получения дополнительной информации смотрите Симуляции Запуска Программно (Simulink).
Диагностическое Средство просмотра отображает сообщения об ошибке, произведенные 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, смотрите Параметры конфигурации Модели: Интерфейс Генерации кода (Simulink Coder).
Параметры командной строки режима external mode
Параметр и значения | Эквивалентное диалоговое окно | Описание |
---|---|---|
ExtModeAddSuffixToVar off , on | Включите Архивацию Данных: флажок Append file suffix to variable names | Инкрементные имена переменных для каждого постепенно увеличенного имени файла. |
ExtModeArchiveDirName character vector | Включите Архивацию Данных: текстовое поле Directory | Сохраните данные в заданной папке. |
ExtModeArchiveFileName character vector | Включите Архивацию Данных: текстовое поле File | Сохраните данные в заданном файле. |
ExtModeArchiveMode character vector 'off' 'auto' , manual | Включите Архивацию Данных: флажок Enable archiving | Активируйте автоматизированные опции архивации данных. Задавать Обратите внимание на то, что, если вы задаете |
ExtModeArmWhenConnect off , on | Внешняя Signal & Triggering: флажок Arm when connecting to target | Вооружите триггер, как только программное обеспечение Simulink Coder соединяется с целью. |
ExtModeAutoIncOneShot off , on | Включите Архивацию Данных: флажок Increment file after one-shot | Сохраните новые буферы данных в инкрементных файлах. |
ExtModeAutoUpdateStatusClock ( Только платформы Windows Microsoft®)off , on | Не доступный | Постоянно загрузите и отобразите целевое время в строке состояния окна модели. |
ExtModeBatchMode off , on | Панель управления Режима external mode: флажок Batch download | Включите или отключите загрузку параметров в пакетном режиме. |
ExtModeChangesPending off , on | Не доступный | Когда ExtModeBatchMode включен, указывает, остаются ли параметры в очереди параметров, которые будут загружены на цель. |
ExtModeCommand character vector - armFloating , armWired , cancelFloating , cancelWired |
| Дайте команду режима external mode к целевому приложению. |
ExtModeConnected off , on | Панель управления Режима external mode: кнопка Connect/Disconnect | Укажите на состояние связи с целевым приложением. |
ExtModeEnableFloating off , on | Панель управления Режима external mode: флажок Enable data uploading | Включите или отключите вооружение и отмену триггеров, когда связь будет установлена с плаванием осциллографов. |
ExtModeIncDirWhenArm off , on | Включите Архивацию Данных: флажок Increment directory when trigger armed | Запишите файлы журнала в инкрементные папки каждый раз, когда триггер вооружен. |
ExtModeLogAll off , on | Внешняя Signal & Triggering: флажок Select all | Загрузите доступные сигналы от цели до хоста. |
ExtModeParamChangesPending off , on | Не доступный | Когда программное обеспечение Simulink Coder соединяется с целью и ExtModeBatchMode включен, указывает, остаются ли параметры в очереди параметров, которые будут загружены на цель. Более эффективный, чем ExtModeChangesPending , потому что это проверяет на связь с целью. |
ExtModeSkipDownloadWhenConnect off , on | Не доступный | Соединитесь с целевым приложением, не загружая параметры. |
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 off , on | Включите Архивацию Данных: флажок Write intermediate results to workspace | Запишите промежуточные результаты в рабочую область. |
Если у вас есть Stateflow®, можно анимировать график в режиме external mode. В режиме external mode можно анимировать состояния в графике, и просмотреть сигналы тестовой точки в плавающем осциллографе или предупредить о средстве просмотра.
Анимационные состояния в процессе моделирования в режиме external mode
Просмотрите данные о тестовой точке в плавании осциллографов и средств просмотра сигнала
Анимировать состояния в графике в режиме external mode:
Загрузите график, который вы хотите анимировать к целевой машине.
В диалоговом окне Configuration Parameters установите флажок External mode.
Откройте диалоговое окно External Mode Control Panel.
Нажмите Signal & Triggering.
В диалоговом окне External Signal & Triggering, установленном эти параметры.
\in: | Выбор: |
---|---|
Панель Signal selection | Стройте диаграмму вы хотите анимировать |
Панель Trigger options | Флажок Arm when connecting to target |
Панель Trigger options | normal в выпадающем меню в поле Mode |
Создайте модель, чтобы сгенерировать исполняемый файл.
Разверните целевое приложение.
Соедините Simulink с целевым приложением.
Запустите выполнение сгенерированного типового кодекса. График подсвечивает состояния, как они выполняются.
Когда вы симулируете график в режиме external mode, можно определять данные о графике локального осциллографа быть тестовыми точками и просматривать данные о тестовой точке в плавании осциллографов и средств просмотра сигнала.
Просмотреть данные о тестовой точке в процессе моделирования в режиме external mode:
Откройте Model Explorer, и для каждых данных вы хотите просмотреть, выполнить эти шаги:
В средней панели Contents выберите или локальные данные состояния интереса.
В правильной панели Dialog выберите вкладку Logging и установите флажок Test point.
От плавающего осциллографа или средства просмотра сигнала, кликните по кнопке выбора сигнала:
Селекторное диалоговое окно Сигнала открывается.
В Селекторной панели Model hierarchy Сигнала выберите график.
В меню Signal Selector List contents выберите Testpointed/Logged signals only и затем выберите сигналы, которые вы хотите просмотреть.
Симулируйте модель в режиме external mode как описано в Анимационных состояниях В процессе моделирования в Режиме external mode.
Осциллограф или средство просмотра отображают значения сигналов тестовой точки, когда симуляция запускается.
Для получения дополнительной информации смотрите Поведение Осциллографов и Средств просмотра с Быстрым Режимом Accelerator (Simulink).
Функция | Детали |
---|---|
Изменение параметров | В общем случае вы не можете изменить параметр при выполнении так результаты в изменении в структуре модели. Например, вы не можете измениться
Если вы вносите эти изменения в блок-схему, то необходимо восстановить программу с недавно сгенерированным кодом. Можно изменить параметры в передаточной функции и блоки представления пространства состояний в особенных методах:
Если Диаграмма Simulink не совпадает с внешней программой, Simulink производит ошибку при утверждении, что контрольные суммы не соответствуют. Контрольные суммы учитывают топ-моделей, но не модели, на которые ссылаются. Используйте обновленную блок-схему, чтобы восстановить целевое приложение. |
Загрузка данных | Загрузка значений данных для фиксированных точек или перечислимых типов к параметрам рабочей области не поддержана. |
Загрузка сигналов переменного размера | Загрузка сигналов переменного размера не поддержана для этих целей:
|
Отображение значения сигналов в симуляции | Графический дисплей значений сигналов в моделях (описанный в Значениях сигналов Отображения в Диаграммах модели (Simulink)) не поддержан. Например, вы не можете использовать выборы пункта меню Data Display in Simulation Show Value Labels When Hovering, Toggle Value Labels When Clicked и Show Value Label of Selected Port. |
Настраиваемые параметры структуры | Загрузка или загрузка настраиваемых параметров структуры не поддержаны. |
Чистый целочисленный код | Чистый целочисленный код поддерживается. Если вы не задаете Если вы задаете
|
Архивация данных | Для архивации данных к диску поддерживается Осциллограф и С блоками Рабочей области. Однако другие осциллографы не поддержаны для архивации данных. Например, вы не можете использовать Плавающего менеджера по Средствам просмотра и блокам или Генераторов Осциллографа, которому средство просмотра возражает, чтобы заархивировать данные. |
Осциллографы в моделях, на которые ссылаются, | В иерархии модели, если топ-модель симулирует в режиме external mode и модели, на которую ссылаются, симулирует в нормальном или режиме Accelerator, осциллографы в модели, на которую ссылаются, не отображены. Однако, если топ-модель изменяется, чтобы симулировать в режиме normal mode, поведение осциллографов в моделях, на которые ссылаются, отличается между нормальным и режимом Accelerator. Осциллографы в симуляции модели, на которую ссылаются, в режиме normal mode отображены, в то время как осциллографы в симуляции модели, на которую ссылаются, в режиме Accelerator не отображены. |
Время начала симуляции | Ненулевая симуляция запускается, времена не поддержаны. В диалоговом окне Configuration Parameters, панели Solver, наборе Start time отпуска к значению по умолчанию |
Промежуточные значения шага |
Некоторые блоки Simulink могут сгенерировать несколько значений на шаге времени симуляции. Например:
Для каждого временного шага в симуляции режима external mode Simulink загружает из целевого приложения только окончательные значения таких блоков. Simulink не загружает промежуточные значения, сгенерированные во время шага. |
Ограниченные по объему файлом данные | Ограниченные по объему файлом данные не поддержаны, например, элементы данных, к которым вы применяете встроенный пользовательский класс памяти, |
Сигналы с пользовательскими классами памяти | Загрузка сигналов с пользовательскими классами памяти (CSC) не поддержана. |
Использование printf Операторы | Чтобы показать сообщения об ошибке целевого приложения и информационные сообщения на отображении целевого компьютера, можно использовать |
Параметры командной строки | Можно использовать параметры командной строки в запуске целевых приложений. Эти ограничения применяются:
Если ваш целевой компьютер не поддерживает парсинг параметров командной строки, задайте макроопределение препроцессора Заменять set_param(modelName, 'OnTargetWaitForStart', 'on'); -DON_TARGET_WAIT_FOR_START=1 ) к компилятору. |
Упорядоченная по строкам генерация кода | Код, сгенерированный с упорядоченным по строкам форматом, не поддержан. |