我想知道如何在SySML方框图中将流经两个组件的数据与它们公开的接口联系起来。
例如,假设您有一个主管组件为较低级别的控制器设置一个引用。控制器公开一个接口操作,该操作以set_reference()操作为特征,后者指定一个浮点参数引用。监控器将使用该接口有效地设置下一级控制器的参考值。该操作告诉在这两个组件之间存在数据流(例如,每个组件也有一个流端口),并且交换的数据是引用。您将如何在SySML中对此场景建模?它是否存在一种方法来同时指定接口和数据流,并说“瞧,这个数据流是通过这个接口实现的”。
非常感谢你的帮助
发布于 2020-12-02 18:58:51
块定义图通常不用于显示系统组件之间的流。相反,您将使用s:Supervisor
和c:Controller
两部分的系统内部框图。
要指定控制器提供操作set_reference(r:float)
,您可以使用InterfaceBlock作为controller
端口的类型。相同的InterfaceBlock将用作supervisor
端口的类型。这一次,然而,结合。它将通过前缀~
符号来显示。然后你需要通过他们的端口连接他们。这已经足够指定浮点值可以在连接器上流动。不需要别的了。
然而,有时你还没有决定如何实现流程(有不止一种可能)。set_reference
操作,正如您所做的,是由supervisor
提供的get_reference
操作或flow属性)。因此,您只需要指定某些项目流的需要,而不需要指定机制。在这种情况下,可以将端口保留在没有类型的情况下,并在连接器上对ItemFlow进行建模。它将用一个填充的三角形显示,该三角形位于连接器中心附近,并标记为流动项的名称和类型。通过稍后自动创建InterfaceBlocks和操作,工具甚至可以支持您。
正如我所说的,如果您已经知道如何实现流程,那么建模ItemFlow是多余的。当然,如果要限制特定系统中的可能值,则除外。让我们说,double
是一个特定的float
,在您的系统中将只使用doubles
,即使控制器也可以处理singles
。这可以用ItemFlow类型的double
来表示。
有些人喜欢只对ItemFlows建模,而不使用连接器。ItemFlows单独显示为带有关键字flow的虚线箭头。我建议不要这样做,因为ItemFlows并不意味着部件是连接的(流可以通过中间元素来实现)。
https://stackoverflow.com/questions/65053209
复制相似问题