主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

库模块和引用模块的需求链接

库模块和引用模块简介

Simulink® 允许您创建自己的模块库。如果您创建一个模块库,您可以在多个模型中重用模块、子系统或 Stateflow® 原子子图的功能。

当您将库模块复制到 Simulink 模型时,新模块被称为引用模块。您可以在一个或多个模型中创建此库模块的多个实例

引用模块使用库链接链接到库模块。如果您更改了库模块,则当您打开或更新包含引用模块的模型时,任何链接到该库模块的引用模块都将根据这些更改进行更新。

注意

有关引用模块和库链接的更多信息,请参阅库和模块集 (Simulink)

库模块和需求

库模块本身可以与需求有链接。此外,如果库模块是子系统或原子子图,则库模块内的对象可以具有库链接。您可以使用 Requirements Toolbox™ 在库和模型中创建和管理需求链接。

以下部分介绍如何管理库模块和引用模块上和内部的需求链接。

复制具有需求的库模块

当您将库子系统或封装模块复制到模型时,您可以突出显示、查看和导航库模块上以及库模块内的对象上的需求链接。但是,这些链接与该模型无关。链接与库一起存储,而不是与模型一起存储。

您不能从引用模块的上下文中添加、修改或删除库模块上的需求链接。如果禁用从引用模块到库模块的链接,则可以修改库模块内的对象的需求,就像在禁用库链接时修改其他模块属性一样。

管理引用模块的需求

您可以使用 Requirements Toolbox 来管理参考模块上的需求链接,就像任何其他模型对象一样。您可以在参考模块上查看和导航本地和库需求:

  • 可以修改或删除本地创建的需求链接,而无需更改库模块

  • 库模块上的需求链接不能从参考模块的上下文中修改或删除。

管理引用模块内的需求

如果您的库模块是子系统或 Stateflow 原子子图,则可以在子系统或子图内部的对象上创建需求链接。如果禁用从引用模块到库的链接,则可以添加、修改或删除引用模块内对象上的需求链接。一旦您禁用链接,Requirements Toolbox 会将这些链接视为本地创建的链接。

当您对引用模块内的对象上的需求链接进行更改后,您可以解析该链接,以便将这些更改推送到库模块。下次您创建该库模块的实例时,所做的更改将被复制到该库模块的新实例中。

在引用模块内的对象上创建需求链接的工作流程是:

  1. 在库内有一个子系统 S1。将 S1 拖到模型上,创建一个新的子系统。该子系统是引用模块。

    The new subsystem reference block has a library link to the library block that it references.

  2. 禁用引用模块和库模块之间的库链接。在禁用链接以维护 RMI 数据的同时保持库加载。要禁用链接,请选择引用模块,然后在子系统选项卡中点击禁用链接

  3. 创建从引用模块内的对象到需求文档的链接。

    The reference block's library link is disabled and the reference block has a new link to a requirement in a requirements document.

    注意

    当从参考模块内部链接到需求时,您只能在一个方向创建一个链接:从模型到需求文档。Requirements Toolbox 不支持将导航对象插入到参考模块内对象的需求文档中。

  4. 解析引用模块和库模块之间的库链接:

    1. 选择引用模块。

    2. 子系统选项卡中,点击还原链接

    3. 操作列中,点击推送

    4. 点击确定解析与库模块的链接,并将新添加的需求推送到库模块内的对象。

      当您解析库模块和子系统之间的库链接时,Simulink 会将新的需求链接推送到库模块 S1。下图显示了从库模块 S1 内部到需求的新链接。

    The library link between the reference block and the library block is restored. The library block now has a link to the same requirement that the reference block has.

    注意

    如果您看到一条消息称库已被锁定,则必须先解锁该库,然后才能将更改推送到库模块。

  5. 如果您在另一个模型中重用库模块 S1(现在该模块具有带需求链接的对象),则新的子系统将包含一个链接到该需求的对象。

    A second reference block was created from the library block. It has a library link to the library block that it references, and a link to the same requirements that the library block links to.

从需求到库模块的链接

如果您有一个链接到库模块的需求,并且您将该库模块拖到模型,则该需求不会链接到引用模块;该需求链接到库模块。

例如,考虑您已经在库模块(下图中的 B1)和需求之间建立了双向链接的情况。

Library block B1 has a bidirectional link to a requirement in a requirements document.

当在模型中使用库模块 B1 时,您可以从引用模块导航到需求。但是,需求中的链接仍然只指向库模块 B1,而不是指向引用模块。

The reference block created from the library block B1 has a link to the requirement in the requirements document and a library link to the library block. However, the requirement does not have a link to the reference block.

如上一节所述,您可以在禁用库模块后在库模块实例内的对象上创建需求链接。但是,Requirements Toolbox 禁止您从需求文档创建到此类对象的链接,因为当您恢复库链接时,该链接将变为无效。

修复未解析的链接

当库链接断开且库不在路径上时,需求链接将无法解析。要修复未解决的需求链接,请在需求编辑器中选择显示链接。选择链接集,然后在链接部分中选择 解决链接问题 > 修复无效链接。使用修复无效链接对话框删除链接或更新链接源或目标 ID。有关详细信息,请参阅加载和解析链接

或者,您可以使用 rmitag 函数向与该库关联的链接添加关键字。请参阅添加关键字以直接链接到外部文档。然后,使用 rmitag 删除带有关键字的链接。请参阅使用关键字从模型中删除链接

另请参阅

主题