综合监控培训系统及其实现方法

文档序号:6535246阅读:168来源:国知局
综合监控培训系统及其实现方法
【专利摘要】本发明公开了一种综合监控培训系统反馈仿真模块的实现方法,所述综合监控培训系统包括培训仿真终端,所述综合监控培训系统反馈仿真模块包括数据依次循环流动的通用数据交互模块、生产者线程池、循环队列、消费者主线程,所述通用数据交互模块接收所述培训仿真终端的指令,所述生产者线程池包括两个以上的生产者线程,所述生产者线程池将所述数据交互模块中的数据进行指定逻辑的生产加工,获得对应的系统数据后存储到所述循环队列中,所述消费者主线程读取所述循环队列中等待处理的数据并做出对应的响应。该系统基于Linux系统的多线程编程技术,引入生产者/消费者异步模型,实现程序的并发控制,满足综合监控系统多任务的操作模式。
【专利说明】综合监控培训系统及其实现方法
【技术领域】
[0001]本发明属于计算机软件【技术领域】中的轨道交通综合监控培训领域,具体地讲,涉及轨道交通综合监控培训系统及其实现方法。
【背景技术】
[0002]随着近年来城市轨道综合监控行业的快速发展,无论是建设单位还是运营单位都亟需一个综合监控的培训仿真系统,用于设备的测试与检测、员工的技术培训和新技术的应用演示。
[0003]传统的培训仿真系统受制于成本,场地,安全性和技术条件,往往不能实现综合监控系统全专业全功能的真实模拟。采用计算机软件仿真技术的新型综合监控培训系统建立在对真实地铁系统运行情况的调研基础之上,使用和真实运行地铁线路一致的模型数据库,可以逼真的模拟各专业设备现场实际运行情况,同时对于培训终端下发的单控,程控,模式,场景或者组控控制等各种指令可以及时准确的响应,以达到真实,逼真,高效的培训效果。
[0004]现有的培训仿真系统多采用单任务的实现方式,这种实现方式在响应一个终端操作的时候,会阻塞对终端另外操作的响应,造成终端指令的响应迟缓,不能很好的满足用户的需求。

【发明内容】

[0005]本发明的目的是克服现有技术的缺陷,提供一种多任务操作模式的综合监控培训系统,高效的完成终端设定的各种控制操作的反馈仿真。
[0006]为达到上述目的,本发明采取的技术方案是:
一种综合监控培训系统,所述综合监控培训系统包括培训仿真终端,所述综合监控培训系统反馈仿真模块包括数据依次循环流动的通用数据交互模块、生产者线程池、循环队列、消费者主线程,所述通用数据交互模块接收所述培训仿真终端的指令,所述生产者线程池包括两个以上的生产者线程,所述生产者线程池将所述数据交互模块中的数据进行指定逻辑的生产加工,获得对应的系统数据后存储到所述循环队列中,所述消费者主线程读取所述循环队列中等待处理的数据并处理做出对应的响应。
[0007]优选的,所述通用数据交互模块包括DO指令池、AO指令池、DI指令池、Al指令池中的至少两个,所述生产者线程池包括与所述通用数据交互模块中的指令池对应的DO生产者线程、AO生产者线程、DI生产者线程、Al生产者线程中的至少两个,所述每个生产者线程扫描所述通用数据交互模块中划分到自己任务下的相应指令池中的数据并进行加工。
[0008]优选的,所述循环队列为动态循环队列,所述循环队列使用动态头指针和动态尾指针标注队列状态,供队列使用者判断队列的状态。
[0009]优选的,所述消费者主线程包括两个以上的消费者子线程,所述消费者主线程周期性的读取所述循环队列中的数据,获取到要处理的数据后,启动其中一个消费者子线程处理数据,而消费者主线程继续周期性的读取所述循环队列中的数据。
[0010]优选的,所述消费者子线程处理数据时,将数据放置到一个面向切面的流水线上处理,以层层响应数据中包括的指令。
[0011]优选的,所述流水线依次包括组控处理流程、场景处理流程、模式处理流程、程控处理流程、单控处理流程。
[0012]优选的,所述综合监控培训系统反馈仿真模块还包括系统控制线程,所述系统控制线程接收所述通用数据交互模块中的数据,并将该数据翻译成可以解读的控制信息发送到所述生产者线程池、消费者主线程、通用数据交互模块。
[0013]优选的,所述通用数据交互模块中开辟有一块单独的控制池区域用来存储所述系统控制线程对应的控制指令。
[0014]优选的,所述控制指令来源于所述培训仿真终端的手动下发。
[0015]本发明的另一目的是提供一种上述综合监控培训系统的实现方法,以高效的完成终端设定的各种控制操作的反馈仿真。
[0016]为达到上述目的,本发明的技术方案是:
一种上述综合监控培训系统的实现方法,该实现方法包括如下步骤:
步骤一:所述通用数据交互模块初始化;
步骤二:所述通用数据交互模块动态获得所述培训仿真终端的指令并存储;
步骤三:所述生产者线程池周期性的扫描所述通用数据交互模块中对应区域,获取指令数据并存储到所述循环队列中,所述消费者主线程周期性的获取所述循环队列中的数据并做出对应的响应。
[0017]与现有技术相比,本发明的综合监控培训系统包括两个以上的生产者线程,每个生产者线程被设计为扫描划分到自己任务下的通用数据交互模块,根据通用数据交互模块中的数据,进行指定逻辑的生产加工;而消费者主线程用来周期性的处理生产者线程合成好的数据并做出对应的相应。模型的两端各司其职,互不干扰,可以提供一种多任务操作方式的综合监控培训系统。
[0018]本发明的综合监控培训系统基于Linux系统的多线程编程技术,引入生产者/消费者异步模型,实现程序的并发控制,满足综合监控系统多任务的操作模式。多线程技术和多个进程相比,是一种非常“节俭”的多任务操作实现方式,同时多线程程序作为一种多任务、并发的工作方式,具有应用程序响应迅速、充分利用多CPU系统、改善程序结构等多种优点。
【专利附图】

