Этот пример показывает, как создать и использовать защищенную модель в симуляциях режима Normal и Accelerated, а также для генерации кода.
Прежде чем можно будет сгенерировать защищенные модели, необходимо было установить Simulink® Coder™. Чтобы сгенерировать представление только для чтения защищенных моделей, необходимо было установить Simulink® Report Generator™.
Откройте модель в качестве примера, sldemo_mdlref_bus
.
Рисунок 1: модель в качестве примера, sldemo_mdlref_bus
Эта модель содержит один блок Model, CounterA
. Чтобы защитить модель, на которую ссылается этот блок, щелкните правой кнопкой по блоку Model и выберите Subsystem & Model Reference> Create Protected Model for Selected Model Block. Диалоговое окно открывается, где можно выбрать опции для создания защищенной модели.
Рисунок 2: Защищенное образцовое диалоговое окно
Под Позволяют пользователю защищенной модели выбирать Open представление только для чтения модели, Моделировать и Генерировать код. У вас есть опция ввода паролей для 3 вышеупомянутых функциональностей. Эти 3 пароля используются, чтобы защитить соответствующие функциональности. Введите отдельные пароли для этих 3 опций и нажмите Create
. Защищенный образцовый файл, sldemo_mdlref_counter_bus.slxp
, сгенерирован в текущей рабочей папке. Можно использовать эту защищенную модель в симуляциях режима Normal и Accelerated, а также для генерации кода. Можно также открыть представление только для чтения модели. Исходный образцовый файл не требуется.
Чтобы моделировать модель, которая ссылается на защищенную модель, вы можете должны быть задать переменные в базовом рабочем пространстве. Например, для защищенной модели, sldemo_mdlref_counter_bus
, нужны переменные базового рабочего пространства, которые задают шины в корневых портах ввода и вывода модели. Когда вы поставляете защищенную модель, необходимо включать определения необходимых переменных, или модель неприменима. Команда protect
генерирует защищенную модель и определяет необходимые переменные. Например:
[~, neededVars] = Simulink.ModelReference.protect('sldemo_mdlref_counter_bus', 'Mode', 'CodeGeneration', 'OutputFormat', 'MinimalCode', 'ObfuscateCode', true, 'Harness', true, 'Report', true, 'Webview', true)
Второй вывод функции protect
, neededVars
, включает переменные базового рабочего пространства, которые необходимо отправить получателю. Значение neededVars
является массивом ячеек, который содержит имена переменных базового рабочего пространства, требуемых для защищенной модели. Однако массив ячеек может также содержать имена переменных рабочей области, в которых не нужна модель.
Прежде чем вы совместно используете защищенную модель, отредактируете neededVars
, чтобы удалить имена любых переменных, в которых не нужна модель. Сохраните необходимые переменные рабочей области в MAT-файл:
save('sldemo_mdlref_counter_bus_vars', neededVars{:});
Когда блок Model ссылается на защищенную модель, значок щита отображен на блоке.
Рисунок 3: Ссылка на защищенную модель
Щелкните правой кнопкой по значку щита и выберите Authorize.... Введите пароли, которые вы использовали при создании защищенной модели.
Рисунок 4: диалоговое окно Ввода пароля
Теперь можно моделировать модель или в Нормальном или в Режим Accelerator. Можно также создать топ-модель путем выбора Code> C/C ++ Code> Build Model.
Дважды кликните блок Model, чтобы открыть представление только для чтения модели. Также щелкните правой кнопкой по значку щита и выберите Show Webview, чтобы открыть представление только для чтения модели.
Рисунок 5: защищенное образцовое веб-представление
Щелкните правой кнопкой по значку щита и выберите Display Report, чтобы открыть отчет
Рисунок 6: защищенный образцовый отчет