Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

Data Store Read

从数据存储中读取数据

  • 库:
  • Simulink / Signal Routing

  • Data Store Read block

说明

Data Store Read 模块将数据从指定数据存储或其所选部分复制到其输出。多个 Data Store Read 模块可从同一个数据存储读取数据。

用来读取数据的源数据存储由 Data Store Memory 模块或定义数据存储的信号对象的位置决定。有关详细信息,请参阅数据存储Data Store Memory

要从数据存储获取正确的结果,必须确保数据存储按照预期的顺序进行读取和写入。有关详细信息,请参阅对数据存储访问进行排序数据存储诊断

您可以选择 Data Store ReadData Store WriteData Store Memory 模块来突出显示与其相关的模块。

端口

输入

全部展开

外部端口,用于指定选择的对应数据存储子元素的索引。

依存关系

要启用外部索引端口,请在 Element Assignment 选项卡上选择 Enable indexing。然后,在 Index Option 表的第 N 行中,将 Index Option 设置为 “Index vector (port)” 或 “Starting index (port)”。

数据类型: int8 | int16 | int32 | uint8 | uint16

输出

全部展开

来自指定数据存储的值,使用与数据存储中相同的数据类型和维度数进行输出。该模块同时支持实信号和复信号。您可以选择是输出整个数据存储还是仅输出选定元素。

您可以将总线数组与 Data Store Read 模块结合使用。有关定义和使用总线数组的详细信息,请参阅使用总线数组组合非虚拟总线

数据类型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus

参数

全部展开

参数

指定此模块从中读取数据的数据存储的名称。旁边的列表列出了模型中与 Data Store Read 模块在同一级别或更高级别的 Data Store Memory 模块的名称。该列表中还包括基础工作区和模型工作区中的所有 Simulink.Signal 对象。要更改名称,请从该列表中选择名称,或者直接在编辑字段中输入名称。

当编译包含此模块的模型时,Simulink® 从该模块级别向上搜索模型,寻找具有指定数据存储名称的 Data Store Memory 模块。如果 Simulink 找不到这样的模块,它将在模型工作区和 MATLAB® 工作区中搜索具有相同名称的 Simulink.Signal 对象。如果 Simulink 找到信号对象,它将在模型的根级创建一个隐藏的 Data Store Memory 模块,此模块的属性由信号对象指定,初始值设置为全零数组。该数组的维度从信号对象的 Dimensions 属性继承。

如果 Simulink 既找不到 Data Store Memory 模块,也找不到信号对象,它将停止编译并显示错误。有关搜索路径的详细信息,请参阅符号解析

编程用法

模块参数DataStoreName
类型:字符向量
:数据存储名称
默认值'A'

此属性为只读

此字段列出 Data Store Memory 模块,该模块对它要从中读取数据的存储进行了初始化。

此属性为只读

此字段列出符合以下条件的所有 Data Store Write 模块的路径:与此模块具有相同的数据存储名称,且在模型层次结构中位于同一(子)系统级别或其下的任何子系统中。点击此列表中的任何条目以在模型中突出显示对应的模块。

采样时间,控制模块何时从数据存储中读取数据。值为 -1 表示继承采样时间。有关详细信息,请参阅 指定采样时间

编程用法

模块参数SampleTime
类型:字符向量
:标量 | 向量
默认值'-1'

元素选择

关联的数据存储中元素的列表。对于包含数组的数据存储,您可以读取整个数据存储,也可以指定数据存储的一个或多个元素。对于总线数据类型的数据存储,您可以展开树视图以查看并选择总线元素。此列表在括号中显示每个元素的最大维度。

如果未选择 Enable indexing,请选择一个元素并使用以下方法之一:

  • 点击 Select>>Selected element(s) 列表中显示该元素及其所有子元素。

  • 使用 Specify element(s) to select 编辑框指定您要选择进行读取的子元素。然后点击 Select>>

要选择多个元素,请对每个元素重复上述过程。

您也可以选择 Enable indexing,然后选择单个元素,并使用 Index Option 参数动态指定子元素。

要刷新显示并反映对数据存储中使用的数组或总线的修改,请点击 Refresh

依存关系

对此部分(Elements in the arraySignals in the bus)的提示取决于数据存储中数据的类型。

编程用法

模块参数DataStoreElements
类型:字符向量
:以井号分隔的元素列表(请参阅使用命令行指定。)
默认值''

输入 MATLAB 表达式以定义要读取的特定元素,然后点击 Select>> 将该元素添加到 Selected elements(s) 表中。重复以上操作以选择其他元素。

