主要内容

金宝app信息概述

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

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

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

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

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

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

基于消息的建模框架

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

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

使用Simulink、Stateflow和simeeven金宝appts的基于消息的建模

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

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

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

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

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

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

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

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

模拟中间件对分布式架构的影响

使用队列块用于存储、排序和排队消息。的队列块允许您指定消息存储容量以及消息转换的覆盖和排序策略。举一个简单的例子队列砌块工程,请参阅使用队列块来管理消息

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

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

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

请注意

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

另请参阅

||||

相关的话题