主要内容

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

将接口分配给端口

端口接口在 System Composer™ 架构模型中传输端口之间的数据。接口中的数据元素描述了通过接口传输的数据的特征。数据元素可以描述数据接口的组成、传输的消息或组件之间共享的数据结构。

注意

如果 System Composer 中的连接端口具有兼容的接口类型和结构,则它们是兼容的。未分配接口的端口会自动从连接上的其他端口继承接口。要激活编译时接口兼容性检查,在工具栏上点击更新图。您可以使用 接口适配器 模块通过 Adapter 模块来协调连接两端不兼容的接口。

关于接口术语,请参阅定义组件之间的端口接口

本主题介绍如何:

  • 使用属性检查器将数据接口分配给单个端口,使用接口编辑器将数据接口分配给多个端口。

  • 管理属于端口本地且未在数据字典中共享的专属接口。

  • 同时将接口分配给多个端口。

  • 通过端口连接组件,并指定连接的源元素或目标元素。

  • 使用接口兼容性编辑时检查。

要管理数据字典中模型之间共享的接口,请参阅使用数据字典管理接口。有关物理接口的信息,请参阅指定端口上的物理接口

带接口的移动机器人架构模型

此示例显示了具有已定义接口的移动机器人硬件架构。

在属性检查器中将端口与接口关联

要一次将数据接口或值类型分配给一个端口,请使用属性检查器。要打开属性检查器,请导航至 建模 > 属性检查器。要显示 SensorData 端口属性,请在模型中选择该端口。展开接口,从名称列表中选择 sensordata,将 sensordata 接口与 SensorData 端口关联。

The Property Inspector is open. The sensor data interface is selected in the Interface list.

注意

新创建的端口默认具有 <inherit> 接口规范,以在架构设计的早期阶段支持未知接口。如果在另一个端口上指定了接口,则在构建架构时,<inherit> 指定将该接口传播到其他连接的端口。接口规范不会自动通过模型和子系统引用传播。

使用上下文菜单将接口分配给端口

接口编辑器中选择一个接口后,右键点击一个端口。如果所选接口与端口兼容,请选择应用选定接口: <接口名称> 将接口分配给该端口。如果端口已分配接口,右键点击端口时,可选择清除接口: <接口名称> 删除接口。

从架构画布中选择一个端口后,右键点击接口编辑器上的一个接口。要将接口分配给端口,请选择分配给选定端口

注意

您可以为通过 Reference Component 模块链接到 Simulink® 行为模型或子系统的 System Composer 组件应用构造型并为端口分配接口。在将构造型应用于组件之前,必须将配置文件导入到模型或子系统中。在将接口分配给端口之前,必须将数据字典导入模型或子系统。

定义端口本地的专属接口

自 R2021b 起

您可以从属性检查器中的模型数据字典中选择值类型或数据接口,或者创建一个专属接口。专属接口是特定端口的专属接口,不在数据字典或模型字典中共享。创建一个专属接口,用于表示端口本地的值类型或数据接口。

注意

专属接口和值类型没有自己的名称,因为它们是端口本地变量,不会共享。专属接口的名称来源于端口名称。

使用属性检查器管理专属接口

您可以在属性检查器中编辑所专属接口的数据。选择 Docking 架构端口。在属性检查器中,进入接口,从名称列表中选择 <owned>

An owned interface in the Property Inspector.

默认情况下,专属接口 Docking 成为所属值类型。在参数选项卡中的属性检查器中直接编辑接口属性。

The owned value type in the Property Inspector for the Docking port.

要将拥有值类型转换为专属数据接口,请点击 add element 添加数据元素。

将专属接口转换为共享接口

要将一个专属接口转换为共享接口,请右键点击具有该接口的端口,然后选择转换为共享接口。或者,使用 makeOwnedInterfaceShared 函数。

选择多个端口并分配数据接口

多个端口,无论是否连接,都可以使用相同的数据接口定义。当您将数据接口分配给一个端口时,该接口会自动传播到已连接的端口,前提是这些端口尚未被分配。为了简化批量分配,请选择多个端口,右键点击数据接口,然后选择分配给选定端口

要突出显示使用数据接口定义的端口,在接口编辑器中,右键点击接口名称,然后选择突出显示使用此接口的端口。要仅突出显示明确分配给端口的源接口,而不包括端口上的继承接口,请在接口编辑器中选择该接口。

The interface named 'sensor data' is selected in the Interface Editor. The ports that are associated with it are highlighted in purple in the model.

使用端口元素访问接口元素

端口元素表示在由组合接口或专属接口定义类型的端口上可用的接口元素。您可以通过在连接到根级端口的 V 形符号上选择端口名称,来使用端口元素访问端口的元素。当接口元素的类型由组合接口定义时,嵌套的端口元素具有两级层次结构。

要启动小型无人机工程,请在 MATLAB® 中输入此命令。

openExample('shared_systemsengineering/ModelingSystemArchitectureOfSmallUAVExample')

您可以访问小型无人机架构模型中的端口元素。将 architecture_gsCommands 数据接口分配给 GS Commands 端口。然后,点击 GS Commands V 形符号,并选择 param_count 端口元素。属性检查器中的参数选项卡显示了接口和端口元素的层次结构。

Port element defined from GS_Commands interface hierarchy on the small UAV model

有关小型无人机的详细信息,请参阅小型无人机建模系统架构

对于根架构与架构模型中的组件之间的连接,您可以向端口添加源元素或目标元素。

  1. 创建一个名为 Motor 的组件,并将其通过名为 MotionDataSpeedData 的端口连接到根架构。

  2. 定义数据接口 Wheel,其数据元素为 RotationSpeedMaxSpeed

  3. Wheel 数据接口分配给连接上的端口。

  4. 在组件上选择端口名称 MotionData。出现一个点和一个数据元素列表。从列表中选择源元素 RotationSpeed

  5. MaxSpeed 目标元素分配给 SpeedData 端口。

The interface element rotation speed is the source element for the motion data port on the motor component.

当您将 Simulink 行为模型与 Motor 组件关联时,该端口只会向行为模型传递一个元素。行为模型中的相应端口应接收来自端口元素的信号。有关详细信息,请参阅在与行为模型关联的组件之间传输信号数据

启用接口兼容性编辑时检查

自 R2022b 起

编辑时检查会在您构建模型时报告警告,并需要 Simulink Check™ 许可证。接口兼容性的警告类型包括:

  • 如果将不同的接口分配给不同的端口,则数据字典中定义的共享接口在连接上的不同端口之间不兼容。

  • 如果值类型或数据元素的结构不同,则端口上本地定义的专属接口在连接上的端口之间不兼容。

要启用架构模型的编辑时检查,请导航至建模 > 模型顾问 > 编辑时检查。选中编辑时检查复选框。

黄色高亮显示的连接器表示同一连接器上不同端口之间的接口不匹配。如果您点击警告符号,将看到编辑时间检查消息和操作建议。

Edit-time check for mismatched interfaces.

对于同一连接上不同端口上的不兼容接口(例如不同的数据接口),可以通过添加一个 Adapter 模块来定义接口映射来解决问题。

有关创建自定义编辑时检查的详细信息,请参阅定义自定义编辑时间检查以修复架构模型中的问题 (Simulink Check)

另请参阅

函数

模块

主题