主要内容

金宝app信息概述

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

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

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

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

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

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

基于消息的建模框架

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

学习如何使用Simulink为分布式架构建模金宝app®, SimEvents®和Stateflow®,见下图。该示例包括两个消息发送组件和两个消息接收组件,它们被创建为引用模型。使用Simulink对具有发送和接收接口的组件建模金宝app发送而且收到块。如果发送和接收接口涉及状态或需要决策逻辑,请使用状态流图。

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

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

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

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

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

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

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

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

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

模拟分布式体系结构上的中间件效果

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

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

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

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

请注意

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

另请参阅

||||

相关的话题