Main Content

本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

Function-Call Split

提供联接点以用于拆分函数调用信号线

  • 库:
  • Simulink / Ports & Subsystems

说明

Function-Call Split 模块允许对函数调用信号线进行拆分,再把拆分后的分支信号连接到多个函数调用子系统或函数调用模型。

对于 Function-Call Split 模块所连接的各个输出端口,带有圆点标记的输出端口所连接的函数调用子系统或函数调用模型会先执行,而其他输出端口所连接的子系统或模型会在其后执行。如果子系统或模型之间的数据依存关系不支持指定的执行顺序,Function-Call Split 模块会返回错误。要避免此错误,请考虑在数据依存关系循环涉及的函数调用子系统模型的一个或多个 Inport 模块上选择 Latch input for feedback signals of function-call subsystem outputs 参数。选择此选项会延迟对应的函数调用,从而消除数据依存关系循环。

如果选择了模型菜单选项 Display > Blocks > Sorted Execution Order,则连接到给定函数调用信号各个分支的函数调用子系统的执行顺序将显示在模块上。每个子系统都有一个 s:[B#] 形式的执行顺序,其中 # 是范围从零开始的一个数字,最大为给定信号各分支所连接到的子系统(或模型)的总数减 1。各子系统基于此数字按升序执行。

Function-Call Split 模块支持信号标签传播

以下模型显示如何应用 Latch input for feedback signals of function-call subsystem outputs 参数以解决使用 Function-Call Split 模块导致的数据依存关系错误。通过在 f1 子系统 Inport 模块中启用此参数,Function-Call Split 模块将忽略信号 b 的数据依存关系。此模块将打破子系统 f1 和 g1 之间的数据依存关系循环。该模型可确保先调用 f1 来执行,再执行 g1。对于给定的执行步,子系统 f1 使用在上一个执行步中计算的 g1 输出。

限制

Function-Call Split 模块具有以下限制:

  • 给定函数调用信号所连接的所有函数调用子系统和模型必须位于模型层次结构的同一非虚拟层内。

  • 您不能将经过分支的函数调用子系统或模型及其子级直接连接回函数调用发起方。

  • 函数调用信号分支所连接的函数调用子系统和模型不能具有多个(多路)发起方。

  • Function-Call Split 模块的输入不能是具有多个函数调用元素的信号。

端口

输入

全部展开

Function-Call Generator 模块或 Stateflow® 图可以提供函数调用事件。

输出

全部展开

连接到函数调用子系统或函数调用模型的函数调用信号线。

参数

全部展开

选择模块图标形状。

设置

distinctive

矩形模块图标。

round

圆形模块图标。

编程用法

模块参数IconShape
类型:字符向量
'distinctive' | 'round'
默认值:'distinctive'

指定函数调用信号输出端口的数量。

设置

2

两个函数调用输出端口。

整数

整数

编程用法

模块参数NumOutputPorts
类型:字符向量
'2' | '<integer>'
默认值'2'

选择函数调用输出端口的顺序,确定哪个端口先提供函数调用信号。

设置

Default

位于顶部的端口先提供函数调用。

reverse

位于底部的端口先提供函数调用。

编程用法

模块参数OutputPortLayout
类型:字符向量
'default' | 'reverse'
默认值:'default'

模块特性

数据类型

double

直接馈通

多维信号

可变大小信号

过零检测

扩展功能

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

在 R2010a 中推出