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

面向多任务周期的数据交互方法和系统、设备及存储介质与流程

2021-12-01 01:41:00 来源:中国专利 TAG:


1.本发明属于控制器数据处理技术领域,具体涉及一种面向多任务周期的数据交互方法和系统、设备及存储介质。


背景技术:

2.分布式控制系统(distributed control system,简称dcs)是一种专门设计的控制系统,用于控制工业过程中复杂、大型的应用。控制器是分布式控制系统的大脑,控制着在地理上分布在控制区域的各个部分,并执行各种设备的控制算法和配置,处理和工程pc之间的网络通信,其通过单工或冗余配置来实现以更好地控制复杂过程的性能。控制器的可靠性、稳定性及高时效性是分布式控制系统的高可靠性、灵活性、协调性和稳定性的保障,因此控制器中任何一种功能的设计和实现必须以可靠性、稳定性和高时效性为前提。
3.随着工业自动化控制水平的不断提高,分布式控制系统中的逻辑组态文件计算过程复杂且对过程控制器间进行数据交互的需求也越来越大,多个过程控制器间数据交互的逻辑也并不简单,控制器之间通信复杂,逻辑难度大,实时性较差,因此在解析逻辑组态文件时,控制器间的引用点如何实时更新是一个需要解决的问题。


技术实现要素:

