《综合监控培训系统及其实现方法.pdf》由会员分享,可在线阅读,更多相关《综合监控培训系统及其实现方法.pdf(10页完整版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103823672 A (43)申请公布日 2014.05.28 CN 103823672 A (21)申请号 201410008253.3 (22)申请日 2014.01.08 G06F 9/44(2006.01) G06F 9/38(2006.01) G06Q 50/20(2012.01) (71)申请人 国电南瑞科技股份有限公司 地址 210061 江苏省南京市高新技术开发区 高新路 20 号 (72)发明人 刘涛 刘晓军 张昆 崔伟 朱祁 陈颖峰 冯仕昌 (74)专利代理机构 南京纵横知识产权代理有限 公司 32224 代理人 董建林 许婉静 (54) 发明名。
2、称 综合监控培训系统及其实现方法 (57) 摘要 本发明公开了一种综合监控培训系统反馈仿 真模块的实现方法, 所述综合监控培训系统包括 培训仿真终端, 所述综合监控培训系统反馈仿真 模块包括数据依次循环流动的通用数据交互模 块、 生产者线程池、 循环队列、 消费者主线程, 所述 通用数据交互模块接收所述培训仿真终端的指 令, 所述生产者线程池包括两个以上的生产者线 程, 所述生产者线程池将所述数据交互模块中的 数据进行指定逻辑的生产加工, 获得对应的系统 数据后存储到所述循环队列中, 所述消费者主线 程读取所述循环队列中等待处理的数据并做出对 应的响应。该系统基于 Linux 系统的多线程编程。
3、 技术, 引入生产者 / 消费者异步模型, 实现程序的 并发控制, 满足综合监控系统多任务的操作模式。 (51)Int.Cl. 权利要求书 1 页 说明书 5 页 附图 3 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书1页 说明书5页 附图3页 (10)申请公布号 CN 103823672 A CN 103823672 A 1/1 页 2 1. 一种综合监控培训系统反馈仿真模块, 其特征在于 : 所述综合监控培训系统包括培 训仿真终端, 所述综合监控培训系统反馈仿真模块包括数据依次循环流动的通用数据交互 模块、 生产者线程池、 循环队列、 消费者主线程, 所述通用。
4、数据交互模块接收所述培训仿真 终端的指令, 所述生产者线程池包括两个以上的生产者线程, 所述生产者线程池将所述数 据交互模块中的数据进行指定逻辑的生产加工, 获得对应的系统数据后存储到所述循环队 列中, 所述消费者主线程读取所述循环队列中等待处理的数据并做出对应的响应 ; 该系统 基于 Linux 系统的多线程编程技术, 引入生产者 / 消费者异步模型, 实现程序的并发控制, 满足综合监控系统多任务的操作模式。 2. 根据权利要求 1 所述的综合监控培训系统反馈仿真模块, 其特征在于 : 所述通用数 据交互模块包括 DO 指令池、 AO 指令池、 DI 指令池、 AI 指令池中的至少两个, 所。
5、述生产者线 程池包括与所述通用数据交互模块中的指令池对应的DO生产者线程、 AO生产者线程、 DI生 产者线程、 AI 生产者线程中的至少两个, 所述每个生产者线程扫描所述通用数据交互模块 中划分到自己任务下的相应指令池中的数据并进行加工。 3. 根据权利要求 1 所述的综合监控培训系统反馈仿真模块, 其特征在于 : 所述循环队 列为动态循环队列, 所述循环队列使用动态头指针和动态尾指针标注队列状态, 供队列使 用者判断队列的状态。 4. 根据权利要求 1 所述的综合监控培训系统反馈仿真模块, 其特征在于 : 所述消费者 主线程包括两个以上的消费者子线程, 所述消费者主线程周期性的读取所述循环。
6、队列中的 数据, 获取到要处理的数据后, 启动其中一个消费者子线程处理数据, 而消费者主线程继续 周期性的读取所述循环队列中的数据。 5. 根据权利要求 4 所述的综合监控培训系统反馈仿真模块, 其特征在于 : 所述消费者 子线程处理数据时, 将数据放置到一个面向切面的流水线上处理, 以层层响应数据中包括 的指令。 6. 根据权利要求 5 所述的综合监控培训系统反馈仿真模块, 其特征在于 : 所述流水线 依次包括组控处理流程、 场景处理流程、 模式处理流程、 程控处理流程、 单控处理流程。 7.根据权利要求1所述的综合监控培训系统反馈仿真模块, 其特征在于 : 所述综合监控培 训系统反馈仿真模。
7、块还包括系统控制线程, 所述系统控制线程接收所述通用数据交互模块中 的数据, 并将该数据翻译成可以解读的控制信息发送到所述生产者线程池和消费者主线程。 8. 根据权利要求 7 所述的综合监控培训系统反馈仿真模块, 其特征在于 : 所述通用数 据交互模块中开辟有一块单独的控制池区域用来存储所述系统控制线程对应的控制指令。 9. 根据权利要求 8 所述的综合监控培训系统反馈仿真模块, 其特征在于 : 所述控制指 令来源于所述培训仿真终端的手动下发。 10. 根据权利要求 1 综合监控培训系统反馈仿真模块的实现方法, 其特征在于 : 所述实 现方法包括如下步骤 : 步骤一 : 所述通用数据交互模块初。
8、始化 ; 步骤二 : 所述通用数据交互模块动态获得所述培训仿真终端的指令并存储 ; 步骤三 : 所述生产者线程池周期性的扫描所述通用数据交互模块中对应区域, 获取指 令数据并存储到所述循环队列中, 所述消费者主线程周期性的获取所述循环队列中的数据 并做出对应的响应。 权 利 要 求 书 CN 103823672 A 2 1/5 页 3 综合监控培训系统及其实现方法 技术领域 0001 本发明属于计算机软件技术领域中的轨道交通综合监控培训领域, 具体地讲, 涉 及轨道交通综合监控培训系统及其实现方法。 背景技术 0002 随着近年来城市轨道综合监控行业的快速发展, 无论是建设单位还是运营单位都 。
9、亟需一个综合监控的培训仿真系统, 用于设备的测试与检测、 员工的技术培训和新技术的 应用演示。 0003 传统的培训仿真系统受制于成本, 场地, 安全性和技术条件, 往往不能实现综合监 控系统全专业全功能的真实模拟。采用计算机软件仿真技术的新型综合监控培训系统建 立在对真实地铁系统运行情况的调研基础之上, 使用和真实运行地铁线路一致的模型数据 库, 可以逼真的模拟各专业设备现场实际运行情况, 同时对于培训终端下发的单控, 程控, 模式, 场景或者组控控制等各种指令可以及时准确的响应, 以达到真实, 逼真, 高效的培训 效果。 0004 现有的培训仿真系统多采用单任务的实现方式, 这种实现方式在。
10、响应一个终端操 作的时候, 会阻塞对终端另外操作的响应, 造成终端指令的响应迟缓, 不能很好的满足用户 的需求。 发明内容 0005 本发明的目的是克服现有技术的缺陷, 提供一种多任务操作模式的综合监控培训 系统, 高效的完成终端设定的各种控制操作的反馈仿真。 0006 为达到上述目的, 本发明采取的技术方案是 : 一种综合监控培训系统, 所述综合监控培训系统包括培训仿真终端, 所述综合监控培 训系统反馈仿真模块包括数据依次循环流动的通用数据交互模块、 生产者线程池、 循环队 列、 消费者主线程, 所述通用数据交互模块接收所述培训仿真终端的指令, 所述生产者线程 池包括两个以上的生产者线程, 。
11、所述生产者线程池将所述数据交互模块中的数据进行指定 逻辑的生产加工, 获得对应的系统数据后存储到所述循环队列中, 所述消费者主线程读取 所述循环队列中等待处理的数据并处理做出对应的响应。 0007 优选的, 所述通用数据交互模块包括 DO 指令池、 AO 指令池、 DI 指令池、 AI 指令池 中的至少两个, 所述生产者线程池包括与所述通用数据交互模块中的指令池对应的 DO 生 产者线程、 AO 生产者线程、 DI 生产者线程、 AI 生产者线程中的至少两个, 所述每个生产者线 程扫描所述通用数据交互模块中划分到自己任务下的相应指令池中的数据并进行加工。 0008 优选的, 所述循环队列为动态。
12、循环队列, 所述循环队列使用动态头指针和动态尾 指针标注队列状态, 供队列使用者判断队列的状态。 0009 优选的, 所述消费者主线程包括两个以上的消费者子线程, 所述消费者主线程周 期性的读取所述循环队列中的数据, 获取到要处理的数据后, 启动其中一个消费者子线程 说 明 书 CN 103823672 A 3 2/5 页 4 处理数据, 而消费者主线程继续周期性的读取所述循环队列中的数据。 0010 优选的, 所述消费者子线程处理数据时, 将数据放置到一个面向切面的流水线上 处理, 以层层响应数据中包括的指令。 0011 优选的, 所述流水线依次包括组控处理流程、 场景处理流程、 模式处理流。
13、程、 程控 处理流程、 单控处理流程。 0012 优选的, 所述综合监控培训系统反馈仿真模块还包括系统控制线程, 所述系统控 制线程接收所述通用数据交互模块中的数据, 并将该数据翻译成可以解读的控制信息发送 到所述生产者线程池、 消费者主线程、 通用数据交互模块。 0013 优选的, 所述通用数据交互模块中开辟有一块单独的控制池区域用来存储所述系 统控制线程对应的控制指令。 0014 优选的, 所述控制指令来源于所述培训仿真终端的手动下发。 0015 本发明的另一目的是提供一种上述综合监控培训系统的实现方法, 以高效的完成 终端设定的各种控制操作的反馈仿真。 0016 为达到上述目的, 本发明。
14、的技术方案是 : 一种上述综合监控培训系统的实现方法, 该实现方法包括如下步骤 : 步骤一 : 所述通用数据交互模块初始化 ; 步骤二 : 所述通用数据交互模块动态获得所述培训仿真终端的指令并存储 ; 步骤三 : 所述生产者线程池周期性的扫描所述通用数据交互模块中对应区域, 获取指 令数据并存储到所述循环队列中, 所述消费者主线程周期性的获取所述循环队列中的数据 并做出对应的响应。 0017 与现有技术相比, 本发明的综合监控培训系统包括两个以上的生产者线程, 每个 生产者线程被设计为扫描划分到自己任务下的通用数据交互模块, 根据通用数据交互模块 中的数据, 进行指定逻辑的生产加工 ; 而消费。
15、者主线程用来周期性的处理生产者线程合成 好的数据并做出对应的相应。 模型的两端各司其职, 互不干扰, 可以提供一种多任务操作方 式的综合监控培训系统。 0018 本发明的综合监控培训系统基于 Linux 系统的多线程编程技术, 引入生产者 / 消 费者异步模型, 实现程序的并发控制, 满足综合监控系统多任务的操作模式。 多线程技术和 多个进程相比, 是一种非常 “节俭” 的多任务操作实现方式, 同时多线程程序作为一种多任 务、 并发的工作方式, 具有应用程序响应迅速、 充分利用多 CPU 系统、 改善程序结构等多种 优点。 附图说明 0019 下面结合附图对本发明的优选实施例作详细说明。其中 。
16、: 图 1 是本发明的可用于轨道交通中的综合监控培训系统的系统结构图。 0020 图 2 是图 1 所示的综合监控培训系统的循环队列的工作原理图。 0021 图 3 是图 1 所示的综合监控培训系统的消费者子线程处理流程图。 具体实施方式 0022 请参见图 1, 本发明的综合监控培训系统 100, 包括培训仿真终端 10、 数据依次循 说 明 书 CN 103823672 A 4 3/5 页 5 环流动的通用数据交互模块20、 生产者线程池30、 循环队列40、 消费者主线程50, 通用数据 交互模块 20 接收培训仿真终端 10 的指令, 生产者线程池 30 包括两个以上的生产者线程, 生。
17、产者线程池 30 将数据交互模块中的数据进行指定逻辑的生产加工, 获得对应的系统数 据后存储到循环队列 40 中, 消费者主线程 50 读取循环队列 40 中等待处理的数据并处理做 出对应的响应。 0023 本实施例中, 教师或者学员通过培训仿真终端 10 手动下发一个或多个操作指令 可以被解释成各种内容, 包括但不限于以下几种 : a) 对单个设备的单点控制, 如一个单纯的 DO/AO ; b) 对设定好的的程序控制的启动, 如 SCADA( 电力监控系统 ) 中的程控卡片 ; c) 对一组控制操作集合的总控制点, 如 BAS( 环控系统 ) 中的一个模式控制 ; d) 对一种用户自定义的场。
18、景模式的控制点, 如综合监控系统高级应用中的联动控 制 ; e) 以上 2 个或者多个控制操作的集合, 即一个操作信号可能包含以上多种意义。 0024 本实施例中, 通用数据交互模块20包括DO指令池21、 AO指令池22、 DI指令池23、 AI 指令池 24 在内的四个指令池。 0025 生产者线程池 30 包括与通用数据交互模块 20 中的指令池对应的 DO 生产者线程 31、 AO 生产者线程 32、 DI 生产者线程 33、 AI 生产者线程 34 在内的四个生产者线程, 每个生 产者线程扫描通用数据交互模块 20 中划分到自己任务下的相应指令池中的数据并进行加 工。 0026 本领。
19、域技术人员可以想到, 通用数据交互模块 20 可以包括其它指令池或者只包 括两个以上的上述指令池 ; 生产者线程池 30 包亦可以包括其它生产者线程或者只包括两 上以上上述生产者线程, 不再一一赘述, 凡采用与本发明技术构思相同或等同的技术方案, 均应涵盖在本发明的保护范围内。 0027 循环队列 40 为动态循环队列 40, 循环队列 40 使用动态头指针和动态尾指针标注 队列状态, 供队列使用者判断队列的状态。 0028 如图2所示, 循环队列40工作原理如下 : 系统在启动时, 会在内存中开辟一段大小 为 Maxsize(设计容量) *Persize(单位存储空间大小) 的存储空间, 头。
20、指针 Front 和尾指 针 Rear 指针都初始化在 0 位置。 0029 插入数据从 Rear 指针位置开始进行, 假设新插入的数据变量为 e, 只需要将 Rear 的位置内写入 e, 然后将 Rear 指针的位置往前加 1 即可, 插入操作可以表示为 class_ queueRear=e;Rear = Rear+1。读取数据则从相反的方向进行, 即在 Front 位置开始, 将 Front 位置内的数据赋值给 e, 然后将 Front 指针的位置往前加 1, 读取的操作可以表示为 e=class_queueFront;Front=Front+1。 0030 为了保持数据的安全性, 在进行。
21、插入和读取操作时, 必须进行一些判断操作。 在插 入操作时, 需要判断队列是否已满, 根据图2, 即判断Rear+1的值是否和Front相等, 相等证 明队列已满, 此时插入操作需要等待 ; 同样在读取操作时, 需要判断队列是否已空, 根据图 2, 即判断 Front 的值和 Rear 的值是否相等, 相等则队列已空, 同样读取操作需要等待。 0031 消费者主线程 50 包括三个消费者子线程, 分别是消费者子线程 51、 52、 53, 当然, 本领域技术人员可以想到, 仅设置两个消费者子线程或者设置三个以上的消费者子线程亦 说 明 书 CN 103823672 A 5 4/5 页 6 可。。
22、通用数据交互模块 20 还包括与接收消费者主线程 50 数据的数据池 26。 0032 消费者主线程50周期性的读取循环队列40中的数据, 获取到要处理的数据后, 启 动其中一个消费者子线程, 例如消费者子线程51处理数据, 而消费者主线程50继续周期性 的读取循环队列 40 中的数据。 0033 本发明的, 综合监控培训系统 100 还包括系统控制线程 60, 系统控制线程 60 接收 通用数据交互模块 20 中的数据, 并将该数据翻译成可以解读的控制信息发送到生产者线 程池 30、 消费者主线程 50。 0034 通用数据交互模块 20 中开辟一块单独的区域, 即控制池 25, 用来存储系。
23、统控制线 程 60 的控制指令。系统运行的控制指令由教师或者学员在对应的界面手动下发。 0035 系统控制线程 60 周期性的扫描通用数据交互模块 20 中的控制池 25, 以获得最新 的操作指令, 在获取指令成功后, 系统控制线程 60 将该指令翻译成生产者线程池 30、 消费 者主线程50、 通用数据交互模块20可以解读的控制信息发送给生产者线程池30、 消费者主 线程 50、 通用数据交互模块 20。各受控线程在线程运行的必经之路上会截获到控制信息, 并做出各种响应动作。通过该方法, 不仅可以对培训仿真终端 10 的指令做出响应, 还可以 实现系统的在线升级或在线更新。 0036 如前所。
24、述, 培训仿真终端 10 的的操作指令多种多样, 如何区分以上各种操作指 令, 并分别给出对应的响应呢?本方法设计的消费者子线程, 给出了一种面向切面的流水 线的数据处理方法, 将对于上文叙述中出现的各种操作解释的响应按照优先级放置到一条 处理的流水线上, 以层层响应数据中包括的指令, 指令可能是单控, 组控, 模式, 时间表, 场 景或者以上几种模式的组合, 从而可以确保对终端操作的准确无误和全面的解释。 0037 具体的, 请参见图 3, 消费者子线程在开始的步骤 S101 后, 进行尝试互斥锁上锁的 步骤 S102, 并在步骤 S103 中判断互斥上锁是否成功, 如果成功, 则在步骤 S。
25、104 中判断是否 收到系统控制线程60的控制指令, 如果没有, 则消费者主线程50子线程依次按照组控处理 流程S105、 场景处理流程S106、 模式处理流程S107、 程控处理流程S108、 单控处理流程S109 这种面向切面的流水线方式处理指令, 在这些步骤完成后, 进行释放互斥锁的步骤 S110, 完 成对互斥锁的释放后, 消费者子线程进入休眠状态 S111, 等待下一次的开始命令 S101。其 中, 在步骤 S104 中, 如果判断收到系统控制线程 60 的控制指令, 则进入执行控制操作的步 骤 S112。 0038 下面描述本发明的综合监控培训系统 100 的实现方法, 该实现方法。
26、包括如下步 骤 : 步骤一、 通用数据交互模块 20 初始化。 0039 通用数据交互模块 20 中的数据在系统启动时, 被划分指令池 / 数据池 / 控制池 3 个部分, 通用数据交互模块 20 中的数据可以由上次系统退出时保留的断面初始化, 也可以 全部初始化为系统初始状态。 0040 步骤二、 通用数据交互模块 20 动态获得培训仿真终端 10 的指令并存储。 0041 通用数据交互模块 20 数据读写模块获得来培训仿真终端 10 的指令, 并存储成对 应的指令数据。 0042 步骤三、 生产者线程池30周期性的扫描通用数据交互模块20中对应区域, 获取指 令数据并存储到循环队列 40 。
27、中, 消费者主线程 50 周期性的获取循环队列 40 中的数据并做 说 明 书 CN 103823672 A 6 5/5 页 7 出对应的响应。 0043 具体的, 生产者线程池30中的DO/DI/AO/AI线程周期性的扫描通用数据交互模块 20 中的对应区域, 根据变位机制获得通用数据交互模块 20 中的指令数据, 通过查询内存数 据库, 获得对应的系统数据后, 存储到循环队列 40 中。 0044 消费者主线程 50 在生产者线程工作的同时也处于工作状态。消费者主线程 50 周 期性的读取循环队列 40 中等待处理的系统数据, 获得一个单位系统数据后, 消费者主线程 50即启动1个子线程处。
28、理该单位数据, 而其余子线程则继续周期性的读取循环队列40中的 数据, 直到循环队列 40 中的数据为空。 0045 子线程处理单元数据的处理过程可如前所述的图 3 中的步骤所示。该处理过程为 一个面向切面的流水线处理过程。通过对一个单位数据的多层分析处理, 逐步实现对该系 统数据身上可能携带的组控, 场景, 模式, 程控, 单控操作信息的处理和操作。 当某一单元数 据处理完成后, 对应的子线程即完成使命而退出。 0046 本发明的综合监控培训系统 100 还包括系统的在线控制升级或更新的步骤, 该步 骤可以随时进行, 具体如下 : 在某些工况下, 综合监控的系统数据库会发生增删改等各种变化,。
29、 培训系统需要根据 教师的控制指令进行在线运行状态的更改。系统控制线程 60 通过周期性的扫描控制池获 得控制指令, 并将控制指令发送给各个受控线程, 各受控线程接受该指令后启动对应的系 统动作, 如重启, 更新或者退出。 0047 本领域技术人员可以想到的是, 本发明还可以有其它的实现方式, 但只要其采用 的技术精髓与本发明相同或相近似, 或者基于本发明做出的变化和替换都在本发明的保护 范围内。 说 明 书 CN 103823672 A 7 1/3 页 8 图 1 说 明 书 附 图 CN 103823672 A 8 2/3 页 9 图 2 说 明 书 附 图 CN 103823672 A 9 3/3 页 10 图 3 说 明 书 附 图 CN 103823672 A 10 。