例如,对于名为 DSM、最大维度为 [3,5] 的数据存储,您可以在编辑框中输入表达式,如 DSM(2,4)DSM([1 3],2)。请参阅访问特定的总线和矩阵元素

要应用元素选择,请点击 OKApply

依存关系

仅当未选择 Enable indexing 时,才会出现 Specify element(s) to select 编辑框。

编程用法

模块参数DataStoreElements
类型:字符向量
:以井号分隔的元素列表(请参阅使用命令行指定。)
默认值''

您从数据存储中选择的元素。Data Store Read 模块图标为您指定的每个元素显示一个输出端口。

要更改列表中的总线或矩阵元素的顺序,请在列表中选择元素,然后点击 UpDown。更改列表中的元素顺序会同时更改端口的顺序。要移除某个元素,请点击 Remove

依存关系

仅当未选择 Enable indexing 时,才会出现 Selected element(s) 表。

编程用法

模块参数DataStoreElements
类型:字符向量
:以井号分隔的元素列表(请参阅使用命令行指定。)
默认值''

选中此参数可启用类似于 Selector 模块所使用的索引,由此您可以使用一个或多个索引输入端口动态指定要读取的子元素的索引,以及使用模块对话框指定索引。选中此参数时,Data Store Read 模块只能从数据存储的单个元素(即总线中的单个信号)中进行读取。要使用动态索引从数据存储的多个元素中进行读取,请使用多个 Data Store Read 模块。

清除此参数可禁用 Selector 模块样式索引。您可以选择多个要读取的数据存储元素,但只能使用模块对话框来指定要读取哪些子元素。

注意

如果关联的数据存储只包含一个标量元素,请不要选择 Enable indexing

编程用法

模块参数EnableIndexing
类型:字符向量
'off' | 'on'
默认值'off'

所选数据存储元素的维数。您必须显式指示此数目。

依存关系

仅当选中 Enable indexing 时,此参数才会启用。

编程用法

模块参数NumberOfDimensions
类型:字符向量
positive integer
默认值'1'

选择索引模式。如果选择 “One-based”,则索引 1 指定输入向量的第一个元素。如果选择 “Zero-based”,则索引 0 指定输入向量的第一个元素。

依存关系

仅当选中 Enable indexing 时,此参数才会启用。

编程用法

参数:IndexMode
类型:字符向量
值:'Zero-based' | 'One-based'
默认值:'One-based'

按维度定义所选数据存储元素的子元素的索引方式。从列表中,选择:

菜单项操作
Select all

读取所有子元素。

Index vector (dialog)

启用 Index 列。输入包含要读取的子元素索引的向量。

Index vector (port)

相关索引端口定义要读取的子元素的索引。

Starting index (dialog)

启用 IndexOutput Size 列。输入要读取的子元素范围的起始索引和大小。

Starting index (port)

启用 Output Size 列。索引端口定义要读取的元素范围的起始索引。输入该范围的大小。

IndexOutput Size 列显示为具有相关性。

依存关系

仅当选中 Enable indexing 时,此参数才会启用。

编程用法

参数:IndexOptionArray
类型:字符向量
值: 'Select all' | 'Index vector (dialog)' | 'Index vector (port)' | 'Starting index (dialog)' | 'Starting index (port)'
默认值:'Index vector (dialog)'

如果 Index Option 是 “Index vector (dialog)”,请输入包含要读取的每个子元素的索引的向量。

如果 Index Option 设置为 “Starting index (dialog)”,则输入要读取的子元素范围的起始索引。

依存关系

仅当选择 Enable indexing 并且维度的 Index Option 为 “Index vector (dialog)” 或 “Starting index (dialog)” 时,此参数才启用。

编程用法

参数:IndexParamArray
类型:字符向量
值:元胞数组
默认值:'{ }'

如果 Index Option 是 “Starting index (dialog)” 或 “Starting index (port)”,请输入要读取的子元素范围的大小。

依存关系

仅当选择 Enable indexing 并且维度的 Index Option 为 “Starting index (dialog)” 或 “Starting index (port)” 时,此参数才启用。

编程用法

模块参数OutputSizeArray
类型:字符向量
值:元胞数组
默认值:'{ }'

模块特性

数据类型

Boolean | bus | double | enumerated | fixed point | half | integer | single | string

直接馈通

多维信号

可变大小信号

过零检测

扩展功能

C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。

定点转换
使用 Fixed-Point Designer™ 设计和仿真定点系统。

在 R2006a 之前推出