块定义图通常不用于显示系统组件之间的流程。相反,您将使用系统的内部框图,其中包含两个部分s:Supervisor
和c:Controller
.
要指定控制器提供操作set_reference(r:float)
,您可以使用 InterfaceBlock 作为controller
. 相同的 InterfaceBlock 将用作supervisor
. 然而,这一次是共轭的。这将通过添加一个~
符号来显示。然后你需要通过它们的端口连接它们。这已经足以指定一个浮点值可以流过连接器。不需要其他任何东西。
但是,有时您还没有决定如何实现流(有不止一种可能性。set_reference
操作,正如您所做的那样,由流get_reference
提供的操作supervisor
或流属性)。因此,您只想指定某些项目流动的需要,而不是机制。在这种情况下,您可以让端口没有类型,并通过连接器对 ItemFlow 进行建模。它将显示一个实心三角形,放置在连接器中心附近的某处,并标有流动项目的名称和类型。通过稍后自动创建接口块和操作,工具甚至可以为您提供支持。
正如我所说,如果您已经知道如何实现流程,那么对 ItemFlow 建模是多余的。当然,如果您想限制特定系统中的可能值。可以说,double
是一个特定的float
,并且仅在您的系统doubles
中使用,即使控制器也可以处理singles
. 这可以用 Type 的 ItemFlow 来表示double
。
有些人更喜欢只对 ItemFlows 建模而忽略连接器。单独的 ItemFlows 显示为带有关键字 «flow» 的虚线箭头。我建议不要这样做,因为 ItemFlows 并不意味着这些部分是连接的(流程可以通过中间元素来实现)。