【附图说明】
[0019]下面结合附图对本发明的优选实施例作详细说明。其中:
图1是本发明的可用于轨道交通中的综合监控培训系统的系统结构图。
[0020]图2是图1所示的综合监控培训系统的循环队列的工作原理图。
[0021]图3是图1所示的综合监控培训系统的消费者子线程处理流程图。
【具体实施方式】
[0022]请参见图1,本发明的综合监控培训系统100,包括培训仿真终端10、数据依次循环流动的通用数据交互模块20、生产者线程池30、循环队列40、消费者主线程50,通用数据交互模块20接收培训仿真终端10的指令,生产者线程池30包括两个以上的生产者线程,生产者线程池30将数据交互模块中的数据进行指定逻辑的生产加工,获得对应的系统数据后存储到循环队列40中,消费者主线程50读取循环队列40中等待处理的数据并处理做出对应的响应。
[0023]本实施例中,教师或者学员通过培训仿真终端10手动下发一个或多个操作指令可以被解释成各种内容,包括但不限于以下几种:
a)对单个设备的单点控制,如一个单纯的D0/A0;
b)对设定好的的程序控制的启动,如SCADA(电力监控系统)中的程控卡片;
c)对一组控制操作集合的总控制点,如BAS(环控系统)中的一个模式控制;
d)对一种用户自定义的场景模式的控制点,如综合监控系统高级应用中的联动控
制;
e)以上2个或者多个控制操作的集合,即一个操作信号可能包含以上多种意义。
[0024]本实施例中,通用数据交互模块20包括DO指令池21、A0指令池22、DI指令池23、Al指令池24在内的四个指令池。
[0025]生产者线程池30包括与通用数据交互模块20中的指令池对应的DO生产者线程31、A0生产者线程32、DI生产者线程33、AI生产者线程34在内的四个生产者线程,每个生产者线程扫描通用数据交互模块20中划分到自己任务下的相应指令池中的数据并进行加工。
[0026]本领域技术人员可以想到,通用数据交互模块20可以包括其它指令池或者只包括两个以上的上述指令池;生产者线程池30包亦可以包括其它生产者线程或者只包括两上以上上述生产者线程,不再一一赘述,凡采用与本发明技术构思相同或等同的技术方案,均应涵盖在本发明的保护范围内。
[0027]循环队列40为动态循环队列40,循环队列40使用动态头指针和动态尾指针标注队列状态,供队列使用者判断队列的状态。
[0028]如图2所示,循环队列40工作原理如下:系统在启动时,会在内存中开辟一段大小为Maxsize (设计容量)*Persize (单位存储空间大小)的存储空间,头指针Front和尾指针Rear指针都初始化在O位置。
[0029]插入数据从Rear指针位置开始进行,假设新插入的数据变量为e,只需要将Rear的位置内写入e,然后将Rear指针的位置往前加I即可,插入操作可以表示为class_queue [Rear] =e; Rear = Rear+1。读取数据则从相反的方向进行,即在Front位置开始,将Front位置内的数据赋值给e,然后将Front指针的位置往前加1,读取的操作可以表示为e=class_queue[Front];Front=Front+l。
[0030]为了保持数据的安全性,在进行插入和读取操作时,必须进行一些判断操作。在插入操作时,需要判断队列是否已满,根据图2,即判断Rear+Ι的值是否和Front相等,相等证明队列已满,此时插入操作需要等待;同样在读取操作时,需要判断队列是否已空,根据图2,即判断Front的值和Rear的值是否相等,相等则队列已空,同样读取操作需要等待。
[0031]消费者主线程50包括三个消费者子线程,分别是消费者子线程51、52、53,当然,本领域技术人员可以想到,仅设置两个消费者子线程或者设置三个以上的消费者子线程亦可。通用数据交互模块20还包括与接收消费者主线程50数据的数据池26。
[0032]消费者主线程50周期性的读取循环队列40中的数据,获取到要处理的数据后,启动其中一个消费者子线程,例如消费者子线程51处理数据,而消费者主线程50继续周期性的读取循环队列40中的数据。
[0033]本发明的,综合监控培训系统100还包括系统控制线程60,系统控制线程60接收通用数据交互模块20中的数据,并将该数据翻译成可以解读的控制信息发送到生产者线程池30、消费者主线程50。
[0034]通用数据交互模块20中开辟一块单独的区域,即控制池25,用来存储系统控制线程60的控制指令。系统运行的控制指令由教师或者学员在对应的界面手动下发。
[0035]系统控制线程60周期性的扫描通用数据交互模块20中的控制池25,以获得最新的操作指令,在获取指令成功后,系统控制线程60将该指令翻译成生产者线程池30、消费者主线程50、通用数据交互模块20可以解读的控制信息发送给生产者线程池30、消费者主线程50、通用数据交互模块20。各受控线程在线程运行的必经之路上会截获到控制信息,并做出各种响应动作。通过该方法,不仅可以对培训仿真终端10的指令做出响应,还可以实现系统的在线升级或在线更新。
[0036]如前所述,培训仿真终端10的的操作指令多种多样,如何区分以上各种操作指令,并分别给出对应的响应呢?本方法设计的消费者子线程,给出了一种面向切面的流水线的数据处理方法,将对于上文叙述中出现的各种操作解释的响应按照优先级放置到一条处理的流水线上,以层层响应数据中包括的指令,指令可能是单控,组控,模式,时间表,场景或者以上几种模式的组合,从而可以确保对终端操作的准确无误和全面的解释。
[0037]具体的,请参见图3,消费者子线程在开始的步骤SlOl后,进行尝试互斥锁上锁的步骤S102,并在步骤S103中判断互斥上锁是否成功,如果成功,则在步骤S104中判断是否收到系统控制线程60的控制指令,如果没有,则消费者主线程50子线程依次按照组控处理流程S105、场景处理流程S106、模式处理流程S107、程控处理流程S108、单控处理流程S109这种面向切面的流水线方式处理指令,在这些步骤完成后,进行释放互斥锁的步骤S110,完成对互斥锁的释放后,消费者子线程进入休眠状态S111,等待下一次的开始命令S101。其中,在步骤S104中,如果判断收到系统控制线程60的控制指令,则进入执行控制操作的步骤 S112。
[0038]下面描述本发明的综合监控培训系统100的实现方法,该实现方法包括如下步骤:
步骤一、通用数据交互模块20初始化。
[0039]通用数据交互模块20中的数据在系统启动时,被划分指令池/数据池/控制池3个部分,通用数据交互模块20中的数据可以由上次系统退出时保留的断面初始化,也可以全部初始化为系统初始状态。
[0040]步骤二、通用数据交互模块20动态获得培训仿真终端10的指令并存储。
[0041]通用数据交互模块20数据读写模块获得来培训仿真终端10的指令,并存储成对应的指令数据。
[0042]步骤三、生产者线程池30周期性的扫描通用数据交互模块20中对应区域,获取指令数据并存储到循环队列40中,消费者主线程50周期性的获取循环队列40中的数据并做出对应的响应。
[0043]具体的,生产者线程池30中的D0/DI/A0/AI线程周期性的扫描通用数据交互模块20中的对应区域,根据变位机制获得通用数据交互模块20中的指令数据,通过查询内存数据库,获得对应的系统数据后,存储到循环队列40中。
[0044]消费者主线程50在生产者线程工作的同时也处于工作状态。消费者主线程50周期性的读取循环队列40中等待处理的系统数据,获得一个单位系统数据后,消费者主线程50即启动I个子线程处理该单位数据,而其余子线程则继续周期性的读取循环队列40中的数据,直到循环队列40中的数据为空。
[0045]子线程处理单元数据的处理过程可如前所述的图3中的步骤所示。该处理过程为一个面向切面的流水线处理过程。通过对一个单位数据的多层分析处理,逐步实现对该系统数据身上可能携带的组控,场景,模式,程控,单控操作信息的处理和操作。当某一单元数据处理完成后,对应的子线程即完成使命而退出。
[0046]本发明的综合监控培训系统100还包括系统的在线控制升级或更新的步骤,该步骤可以随时进行,具体如下:
在某些工况下,综合监控的系统数据库会发生增删改等各种变化,培训系统需要根据教师的控制指令进行在线运行状态的更改。系统控制线程60通过周期性的扫描控制池获得控制指令,并将控制指令发送给各个受控线程,各受控线程接受该指令后启动对应的系统动作,如重启,更新或者退出。
[0047]本领域技术人员可以想到的是,本发明还可以有其它的实现方式,但只要其采用的技术精髓与本发明相同或相近似,或者基于本发明做出的变化和替换都在本发明的保护范围内。
【权利要求】
1.一种综合监控培训系统反馈仿真模块,其特征在于:所述综合监控培训系统包括培训仿真终端,所述综合监控培训系统反馈仿真模块包括数据依次循环流动的通用数据交互模块、生产者线程池、循环队列、消费者主线程,所述通用数据交互模块接收所述培训仿真终端的指令,所述生产者线程池包括两个以上的生产者线程,所述生产者线程池将所述数据交互模块中的数据进行指定逻辑的生产加工,获得对应的系统数据后存储到所述循环队列中,所述消费者主线程读取所述循环队列中等待处理的数据并做出对应的响应;该系统基于Linux系统的多线程编程技术,引入生产者/消费者异步模型,实现程序的并发控制,满足综合监控系统多任务的操作模式。
2.根据权利要求1所述的综合监控培训系统反馈仿真模块,其特征在于:所述通用数据交互模块包括DO指令池、AO指令池、DI指令池、Al指令池中的至少两个,所述生产者线程池包括与所述通用数据交互模块中的指令池对应的DO生产者线程、AO生产者线程、DI生产者线程、Al生产者线程中的至少两个,所述每个生产者线程扫描所述通用数据交互模块中划分到自己任务下的相应指令池中的数据并进行加工。
3.根据权利要求1所述的综合监控培训系统反馈仿真模块,其特征在于:所述循环队列为动态循环队列,所述循环队列使用动态头指针和动态尾指针标注队列状态,供队列使用者判断队列的状态。
4.根据权利要求1所述的综合监控培训系统反馈仿真模块,其特征在于:所述消费者主线程包括两个以上的消费者子线程,所述消费者主线程周期性的读取所述循环队列中的数据,获取到要处理的数据后,启动其中一个消费者子线程处理数据,而消费者主线程继续周期性的读取所述循环队列中的数据。
5.根据权利要求4所述的综合监控培训系统反馈仿真模块,其特征在于:所述消费者子线程处理数据时,将数据放置到一个面向切面的流水线上处理,以层层响应数据中包括的指令。
6.根据权利要求5所述的综合监控培训系统反馈仿真模块,其特征在于:所述流水线依次包括组控处理流程、场景处理流程、模式处理流程、程控处理流程、单控处理流程。
7.根据权利要求1所述的综合监控培训系统反馈仿真模块,其特征在于:所述综合监控培训系统反馈仿真模块还包括系统控制线程,所述系统控制线程接收所述通用数据交互模块中的数据,并将该数据翻译成可以解读的控制信息发送到所述生产者线程池和消费者主线程。
8.根据权利要求7所述的综合监控培训系统反馈仿真模块,其特征在于:所述通用数据交互模块中开辟有一块单独的控制池区域用来存储所述系统控制线程对应的控制指令。
9.根据权利要求8所述的综合监控培训系统反馈仿真模块,其特征在于:所述控制指令来源于所述培训仿真终端的手动下发。
10.根据权利要求1综合监控培训系统反馈仿真模块的实现方法,其特征在于:所述实现方法包括如下步骤: 步骤一:所述通用数据交互模块初始化; 步骤二:所述通用数据交互模块动态获得所述培训仿真终端的指令并存储; 步骤三:所述生产者线程池周期性的扫描所述通用数据交互模块中对应区域,获取指令数据并存储到所述循环队列中,所述消费者主线程周期性的获取所述循环队列中的数据并做出对应的响应。
【文档编号】G06F9/38GK103823672SQ201410008253
【公开日】2014年5月28日 申请日期:2014年1月8日 优先权日:2014年1月8日
【发明者】刘涛, 刘晓军, 张昆, 崔伟, 朱祁, 陈颖峰, 冯仕昌 申请人:国电南瑞科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1