exponenta event banner

Моделирование глобальных данных путем создания хранилищ данных

Хранилище данных - это хранилище, в которое можно записывать данные и из которого можно считывать данные без необходимости подключения входного или выходного сигнала непосредственно к хранилищу данных. Хранилища данных доступны на разных уровнях модели, поэтому подсистемы и ссылочные модели могут использовать хранилища данных для совместного использования данных без использования портов ввода-вывода. Сведения об использовании хранилищ данных см. в разделе Основные сведения о хранилищах данных.

Примеры хранилища данных

Обзор

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

Примечание

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

Пример локального хранилища данных

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

В этой модели используется хранилище данных, позволяющее подсистеме A сигнализировать о недопустимости ее выхода.

Если выходные данные подсистемы A недействительны, модель использует выходные данные подсистемы B.

Пример глобального хранилища данных

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

В этом примере верхняя модель использует объект сигнала в рабочей области MATLAB ® для определения хранилища данных об ошибках. Это необходимо, поскольку хранилища данных видны через границы модели, только если они определены сигнальными объектами в рабочей области MATLAB или словаре данных. Модель определяет код для PreLoadFcn параметр обратного вызова модели, который создает объект сигнала. Этот код выполняется перед загрузкой модели.

Создание и применение хранилищ данных

Примечание

Для использования шин и массивов шин с хранилищами данных выполните как следующую процедуру, так и настройку модели для использования хранилищ данных с шинами и массивами шин.

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

  1. При необходимости запланируйте использование хранилищ данных, чтобы минимизировать их влияние на проверку программного обеспечения. Дополнительные сведения см. в разделе Хранилища данных и проверка программного обеспечения.

  2. Создание хранилищ данных с использованием методов, описанных в разделе Хранилища данных с блоками памяти хранилища данных или Хранилища данных с сигнальными объектами. Для повышения надежности рекомендуется назначать, а не наследовать атрибуты хранилища данных, как описано в разделе Задание атрибутов блока памяти хранилища данных.

  3. Добавьте в модель блоки записи и чтения хранилища данных для записи и чтения из хранилищ данных, как описано в разделе Доступ к хранилищам данных с блоками Simulink.

  4. Настройте модель и блоки, которые обращаются к каждому хранилищу данных, чтобы избежать сбоев параллелизма при чтении и записи хранилища данных, как описано в разделе Order Data Store Access.

  5. Примените методы, описанные в разделе Диагностика хранилища данных, чтобы предотвратить ошибки хранилища данных или диагностировать их, если они происходят во время моделирования.

  6. Если предполагается создать код для модели, см. раздел Хранилища данных в сгенерированном коде (Simulink Coder).

Для создания хранилища данных создается блок памяти хранилища данных или Simulink.Signal объект. Блок или сигнальный объект представляет хранилище данных и задает его свойства. Каждое хранилище данных должно иметь уникальное имя.

Хранилища данных, реализованные с блоками памяти хранилища данных:

  • Поддержка инициализации хранилища данных

  • Обеспечение управления объемом и параметрами хранилища данных на определенных уровнях иерархии модели

  • Требуется блок для представления хранилища данных

  • Невозможно получить доступ к ссылочным моделям

  • Не может находиться в подсистеме, которую представляет блок For Each Subsystem.

Хранилища данных, реализованные с Simulink.Signal объекты:

  • Обеспечение управления объемом и параметрами хранилища данных в масштабах всей модели

  • Не требуется блок для представления хранилища данных

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

Будьте осторожны, чтобы не приравнивать локальные хранилища данных к блокам памяти хранилища данных, а глобальные хранилища данных к Simulink.Signal объекты. Любой метод может определять локальное хранилище данных, а сигнальный объект может определять локальное или глобальное хранилище данных.

Хранилища данных с блоками памяти хранилища данных

Создание хранилища данных

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

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

  • Чтобы определить хранилище данных, видимое только в определенной подсистеме, и подсистемы, которые оно содержит, но не в блоках модели, перетащите блок памяти хранилища данных в подсистему.

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

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

Задание атрибутов блока памяти хранилища данных

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

  • Тип данных

  • Сложность

  • Время выборки

Однако разрешение наследования этих атрибутов может привести к неожиданным результатам, которые может быть трудно отладить. Для предотвращения таких ошибок используйте диалоговое окно «Блок памяти хранилища данных» или Simulink.Signal для явного указания атрибутов.

Задание атрибутов с помощью параметров блока

