具有多个发起方的函数调用子系统
此示例说明一个由多个不同函数调用发起方调用的函数调用子系统,这些发起方通过一个 Mux 模块进行组合。
打开示例模型 FunctionCallSubsystemMultipleInitiators
。
该模型包含一个函数调用子系统 f
,该子系统在其函数调用输入端口上接收一个复路信号。Mux 模块将来自 Stateflow 图 Chart1
和 Chart2
的函数调用信号组合到该复路信号中。
Chart1
的端口 out1 和 Chart2
的端口 d1 之间的数据连接保证 Chart1
在 Chart2
之前执行。
当您创建具有多个调用方的函数调用子系统时,请明确定义调用 f() 的每个图的相对执行顺序。例如,如果您删除 Chart1
和 Chart2
之间的数据连接,为 Chart1
和 Chart2
添加优先级以指定这些图的相对执行顺序。
多义性不会导致错误,因为它可能对特定情形有效。例如,如果从子系统 f
中删除所有状态,并删除从 Chart1
的 out1 到 Chart2
的 d1 的线,则 Chart1
和 Chart2
的执行顺序并不重要。