4.为了解决以上问题,本发明提供了一种面向多任务周期的数据交互方法和系统、设备及存储介质,该方法能够实现本地控制器以运算任务周期为依据高效地向其他源端控制器周期性的请求引用点数据。
5.为达到上述目的,本发明采用了以下技术方案:一种面向多任务周期的数据交互方法,包括以下步骤:获取本地控制器中存储的源端控制器的基本信息;根据所述基本信息向源端控制器请求本地控制器中注册配置的属于所述源端控制器的引用点,并解析所述源端控制器返回的数据应答报文;解析完成后将引用点的数据信息和解析的结果存储至所述引用点对应的控制器间数据交互队列中,并更新引用点的相应标记位;将对应的控制器间数据交互队列中的引用点加载至算法页中的相应位置参与运算,运算完成后清除所述引用点更新的标记位。
6.作为本发明的进一步改进,所述获取本地控制器中存储的源端控制器的基本信息,具体包括:进入控制器间数据交互周期,在本地控制器中遍历存储的域中其他所有的源端控制器,获取本地控制器中存储的源端控制器的基本信息。
7.作为本发明的进一步改进,所述基本信息包括源端控制器的引用点数、源端控制器的ip地址、源端控制器的网络链路状态、源端控制器中的组态变化标记;并对源端控制器的引用点数、网络链路状态和组态变化标记进行判断。
8.作为本发明的进一步改进,所述对源端控制器的引用点数、网络链路状态和组态变化标记进行判断,具体包括:如果源端控制器的引用点数为0,则本地控制器开始遍历下一个源端控制器;若源端控制器的网络链路状态均为坏,遍历存储在本地控制器中的控制器间引用点队列中属于源端控制器的引用点,根据控制器间引用点队列中存储的引用点在本地控制器中的算法页页号及其在算法页数据区的数据偏移获取引用点的更新标记并判断其值:若引用点的更新标记为 1,所述引用点的信息不需要被更新,则跳过所述引用点并遍历控制器间引用点队列中下一个属于源端控制器的引用点;若引用点的更新标记为 0,在本交互周期中将所述引用点的品质置为坏,将所述引用点的品质压入其所在算法任务周期对应的控制器间数据交互队列中,并将所述引用点的更新标记置1,等待后续算法任务周期中的算法任务加载;如果源端控制器的链路状态为好,则向源端控制器请求本地控制器中注册配置的属于所述源端控制器的引用点;若源端控制器的组态变化标记为1,则源端控制器中进行过组态更新操作,本地控制器重新向源端控制器发送请求,请求内容为控制器间引用点队列中所有属于源端控制器的引用点在源端控制器中算法页数据区的数据偏移信息,获取所述数据偏移信息后将新的数据偏移信息压入该引用点在本地控制器对应的算法任务周期的控制器间数据交互队列中,并将引用点的更新标记置1。
9.作为本发明的进一步改进,所述根据所述基本信息向源端控制器请求本地控制器中注册配置的属于所述源端控制器的引用点,具体包括:向源端控制器的数据请求包中压入本地控制器中存储的源端控制器当前的组态校验码,然后遍历本地控制器中控制器间引用点队列中存储的属于源端控制器的引用点;根据控制器间引用点队列中存储的引用点在本地控制器中的算法页页号及其在算法页数据区的数据偏移获取引用点的更新标记、引用点在源端控制器中所属的算法页号和其在算法页中的数据区的数据偏移;当引用点的更新标记被清0时,将所述引用点的所属源端控制器的编号、算法页号和算法页中的数据区的数据偏移压入数据请求包,并遍历控制器间引用点队列中的下一个属于源端控制器的引用点;当该引用点的更新标记为1时,则在此交互周期中不需要被请求,此时跳过该引用点继续遍历控制器间引用队列中属于远端控制器的引用点;将属于该源端控制器的所有点都遍历完成后,根据本地控制器中存储的源端控制器的ip信息向源端控制器发送数据请求报文。
10.作为本发明的进一步改进,所述解析所述源端控制器返回的数据应答报文,具体包括:解析返回的报文的状态,当报文状态为组态校验码不匹配时,将本地控制器中存储的源端控制器的基本信息中的组态更新标记置1,然后返回等待下一交互周期重新请求所属源端控制器的引用点的数据信息并开始遍历下一源端控制器;报文状态正常时,本地控制器遍历源端控制器返回的引用点数据值信息,每解析一个引用点数据值,就将该引用点数据值压入该引用点所在本地控制器算法任务周期对应
的控制器间数据交互队列中等待后续算法任务加载,并将该引用点的更新标记置1;解析完源端控制器返回的数据报文后,开始遍历下一源端控制器。
11.作为本发明的进一步改进,所述运算完成后清除所述引用点更新的标记位,具体为:本地控制器按时序进入各个算法任务周期,将该算法任务周期对应的控制器间数据交互队列中的引用点加载至本算法任务周期中的算法页中的相应位置,参与算法运算,运算完成后清除所述引用点的更新标记,并将其置0。
12.一种面向多任务周期的数据交互系统,包括:获取模块,用于获取本地控制器中存储的源端控制器的基本信息;解析模块,用于根据所述基本信息向源端控制器请求本地控制器中注册配置的属于所述源端控制器的引用点,并解析所述源端控制器返回的数据应答报文;解析完成后将引用点的数据信息和解析的结果存储至所述引用点对应的控制器间数据交互队列中,并更新引用点的相应标记位;运算模块,用于将对应的控制器间数据交互队列中的引用点加载至算法页中的相应位置参与运算,运算完成后清除所述引用点更新的标记位。
13.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述面向多任务周期的数据交互方法的步骤。
14.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述面向多任务周期的数据交互方法的步骤。
15.本发明的有益效果体现在:本发明以运算任务周期为依据高效地请求引用点数据,在控制器间的数据交互周期中,并不是每一个源端控制器中每一个引用点都需要被请求,只有当该源端控制器中有被引用数据时或者该引用点在本地控制器的算法任务周期中的更新标记被清除时(代表请求的数据已经参与运算)才需要重新被请求,这样可提高数据请求效率,降低网络负载,提高了源端数据的可靠性;在数据交互周期中会检测源端控制器中的组态更新情况,当源端控制器中组态有更新时,本地控制器会立即请求新的引用点数据偏移信息并对引用点的数据偏移信息进行更新,使得本地控制器请求的数据更加的可靠。
附图说明
16.图1为本发明面向多任务周期的数据交互方法的流程图;图2为面向多任务周期的数据交互系统结构示意图;图3为电子设备结构示意图。
具体实施方式
17.下面将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。
18.以下详细说明均是示例性的说明,旨在对本发明提供进一步的详细说明。除非另有指明,本发明所采用的所有技术术语与本技术所属领域的一般技术人员的通常理解的含
义相同。本发明所使用的术语仅是为了描述具体实施方式,而并非意图限制根据本发明的示例性实施方式。
19.如图1所示,本发明一种面向多任务周期的数据交互方法,包含以下步骤:获取本地控制器中存储的源端控制器的基本信息;根据所述基本信息向源端控制器请求本地控制器中注册配置的属于所述源端控制器的引用点,并解析所述源端控制器返回的数据应答报文;解析完成后将引用点的数据信息和解析的结果存储至所述引用点对应的控制器间数据交互队列中,并更新引用点的相应标记位;将对应的控制器间数据交互队列中的引用点加载至算法页中的相应位置参与运算,运算完成后清除所述引用点更新的标记位。
20.该方法能够实现本地控制器以算法任务周期为依据高效地向其他源端控制器周期性的请求引用点数据。以算法任务周期为依据高效地请求引用点数据,在数据交互周期中,并不是每一个源端控制器中每一个引用点都需要请求,只有当该源端控制器中有被引用数据时或者该引用点在本地控制器的算法任务周期中的更新标记被更新时才会向源端控制器的请求报文。同时在数据交互周期中会检测源端控制器中的组态更新情况,当源端控制器中组态有更新时,本地控制器会立即请求新的引用点数据偏移信息并对新的数据进行更新,使得本地控制器显示的数据更加的可靠。
21.为使本发明的上述内容、特征和优点能够更加清晰易懂,下面结合附图对本发明的详细实施步骤做具体的说明。
22.实施例如图1所示,本发明一种面向多任务周期的数据交互方法,包含以下步骤:s1,进入控制器间数据交互周期,在本地控制器中遍历存储的域中其他所有的源端控制器i,获取本地控制器中存储的源端控制器i的基本信息;获取过程具体为:基本信息包含本地控制器引用的源端控制器i的引用点数、源端控制器i的ip地址、源端控制器i的网络链路状态、源端控制器i中的组态变化标记cfgflag,并对引用的源端控制器i的引用点数、网络链路状态和组态变化标记cfgflag进行判断。
23.进一步,对引用的源端控制器i的引用点数和网络链路状态和组态变化标记cfgflag进行判断具体包括:如果源端控制器i的被引用点数为0,则本地控制器开始遍历下一个源端控制器即i = i 1;如果源端控制器i的网络链路状态均为坏,遍历存储在本地控制器中的控制器间引用点队列中属于源端控制器i的引用点,根据控制器间引用点队列中存储的引用点在本地控制器中的算法页页号及其在算法页数据区的数据偏移获取引用点的更新标记updataflag并判断其值:若该引用点的更新标记updataflag = 1,证明该引用点的信息不需要被更新,则跳过该引用点并遍历控制器间引用点队列中下一个属于源端控制器i的引用点;若引用点的更新标记updateflag = 0,在本交互周期中将该引用点的品质置为坏后将此引用点的品质压入该引用点所在算法任务周期对应的控制器间数据交互队列中,并将更新标记updateflag置1,等待后续算法任务周期中的算法任务加载;
若源端控制器i的链路状态为好,则进行后续步骤。
24.如果源端控制器i的组态变化标记cfgflag = 1,证明源端控制器i中进行过组态更新操作,本地控制器需要重新向源端控制器i请求控制器间引用点队列中所有属于源端控制器i的引用点在源端控制器i中的算法页数据区的数据偏移信息,获取到所有属于源端控制器i中引用点的数据偏移信息后将新的数据偏移信息压入该引用点在本地控制器对应的算法任务周期的控制器间数据交互队列中,并将更新标记updateflag置1,等待后续算法任务周期中的算法任务加载。
25.s2,根据遍历到的源端控制器的基本信息,本地控制器向源端控制器i请求本地控制器中注册配置的属于源端控制器i的引用点数据并解析源端控制器返回的数据应答报文,解析完成后将引用点的基本信息和解析的结果存储至该引用点所在算法任务周期对应的控制器间数据交互队列中并更新该引用点的相应标记位,处理完成后,本地控制器遍历下一个源端控制器,即i = i 1。
26.作为优选实施例,向源端控制器i请求引用点的数据值具体包括:向源端控制器i的数据请求包中压入本地控制器中存储的源端控制器i当前的组态校验码,然后遍历本地控制器中控制器间引用点队列中存储的属于源端控制器i的引用点;根据控制器间引用点队列中存储的引用点在本地控制器中的算法页页号及其在算法页数据区的数据偏移获取引用点的更新标记updataflag、引用点在源端控制器中所属的算法页号和其在算法页中的数据区的数据偏移,当引用点的更新标记updateflag被清0时,将该引用点的所属源端控制器i的编号、引用点在源端控制器中所属的算法页号和其在算法页中的数据区的数据偏移压入数据请求包,并遍历控制器间引用点队列中的下一个引用点;当该点的更新标记updateflag为1时,则证明属于源端控制器i的引用点在本交互周期中不需要被请求,此时跳过该引用点继续遍历控制器间引用队列中属于该远端控制器i的引用点;将属于该源端控制器i的所有点都遍历完成后,根据本地控制器中存储的源端控制器i的ip信息向源端控制器发送数据请求报文。
27.其中,解析源端控制器i返回的数据报文具体为:解析返回的报文的状态,当报文状态为组态校验码不匹配时,将本地控制器中存储的源端控制器i的基本信息中的组态更新标记cfgflag置1,然后返回等待下一交互周期重新请求所属源端控制器i的引用点的数据信息并开始遍历下一源端控制器;报文状态正常时,本地控制器遍历源端控制器i返回的引用点数据值信息,每解析一个引用点数据值,就将该引用点数据值压入该引用点所在本地控制器算法任务周期对应的控制器间数据交互队列中,等待后续算法任务加载,并将该引用点的更新标记updateflag置1。
28.解析完源端控制器i返回的数据报文后,开始遍历下一源端控制器;s3,本地控制器按时序进入算法任务周期,将该算法任务周期对应的控制器间数据交互队列中的引用点的数据值加载至本算法任务周期中的算法页中的相应位置,参与算法运算,运算完成后清除该引用点的更新标记。
29.作为优选实施例,运算并对控制器间引用点队列中注册的引用点清标记具体为:本地控制器按时序进入各个算法任务周期,将该算法任务周期对应的控制器间数据交互队列中的引用点加载至本算法任务周期中的算法页中的相应位置参与算法运算,运算完成后清除该引用点的更新标记,即当某引用点完成运算时,将该引用点的updateflag置0.。
30.优选的,控制器间数据交互周期为50ms;遍历域中其他控制器的编号i满足0 ≤i ≤ 80。
31.如图2所示,本发明的另一目的在于提出一种面向多任务周期的数据交互系统,包括:获取模块,用于获取本地控制器中存储的源端控制器的基本信息;解析模块,用于根据所述基本信息向源端控制器请求本地控制器中注册配置的属于所述源端控制器的引用点,并解析所述源端控制器返回的数据应答报文;解析完成后将引用点的数据信息和解析的结果存储至所述引用点对应的控制器间数据交互队列中,并更新引用点的相应标记位;运算模块,用于将对应的控制器间数据交互队列中的引用点加载至算法页中的相应位置参与运算,运算完成后清除所述引用点更新的标记位。
32.如图3所示,本发明第三个目的是提供一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述面向多任务周期的数据交互方法的步骤。
33.图中,通讯接口用于接入外部设备,以获取数据。
34.所述面向多任务周期的数据交互方法包含以下步骤:获取本地控制器中存储的源端控制器的基本信息;根据所述基本信息向源端控制器请求本地控制器中注册配置的属于所述源端控制器的引用点,并解析所述源端控制器返回的数据应答报文;解析完成后将引用点的数据信息和解析的结果存储至所述引用点对应的控制器间数据交互队列中,并更新引用点的相应标记位;将对应的控制器间数据交互队列中的引用点加载至算法页中的相应位置参与运算,运算完成后清除所述引用点更新的标记位。
35.本发明第四个目的是提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述面向多任务周期的数据交互方法的步骤。
36.所述面向多任务周期的数据交互方法包含以下步骤:获取本地控制器中存储的源端控制器的基本信息;根据所述基本信息向源端控制器请求本地控制器中注册配置的属于所述源端控制器的引用点,并解析所述源端控制器返回的数据应答报文;解析完成后将引用点的数据信息和解析的结果存储至所述引用点对应的控制器间数据交互队列中,并更新引用点的相应标记位;将对应的控制器间数据交互队列中的引用点加载至算法页中的相应位置参与运算,运算完成后清除所述引用点更新的标记位。
37.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
38.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
39.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
40.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
41.最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
再多了解一些

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

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

相关文献