Можно использовать диалоговое окно «Блок памяти хранилища данных» или вкладку «Хранилища данных редактора данных модели» (на вкладке «Моделирование» щелкните «Редактор данных модели»), чтобы указать тип и сложность хранилища данных. На следующем рисунке в диалоговом окне блока устанавливается тип данных uint16 и тип сигнала для real.

Задание атрибутов с помощью сигнального объекта

Вы можете использовать Simulink.Signal объект для указания атрибутов хранилища данных для блока памяти хранилища данных.

Совет

Чтобы создать неявное хранилище данных, как описано в разделе Хранилища данных с сигнальными объектами, используйте тот же общий подход, что и при явном связывании сигнального объекта с блоком памяти хранилища данных.

На следующем рисунке показан блок памяти хранилища данных, который определяет разрешение Simulink.Signal объект, имя A. Чтобы использовать сигнальный объект для хранилища данных, задайте имя хранилища данных в качестве имени сигнального объекта. Для проверки времени компиляции откройте вкладку Атрибуты сигнала (Signal Attributes) и выберите имя хранилища данных, которое должно соответствовать параметру объекта сигнала Simulink.

Либо на вкладке Хранилища данных редактора данных модели (Model Data Editor Data Stores) (на вкладке Моделирование (Modeling) щелкните Редактор данных модели (Model Data Editor)) при редактировании имени хранилища данных нажмите расположенную рядом кнопку действия и выберите Создать и разрешить (Create and Resolve). В диалоговом окне «Создание новых данных» задайте для параметра «Значение» значение Simulink.Signal.

Сигнальный объект определяет значения для всех трех атрибутов данных, которые в противном случае наследуются хранилищем данных. В этом примере, который определяет локальное хранилище данных, Simulink.Signal объект A имеет следующие наследуемые свойства: DataType, Complexity, и SampleTime.

A =
 
Simulink.Signal (handle)
         CoderInfo: [1x1 Simulink.CoderInfo]
       Description: ''
          DataType: 'auto'
               Min: []
               Max: []
              Unit: ''
        Dimensions: 1
    DimensionsMode: 'auto'
        Complexity: 'auto'
        SampleTime: -1
      InitialValue: 0

Дополнительные сведения об указании атрибутов сигнальных объектов для локальных и глобальных хранилищ данных см. в разделе Атрибуты сигнальных объектов для хранилищ данных.

Используйте редактор данных модели для настройки блоков памяти хранилища данных в списке.  Используйте вкладку Хранилища данных (Data Stores) в Редакторе данных модели (Model Data Editor), чтобы настроить параметры блока памяти хранилища данных. Этот метод используется для настройки хранилища данных без его размещения в модели и для конфигурирования хранилища данных вместе с другими элементами интерфейса, такими как блоки Inport и Outport. Редактор данных модели также показывает информацию для блоков чтения хранилища данных и записи хранилища данных в одном списке.

Чтобы открыть редактор данных модели, на вкладке Моделирование (Modeling) щелкните Редактор данных модели (Model Data Editor). Сведения об использовании редактора данных модели см. в разделе Настройка свойств данных с помощью редактора данных модели.

Хранилища данных с сигнальными объектами

Создание хранилища данных

Использование Simulink.Signal для определения хранилища данных без использования блока памяти хранилища данных создайте сигнальный объект в рабочей области, видимый для каждого компонента, которому необходим доступ к хранилищу данных. Имя связанного хранилища данных - это имя сигнального объекта. Это имя можно использовать в блоках «Чтение хранилища данных» и «Запись хранилища данных», как если бы оно было именем хранилища данных блока «Память хранилища данных». Simulink ® создает связанное хранилище данных при использовании объекта сигнала для хранения данных.

Локальные и глобальные хранилища данных

Вы можете использовать Simulink.Signal для определения локального или глобального хранилища данных.

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

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

Атрибуты сигнальных объектов для хранилищ данных

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

После создания объекта задайте для свойств сигнального объекта значения, которые должны иметь соответствующие свойства хранилища данных. Например, следующие команды определяют хранилище данных с именем Error в базовой рабочей области MATLAB:

Error = Simulink.Signal;
Error.Description = 'Use to signal that subsystem output is invalid';
Error.DataType = 'boolean';
Error.Complexity = 'real';
Error.Dimensions = 1;
Error.SampleTime = 0.1;

Атрибуты для локальных хранилищ данных.  Для локального хранилища данных для каждого параметра, перечисленного ниже, можно либо задать значение явным образом, либо назначить хранилищу данных наследование значения из блоков Запись хранилища данных и Чтение хранилища данных.

  • DataType

  • Complexity

  • SampleTime

