基于优先级队列与有限状态机的流程式控制软件设计方法技术

技术编号:24995223 阅读:23 留言:0更新日期:2020-07-24 17:58
本发明专利技术公开了一种基于优先级队列与有限状态机的流程式实时控制软件的设计方法,将系统划分为实时时钟、外部IO、流程状态机和计算四部分,以临界内存区作为各个部分间的通讯方法;外部IO部分提供通用接口描述方法,使得不同的IO设备的访问方法统一;基于实时时钟在外部IO和流程状态机中的不同使用方法,来实现IO接口的超时控制与流程状态机的实时控制;流程状态机采用有限状态机的模型,将状态转移以IO结果、计算结果与时钟状态挂钩,通过脚本配置的方式描述有限状态机的状态转移关系。本发明专利技术描述面对多个不同速度的IO接口的流程式实时控制软件,实现通过脚本配置的方式来完成工作流程的描述,能够极大的提高此类软件的开发效率。

【技术实现步骤摘要】
基于优先级队列与有限状态机的流程式控制软件设计方法
本专利技术属于控制软件开发
,涉及一种基于优先级队列与有限状态机的流程式控制软件设计方法。
技术介绍
在控制软件的开发中,经常要面对的场景是:有多个不同速度的IO接口,软件所描述的是流程式的工作,控制软件要满足实时性要求。基于应用场景的通用性,在面对不同的问题时,如果每次软件都是重复开发,就是人力物力的浪费,而且实时性也很难以保障。因此,提出一种设计方法来描述面对多个不同速度的IO接口的流程式实时控制软件,实现通过脚本配置的方式来完成工作流程的描述,能够极大的提高此类软件的开发效率。
技术实现思路
(一)专利技术目的本专利技术的目的是:提供一种基于优先级队列与有限状态机的流程式实时控制软件的设计方法,以实现通过脚本配置的方法完成工作流程的描述,并有更方便的实时性控制。(二)技术方案为了解决上述技术问题,本专利技术提供一种基于优先级队列与有限状态机的流程式控制软件设计方法,其特征在于,包括总体设计与各个模块的设计方法;第一部分,流程式实时控制软件的总体设计将系统划分为实时时钟、外部IO、流程状态机和计算四部分,以临界内存区作为各个部分间的通讯方法;其中每个不同的外部IO设备,实现为一个外部IO收发任务;流程状态机采用单任务下根据每个状态机的优先级,以从高优先级到低优先级的顺序依次循环遍历各个流程状态机,来驱动状态机的运行;外部IO收发任务与计算任务通过查询临界内存区,接收状态机任务下达的交互指令,并将访问或者计算结果回填到临界内存区,反馈给状态机任务;第二部分,外部IO部分提供通用接口描述方法,使得不同的IO设备的访问方法统一;第三部分,基于实时时钟在外部IO和流程状态机中的不同使用方法,来实现IO接口的超时控制与流程状态机的实时控制;第四部分,流程状态机采用有限状态机的模型,将状态转移以IO结果、计算结果与时钟状态挂钩,通过脚本配置的方式描述有限状态机的状态转移关系。第二部分中,向外部IO收发的每个任务提供一套通用接口描述方法,包括5个方法:open:启动该外部IO任务,保证状态机在IO异常情况下能够重启IO任务;close:关闭该外部IO任务,保证状态机在IO异常情况下能够强行关闭IO任务;send:发送一条信息,抽象为两个参数——发送地址和发送内容,根据具体IO设备实现为不同的数据结构;recv:接收一条信息,抽象为两个参数——接收地址和接收内容,根据具体IO设备实现为不同的数据结构;ioctl:实现一些IO设备特殊的操作,抽象为两个参数——操作ID和操作值。第三部分中,每个外部IO收发任务直接访问实时时钟获取当前的系统时间;状态机任务采用若干时间触发运行一次的方式,在状态机内部禁止任何任务等待或者睡眠的操作,所有状态机遍历一次的时间,小于状态机任务的触发间隔时间。第四部分中,将外部IO的结果、计算结果和时钟是否超时,作为状态转移的条件,在满足状态转移条件后,进行数据处理与任务的派发,切换到下一个状态,如此循环往复。(三)有益效果上述技术方案所提供的基于优先级队列与有限状态机的流程式实时控制软件的设计方法,通过脚本配置的方式来完成工作流程的描述,能够极大的提高此类软件的开发效率。附图说明图1为本专利技术实施例提供的流程式实时控制软件的系统结构示意图。具体实施方式为使本专利技术的目的、内容、和优点更加清楚,下面结合附图和实施例,对本专利技术的具体实施方式作进一步详细描述。本专利技术实施例提供一种基于优先级队列与有限状态机的流程式实时控制软件的设计方法,包括总体设计与各个模块的设计方法。第一部分,流程式实时控制软件的总体设计。首先本专利技术实施例的流程式实时控制软件是运行在如Linux、VxWorks等常见的操作系统之上的,以线程或者任务作为CPU调度的基本单位(后文所说的任务即是指CPU调度的基本单位)。如图1所示,本专利技术实施例将系统划分为实时时钟、外部IO、流程状态机和计算四个部分,以临界内存区作为各个部分间的通讯方法。其中每个不同的外部IO设备,实现为一个外部IO收发任务。由于现代CPU的常见设计是SMP(SymmetricalMulti-Processing)结构,具有多个计算核心,并且在部分硬件平台可能存在协处理器、显卡等辅助计算硬件,因此计算任务根据CPU核心数量和辅助计算硬件,也会被划分为多个计算任务。为了保证状态控制的尽可能可靠和简单,流程状态机部分的设计采用单任务下根据每个状态机的优先级,以从高优先级到低优先级的顺序依次循环遍历各个流程状态机,来驱动状态机的运行。外部IO收发任务与计算任务通过查询临界内存区,接收状态机任务下达的交互指令,并将访问或者计算结果回填到临界内存区,反馈给状态机任务。在整个系统的任务中,状态机任务具有最高的优先级,以保证整个系统的响应外部变化的实时性。其他外部IO收发任务与计算任务,根据具体工作的优先级绝对任务运行的优先级。第二部分,外部IO部分提供通用接口描述方法,使得不同的IO设备的访问方法统一。本专利技术向外部IO收发的每个任务提供一套通用接口描述方法,共实现以下5个方法:open:启动该外部IO任务,保证状态机在IO异常情况下能够重启IO任务;close:关闭该外部IO任务,保证状态机在IO异常情况下能够强行关闭IO任务;send:发送一条信息,抽象为两个参数——发送地址和发送内容,根据具体IO设备实现为不同的数据结构;recv:接收一条信息,抽象为两个参数——接收地址和接收内容,根据具体IO设备实现为不同的数据结构;ioctl:实现一些IO设备特殊的操作,抽象为两个参数——操作ID和操作值第三部分,基于实时时钟在外部IO和流程状态机中的不同使用方法,来实现IO接口的超时控制与流程状态机的实时控制。由于一般外部IO设备相对于CPU都是比较慢的设备,都需要超时时间的判定,因此每个外部IO收发任务都能够直接访问实时时钟获取当前的系统时间。状态机任务采用若干时间触发运行一次的方式,在状态机内部禁止任何任务等待或者睡眠的操作,在状态机内部进行的数据操作都必须足够的简单,较为复杂的计算应该实现在计算任务中。并且要保证所有状态机遍历一次的时间,小于状态机任务的触发间隔时间。第四部分,流程状态机采用有限状态机的模型,将状态转移以IO结果、计算结果与时钟状态挂钩,通过脚本配置的方式描述有限状态机的状态转移关系。本专利技术采用有限状态机的模型去抽象工作流程。每个状态的运行,就是检查该状态是否满足状态转移条件。本专利技术将外部IO的结果、计算结果和时钟是否超时,作为状态转移的条件。在满足状态转移条件后,会进行简单的数据处理与任务的派发(外部IO或者计算任务),切换到下一个状态,如此循环往复。在外部IO任务和计算任务实现的较为充分的时候本文档来自技高网...

