一种信息模型增量式更新的方法、装置及相关产品与流程

文档序号:32743072发布日期:2022-12-30 20:17阅读:28来源:国知局
一种信息模型增量式更新的方法、装置及相关产品与流程

1.本技术涉及控制系统通信领域,尤其涉及一种信息模型增量式更新的方 法、装置及相关产品。


背景技术:

2.opcua信息模型一般为静态模型,其中opcua信息模型是指opcua 服务地址空间模型。但在实际visualfiled(简称vf)的工程实践中,需要在 信息模型构建完毕后对信息模型进行微调,比如添加删除位号、修改位号量 程等。
3.现有技术中,当接收到模型组态变更后,常常需要重新构建信息模型, 时间花销比较大,工程组态效率低。因此,如何提升工程组态效率,降低修 改时间,成为亟待解决的技术问题。


技术实现要素:

4.有鉴于此,本技术提供了一种信息模型增量式更新的方法、装置及相关 产品,旨在提高了工作组态效率,缩短了修改时间。。
5.第一方面,本技术提供了一种信息模型增量式更新的方法,所述方法包 括:
6.响应于接收到位号组态变更通知,统计并标记位号对应的信息模型中节 点的变更状态;所述节点的变更状态包括添加、删除和/或组织结构变动;
7.根据所述节点的变更状态,进行驱动增量式更新回调;
8.根据驱动增量式更新回调结果,调整统计并标记的所述节点的变更状态;
9.根据调整后的所述节点的变更状态,调整所述信息模型。
10.可选的,所述统计并标记对应的信息模型中节点的变更状态,包括:
11.根据第一预设比对算法,比对所述信息模型对应节点的成员和组织引用 关系和增量式更新后新组态中信息模型对应的业务对象父子变化,确定信息 模型组织结构中节点的变更状态;
12.根据第二预设比对算法,通过对象有类型定义引用关系的标记类型比对, 定义引用改变,并标记所述节点的变更状态。
13.可选的,所述方法还包括:
14.响应于所述节点的变更状态为删除,再次对所述节点的变更状态为删除 的节点进行判断;
15.响应于所述节点的变更状态为组织结构变动,将所述删除变更状态调整 为组织结构变动。
16.可选的,所述根据所述信息模型中节点的变更状态,进行驱动增量式更 新回调,包括:
17.响应于驱动位号存在具体变动通知,直接标记驱动位号对应的信息模型 的节点变化;
18.响应于驱动位号没有具体变更通知,将原有驱动位号对应的信息模型节 点标记为删除标签;当重新加载过程中,检查重新加载的位号是否在删除标 签中;
19.响应于重新加载的位号对应的节点的变更状态为删除,将所述重新加载 的位号对应的信息模型节点标记为组织结构变动标签;
20.响应于重新加载的位号对应的节点的变更状态不是删除,将所述重新加 载位号对应的信息模型节点的变更状态调整为增加。
21.可选的,所述根据调整后的所述节点的变更状态,调整所述信息模型, 包括:
22.响应于所述节点的变更状态为添加,添加待添加的位号到信息模型中;
23.响应于所述节点的变更状态为组织结构变动,更新信息模型中所述节点;
24.响应于所述节点的变更状态为删除,删除信息模型中所述节点。
25.可选的,所述方法还包括:
26.缓存被订阅的被删除信息模型节点对应的位号,生成对应的版本号;
27.响应于版本回退,对于标记为恢复的位号,直接恢复订阅。
28.可选的,所述响应于接收到位号组态变更通知之后,所述方法还包括:
29.根据信息模型开放的位号组态表,过滤掉非开放位号的变更。
30.第二方面,本技术提供了一种信息模型增量式更新的装置,该装置包括:
31.响应单元,用于响应于接收到位号组态变更通知,统计并标记位号对应 的信息模型中节点的变更状态;所述节点的变更状态包括添加、删除和/或组 织结构变动;
32.驱动回调单元,用于根据所述节点的变更状态,进行驱动增量式更新回 调;
33.节点状态调整单元,用于根据驱动增量式更新回调结果,调整统计并标 记的所述节点的变更状态;
34.信息模型调整单元,用于根据调整后的所述节点的变更状态,调整所述 信息模型。
35.第三方面,本技术实施例提供了一种电子设备。该设备包括:存储器和 处理器。
36.存储器用于用于存储程序代码,并将程序代码传输给处理器。
37.处理器:用于根据程序代码中的指令执行第一方面中任一项所述信息模 型增量式更新的方法步骤。
38.第四方面,本技术实施例提供了一种计算机可读存储介质,所述计算机 可读存储介质上存储代码,所述代码被处理器执行时实现如第一方面中任一 项所述信息模型增量式更新的方法的步骤。
39.本技术提供了一种信息模型增量式更新的方法、装置及相关产品。在执 行所述方法时,对于信息模型接收到位号组态变更通知,首先统计并标记位 号对应节点的变更状态。然后根据节点的变更状态,进行驱动增量式更新回 调。根据回调结果,重新调整节点变更状态。根据调整后的节点变更状态, 调整信息。如此,通过先统计位号对应节点的变更状态,再通过驱动回调, 对位号对应节点的变更状态进行调整,提升确定节点的变更状态的准确度。 并且通过位号对应节点的变更状态,修改信息模型中对应节点,不需要将信 息模型推导重建,提高了工作组态效率,缩短了修改时间。
附图说明
40.为更清楚地说明本实施例或现有技术中的技术方案,下面将对实施例或 现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中 的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付 出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
41.图1为本技术实施例提供的一种信息模型增量式更新的方法应用场景示 意图;
42.图2为本技术实施例提供的一种信息模型增量式更新的方法流程图;
43.图3为本技术实施例提供的一种比对策略的示例性图;
44.图4为本技术实施例提供一种节点二次校验的结果示意图;
45.图5为本技术实施例提供的一种驱动回调方法的流程图;图6为本技术实施例提供的另一种信息模型增量式更新的方法流程图;图7为本技术实施例提供的一种信息模型增量式更新的装置结构示意图。
具体实施方式
46.本技术说明书和权利要求书及附图说明中的术语“第一”、“第二”“第三”、 和“第四”等是用于区别不同对象,而不是用于限定特定顺序。
47.在本技术实施例中,“作为示例”或者“例如”等词用于表示作例子、例证或 说明。本技术实施例中被描述为“作为示例”或者“例如”的任何实施例或设计方 案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使 用“作为示例”或者“例如”等词旨在以具体方式呈现相关概念。
48.本技术的实施方式部分使用的术语仅用于对本技术的具体实施例进行解 释,而非旨在限定本技术。
49.正如前文所述,目前opcua信息模型属于静态模型,在实际vf工程实 践中,比如对信息模型进行微调,常常需要重新构建信息模型,时间花销比 较大,且工程组态效率较低。
50.基于此,本技术提出当信息模型接收组态变更通知后,通过统计并标记 位号对应信息模型节点的变更状态,根据标记节点的变更状态,调整信息模 型。如此,针对不同节点的变更状态,进行不同节点调整,而不需要将信息 模型推导模型,以此提高工作组态的效率,缩短修改时间。此外,为使统计 和标记的节点变更状态准确度更高,先统计,再通过驱动回调进行变更状态 调整。
51.为了使本领域技术人员更好的理解本技术,下面对专业术语进行解释。
52.ref:为opcua信息模型的节点引用关系;ref/component为成员引用关 系;ref/organize为信息模型节点之间有组织的引用关系,即组织引用关系; ref/typedefinition为信息模型节点之间有类型定义的引用关系,比如地址空 间对象实例节点和对象类型节点关系。
53.session:会话,一个opcua客户端连入opcua服务端,服务端会为客 户端创建一个会话,在此会话上为客户端提供服务。
54.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实 施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然, 所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本申 请中的实施例,本领域普通技术人
员在没有做出创造性劳动前提下所获得的 所有其他实施例,都属于本技术保护的范围。
55.参见图1,为本技术实施例提供的一种信息模型增量式更新的方法应用场 景示意图。该方法以opcua信息模型为基础,可应用在vf工程实践中。具 体的,包括vf驱动模块,和vf opcua服务地址空间模型(opcua信息模 型)两部分。其中,vf驱动模块驱动位号变更通知,即driver部分为驱动, tag部分为位号表。vf驱动的位号表根据预设映射关系,在vf opcua服务 地址空间模型形成用于表示位号的节点表,为tagmodel部分。且tagmodel关 联类型定义typedefine节点。tagmodel节点通过成员引用关系,组成stationmodel,即控制栈节点类型。而station model通过成员引用关系,形成controlmodel,即操作域节点。即信息模型各节点通过树形图形式的组织结构连接。
56.在驱动回调过程中,vf opcua服务地址空间模型中的节点变更,映射 到对应的vf驱动的位号中,进行位号驱动更新。在本技术实施例中,信息模 型增量式更新的方法是在vf驱动和vf opcua服务地址空间模型中相互调 整映射实现的。
57.显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。 基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下 所获得的所有其他实施例,都属于本技术保护的范围。
58.参见图2,为本技术实施例提供的一种信息模型增量式更新的方法流程 图。该方法应用于opcua模型,该方法至少包括以下步骤:
59.s201:响应于接收到位号组态变更通知,统计并标记位号对应的信息模 型中节点的变更状态。
60.在本技术实施例中,对于opcua模型,当接收到vf驱动提供的位号组 态变更通知时,需要首先统计并标记位号对应的信息模型中节点的变更状态。 在本技术实施例中,变更状态包括添加、删除和/或组织结构变动。
61.在本技术实施例中,可以通过第一预设比对算法,比对信息模型对应节 点的成员引用关系和组织引用关系和增量式更新后新组态信息模型对应的vf 业务对象父子变化,确定信息模型组织结构中节点的变更状态。在本技术实 施例中,第一预设比对算法,可以为tree diff算法,也可以为其他能够实现 节点比对的算法。
62.参见图3,为本技术实施例提供的一种比对策略的示例性图。其中,old 为信息模型对应节点的成员引用关系和组织引用关系,new为增量式更新后 新组态信息模型对应的vf业务对象的父子变化。对比old和new,可以发现 节点bcd变更状态为删除。节点a的变更状态为组织结构变动。
63.在本技术实施例中,根据第二预设比对算法,通过对象有类型定义引用 关系的标记类型比对,定义引用改变,并标记节点的变更状态。具体的,对 于变更状态为添加和删除的,标记为add标签和remove标签,对于变更状态 为组织结构变动,标记为edit标签。在本技术实施例中,第二预设比对算法 可以为define diff算法,也可以为其他能够实现标记的算法。
64.在本技术实施例中,对于标记为remove标签的节点,可以做二次校验, 再一次确定节点的变更状态。如果节点的变更状态为组织结构变动,则将 remove标签变更为edit标签,即变更状态调整为组织结构变动。如此,可以 进一步提升标注准确度。参见图4,为本技术实施例提供一种节点二次校验的 结果示意图。具体的,原来tag001为删除标签,通过二
次检验之后,发现该 节点对应的变更状态为组织变更,将信息模型的对应节点标签调整为edit标 签。
65.在本技术实施例中,考虑到有些位号具有安全性要求,可以根据opcua 模型开放的位号组态表,过滤掉非开放位号的变更。
66.s202:根据信息模型中节点的变更状态,进行驱动增量式更新回调。
67.统计并标记完成信息模型中节点的变更状态之后,根据节点的变更状态, 可以进行vf驱动增量式更新回调。
68.在本技术实施例中,可以通过将新位号表重新加载一遍进行操作。这一 种方式驱动回调速度较快,但操作复杂。也可以通过回调通知观察这位号如 何变更实现,这种方式回调速度较慢,但操作简单。
69.在本技术实施例中,还可以通过两者方式共同作用进行驱动回调。关于 具体驱动回调方式,在下文图5中进行详细论述。
70.s203:根据驱动增量式更新回调结果,调整统计并标记的信息模型中节 点的变更状态。
71.根据vf驱动增量式更新回调结果,对统计并标记的信息模型中的节点的 变更状态进行调整。示例性说明:回调之前,统计的信息模型的某节点变更 状态为删除,回调之后发现该节点的变更状态为组织结构变动。因此,需要 根据回调结果对信息模型中对应的节点进行变更状态调整。
72.s204:根据调整后的信息模型节点的变更状态,调整信息模型。
73.在本技术实施例中,获取调整后的信息模型中节点的变更状态之后,根 据该变更状态,对信息模型进行调整。即通过修改节点的引用,重新构建组 织结构。
74.在本技术实施例中,如果节点标记的变更状态为增加,则将待添加的位 号添加到地址空间。如果节点标记的变更状态为组织结构变动,则更新模型 中所述节点。如果节点的变更状态为删除,则删除模型中的节点。
75.本技术实施例提供一种信息模型增量式更新的方法,对于信息模型接收 到位号组态变更通知,首先统计并标记位号对应节点的变更状态。然后根据 节点的变更状态,进行vf驱动增量式更新回调。根据回调结果,重新调整节 点变更状态。根据调整后的节点变更状态,调整信息。如此,通过先统计位 号对应节点的变更状态,再通过驱动回调,对位号对应节点的变更状态进行 调整,提升确定节点的变更状态的准确度。并且通过位号对应节点的变更状 态,修改信息模型中对应节点,不需要将信息模型推导重建,提高了工作组 态效率,缩短了修改时间。
76.参加图5,为本技术实施例提供的一种驱动回调方法的流程图,该方法至 少包括以下步骤:
77.s501:判断vf驱动位号是否存在具体变动通知,如果是,进入s502。 否则,进入s503。
78.s502:直接标记变化位号对应的信息模型的节点变化。
79.s503:将原有驱动位号对应的信息模型的节点标记为remove标签。
80.其中,remove标签表示节点对应的变更状态为删除。
81.s504:重新加载新位号,在重新加载过程中,判断新位号是否在remove 标签中。如
果是,进入s505。否则进入s506。
82.s505:将标签改为edit标签。
83.s506:将标签改为add标签。
84.其中,edit标签表示节点组织结构变动,即标识此位号的属性要重新加载。 add则表示此位号的属性为添加。在本技术实施例中,没有直接从地址空间 删除此节点,然后重新添加方式,是因为opcua模型建立时,会在地址空间 上绑定很多非业务应用关系。如果删除此节点,要递归遍历并检查此节点所 有引用关系,并确认其引用关系不被使用,耗时较多。
85.参见图6,为本技术实施例提供的另一种信息模型增量式更新的方法流程 图。该方法应用于opcua模型。该方法至少包括以下步骤:
86.s601:接收位号组态变更通知。
87.s602:信息模型进入组态更新状态,统计信息模型中的节点变更状态。
88.对于控制域、操作域等节点更新,采用tree diff算法比对信息模型对应 节点的hascomponet和organize引用关系和增量更新后新组态中信息模型对 应的vf业务对象父子变化,确定节点变更状态。
89.s603:根据节点变更状态,通过第二预设比对算法进行标注。
90.其中,使用add表示节点变更状态为增加,remove表示节点变更状态为 删除。标签为edit表示节点变更状态为组织结构变动。具体标记方式可以通 过第二预设比对算法,比如define diff算法。
91.s604:将标签为remove的节点进行二次校验,确定节点的变更状态。
92.如果节点为删除状态,则标签不变。否则,节点的标签变为edit标签。
93.s605:根据vf驱动位号是否存在具体变动通知,进行驱动回调。
94.具体回调方法见图5。这里不再论述。
95.s606:根据驱动回调结果,调整节点变更状态和标注标签。
96.s607:保存计数未清零的订阅。
97.示例性说明:客户端订阅一组位号,变更通知发布之后,然后再回退, 保持未清零的订阅记数,回退修改后,订阅可以直接恢复。
98.在本技术实施例中,s606和s607步骤可以同时进行。
99.s608:信息模型收集完全部的变更信息之后,修改组织节点的引用,重 建组织结构。
100.节点标签为add,将待添加的位号添加到信息模型。节点标签为edit,更 新位号对应的信息模型。节点标签为remove,删除信息模型的节点。
101.s609:更新或删除类型定义。
102.s610:检验并检查版本。如果版本回退,检查在激活态的会话列表和响 应的会话订阅的位号组,对标记为回复的位号,通过vf驱动回复订阅。
103.在本技术实施例提供的一种信息模型增量式更新的方法中,缓存被订阅 的被删除的信息模型节点对应的位号,并生成版本号,在组态回退时,后台 回复订阅,可以实现客户端无扰订阅阅读。
104.此外,本技术实施例还提供了一种信息模型增量式更新的装置。参见图7, 为本申
请实施例提供的一种信息模型增量式更新的装置700结构示意图。应 用于opcua,装置700包括:
105.响应单元701,用于响应于接收到位号组态变更通知,统计并标记位号对 应的信息模型中节点的变更状态;所述节点的变更状态包括添加、删除和/或 组织结构变动;
106.驱动回调单元702,用于根据所述信息模型中节点的变更状态,进行vf 驱动增量式更新回调;
107.节点状态调整单元703,用于根据vf驱动增量式更新回调结果,调整所 述统计并标记的信息模型中节点的变更状态;
108.信息模型调整单元704,用于根据调整后的所述信息模型节点的变更状 态,调整所述信息模型。
109.可选的,响应单元701包括:
110.确定模块,用于根据第一预设比对算法,比对所述信息模型对应节点的 成员和组织引用关系和增量式更新后新组态中信息模型对应的vf业务对象 父子变化,确定信息模型组织结构中节点的变更状态;
111.标记模块,用于根据第二预设比对算法,通过对象有类型定义引用关系 的标记类型比对,定义引用改变,并标记所述节点的变更状态。
112.可选的,装置700还包括:
113.再次校验单元,用于响应于所述节点的变更状态为删除,再次对所述节 点的变更状态为删除的节点进行判断;用于响应于所述节点的变更状态为组 织结构变动,将所述删除变更状态调整为组织结构变动。
114.可选的,驱动回调单元702,包括:
115.第一响应模块,用于响应于vf驱动位号存在具体变动通知,直接标记驱 动位号对应的信息模型的节点变化;
116.第二响应模块,用于响应于vf驱动位号没有具体变更通知,将原有驱动 位号对应的信息模型节点标记为删除标签;当重新加载过程中,检查重新加 载的位号是否在删除标签中;
117.第三响应模块,用于响应于重新加载的位号对应的节点的变更状态为删 除,将所述重新加载的位号对应的信息模型节点标记为组织结构变动标签;
118.第四响应模块,用于响应于重新加载的位号对应的节点的变更状态不是 删除,将所述重新加载位号对应的信息模型节点的变更状态调整为增加。
119.可选的,信息模型调整单元704具体用于:
120.响应于所述节点的变更状态为添加,添加待添加的位号到信息模型中;
121.响应于所述节点的变更状态为组织结构变动,更新信息模型中所述节点;
122.响应于所述节点的变更状态为删除,删除信息模型中所述节点。
123.可选的,装置700还包括订阅恢复单元,用于缓存被订阅的被删除信息 模型节点对应的位号,生成对应的版本号;响应于版本回退,对于标记为恢 复的位号,直接恢复订阅。
124.可选的,装置700还包括过滤单元,用于根据信息模型开放的位号组态 表,过滤掉非开放位号的变更。
125.本技术提供了一种信息模型增量式更新的装置。其中,响应单元701对 于信息模型接收到位号组态变更通知,首先统计并标记位号对应节点的变更 状态。驱动回调单元702,根据节点的变更状态,进行vf驱动增量式更新回 调。节点状态调整单元703,根据回调结果,重新调整节点变更状态。信息模 型调整单元704,根据调整后的节点变更状态,调整信息。如此,通过先统计 位号对应节点的变更状态,再通过驱动回调,对位号对应节点的变更状态进 行调整,提升确定节点的变更状态的准确度。并且通过位号对应节点的变更 状态,修改信息模型中对应节点,不需要将信息模型推导重建,提高了工作 组态效率,缩短了修改时间。
126.本技术实施例还提供了一种电子设备。该设备包括:存储器和处理器。
127.存储器用于用于存储程序代码,并将程序代码传输给处理器。
128.处理器:用于根据程序代码中的指令执行上述一种信息模型增量式更新 的方法的步骤。
129.本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序, 该程序被处理器执行时实现本技术实施例的一种信息模型增量式更新的方 法。
130.在实际应用中,所述计算机可读存储介质可以采用一个或多个计算机可 读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算 机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电 磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机 可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电 连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、 可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储 器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本 实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该 程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
131.计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数 据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用 多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算 机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介 质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置 或者器件使用或者与其结合使用的程序。
132.计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但 不限于无线、电线、光缆、rf等等,或者上述的任意合适的组合。
133.可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的 计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如 java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或 类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在 用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分 在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程 计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan) 或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利 用因特网服务提供商来通过因特网连接)。
134.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同 相似的
部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同 之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描 述得比较简单,相关之处参见方法实施例的部分说明即可。可以根据实际的 需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通 技术人员在不付出创造性劳动的情况下,即可以理解并实施。
135.以上所述仅是本技术示例性的实施方式,并非用于限定本技术的保护范 围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1