Для определения локального хранилища данных с помощью блока памяти хранилища данных можно использовать объект сигнала для параметра Имя хранилища данных. Для проверки времени компиляции на вкладке Атрибуты сигнала (Signal Attributes) выберите Хранилище данных (Data store), которое должно быть разрешено параметром объекта сигнала Simulink. Хранилище данных должно разрешить параметр объекта сигнала Simulink, что приведет к отображению ошибки Simulink и остановке компиляции, если Simulink не может найти объект сигнала или если свойства объекта сигнала несовместимы со свойствами объекта сигнала.

Атрибуты для глобальных хранилищ данных.  В следующей таблице описаны требования к параметрам для глобальных хранилищ данных.

ПараметрЗначение глобального хранилища данных
DataTypeНеобходимо задать явным образом
ComplexityНеобходимо задать явным образом
DimensionsМожет быть установлен или унаследован
SampleTimeМожет быть установлен или унаследован

Изменение атрибутов хранилища данных, определенного сигнальным объектом.  Редактор данных модели (на вкладке Моделирование (Modeling) щелкните Редактор данных модели (Model Data Editor)) можно использовать для изменения и проверки атрибутов блоков хранения данных, чтения хранилища данных и записи хранилища данных. На вкладке Хранилища данных для отображения атрибутов хранилищ данных, определяемых с помощью сигнальных объектов (например, Simulink.Signal), нажмите кнопку Показать/обновить дополнительную информацию. Затем, если блок чтения хранилища данных или записи хранилища данных, показанный в таблице данных, относится к хранилищу данных, определенному сигнальным объектом, таблица включает в себя строку, которая соответствует объекту.

Дополнительные сведения о редакторе данных модели см. в разделе Настройка свойств данных с помощью редактора данных модели.

Доступ к хранилищам данных с помощью блоков Simulink

Запись в хранилище данных

Чтобы задать значение хранилища данных на каждом шаге времени:

  1. Создайте экземпляр блока записи хранилища данных на уровне модели, который вычисляет значение.

  2. Задайте для параметра Имя хранилища данных блока записи данных имя хранилища данных, в которое требуется записать данные.

  3. Подключите выход блока, вычисляющего значение, к входу блока записи хранилища данных.

Чтение из хранилища данных

Чтобы получить значение хранилища данных на каждом шаге времени:

  1. Создайте экземпляр блока чтения хранилища данных на уровне модели, которому требуется значение.

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

  3. Подключите выход блока чтения хранилища данных к входу блока, которому требуется значение хранилища данных.

Доступ к глобальному хранилищу данных

При соединении с глобальным хранилищем данных (которое определяется сигнальным объектом в рабочей области MATLAB) блок чтения хранилища данных или записи хранилища данных отображает слово global над именем хранилища данных.

Доступ к хранилищу данных заказа

Сведения о порядке доступа к хранилищу данных

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

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

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

Упорядочение доступа с использованием подсистем вызова функций

Для управления порядком выполнения компонентов модели, имеющих доступ к хранилищам данных, можно использовать подсистемы вызова функций. На следующем рисунке показана эта методика:

Подсистема Before содержит запись в хранилище данных и вызов этой подсистемы с помощью диаграммы Stateflow ® перед вызовом подсистемыAfter, который содержит считанное хранилище данных.

Упорядочение доступа с использованием приоритетов блоков

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

Блок «Модель» beforeDSM имеет более низкий приоритет, чем afterDSM, так что он гарантированно исполнится первым. С тех пор beforeDSM является атомарным, все его операции, включая запись в хранилище данных, будут выполняться до afterDSM и все его операции, включая считывание из хранилища данных.

Хранилища данных с шинами и массивами шин

Преимущества использования хранилищ данных с шинами и массивами шин включают в себя:

  • Упрощение компоновки модели путем связывания нескольких сигналов с одним хранилищем данных

  • Создание сгенерированного кода, представляющего данные в данных хранилища в виде структур, отражающих иерархию шины

  • Запись в хранилища данных и чтение из них без создания копий данных, что обеспечивает более эффективный доступ к данным

Нельзя использовать шину или массив шин, содержащий:

  • Сигналы переменного размера

  • Сигналы на основе кадров

Настройка модели для использования хранилищ данных с шинами и массивами шин

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

