Задайте хранилище данных
Simulink / Маршрутизация Сигнала
Блок Data Store Memory задает и инициализирует именованное общее хранилище данных, которое является областью памяти, применимой Data Store Read и блоками Data Store Write, которые задают то же имя хранилища данных.
Местоположение блока Data Store Memory, который задает хранилище данных, определяет, который Data Store Read и блоки Data Store Write могут получить доступ к хранилищу данных:
Если блок Data Store Memory находится в системе верхнего уровня, Data Store Read и блоки Data Store Write где угодно в модели могут получить доступ к хранилищу данных.
Если блок Data Store Memory находится в подсистеме, Data Store Read и блоки Data Store Write в той же подсистеме или в любой подсистеме ниже его в иерархии модели могут получить доступ к хранилищу данных.
Data Store Read или блоки Data Store Write не могут получить доступ к блоку Data Store Memory, который является или в модели, которая содержит блок Model или в модели, на которую ссылаются.
Не включайте блок Data Store Memory в Для Каждой подсистемы.
Получение правильных результатов хранилищ данных требует обеспечения, что чтения хранилища данных и записи происходят в ожидаемом порядке. Для получения дополнительной информации см.:
Можно использовать Simulink.Signal
объекты в дополнение к, или вместо, Data Store Memory блокируется, чтобы задать хранилища данных. Хранилище данных, заданное в базовом рабочем пространстве с объектом сигнала, является хранилищем глобальных данных. Хранилища глобальных данных доступны для каждой модели, включая все модели, на которые ссылаются. Смотрите Хранилища данных для получения дополнительной информации.
Data store name
— Назовите для хранилища данныхA
(значение по умолчанию) | вектор символов | строкаЗадайте имя для хранилища данных, которое вы задаете с этим блоком. Data Store Read и блоки Data Store Write с тем же именем могут читать из и записать в, хранилище данных, инициализированное этим блоком. Имя может представлять блок Data Store Memory или объект знака, заданный, чтобы быть хранилищем данных.
Параметры блоков: DataStoreName |
Ввод: символьный вектор |
Значения: 'A' | ... |
Значение по умолчанию: 'A' |
Rename All
— Переименуйте это хранилище данных в моделиПереименуйте это хранилище данных везде, Data Store Read и блоки Data Store Write используют его в модели.
Вы не можете использовать Rename All, чтобы переименовать хранилище данных если вы:
Используйте Simulink.Signal
объект в рабочей области, чтобы управлять кодом, сгенерированным для хранилища данных
Используйте Simulink.Signal
объект вместо блока Data Store Memory, чтобы задать хранилище данных
Необходимо вместо этого переименовать соответствующий Simulink.Signal
объект от Model Explorer. Для примера смотрите, Переименовывают Хранилище данных, Заданное Объектом Сигнала.
Corresponding Data Store Read/Write blocks
— Путь к связанным блокам Чтения-записи Хранилища данныхПеречислите весь Data Store Read и блоки Data Store Write, которые имеют то же имя хранилища данных как текущий блок, и которые находятся в существующей системе или в любой подсистеме ниже его в иерархии модели. Нажатие на блок path отображает и подсвечивает что блок в вашей модели.
Initial value
— Начальное значение хранилища данных
(значение по умолчанию) | скаляр | вектор | матрица | массив N-DЗадайте начальное значение или значения хранилища данных. Параметр Minimum задает минимальное значение для этого параметра, и параметр Maximum задает максимальное значение.
Если вы задаете нескалярное значение и устанавливаете Dimensions на -1
(значение по умолчанию), хранилище данных имеет те же размерности как массив. Данные, которые вы пишете в хранилище данных (при помощи блоков Data Store Write) должны иметь эти размерности.
Если вы устанавливаете параметр Dimensions на значение кроме -1
, размерности начального значения должны совпадать с размерностями, которые вы задаете, если начальное значение не является скаляром или структурой MATLAB®. Если вы задаете скаляр, каждый элемент хранилища данных использует скаляр в качестве начального значения. Используйте этот метод, чтобы применить то же начальное значение (скаляр, который вы задаете) к каждому элементу, вручную не совпадая с размерностями начального значения с размерностями хранилища данных.
Чтобы использовать этот блок, чтобы инициализировать невиртуальный сигнал шины, задайте начальное значение как структуру MATLAB и установите параметр конфигурации модели обнаружение инициализации Underspecified на Simplified
. Для получения дополнительной информации об инициализации невиртуальных сигналов шины с помощью структур, смотрите, Задают Начальные условия для Сигналов Шины.
Параметры блоков: InitialValue |
Ввод: символьный вектор |
Значения: скаляр | вектор | матрица | массив N-D |
Значение по умолчанию: '0' |
Minimum
— Минимальное выходное значение для проверки диапазона[]
(значение по умолчанию) | скалярЗадайте минимальное значение, которое должен вывести блок. Значением по умолчанию является []
(незаданный). Этот номер должен быть конечным действительным двойным скалярным значением.
Примечание
Если вы задаете объект шины как тип данных для этого блока, не устанавливайте минимальное значение для данных о шине по блоку. Simulink игнорирует эту установку. Вместо этого установите минимальные значения для элементов шины объекта шины, заданного как тип данных. Для получения информации о свойстве Minimum элемента шины смотрите Simulink.BusElement
.
Simulink® использует минимальное значение, чтобы выполнить:
Проверка диапазона параметра (см., Задает Минимальные и Максимальные значения для Параметров блоков).
Проверка диапазона симуляции (см., Указывает Диапазоны сигнала).
Автоматическое масштабирование типов данных с фиксированной точкой.
Оптимизация кода, который вы генерируете из модели. Эта оптимизация может удалить алгоритмический код и влиять на результаты некоторых режимов симуляции, такие как SIL или режим external mode. Для получения дополнительной информации смотрите, Оптимизируют использование заданных минимальных и максимальных значений (Embedded Coder).
Параметры блоков: OutMin |
Ввод: символьный вектор |
Значения: скаляр |
Значение по умолчанию: '[ ]' |
Maximum
— Максимальное выходное значение для проверки диапазона[]
(значение по умолчанию) | скалярЗадайте максимальное значение, которое должен вывести блок. Значением по умолчанию является []
(незаданный). Этот номер должен быть конечным действительным двойным скалярным значением.
Примечание
Если вы задаете объект шины как тип данных для этого блока, не устанавливайте максимальное значение для данных о шине по блоку. Simulink игнорирует эту установку. Вместо этого установите максимальные значения для элементов шины объекта шины, заданного как тип данных. Для получения информации о свойстве Maximum элемента шины смотрите Simulink.BusElement
.
Simulink использует максимальное значение, чтобы выполнить:
Проверка диапазона параметра (см., Задает Минимальные и Максимальные значения для Параметров блоков).
Проверка диапазона симуляции (см., Указывает Диапазоны сигнала).
Автоматическое масштабирование типов данных с фиксированной точкой.
Оптимизация кода, который вы генерируете из модели. Эта оптимизация может удалить алгоритмический код и влиять на результаты некоторых режимов симуляции, такие как SIL или режим external mode. Для получения дополнительной информации смотрите, Оптимизируют использование заданных минимальных и максимальных значений (Embedded Coder).
Параметры блоков: OutMax |
Ввод: символьный вектор |
Значения: скаляр |
Значение по умолчанию: '[ ]' |
Data type
— Тип выходных данныхInherit: auto
(значение по умолчанию) | double
| single
| half
| int8
| uint8
| int16
| uint16
| int32
| uint32
| int64
| uint64
| boolean
| fixdt(1,16,0)
| fixdt(1,16,2^0,0)
| string
| Enum: <class name>
Задайте тип выходных данных. Можно установить его на:
Правило, которое наследовало тип данных (например, Inherit: auto
).
Имя встроенного типа данных (например, single
).
Имя объекта типа данных (например, Simulink.NumericType
объект.
Выражение, которое оценивает к типу данных (например, fixdt(1,16,0)
). Не задавайте объект шины как тип данных в выражении; используйте Bus: <object name>
задавать тип данных шины.
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, который помогает вам установить атрибуты типа данных. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных.
Параметры блоков:
OutDataTypeStr |
Ввод: символьный вектор |
Значения:
'Inherit: auto' | 'double' | 'single' | 'half' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'boolean' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | 'string' | 'Enum: <class name>' |
Значение по умолчанию:
'Inherit: auto' |
Lock output data type setting against changes by the fixed-point tools
— Препятствуйте тому, чтобы Fixed-Point Tool заменили тип Выходных данныхoff
(значение по умолчанию) | on
Выберите этот параметр, чтобы препятствовать тому, чтобы Fixed-Point Tool заменили тип данных Output, который вы задаете на блоке. Для получения дополнительной информации смотрите, что Тип Выходных данных Блокировки Использования Устанавливает (Fixed-Point Designer).
Параметры блоков:
LockScale |
Ввод: символьный вектор |
Значения:
'off' | 'on' |
Значение по умолчанию:
'off' |
Dimensions (-1 to infer from Initial value)
— Размерности хранилища данных
(значение по умолчанию) | скаляр | вектор | матрицаРазмерности хранилища данных. Значение по умолчанию, -1
, позволяет вам установить размерности хранилища данных при помощи параметра Initial value. Однако в этом случае вы не можете использовать скалярное расширение с начальным значением. Необходимо задать начальное значение при помощи массива, который имеет размерности, которые вы хотите.
Если вы используете значение кроме -1
, задайте те же размерности как размерности параметра Initial value, если вы не задаете начальное значение как скаляр (для скалярного расширения) или структура MATLAB. Если хранилище данных представляет массив шин, и если вы используете структуру MATLAB для начального значения, можно задать размерности, чтобы инициализировать массив шин с этой структурой.
Параметры блоков:
Dimensions |
Ввод: символьный вектор |
Значения: скаляр | вектор | матрица |
Значение по умолчанию:
'-1' |
Interpret vector parameters as 1-D
— Интерпретируйте векторы как 1Don
(значение по умолчанию) | off
Укажите, что хранилище данных интерпретирует векторные начальные значения как одномерные.
По умолчанию MATLAB представляет векторные данные как матрицы, которые имеют две размерности. Например, MATLAB представляет векторный [1 2 3]
как 1 3 матрица.
Когда вы выбираете этот параметр, хранилище данных представляет векторные данные при помощи только одной размерности вместо два. Например, если вы задаете начальное значение [1 2 3]
, хранилище данных хранит одномерный вектор тремя элементами.
Для получения дополнительной информации смотрите, Определяют Выходные Размерности Исходных блоков.
Параметры блоков: VectorParams1D |
Ввод: символьный вектор |
Значения: 'off' | 'on' |
Значение по умолчанию: 'on' |
Signal type
— Сложность значений хранилища данныхauto
(значение по умолчанию) | real
| complex
Задайте числовой тип, действительный или комплексный, значений в хранилище данных.
Параметры блоков:
SignalType |
Ввод: символьный вектор |
Значения:
'auto' | 'real' | 'complex' |
Значение по умолчанию:
'auto' |
Share across model instances
— Позвольте блокам Model читать из того же хранилища данныхoff
(значение по умолчанию) | on
В одной иерархии модели - ссылки, когда вы используете несколько блоков Model, чтобы обратиться к модели, которая содержит блок Data Store Memory, по умолчанию, каждый экземпляр модели, на которую ссылаются (каждый блок Model) чтения от и пишет в отдельную копию хранилища данных. Когда вы выбираете Share across model instances, вместо того, чтобы взаимодействовать с отдельной копией, всеми экземплярами, считанными из, и пишете в то же хранилище данных.
Когда вы устанавливаете параметр конфигурации модели Code interface packaging на Reusable function
чтобы сгенерировать повторно используемый код из модели (Simulink Coder™), хранилище данных с выбранным Share across model instances появляется в коде как глобальный символ что сгенерированный доступ к функциям точки входа непосредственно. Например, глобальный символ является глобальной переменной или полем глобальной переменной структуры. Поэтому каждый вызов, который ваш код выполняет к функциям точки входа (каждый экземпляр модели) совместно использует данные.
Для примера смотрите, Осуществляют обмен данными Хранилище Между Экземплярами Допускающего повторное использование Алгоритма. Для получения дополнительной информации смотрите, Осуществляют обмен данными Среди Экземпляров Модели, на которые Ссылаются.
Параметры блоков:
ShareAcrossModelInstances |
Ввод: символьный вектор |
Значения:
'off' | 'on' |
Значение по умолчанию:
'off' |
Data store name must resolve to Simulink signal object
— Потребуйте твердости имени хранилища данных к объекту Сигнала Simulinkoff
(значение по умолчанию) | on
Укажите, что программное обеспечение Simulink, при компиляции модели, ищет рабочее пространство модели и базовое рабочее пространство для Simulink.Signal
объект, имеющий то же имя, как описано в Разрешении Символа. Если Simulink не находит такой объект, остановки компиляции с ошибкой. В противном случае Simulink сравнивает атрибуты объекта сигнала к соответствующим атрибутам Блока памяти Хранилища данных. Если блок и атрибуты объектов противоречивы, остановы Simulink компиляция модели, и отображает ошибку.
Параметры блоков:
StateMustResolveToSignalObject |
Ввод: символьный вектор |
Значения:
'off' | 'on' |
Значение по умолчанию:
'off' |
Signal object class
— Пользовательский пакет класса памятиSimulink.Signal
(значение по умолчанию) | объект класса, который выведен из Simulink.Signal
Выберите пользовательский пакет класса памяти путем выбора класса объекта сигнала, который задает целевой пакет. Например, чтобы применить пользовательские классы памяти от встроенного пакета mpt
, выберите mpt.Signal
. Если вы не используете основанную на ERT цель генерации кода с программным обеспечением Embedded Coder®, пользовательские классы памяти не влияют на сгенерированный код.
Для получения информации о классах памяти смотрите Настройку генерации кода C для Элементов Интерфейса модели (Simulink Coder). Для получения информации о пользовательских классах памяти смотрите, Организуют Данные о Параметре в Структуру при помощи Класса памяти Struct (Embedded Coder).
Параметры блоков:
StateSignalObject |
Ввод: символьный вектор |
Значения:
'Simulink.Signal' | ... |
Значение по умолчанию:
'Simulink.Signal' |
Storage class
— Класс памяти для генерации кодаAuto
(значение по умолчанию) | Model default
| ExportedGlobal
| ImportedExtern
| ImportedExternPointer
| BitField (Custom)
| Volatile (Custom)
| ExportToFile (Custom)
| ImportFromFile (Custom)
| FileScope (Custom)
| AutoScope (Custom)
| Struct (Custom)
| GetSet (Custom)
| Reusable (Custom)
Применяет класс памяти или пользовательский класс памяти, который вы выбираете из списка. Для получения информации о классах памяти смотрите Настройку генерации кода C для Элементов Интерфейса модели (Simulink Coder). Для получения информации о пользовательских классах памяти смотрите, Организуют Данные о Параметре в Структуру при помощи Класса памяти Struct (Embedded Coder).
Используйте Signal object class, чтобы выбрать пользовательские классы памяти из пакета кроме Simulink
.
Чтобы программно установить этот параметр, используйте StateStorageClass
или StateSignalObject
. Смотрите настройку генерации кода C для элементов интерфейса модели (Simulink Coder).
Параметры блоков:
StateStorageClass |
Ввод: символьный вектор |
Значения:
'Auto' | 'Model default' | 'ExportedGlobal' | 'ImportedExtern' | 'ImportedExternPointer' | 'Custom' | ... |
Значение по умолчанию:
'Auto' |
TypeQualifier
— Спецификатор типа хранения''
(значение по умолчанию) | const
| volatile
| ...Задайте спецификатор типа хранения, такой как const
или volatile
.
Примечание
TypeQualifier будет удален в будущем релизе. Чтобы применить спецификаторы типа хранения к данным, используйте разделы custom storage classes и memory. Если вы не используете основанную на ERT цель генерации кода с Embedded Coder, разделы custom storage classes и memory не влияют на сгенерированный код.
В процессе моделирования блок использует следующие значения:
Начальное значение объекта сигнала, к которому разрешено имя состояния
Минимальные и Максимальные значения объекта сигнала
Для получения дополнительной информации смотрите Объекты данных.
Чтобы включить этот параметр, установите Code generation storage class на ExportedGlobal
, ImportedExtern
, ImportedExternPointer
, или Model default
. Этот параметр скрыт, если вы ранее не устанавливаете его значение.
Параметры блоков: RTWStateStorageTypeQualifier |
Ввод: символьный вектор |
Значения:
'' | 'const' | 'volatile' | ... |
Значение по умолчанию: '' |
Detect Read Before Write
— Действие, когда модель пытается считать данные прежде, чем написать в шаге текущего времениwarning
(значение по умолчанию) | none
| error
Выберите диагностическое действие, чтобы взять, если модель пытается считать данные от хранилища данных, до которого это не записало данные в этом временном шаге. См. также Обнаружить чтение перед диагностикой записи в разделе Блока памяти Хранилища данных Model Configuration Parameters> Diagnostics> панель Data Validity.
None
— Не произведите ответ.
Warning
— Выведите предупреждение и продолжите симуляцию.
Error
— Отключите симуляцию и отобразите ошибку.
Параметры блоков:
ReadBeforeWriteMsg |
Ввод: символьный вектор |
Значения:
'none' | 'warning' | 'error' |
Значение по умолчанию:
'warning' |
Detect Write After Read
— Действие, когда блок пытается написать после чтения в том же временном шагеwarning
(значение по умолчанию) | none
| error
Выберите диагностическое действие, чтобы взять, если модель пытается записать данные к хранилищу данных после предыдущего чтения данных из него на шаге текущего времени. См. также Обнаружить запись после диагностики чтения в разделе Data Store Memory block Model Configuration Parameters> Diagnostics> панель Data Validity.
None
— Не произведите ответ.
Warning
— Выведите предупреждение и продолжите симуляцию.
Error
— Отключите симуляцию и отобразите ошибку.
Параметры блоков:
WriteAfterReadMsg |
Ввод: символьный вектор |
Значения:
'none' | 'warning' | 'error' |
Значение по умолчанию:
'warning' |
Detect Write After Write
— Действие, когда модель написала дважды в том же временном шагеwarning
(значение по умолчанию) | none
| error
Выберите диагностическое действие, чтобы взять, если модель пытается записать данные к хранилищу данных дважды по очереди на шаге текущего времени. См. также Обнаружить запись после диагностики записи в разделе Блока памяти Хранилища данных Model Configuration Parameters> Diagnostics> панель Data Validity.
None
— Не произведите ответ.
Warning
— Выведите предупреждение и продолжите симуляцию.
Error
— Отключите симуляцию и отобразите ошибку.
Параметры блоков:
WriteAfterWriteMsg |
Ввод: символьный вектор |
Значения:
'none' | 'warning' | 'error' |
Значение по умолчанию:
'warning' |
Log data store data
— Данные логов хранят данныеoff
(значение по умолчанию) | on
Выберите эту опцию, чтобы сохранить значения этого сигнала к рабочему пространству MATLAB в процессе моделирования. Смотрите Сигнал Регистрировать для деталей.
Параметры блоков:
DataLogging |
Ввод: символьный вектор |
Значения:
'off' | 'on' |
Значение по умолчанию:
'off' |
Logging name
— Имя сопоставлено с регистрируемыми данными сигналаUse data store name
(значение по умолчанию) | Custom
Используйте эту пару средств управления, состоя из поля списка и поля редактирования, чтобы задать имя, сопоставленное с регистрируемыми данными сигнала.
Simulink использует имя сигнала в качестве своего имени логгирования по умолчанию. Чтобы задать пользовательское имя логгирования, выберите Custom
от поля списка и вводят пользовательское имя в смежном поле редактирования.
Параметры блоков:
DataLoggingNameMode |
Ввод: символьный вектор |
Значения:
'SignalName' | 'Custom' |
Значение по умолчанию:
'' |
Примечание
Если вы устанавливаете DataLoggingNameMode
к Custom
, необходимо задать имя, сопоставленное с регистрируемыми данными сигнала с помощью DataLoggingName
параметр.
Параметры блоков:
DataLoggingName |
Ввод: символьный вектор |
Значения: символьный вектор |
Значение по умолчанию:
'' |
Limit data points to last
— Отбросьте все кроме последних точек данных N
| ненулевое целое числоОтбросьте все кроме последнего N
точки данных, где N
номер, который вы вводите в смежном поле редактирования. Для получения дополнительной информации смотрите Хранилища Данных логов.
Параметры блоков:
DataLoggingMaxPoints |
Ввод: символьный вектор |
Значения: ненулевое целое число |
Значение по умолчанию:
'5000' |
Decimation
— Регистрируйте каждую Энную точку данных
(значение по умолчанию) | целое числоРегистрируйте каждый N
точка данных th, где N
номер, который вы вводите в смежном поле редактирования. Например, предположите, что ваша модель использует решатель фиксированного шага с размером шага 0.1
s. Если вы выбираете эту опцию и принимаете значение децимации по умолчанию (2
), Simulink записывает точки данных для этого сигнала во времена 0.0
, 0.2, 0.4
, и так далее. Для получения дополнительной информации смотрите Хранилища Данных логов.
Параметры блоков:
DataLoggingLimitDataPoints |
Ввод: символьный вектор |
Значения: ненулевое целое число |
Значение по умолчанию:
'2' |
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|
Чтобы сгенерировать код PLC для, модель, которая использует блок Data Store Memory, сначала задайте Simulink.Signal
в базовом рабочем пространстве. Затем во вкладке Signal Attributes параметров блоков, набор имя хранилища данных, чтобы решить к тому из Simulink.Signal
объект.
Data Store Read | Data Store Write
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.