主要内容

金宝app信息概述

在各种应用程序中,基于消息的通信是必要的,例如控制系统体系结构中,由于系统的复杂性,集中式体系结构被分布式体系结构所取代。在分布式体系结构中,系统的多个组件通过共享网络进行通信。

分布式架构包含以下三个元素:

  • 组件——表示一个设计的分区,它使用定义的I/O接口执行一组功能或算法。通常,组件异步生成事件和数据。

  • 接口——提供一个共享的边界,系统组件通过它进行通信。为了提供异步通信,消息是将事件与相关数据结合起来的有用建模构件。

  • 中间件——提供组件所需的服务,以支持跨共享网络的异步通信。金宝app

下面的插图展示了分布式体系结构及其元素的组成。

基于消息的建模框架

在对这样的体系结构建模时,您通常会对清晰可识别、可重用和可部署的组件建模。要在组件之间实现基于事件的异步通信,请使用消息发送和接收接口。建模中间件以方便表示组件连通性的网络拓扑,例如基于消息发送和接收组件的数量的一对多、多对一或多对多。有关示例,请参见与多个发送者和接收者建立一个共享的通信通道

学习如何使用Simulink为分布式体系结构建模金宝app®, SimEvents®和状态流®,见下图。该图包括作为引用模型创建的两个消息发送和两个消息接收组件。使用Simulink对带有发送和接收接口的组件进行建模金宝app发送而且收到块。如果您的发送和接收接口涉及状态或需要决策逻辑,请使用状态流程图。

使用Simulink、Stateflow和SimEvent金宝apps进行基于消息的建模

在对组件和接口建模之后:

  • 通过使用SimEvents对中间件建模来模拟分布式体系结构的行为。使用来自SimEvents库的块,您可以建模自定义路由和通信模式,例如合并、延迟、分发和广播消息,并研究中间件对通信网络的影响。

  • 为组件(包括接口)生成代码,并连接到中间件或操作系统通信API。

建模消息发送和接收接口并生成代码

让我们从理解消息块的工作原理开始。要创建使用消息的模型,请使用发送块来转换数据和发送消息收到块用于接收消息并将消息转换为数据。一个简单的例子说明了如何发送而且收到方块工作,请参见动画和理解发送和接收消息

使用发送而且收到块来建模组件的消息发送和接收接口。有关显示创建发送和接收接口的基础知识的简单示例,请参见在软件组件之间建立消息发送和接收接口.要了解如何为相同的模型生成代码,请参见生成c++消息以在Simulink组件之间通信数据金宝app(嵌入式编码)

您可以进一步修改自定义行为的发送和接收接口。例如,您可以将接收接口何时执行同步到数据可用时。有关更多信息,请参见建模一个基于消息可用性运行的消息接收接口

建模之后,为您的发送和接收接口生成代码,并将它们连接到中间件或操作系统通信API。有关生成顶级模型代码并允许应用程序在使用外部消息协议服务(例如DDS、ROS、SOMEIP或POSIX消息)的分布式系统中通信的示例,请参见生成c++消息以在Simulink和操作系统或中间件之间通信数据金宝app(嵌入式编码)

模拟分布式架构上的中间件效果

使用队列块用于存储、排序和排队消息。的队列Block允许您指定消息存储容量以及消息转换的覆盖和排序策略。举一个简单的例子,说明如何队列Block works,参见使用队列块管理消息

您还可以使用SimEvents对通信网络上的中间件效果进行建模和模拟。使用SimEvents库提供的块来建模消息路由、点对点通信、无线通信、包丢失和通道延迟。有关SimEvents的更多信息,请参见Simulink模型中的离散事件仿真金宝app(SimEvents)

有关可以由SimEvents建模的基本通信模式,请参见用SimEvents建模消息通信模式.您可以使用这些模式的组合来创建更复杂的通信行为。有关具有多个消息发送和接收组件以及具有延迟的理想共享通道的系统示例,请参见与多个发送者和接收者建立一个共享的通信通道.要查看具有信道故障和包丢失的共享无线信道的模型,请参见模拟无线消息通信与丢包和信道故障

要查看演示如何对更复杂的网络行为建模的示例,例如使用CSMA/CD协议的以太网通信网络,请参见基于CSMA/CD协议的以太网通信网络模型

请注意

SimEvents块不支持代码生成。金宝app

另请参阅

||||

相关的话题