Для использования шин и массивов шин с хранилищами данных:

  1. Используйте редактор шины для определения объекта шины, свойства которого соответствуют данным шины, которые необходимо записать в хранилище данных и считать из него. Дополнительные сведения см. в разделе Создание и указание объектов Simulink.Bus.

  2. Добавление хранилища данных (с помощью блока памяти хранилища данных или Simulink.Signal объект) для хранения данных шины.

  3. Укажите объект шины в качестве типа данных хранилища данных. Дополнительные сведения см. в разделе Указание типа данных объекта шины.

  4. Если для начального значения хранилища данных используется структура MATLAB, то для параметра Configuration Parameters > Diagnostics > Data Validity > Advanced parameters > Underspecified initialization detection установите значение Simplified. Дополнительные сведения см. в разделах Определение начальных условий для обнаружения шинных элементов и неполной инициализации.

  5. (Необязательно) Выберите отдельные элементы шины для записи в хранилище данных или чтения из него. Дополнительные сведения см. в разделе Доступ к конкретным элементам шины и матрицы.

Доступ к определенным элементам шины и матрицы

Выбор конкретных элементов шины или матрицы

По умолчанию модель записывает и считывает все элементы шины и матрицы в хранилище данных и из него.

Чтобы выбрать определенные элементы шины или матрицы для записи в хранилище данных или чтения из него, используйте панель Назначение элемента (Element Assignment) блока Запись хранилища данных (Data Store Write) и панель Выбор элемента (Element Selection) блока Чтение хранилища данных (Data Store Read). Выбор конкретных элементов шины или матрицы обеспечивает следующие преимущества:

  • Уменьшение количества блоков в модели. Например, можно исключить пару блоков «Чтение хранилища данных» и «Выбор шины» или пару блоков «Запись хранилища данных» и «Назначение шины» для каждого конкретного элемента шины, к которому требуется получить доступ).

  • Более быстрое моделирование моделей с большими автобусами и массивами автобусов.

Запись определенных элементов в хранилище данных

Примечание

Следующая процедура описывает использование интерфейса блока записи хранилища данных для записи определенных элементов в хранилище данных. Эту задачу также можно выполнить в командной строке с помощью DataStoreElements для указания элементов. Дополнительные сведения см. в разделе Спецификация с помощью командной строки.

Чтобы назначить определенные элементы шины или матрицы для записи в хранилище данных:

  1. Выберите блок «Запись в хранилище данных» и в диалоговом окне параметров выберите панель «Назначение элемента». Например, предположим, что используется шина с хранилищем данных с именем DSM:

    The Element Assignment tab of Data Store Write block parameters dialog. The "Signals in the bus" pane shows an unexpanded bus DSM.

  2. Разверните все элементы в списке «Сигналы» в списке шин.

    The Element Assignment tab of Data Store Write block parameters dialog. The "Signals in the bus" pane shows an expanded view of all elements of the bus DSM.

  3. Укажите элементы, которые необходимо записать в хранилище данных. Например:

    • В списке Signals in the bus щелкните B. Затем щелкните Выбрать > >, чтобы выбрать элементB.

    • Чтобы записать все элементы A2A вложенная шина), выберите A2[5,1]. Затем щелкните Выбрать > >.

    • Для записи второго элемента A2 в C2 вложенная шина, выберите A2[5,1] элемент. В текстовом поле «Указать элементы для назначения» отредактируйте текст. DSM.C.C2.A2(2,1).

    The Element Assignment tab of Data Store Write block parameters dialog. The "Signals in the bus" pane shows an expanded view of all elements of the bus DSM. The "Assigned element(s)" pane shows 3 specified elements of the bus DSM.

    Дополнительные примеры см. в разделе Задание элементов для назначения или выбора.

  4. (Необязательно) Переупорядочить назначенные элементы, что изменяет порядок портов блока записи хранилища данных.

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

    • Чтобы удалить назначенный элемент, нажмите кнопку «Удалить».

  5. Чтобы применить назначенные элементы, нажмите кнопку «ОК».

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

Чтение определенных элементов из хранилища данных

Считывание определенных элементов из хранилища данных включает в себя очень похожие шаги, описанные в разделе Запись конкретных элементов в хранилище данных. Блок чтения хранилища данных немного отличается от блока записи хранилища данных. Блок чтения хранилища данных имеет:

  • Панель «Выбор элемента» вместо панели «Назначение элемента»

  • Список выбранных элементов вместо списка назначенных элементов

Задание элементов для назначения или выбора

Синтаксис элемента матрицы MATLAB используется для указания определенных элементов. Дополнительные сведения о задании матриц в MATLAB см. в разделах Создание, конкатенация и расширение матриц.

Примечание

Для выбора элементов матрицы с динамическим индексированием с помощью блоков «Чтение хранилища данных» и «Запись хранилища данных» выберите «Включить индексирование» на панели «Выбор элементов/Назначение элементов» диалогового окна параметров блока. Для динамического индексирования одновременно можно выбрать только один элемент. См. раздел Чтение и запись в хранилище данных.

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

