6讲(下)-电梯控制系统案例研究.课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《6讲(下)-电梯控制系统案例研究.课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电梯 控制系统 案例 研究 课件
- 资源描述:
-
1、第六讲第六讲 案例分析案例分析(下)(下)主讲: 黎忠文目 录6.2 电梯控制系统案例研究电梯控制系统案例研究6.2.1 概述概述6.2.2 开发环境和行为模型开发环境和行为模型6.2.3 将系统构造成多个任务将系统构造成多个任务6.2.4 将系统构造成多个模块将系统构造成多个模块6.2.5 集成任务与模块视图集成任务与模块视图6.2.6 开发基于开发基于Ada的构架设计的构架设计6.2.7 分布式电梯控制系统分布式电梯控制系统6.2.8 非分布式电梯控制系统的性能分析非分布式电梯控制系统的性能分析6.2.9 分布式电梯控制系统的性能分析分布式电梯控制系统的性能分析6.2.1 6.2.1 概述
2、概述这个案例由一个可以控制多部电梯的电梯控制系统组成。系统需要对电梯进行调度,以便对不同楼层的乘客所发出的请求做出响应,并控制楼层之间电梯的运动。案例中提供了两种设计方案,并对他们的性能进行分析。6.2.2 6.2.2 开发环境和行为模型开发环境和行为模型6.2.2.1 6.2.2.1 开发系统环境图开发系统环境图图6-36显示为系统环境图,并显示出了与系统连接的外部实体。 6.2.2 6.2.2 开发环境和行为模型开发环境和行为模型I/O设备的硬件特征是:电梯按钮、楼层按钮和楼层到达传感器都是异步的;也就是说,当从其中任意一个设备中接受到输入时,就会出现一个中断。其他的I/O设备都是被动的。
3、 6.2.2 6.2.2 开发环境和行为模型开发环境和行为模型 6.2.2.2 6.2.2.2 将系统分解为多个子系统将系统分解为多个子系统将系统分解为子系统要依据子系统所提供服务的特点而定。在对问题进行分析之后表明,系统可以分解为3个相对的独立的松散耦合子系统。这些子系统分别为【电梯】子系统,【楼层】子系统和【调度器】子系统。电梯子系统是一种实时控制子系统,而楼层子系统是一个数据采集子系统。这两个子系统都是集中对象。6.2.2 6.2.2 开发环境和行为模型开发环境和行为模型电梯系统分解为3个子系统的过程,显示在图6-37中的顶级数据流/控制流图中。有3个数据转换与这3个主要的子系统相对应。
4、6.2.2 6.2.2 开发环境和行为模型开发环境和行为模型6.2.2.3 6.2.2.3 电梯子系统的分解电梯子系统的分解状态转换图状态转换图每个电梯都对应一个状态转换图,图中显示出该电梯的所有状态和转换(图6-38)。状态转换图要由一个控制对象来执行,即【电梯控制】对象。6.2.2 6.2.2 开发环境和行为模型开发环境和行为模型电梯集中对象电梯集中对象电梯子系统是一个集中对象。每个电梯集中对象是由多个设备I/O对象组成。在图6-39中的数据流/控制流图中对电梯子系统进行了分解。6.2.2 6.2.2 开发环境和行为模型开发环境和行为模型在图6-39中现实的对象中有一个集中对象【电梯控制和
5、管理】对象,这个对象在图6-40中进行了进一步的分解。6.2.2 6.2.2 开发环境和行为模型开发环境和行为模型行为分析行为分析现在考虑这个子系统的行为方面;尤其是要考虑【电梯控制】对象交互问题,以及在状态转换图中所定义的与该对象交互的对象和功能。6.2.2.4 楼层子系统的分解楼层子系统的分解楼层子系统是一个集中对象。在图6-41中的数据流/控制流图中显示了对楼层子系统的分解过程。6.2.3 6.2.3 将系统构造成多个任务将系统构造成多个任务首先来考虑将电梯控制系统映射到单CPU或者紧密耦合多处理器环境中的情况(具有共享内存)。这种方案的关键方面是电梯状态和计划数据存储可以由所有的电梯和
6、调度器来访问,因此就需要使用集中式的数据区。他不适用于松散耦合的分布式系统,因为这种系统中没有共享内存。如果需要将系统构造成多个任务,则必须分析数据流/控制流图上所有的叶级数据和控制转换,并应用任务结构化标准。这样就会依次对每个数据流/控制流图进行分析。 考虑单电梯控制系统和多电梯控制系统两种情况。6.2.3 6.2.3 将系统构造成多个任务将系统构造成多个任务6.2.3.1 6.2.3.1 确定电梯子系统设备确定电梯子系统设备I/OI/O任务任务 我们来看图6-37中数据流/控制流图。首先从设备I/O对象开始。根据异步设备输入任务结构化标准,电梯按钮要构造成一个单独的任务即监视电梯按钮(图6
7、-42) 6.2.3 6.2.3 将系统构造成多个任务将系统构造成多个任务6.2.3.2 6.2.3.2 确定电梯子系统内部任务确定电梯子系统内部任务 我们来看图6-39中的电梯控制状态转换图。这也是一种控制对象的情况 ,它是使用状态转换图来表示的。在分析和建模的过程中,实际电梯实体的控制方面要对应于一个控制对象,即【电梯控制】对象。对于单电梯的情况,电梯子系统要构成4个任务,即【监视电梯按钮】、【监视到达传感器】、【电梯管理器】和【电梯控制器】任务。如图6-42中的任务构架图所示。图6-43中的任务构架图显示了使用多个电梯的情况。6.2.3 6.2.3 将系统构造成多个任务将系统构造成多个任
8、务6.2.3 6.2.3 将系统构造成多个任务将系统构造成多个任务 6.2.3.3 6.2.3.3 确定楼层子系统任务确定楼层子系统任务 楼层子系统要进行如下构造。根据异步设备I/O和任务反向任务结构化标准,楼层按钮要构造成一个单独的任务,即监视楼层按钮任务。该任务要由一个中断来激活,并对中断进行处理,然后发送服务请求,这样就可以处理下一个中断。根据控制内聚标准,输出到这些设备的I/O对象都可以调用任务控制器结合。这都是用于单电梯的解决方案。 在多电梯的情况下,由多个电梯控制器的实例,他们可以并发地向楼层灯和方向灯发送请求。这要在每个设备上执行一个资源监视任务,以确保按顺序处理输出请求。6.2
9、.3 6.2.3 将系统构造成多个任务将系统构造成多个任务6.2.3.4 6.2.3.4 定义任务接口定义任务接口 现在我们来考虑如何定义任务接口。首先来考虑数据流,他们显示在数据流/控制流图上。我们只需要考察对应于不同任务的对象/功能之间的接口。【电梯按钮】与【接收新请求】之间的数据流要对应于【监视电梯按钮】任务和【电梯管理器】任务之间的松散耦合消息通信接口。【楼层按钮】和【调度器】之间的数据流接口也可以对应于【监视楼层按钮】和【调度器】之间的松散耦合消息通信接口。6.2.3 6.2.3 将系统构造成多个任务将系统构造成多个任务【楼层到达传感器】与【检查本楼层】之间的数据流接口要对应于【监视
10、到达传感器】和【电梯控制器】之间的紧密耦合消息通信接口。【接收新请求】与【电梯控制】转换之间的事件流接口要映射为【电梯管理器】与【电梯控制器】任务之间的紧密耦合消息通信接口。6.2.3 6.2.3 将系统构造成多个任务将系统构造成多个任务在使用多电梯的情况中,在【电梯控制器】任务和两个资源任务【楼层灯监视】任务和【方向灯监视】任务之间还存在一个接口。【更新状态】转化会向【楼层灯】和【方向灯】发送【电梯状态】数据流,这对应与【电梯控制器】与【楼层灯监视】之间的【楼层灯消息】接口。多个任务访问的数据存储,以及这些数据存储与信息隐藏模块之间的对应方式。【电梯状态和计划】要对应与一个同名信息隐藏模块,
11、由多个【电梯控制器】任务、【电梯管理器】任务,以及【调度器】任务来访问。6.2.3 6.2.3 将系统构造成多个任务将系统构造成多个任务6.2.3.5 6.2.3.5 对其他任务构架的讨论对其他任务构架的讨论在单电梯案例(图6-42)与多电梯案例(图6-43)的任务构架之间主要的区别是:在多电梯案例中使用了【电梯控制器】任务的多个实例,并引入了两个资源监视任务。 6.2.4 6.2.4 将系统构造成多个模块将系统构造成多个模块6.2.4.1 定义设备接口模块通过提供与实际设备之间的虚拟接口,设备接口模块(DIM)隐藏了与实际设备之间的实际接口。每个I/O设备都有一个设备接口模块。设备接口模块所
12、提供的操作要通过考虑每个对象需要支付的功能来确定。设备接口模块是:(1) 电梯按钮这个设备接口模块隐藏了与电梯按钮传感器连接的方式。该模块提供了两个操作:【读取】操作,该操作可以读取电梯按钮传感器中的数据;另一个操作是【初始化】操作。6.2.4 6.2.4 将系统构造成多个模块将系统构造成多个模块(2)楼层按钮这个设备接口模块隐藏了与楼层按钮传感器连接的方式。该模块提供了两个操作:【读取】操作,该操作可以读取楼层按钮传感器中的数据;另一个操作是【初始化】操作。(3)到达传感器这个设备接口模块隐藏了与楼层到达传感器连接的方式。该模块提供了两个操作:【读取】操作,该操作可以读取楼层到达传感器中的数
13、据;另一个操作是【初始化】操作。 6.2.4 6.2.4 将系统构造成多个模块将系统构造成多个模块(4)马达这个设备接口模块隐藏了与电梯马达连接的方式。提供了【上升】【下降】和【停止】的操作。(5)电梯门这个设备接口模块隐藏了与电梯门连接的方式。提供了【打开】【关闭】两个操作。(6)电梯灯这个设备接口模块隐藏了与电梯灯连接的方式。提供了【清除】电梯灯的操作。因为可以使用硬件来设置,所以不需要在软件提供【设置电梯灯】的操作。6.2.4 6.2.4 将系统构造成多个模块将系统构造成多个模块(7)楼层灯这个设备接口模块隐藏了与楼层灯连接的方式。提供了【清除】楼层灯的操作。因为可以使用硬件来设置,所以
14、不需要在软件提供【设置楼层灯】的操作。(8)方向灯这个设备接口模块隐藏了与方向灯连接的方式。提供了【设置】和【清除】电梯灯的操作。6.2.4 6.2.4 将系统构造成多个模块将系统构造成多个模块6.2.4.2 6.2.4.2 定义数据抽象模块定义数据抽象模块每个数据存储都奠定了一个数据抽象模块(DAM)的基础。其中一个主要的数据抽象模块就是【电梯状态和计划】模块。为了确定数据抽象模块的操作,必须对访问数据存储的数据转换进行分析(图6-40)。6.2.4 6.2.4 将系统构造成多个模块将系统构造成多个模块任务构架图中显示有3个不同的任务要访问数据抽象模块:【调度器】、【电梯管理器】和【电梯控制
15、器】。【调度器】读取每个电梯的计划和状态,以便选择一个电梯为即将到来的楼层请求提供服务。【电梯管理器】包括【接收新请求】数据转换,他可以对【电梯计划】进行更新,并检查电梯是构处于空闲状态。【电梯控制器】任务包括3个要访问数据存储的数据转换,即【检查本楼层】、【更新状态】和【检查下一个目的地】数据转换。6.2.4 6.2.4 将系统构造成多个模块将系统构造成多个模块6.2.4.3 6.2.4.3 定义状态转换模块定义状态转换模块有一个状态转换模块(State Transition Module,STM)即电梯状态转换模块中封装了状态装换图(表)。这个没跨支持两个操作,即【处理事件】和【当前状态】
16、。电梯状态转换模块位于【电梯控制器】任务中。6.2.5 6.2.5 集成任务与模块视图集成任务与模块视图既然已经定义了任务和信息隐藏模块,下一步就要确定任务和模块之间的关系。在开发的软件构架图(图6-44)中显示了这些关系。每个定义过的信息隐藏模块都明确地显示在图中,并包括它们的操作。6.2.5 6.2.5 集成任务与模块视图集成任务与模块视图多电梯控制系统的软件构架,如图6-45所示6.2.6 6.2.6 开发基于开发基于AdaAda的构架设计的构架设计 在ADARTS的下一个步骤中,要使用Ada来实现设计方案。在Ada构架图中,要首先引入Ada支持任务。我们首先考虑单电梯的情况。每个松散耦
17、合的消息队列都要对应与一个消息缓冲任务。因此要引入两个消息缓冲任务(图6-46):一个用于缓冲【电梯和调度器请求】消息队列的【电梯和调度器请求缓冲】,另一个任务是用于缓冲【服务请求】消息队列的【服务请求缓冲】。6.2.6 6.2.6 开发基于开发基于AdaAda的构架设计的构架设计【监视到达传感器】和【电梯控制器】之间的紧密耦合消息接口要直接映射为一个Ada会合。【电梯管理器】和【电梯控制器】之间的紧密耦合消息接口也要映射成一个Ada会合。因此,【电梯控制器】可以支持两个入口,一个是由【电梯管理器】调用的【新请求】;另一个是由【监视到达传感器】调用的【未确定的楼层到达】。6.2.6 6.2.6
18、 开发基于开发基于AdaAda的构架设计的构架设计在【电梯状态和计划】数据抽象模块中要放置一个同步任务,用于确保对模块中保存的数据进行互斥访问。该任务有5个接口,在5个由数据抽象模块所提供的操作中,每个操作要使用一个入口。【电梯状态和计划数据存储要嵌套在同步任务中有3个异步设备输入任务拥有由硬件调用的入口。这些任务就是【电梯按钮中断】、【楼层按钮中断】和【到达传感器中断】。在多个电梯控制系统中,为了避免产生过多的任务开销,要通过使用任务调换技术,将【电梯控制器】的多个实例映射到一个任务中,即【电梯控制器任务】(图6-46)6.2.6 6.2.6 开发基于开发基于AdaAda的构架设计的构架设计
展开阅读全文