【技术保护点】
1.一种基于优先级队列与有限状态机的流程式控制软件设计方法,其特征在于,包括总体设计与各个模块的设计方法;/n第一部分,流程式实时控制软件的总体设计/n将系统划分为实时时钟、外部IO、流程状态机和计算四部分,以临界内存区作为各个部分间的通讯方法;其中每个不同的外部IO设备,实现为一个外部IO收发任务;流程状态机采用单任务下根据每个状态机的优先级,以从高优先级到低优先级的顺序依次循环遍历各个流程状态机,来驱动状态机的运行;外部IO收发任务与计算任务通过查询临界内存区,接收状态机任务下达的交互指令,并将访问或者计算结果回填到临界内存区,反馈给状态机任务;/n第二部分,外部IO部分提供通用接口描述方法,使得不同的IO设备的访问方法统一;/n第三部分,基于实时时钟在外部IO和流程状态机中的不同使用方法,来实现IO接口的超时控制与流程状态机的实时控制;/n第四部分,流程状态机采用有限状态机的模型,将状态转移以IO结果、计算结果与时钟状态挂钩,通过脚本配置的方式描述有限状态机的状态转移关系。/n

【技术特征摘要】
1.一种基于优先级队列与有限状态机的流程式控制软件设计方法,其特征在于,包括总体设计与各个模块的设计方法;
第一部分,流程式实时控制软件的总体设计
将系统划分为实时时钟、外部IO、流程状态机和计算四部分,以临界内存区作为各个部分间的通讯方法;其中每个不同的外部IO设备,实现为一个外部IO收发任务;流程状态机采用单任务下根据每个状态机的优先级,以从高优先级到低优先级的顺序依次循环遍历各个流程状态机,来驱动状态机的运行;外部IO收发任务与计算任务通过查询临界内存区,接收状态机任务下达的交互指令,并将访问或者计算结果回填到临界内存区,反馈给状态机任务;
第二部分,外部IO部分提供通用接口描述方法,使得不同的IO设备的访问方法统一;
第三部分,基于实时时钟在外部IO和流程状态机中的不同使用方法,来实现IO接口的超时控制与流程状态机的实时控制;
第四部分,流程状态机采用有限状态机的模型,将状态转移以IO结果、计算结果与时钟状态挂钩,通过脚本配置的方式描述有限状态机的状态转移关系。


2.如权利要求1所述的基于优先级队列与有限状态机的流程式控制软件设计方法,其特征在于,第二部分中,向外部IO收发的每个任务提供一套通用接口描...

【专利技术属性】
技术研发人员:赵继伟
申请(专利权)人:天津津航计算技术研究所
类型:发明
国别省市:天津;12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1