The Element Assignment tab of Data Store Write block parameters dialog. The "Signals in the bus" pane shows an expanded view of all elements of the bus DSM.

Допустимый синтаксисОписание
DSM.A.A2(:,:)

Выбор всех элементов в каждом измерении

DSM.A.A2([1,3,5],1)

Выбор первого, третьего и пятого элементов

DSM.A.A2(2:5,1)

Выбор второго-пятого элемента

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

Недопустимый синтаксисПричина недопустимого синтаксиса
DSM.A.A2(:)

Необходимо указать двоеточие для каждого размера. Для иерархии шин, используемой в этих примерах, необходимо использовать две двоеточия.

DSM.A.A2(2:end,1)

Вы не можете использовать end оператор.

DSM.A.A2(idx,1)

Нельзя использовать переменные для указания индексов. Рекомендуется использовать динамическую индексацию, выбрав «Включить индексацию» на панели «Выбор элементов/Назначение элементов» диалогового окна параметров блока. См. раздел Чтение и запись в хранилище данных.

DSM.A.A2(-1,1)

Измерение –1 не входит в допустимые границы размеров.

Спецификация с помощью командной строки.  Чтобы задать элементы для записи или чтения, используйте DataStoreElements параметр. Используйте знак фунта (#) для разделения нескольких элементов. Например, выберите блок «Запись в хранилище данных» или «Чтение из хранилища данных», для которого требуется указать элементы, и введите команду, например:

set_param(gcb, 'DataStoreElements', 'DSM.A#DSM.B#DSM.C(3,4)')

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

Переименовать хранилища данных

Переименовать хранилище данных, определенное блоком

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

  1. В диалоговом окне «Блок памяти хранилища данных» введите новое имя в поле «Имя хранилища данных» и нажмите «Переименовать все».

  2. В диалоговом окне Переименовать все (Rename All) подтвердите новое имя хранилища данных в поле Новое имя (New name) и нажмите кнопку ОК

Примечание

Нельзя использовать команду Переименовать все (Rename All) для переименования хранилища данных при создании Simulink.Signal объект в рабочей области для управления кодом, созданным для хранилища данных. Вместо этого необходимо переименовать соответствующий Simulink.Signal с помощью Обозревателя моделей. Пример см. в разделе Переименование хранилища данных, определяемого сигнальным объектом.

Переименование хранилища данных, определенного сигнальным объектом

В этом примере показано, как переименовать хранилище данных, определенное Simulink.Signal объект. Обозреватель моделей можно использовать для переименования объекта везде, где он используется блоками чтения хранилища данных и записи хранилища данных в модели или в иерархии ссылок на модель.

  1. Открытие модели sldemo_mdlref_dsm. Модель создает Simulink.Signal объект ErrorCond в базовой рабочей области MATLAB и использует объект в качестве глобального хранилища данных в ссылочной иерархии модели.

  2. Откройте обозреватель моделей.

  3. На панели Иерархия модели (Model Hierarchy) выберите базовое рабочее пространство.

  4. На панели «Содержимое» щелкните правой кнопкой мыши хранилище данных. ErrorCond и выберите Переименовать все.

  5. В диалоговом окне Выбрать систему (Select a system) щелкните имя модели. sldemo_mdlref_dsm чтобы выбрать его в качестве контекста для переименования хранилища данных ErrorCond.

  6. Выберите Поиск (Search) в ссылочных моделях с ErrorCond является глобальным хранилищем данных, которое используется в ссылочной модели. Нажмите кнопку ОК.

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

  7. Нажмите кнопку ОК в ответ на сообщение, чтобы обновить схему модели.

    Поскольку модель только что была открыта, необходимо обновить схему модели хотя бы один раз перед переименованием переменной, например ErrorCond. Можно выбрать Обновить диаграмму, чтобы включить последние изменения в диалоговое окно Выбрать систему (Select a system), чтобы принудительно обновить начальную диаграмму, хотя эта опция обычно используется при внесении изменений в модель при выполнении нескольких операций переименования переменных.

  8. В диалоговом окне Переименовать все (Rename All) введите новое имя хранилища данных в поле Новое имя (New name) и нажмите кнопку ОК.

Настраиваемые функции доступа к хранилищу данных в сгенерированном коде

Embedded Coder ® предоставляет класс хранения, который можно использовать для задания пользовательских функций доступа к хранилищу данных в сгенерированном коде. См. раздел Организация данных параметров в структуру с использованием класса хранения Struct (встроенный кодер) и доступ к данным через функции с помощью класса хранения GetSet (встроенный кодер).

См. также

| | |

Связанные темы