一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种轨道交通运控系统的客户端多源数据订阅更新方法与流程

2022-04-27 09:02:44 来源:中国专利 TAG:


1.本发明涉及轨道交通技术领域,特别涉及一种轨道交通运控系统的客户端多源数据订阅更新方法、电子设备及计算机可读存储介质。


背景技术:

2.列车自动监控系统、综合监控系统、车辆专家系统是轨道交通重要组成部分,当前主要的运营方式仍是各专业系统相对独立运营管理,交互少量数据。随着行业的发展,市场更倾向于多系统数据融合的运控系统。
3.目前,轨道交通运动系统在实现多系统数据融合时,采用数据转发方式,将不同服务器的数据集中于同一服务器,各客户端从该服务器订阅数据,该方法的实施需为各服务器开发大量数据转发接口,开发周期长,系统灵活性差,由于数据多次转发,系统实时效率低,各系统数据集中于同一服务器,服务器压力大效率低。可见,这种方法无法适应日益发展的行业需求。


技术实现要素:

4.本发明的目的是提供一种轨道交通运控系统的客户端多源数据订阅更新方法、电子设备及计算机可读存储介质,客户端软件基于统一分化的思想对订阅数据按服务器组号进行分组管理,构建组态图符属性与订阅变量的映射关系,根据数据分组和映射关系发起订阅及更新变量和图符。该方法缩减了软件开发周期,优化了数据传输路径,同时提高了数据的实时性,提升了系统的稳定性和灵活性。
5.为了实现以上目的,本发明通过以下技术方案实现:
6.一种轨道交通运控系统的客户端多源数据订阅更新方法,应用于运控系统客户端,包括如下步骤:
7.s1、分组导入各组服务器的订阅变量,其中各组服务器预先规划了对应的组号;
8.s2、按窗口进行图符注册,将图符属性与变量绑定;
9.s3、按窗口、订阅号及分组组号向各组服务器发起订阅;
10.s4、接收各服务器发布的数据,更新变量值及图符状态,实现多数据源的订阅。
11.进一步的,步骤s1还包括导入所述运控系统客户端的用户变量。
12.进一步的,步骤s1具体包括:
13.步骤s11、将不同服务器导出的订阅变量文件存放在不同目录,并建立目录与服务器组号的对应关系;其中,所述订阅变量文件是按照数值类型、变量名的格式存储预先从各服务器导出的所有订阅变量的文档;
14.步骤s12、按照数值类型、变量名的格式将客户端用户变量存于文档,并将用户变量文件存放在另一目录;其中,所述用户变量文件中客户端用户变量分为全局变量和分屏变量,全局变量即在同一客户端多屏状态一致,变量分支为global,分屏变量即在同一客户端多屏状态不同,变量分支为local;
15.步骤s13、从各目录导入变量,不同目录变量分组管理,同组变量依据数据类型分开存储到map中,分屏变量导入时将根据显示器数量复制多份变量,变量名加上后缀#i,以实现多屏状态不同的目的。
16.进一步的,步骤s2按窗口进行图符注册,将图符属性与变量绑定,具体包括:
17.步骤s21,客户端软件首次打开某窗口时,遍历窗口所有组态图符,构建该窗口对应的窗口变量列表,窗口变量列表与窗口名形成对应关系;
18.步骤s22,从导入的变量中搜索窗口变量列表中各变量,并为变量管理类填充组态图符信息,达到组态图符注册的目的;其中所述组态图符信息包括:datamodel指针、组态图符指针、图符属性指针、数据显示方式。
19.进一步的,在另一显示屏打开同一窗口时,由于两视图datamodel相同,故不重复执行步骤s21、s22。
20.进一步的,步骤s22采用红黑树搜索法从导入的变量中搜索窗口变量列表中各变量。
21.进一步的,步骤s3按窗口、订阅号及分组组号向各组服务器发起订阅,具体包括:
22.步骤s31、针对每一窗口,按服务器组号进行分组,构建分组变量列表,各分组变量列表与该窗口具有对应关系;
23.步骤s32、一个窗口申请一个订阅号,依据组号向各服务器发起订阅,订阅信息包括:订阅号,服务器组号,分组变量列表中各变量名、变量索引、数据类型。
24.进一步的,步骤s4接收各服务器发布的数据,更新变量值及图符状态,具体包括:
25.步骤s41、接收到某一服务器变化数据后,根据服务器组号、数据类型、变量索引,分组搜索变量并更新变量值,并记录更新过的变量;
26.步骤s42,遍历所有记录的更新过的变量,根据图符注册信息,更新组态图符状态。
27.进一步的,步骤s4还包括更新客户端用户变量,具体包括:
28.若客户端用户变量有更新,则触发脚本更新变量值,再根据图符注册信息,更新组态图符状态。
29.一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口、存储器通过通信总线完成相互间的通信;
30.存储器,用于存放计算机程序;
31.处理器,用于执行存储器上所存放的程序时,实现上文所述的轨道交通运控系统的客户端多源数据订阅更新方法的步骤。
32.一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上文所述的轨道交通运控系统的客户端多源数据订阅更新方法的步骤。
33.与现有技术相比,本发明具有如下优点:
34.1、本发明通过数据分组导入、图符注册、数据分组订阅更新的方式,实现了多源数据分组管理和多源数据的界面融合;将多专业数据同时呈现给用户,有助于提高用户业务处理效率;
35.2、本发明通过客户端多源数据订阅的方式,减少了数据转发接口开发工作,优化了数据的网络传输路径,减少了因网络故障导致的数据丢失,提升了数据的实时性和系统
稳定性;
36.3、本发明可通过客户端配置订阅的数据源,增强了系统灵活性;
37.4、本发明采用了共享datamodel的方式,减少了工作站内存消耗,减少了图符注册次数,减少了变量需驱动的图符数量,从而提高了客户端软件性能。
附图说明
38.为了更清楚地说明本发明的技术方案,下面将对描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一个实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图:
39.图1为本发明一实施例提供的轨道交通运控系统的客户端多源数据订阅更新方法的流程图;
40.图2为本发明一具体示例的客户端多数据源订阅流程图;
41.图3为本发明中规划服务器组号的方案示例图;
42.图4为本发明中图符注册示例图;
43.图5为本发明中订阅分发和返校示例图;
44.图6为本发明一实施例提供的电子设备的结构框图。
具体实施方式
45.以下结合附图和具体实施方式对本发明提出的方案作进一步详细说明。根据下面说明,本发明的优点和特征将更清楚。需要说明的是,附图采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施方式的目的。为了使本发明的目的、特征和优点能够更加明显易懂,请参阅附图。须知,本说明书所附图式所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容能涵盖的范围内。
46.如图1所示,本发明提供的一种轨道交通运控系统的客户端多源数据订阅更新方法,应用于运控系统客户端,从多个系统的服务器订阅数据,包括如下步骤:
47.s1、分组导入各组服务器的订阅变量,其中各组服务器预先规划了对应的组号;
48.s2、按窗口进行图符注册,将图符属性与变量绑定;
49.s3、按窗口、订阅号及分组组号向各组服务器发起订阅;
50.s4、接收各服务器发布的数据,更新变量值及图符状态,实现多数据源的订阅。
51.进一步的,步骤s1还可以包括导入所述运控系统客户端的用户变量,以便于对客户端的用户变量进行订阅更新。
52.所述的步骤s1具体为:
53.s11、将不同服务器导出的订阅变量文件存放在不同目录,并建立目录与服务器组号的对应关系;其中,所述订阅变量文件是按照数值类型、变量名的格式存储预先从各服务器导出的所有订阅变量的文档;数值类型包括:bit(布尔型)、int(整型)、lng(长整型)、reg(浮点型)、txt(字符型);
54.步骤s22、将不同服务器导出的订阅变量文件存放在工作站不同目录,并建立目录与服务器组号的对应关系;导出各服务器的所有订阅数据,订阅数据以数值类型、变量名的格式存于文档;
55.步骤s12、按照数值类型、变量名的格式将客户端用户变量存于文档,并将用户变量文件存放在另一目录;其中,所述用户变量文件中客户端用户变量分为全局变量和分屏变量,全局变量即在同一客户端多屏状态一致,变量分支为global,分屏变量即在同一客户端多屏状态不同,变量分支为local;
56.步骤s13、从各目录导入变量,不同目录变量分组管理,同组变量依据数据类型分开存储到map中,分屏变量导入时将根据显示器数量复制多份变量,变量名加上后缀#i,以实现多屏状态不同的目的。
57.本发明将同组变量依据数据类型分开存储到map中,一是为了map不会过于臃肿,分开存储可支持更大数据量;二是同数据类型存储在一起能减少内存碎片,源于操作系统内存分配机制和字节对齐机制。
58.所述的步骤s2用于将订阅变量名和用户变量名配置到组态图符属性中,按实际需求是否将不同数据源的变量配置在同一窗口中;图符指窗口控件,以组态的方式配置控制图符属性的变量名;具体如下:
59.步骤s21,客户端软件首次打开某窗口时,遍历窗口所有组态图符,构建该窗口对应的窗口变量列表,窗口变量列表与窗口名形成对应关系;
60.步骤s22,从导入的变量中搜索窗口变量列表中各变量,并为变量管理类填充组态图符信息,达到组态图符注册的目的;组态图符信息包括:datamodel指针、组态图符指针、图符属性指针、数据显示方式。优选地,采用红黑树搜索法从导入的变量中搜索窗口变量列表中各变量。
61.此外,在另一显示屏打开同一窗口时,由于两视图datamodel相同,故不再重复步骤s21、s22。
62.在组态图符注册完成后,窗口变量列表中的所有变量皆已知所属的服务器组号,窗口变量列表按组号将分组,分组时过滤掉客户端用户变量,客户端本地变量无需从服务器订阅,为客户端内部使用。
63.所述的步骤s3具体如下:
64.步骤s31、针对每一窗口,按服务器组号进行分组,构建分组变量列表,各分组变量列表与该窗口具有对应关系;
65.步骤s32、一个窗口申请一个订阅号,依据组号向各服务器发起订阅,订阅信息包括:订阅号,服务器组号,分组变量列表中各变量名、变量索引、数据类型。
66.其中,步骤s31构建分组变量列表与窗口名的对应关系,以便重订阅,当客户端与某组服务器断开重连后,客户端软件从该映射表中获取变量列表,发起重订阅;步骤s32中一个窗口申请一个订阅号,即使该窗口是多服务器数据融合界面。
67.所述的步骤s4具体如下:
68.步骤s41,客户端接收到某一服务器变化数据后,根据服务器组号、数据类型、变量索引,分组搜索变量并更新变量值,并记录更新过的变量,得到变量更新列表;
69.步骤s42,遍历变量更新列表,根据图符注册信息,更新组态图符状态。
70.此外,若客户端用户变量有更新,则是由用户操作软件界面,触发脚本更新变量值,再根据图符注册信息,更新组态图符状态。
71.下面结合图2-5的一具体示例对本发明进行详细说明。
72.首先,参考图2、图3,介绍本发明的组号划分及订阅数据准备过程:
73.步骤100,首先为运控系统中涉及的服务器和工作站(即客户端)统一规划组号,ats服务器组号为group=100,综合监控服务器组号为group=200,车辆调服务器组号为group=300,ats工作站组号为group=1000,综合监控工作站组号为group=2000,车辆专家工作站组号为group=3000,运控工作站(即前述的运控系统客户端)组号为group=4000;组号划分后,各组服务器或工作站已具备唯一身份识别号;图3中组号划分仅是举例说明,不限于此划分情景;
74.步骤101,导出各组服务器的订阅变量数据集存于文档,ats服务器数据集ats_data_set,综合监控服务器数据集iscs_data_set,车辆调服务器数据集rs_data_set;ats工作站客户端软件环境中新建目录ats,放入ats_data_set的文档,配置该工作站订阅group=100的服务器数据,依此类推,运控工作站客户端软件环境中目录ats、iscs、rs分别放入ats_data_set、iscs_data_set、rs_data_set的文档,配置该工作站订阅group=100、group=200、group=300服务器数据;各工作站导入客户端用户变量数据集client_data_set={txt,global.user_name;txt,global.role_name;int,local.menu_lv1;int,local.menu_lv2;

},目录为client;
75.步骤102,工作站客户端软件启动后,根据订阅配置加载对应目录的数据集;运控工作站客户端软件加载目录ats、iscs、rs、client的数据集,且分组管理,与目录对应的管理类的组号group=100、group=200、group=300、group=4000;每组管理类根据不同变量类型创建映射表bit_map、int_map、lng_map、reg_map、txt_map,主键为变量索引;
76.首先参考图2、图4,介绍本发明的图符注册过程,包括以下步骤:
77.步骤103,客户端软件首次打开某窗口时,遍历窗口所有组态图符,搜集所有变量进行注册;图符注册信息包括datamodel指针,组态图符指针,图符属性指针,数据显示方式;
78.步骤104,对于菜单窗口文件menu.doc,菜单项m1、m2、m3、

