Задайте хранилище данных
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 в подсистему For Each.
Получение правильных результатов из хранилищ данных требует, чтобы чтение и запись данных осуществлялись в ожидаемом порядке. Для получения дополнительной информации смотрите:
Можно использовать Simulink.Signal
объекты в сложение или вместо Data Store Memory блоков для определения хранилищ данных. Хранилище данных, заданное в базовом рабочем пространстве с объектом сигнала, является хранилищем глобальных данных. Глобальные данные доступны для каждой модели, включая все модели-ссылки. Для получения дополнительной информации см. раздел «Хранилища данных».
Можно выбрать Data Store Read, Data Store Write или 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, которые имеют то же имя хранилища данных, что и текущий блок, и которые находятся в текущей системе или в любой подсистеме под ней в иерархии модели. Щелчок по пути блока отображает и подсвечивает этот блок в вашей модели.
Initial value
- Начальное значение хранилища данных0
(по умолчанию) | скалярный вектор | | матрица | N-D массивЗадайте начальное значение или значения хранилища данных. Параметр Minimum задает минимальное значение для этого параметра, а параметр Maximum задает максимальное значение.
Если вы задаете нескалярное значение и устанавливаете Dimensions на -1
(по умолчанию), хранилище данных имеет те же размерности, что и массив. Данные, которые вы записываете в хранилище данных (при помощи блоков Data Store Write), должны иметь эти размерности.
Если вы устанавливаете параметр Dimensions на значение, отличное от -1
размеры начальных значений должны совпадать с заданными вами размерностями, если только начальное значение не является скаляром или MATLAB® структура. Если вы задаете скаляр, каждый элемент хранилища данных использует скаляр в качестве начального значения. Используйте этот метод, чтобы применить то же начальное значение (заданный скаляр) к каждому элементу, не совпадая вручную с размерностями начального значения и размерностями хранилища данных.
Чтобы использовать этот блок для инициализации невиртуального сигнала шины, задайте начальное значение как структуру MATLAB и установите параметр конфигурации модели Underspectified initialization detection на 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
).
Имя объекта типа данных (для примера, a Simulink.NumericType
объект).
Выражение, которое вычисляется как тип данных (для примера, fixdt(1,16,0)
). Не указывайте объект шины в качестве типа данных в выражении; использовать Bus: <object name>
для определения типа данных шины.
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, которая помогает вам задать атрибуты type данных. Для получения дополнительной информации смотрите Задать типы данных Используя 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
- Предотвратите переопределение типа выходных данных инструментами с фиксированной точкойoff
(по умолчанию) | on
Выберите этот параметр, чтобы предотвратить переопределение инструментами с фиксированной точкой типа данных Output, заданного на блоке. Для получения дополнительной информации смотрите Использование настройки типа выходных данных блокировки (Fixed-Point Designer).
Параметры блоков:
LockScale
|
Тип: Вектор символов |
Значения:
'off' | 'on'
|
По умолчанию:
'off'
|
Dimensions (-1 to infer from Initial value)
- Размерности хранилища данных-1
(по умолчанию) | скалярный вектор | | матрицаРазмерности хранилища данных. Значение по умолчанию, -1
, позволяет вам задать размерности хранилища данных с помощью параметра Initial value. Однако в этом случае вы не можете использовать скалярное расширение с начальным значением. Необходимо задать начальное значение при помощи массива с нужными размерностями.
Если вы используете значение, отличное от -1
задайте те же размерности, что и размерности параметра Initial value, если только вы не задаете начальное значение в виде скаляра (для скалярного расширения) или структуры MATLAB. Если хранилище данных представляет массив шин, и если для начального значения используется структура MATLAB, можно задать размерности, чтобы инициализировать массив шин с этой структурой.
Параметры блоков:
Dimensions |
Тип: Вектор символов |
Значения: скаляр | вектор | матрица |
По умолчанию:
'-1' |
Interpret vector parameters as 1-D
- Интерпретируйте векторы как 1-Don
(по умолчанию) | 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
объект, имеющий то же имя, как описано в Symbol Resolution. Если Simulink не находит такой объект, компиляция останавливается с ошибкой. В противном случае Simulink сравнивает атрибуты объекта сигнала с соответствующими атрибутами блока Data Store Memory. Если блок и атрибуты объекта противоречивы, Simulink останавливает компиляцию модели и отображает ошибку.
Параметры блоков:
StateMustResolveToSignalObject |
Тип: Вектор символов |
Значения:
'off' | 'on' |
По умолчанию:
'off' |
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
Выберите диагностическое действие, которое необходимо предпринять, если модель пытается записать данные в хранилище данных дважды последовательно в текущем временном шаге. См. также раздел «Обнаружение записи после записи» в блоке Data Store Memory на панели 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 точек данных5000
| ненулевое целое числоОтменить все, кроме последнего N
точки данных, где N
- это номер, который вы вводите в соседнем поле редактирования. Для получения дополнительной информации см. раздел Журнал хранилищ данных.
Параметры блоков:
DataLoggingMaxPoints |
Тип: Вектор символов |
Значения: ненулевое целое число |
По умолчанию:
'5000' |
Decimation
- Логгирование каждой N-й точки данных2
(по умолчанию) | целое числоРегистрируйте каждую N
первая точка данных, где N
- это номер, который вы вводите в соседнем поле редактирования. Например, предположим, что ваша модель использует решатель с фиксированным шагом с размером шага 0.1
s. Если вы выбираете эту опцию и принимаете значение десятикратного уменьшения по умолчанию (2
), Simulink регистрирует точки данных для этого сигнала в разы 0.0
, 0.2
, 0.4
и так далее. Для получения дополнительной информации см. раздел Журнал хранилищ данных.
Параметры блоков:
DataLoggingLimitDataPoints |
Тип: Вектор символов |
Значения: ненулевое целое число |
По умолчанию:
'2' |
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|
Чтобы сгенерировать код ПЛК для модели, которая использует блок Data Store Memory, сначала задайте Simulink.Signal
в базовом рабочем пространстве. Затем на вкладке Signal Attributes параметров блоков установите имя хранилища данных, чтобы разрешить это Simulink.Signal
объект.
Data Store Read | Data Store Write
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.