使用同一客户端用户变量{int,local.menu_lv1}控制,变量每一bit位控制一个菜单;注册时显示器monitor1的m1、m2、m3、

图符信息注册到分屏变量{int,local.menu_lv1#1},而monitor2的注册到{int,local.menu_lv1#2};变量{int,local.menu_lv1}及其分屏变量由组号4000变量管理类var_manager_4000管理;
79.步骤105,对于非菜单窗口文件v1.doc的图符注册,图符c1属性变量{bit,circle_visible;reg,circle_bkclr}来源于服务器group=200,图符信息将注册到组号200的变量管理类var_manager_200,图符c1将注册到变量circle_visible包含的图符列表shape_list和变量circle_bkclr的shape_list中;图符s1属性变量{bit,square_visible;reg,square_bkclr}来源于服务器group=300,图符信息将注册到组号300的变量管理类var_manager_300;图符t1属性变量{txt,global.user_name}为客户端用户变量,图符信息将注册到组号4000的变量管理类var_manager_4000;
80.步骤106,monitor2也打开v1.doc,其datamodel与monitor1的v1.doc相同即公用,
不再重复注册,除非v1.doc中含有分屏变量;图符s2属性变量{bit,square_visible;reg,square_bkclr},故其图符信息也注册到var_manager_300。
81.参考图2、图5,介绍本发明的订阅分发和返校更新过程,包括以下步骤:
82.步骤107,经由步骤104得到v1.doc的变量列表v1_var_list{bit,circle_visible;reg,circle_bkclr;bit,square_visible;reg,square_bkclr;txt,global.user_name},发起订阅请求前,先申请订阅号sub_no=1,订阅号,窗口文档名,变量列表构成一一对应关系;
83.步骤108,根据变量所属服务器的组号对v1_var_list进行分组,得到各组服务器订阅变量分组列表v1_group200_var_list{bit,circle_visible;reg,circle_bkclr},v1_group300_var_list{bit,square_visible;reg,square_bkclr},而客户端用户变量{txt,global.user_name}则被过滤;
84.步骤109,窗口v1.doc向各服务器发起订阅,订阅号为sub_no=1,向服务器group=200订阅数据{bit,circle_visible;reg,circle_bkclr},向服务器group=300订阅数据{bit,square_visible;reg,square_bkclr};工作站发给服务器的订阅信息包括:订阅号,服务器组号,变量名,变量索引,数据类型;
85.步骤110,等待接收各服务器的订阅返校;当接收到服务器group=200的数据返校后,检索变量管理类var_manager_200;再更新订阅号sub_no=1包含的变量组v1_group200_var_list{bit,circle_visible;reg,circle_bkclr},即根据变量circle_visible的类型bit检索布尔型变量映射表bit_map,根据circle_visible的变量索引更新该变量值,变量circle_bkclr亦然;其余服务器组数据更新亦然;
86.步骤111,更新完变量值后,根据注册信息更新变量绑定的图符状态;变量circle_bkclr值变化后,遍历更新其shape_list中的图符状态,即更新monitor1中v1.doc的图符c1的背景颜色,而monitor2中v1.doc的图符c1由于共享datamodel的原因,背景颜色会同步更新;变量square_bkclr值变量后,遍历更新其shape_list中的图符状态,即更新monitor1中v1.doc中图符s1的背景颜色和monitor3中v2.doc的图符s2的背景颜色;
87.步骤112,客户端用户变量订阅更新可理解为客户端软件向自身发起了持久订阅,订阅内容为所有的客户端用户变量client_data_set={txt,global.user_name;txt,global.role_name;int,local.menu_lv1;int,local.menu_lv2;

},更新则由用户操作更新;当用户admin登入客户端软件时,变量global.user_name更新为admin,再参照步骤111更新绑定的图符状态,即更新图符t1、t2的字符串显示admin;当用户切换一级菜单时,即在更新变量local.menu_lv1的值,用户切换到菜单项m1,变量local.menu_lv1对应的bit位置为1,其余bit位置为0;由于该变量是分屏变量,故用户在显示器monitor1操作菜单切换到m1时,实际上更新的是变量local.menu_lv#1。
88.步骤113,当客户端和某组服务器断开连接后重连,客户端软件根据订阅号与服务器订阅变量列表映射关系,将现存所有订阅号向该组服务器发起重订阅,保证重连后,图符状态与变量值一致。
89.以上结合图3-5详细说明了运控工作站客户端订阅ats服务器、综合监控服务器、车辆调服务器的多源数据。可以理解的是,本发明也适用于ats工作站客户端、综合监控工作站客户端,通过配置实现仅订阅ats服务器或仅订阅综合监控服务器。
90.综上所述,本发明提供的轨道交通运控系统的客户端多源数据订阅更新方法,客户端软件基于统一分化的思想对订阅数据按服务器组号和数据类型进行分组管理,构建组态图符属性与订阅变量的映射关系,根据数据分组和映射关系发起订阅及更新变量和图符。该方法缩减了软件开发周期,优化了数据传输路径,同时提高了数据的实时性,提升了系统的稳定性和灵活性。
91.基于相同的发明构思,根据上述轨道交通运控系统的客户端多源数据订阅更新方法实施例,本发明还提供了一种电子设备,如图6所示,包括处理器301、通信接口302、存储器303和通信总线304,其中,处理器301,通信接口302,存储器303通过通信总线304完成相互间的通信,
92.存储器303,用于存放计算机程序;
93.处理器301,用于执行存储器303上所存放的程序时,实现上述轨道交通运控系统的客户端多源数据订阅更新方法的步骤。
94.上述电子设备提到的通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于上述电子设备与其他设备之间的通信。存储器可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non-volatile memory,nvm)。上述的处理器可以是通用处理器。
95.在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述任一轨道交通运控系统的客户端多源数据订阅更新方法的步骤。
96.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
97.尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献