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

风电场的多进程运行方法及装置与流程

2021-10-23 01:37:00 来源:中国专利 TAG:公开 装置 进程 风力发电 运行


1.本公开涉及风力发电技术领域。更具体地,本公开涉及一种风电场的多进程运行方法及装置。


背景技术:

2.随着新能源发电机组渗透率的不断增加,在高渗透率区域电网内,风电机组的安全性、稳定性引起了广泛关注。电网实际运行中,当电量消耗与电量供给不匹配时,即可引起电网频率出现变化较小、变动周期较短的微小分量,这种频率扰动主要靠汽轮发电机组本身的调节系统直接自动调整汽轮机调门完成电网负荷补偿,修正电网频率的波动,这个过程即为发电机组的一次调频。
3.由于新能源并网区域往往缺乏本地负荷和常规电源支撑,新能源发出的电能需要经过长距离送至负荷中心,造成送电通道随新能源出力的变化而无功电压波动较大。因此对新能源场站的无功控制和电压稳定性提出了越来越高的要求。
4.因此对于新能源电厂,一次调频和无功电压控制被很多电网同时需求。


技术实现要素:

5.本公开的示例性实施例在于提供一种风电场的多进程运行方法及装置,以提高风电场的多进程的运行效率。
6.根据本公开的示例性实施例,提供一种风电场的多进程运行方法,由通信主站进程服务器执行。所述风电场的多进程运行方法包括:在针对风电场中的应用设备的一个轮询中,采集风电场运行数据并且基于采集的风电场运行数据对本地数据库进行更新;响应于所述一个轮询结束,基于更新后的本地数据库对存储在共享内存中的关于风电场运行数据的共享数据库进行更新;响应于在所述一个轮询结束后共享内存中的关于风电场运行命令的共享命令库被应用进程服务器更新,从共享内存中获取更新后的共享命令库;并且基于更新后的共享命令库发送风电场运行命令。
7.可选地,共享数据库和本地数据库可具有预设数据结构,在所述预设数据结构中,可包括具有逻辑关系的设备文件、点表文件和线性表,在线性表、设备文件和点表文件中按照顺序存储方式进行数据存储。
8.可选地,基于采集的风电场运行数据对本地数据库进行更新的步骤可包括:根据设备文件、点表文件和线性表之间的逻辑关系,查找采集的风电场运行数据在本地数据库的线性表中的相应地址;并且按照查找的相应地址将采集的风电场运行数据填充到本地数据库的线性表中。
9.可选地,设备文件可包括设备序号、设备名、变压器号、套接字、通信方式关键参数、报文收发关键参数、文件关联、以及设备最大最小点索引中的至少一个。点表文件可包括点名、索引、地址偏置、读写类型、读写长度、读写地址、系数、以及死区中的至少一个。
10.可选地,在线性表和点表文件中可依次按照定值、策略、opcua设备数据、opcua设
备之外的设备数据的先后顺序排列数据。
11.可选地,发送风电场运行命令的步骤可包括:根据设备文件和点表文件之间的逻辑关系,通过先入先出fifo循环队列按照单个命令顺序发送或者多命令一起发送的方式将风电场运行命令发送到相应的设备。
12.可选地,发送风电场运行命令的步骤可包括:通过分级数据处理方式对获取的共享命令库中的风电场运行命令进行处理并发送。
13.可选地,通过分级数据处理方式对获取的共享命令库中的风电场运行命令进行处理的步骤可包括:在当前时间和上一次接收快速命令的时间之间的时间差大于第一时长时,从获取的共享命令库中读取快速命令,其中,快速命令要求相应的设备以超过预设速度的速度执行命令;在当前时间和上一次接收慢速命令的时间之间的时间差大于第二时长时,从获取的共享命令库中读取慢速命令,其中,慢速命令不要求相应的设备以超过预设速度的速度执行命令。
14.根据本公开的示例性实施例,提供一种风电场的多进程运行方法,由应用进程服务器执行。所述风电场的多进程运行方法包括:在由通信主站进程服务器执行的针对风电场中的应用设备的一个轮询中,从共享内存中获取关于风电场运行数据的共享数据库,并且基于获取的共享数据库对本地数据库进行更新;从更新后的本地数据库获取风电场运行数据;基于获取的风电场运行数据产生风电场运行命令,并且基于产生的风电场运行命令对本地命令库进行更新;并且响应于所述一个轮询结束,基于更新后的本地命令库对存储在共享内存中的关于风电场运行命令的共享命令库进行更新。
15.可选地,共享数据库和本地数据库可具有预设数据结构,从更新后的本地数据库获取的数据以预设的树形结构排列。
16.可选地,从更新后的本地数据库获取风电场运行数据的步骤可包括:通过树形结构中叶节点的名称从更新后的本地数据库中查找点表索引;并且根据所述点表索引查找更新后的本地数据库的线性表中的相应地址的数据,并将所述线性表中的相应地址的数据作为所述叶节点的值填充到所述叶节点。
17.根据本公开的示例性实施例,提供一种风电场的多进程运行装置,包括:本地数据库更新单元,被配置为在针对风电场中的应用设备的一个轮询中,采集风电场运行数据并且基于采集的风电场运行数据对本地数据库进行更新;共享数据库更新单元,被配置为响应于所述一个轮询结束,基于更新后的本地数据库对存储在共享内存中的关于风电场运行数据的共享数据库进行更新;共享命令库获取单元,被配置为响应于在所述一个轮询结束后共享内存中的关于风电场运行命令的共享命令库被应用进程服务器更新,从共享内存中获取更新后的共享命令库;和命令发送单元,被配置为基于更新后的共享命令库发送风电场运行命令。
18.可选地,所述风电场的多进程运行装置集成设置在风电场的vsg中。
19.可选地,共享数据库和本地数据库具有预设数据结构,在所述预设数据结构中,包括具有逻辑关系的设备文件、点表文件和线性表,在线性表、设备文件和点表文件中按照顺序存储方式进行数据存储。
20.可选地,本地数据库更新单元可被配置为:根据设备文件、点表文件和线性表之间的逻辑关系,查找采集的风电场运行数据在本地数据库的线性表中的相应地址;并且按照
查找的相应地址将采集的风电场运行数据填充到本地数据库的线性表中。
21.可选地,设备文件可包括设备序号、设备名、变压器号、套接字、通信方式关键参数、报文收发关键参数、文件关联、以及设备最大最小点索引中的至少一个。点表文件可包括点名、索引、地址偏置、读写类型、读写长度、读写地址、系数、以及死区中的至少一个。
22.可选地,在线性表和点表文件中可依次按照定值、策略、opcua设备数据、opcua设备之外的设备数据的先后顺序排列数据。
23.可选地,命令发送单元可被配置为:根据设备文件和点表文件之间的逻辑关系,通过先入先出fifo循环队列按照单个命令顺序发送或者多命令一起发送的方式将风电场运行命令发送到相应的设备。
24.可选地,命令发送单元可被配置为:通过分级数据处理方式对获取的共享命令库中的风电场运行命令进行处理并发送。
25.可选地,命令发送单元还可被配置为:在当前时间和上一次接收快速命令的时间之间的时间差大于第一时长时,从获取的共享命令库中读取快速命令,其中,快速命令要求相应的设备以超过预设速度的速度执行命令;在当前时间和上一次接收慢速命令的时间之间的时间差大于第二时长时,从获取的共享命令库中读取慢速命令,其中,慢速命令不要求相应的设备以超过预设速度的速度执行命令。
26.根据本公开的示例性实施例,提供一种风电场的多进程运行装置,包括:本地数据库更新单元,被配置为在由通信主站进程服务器执行的针对风电场中的应用设备的一个轮询中,从共享内存中获取关于风电场运行数据的共享数据库,并且基于获取的共享数据库对本地数据库进行更新;数据获取单元,被配置为从更新后的本地数据库获取风电场运行数据;本地命令库更新单元,被配置为基于获取的风电场运行数据产生风电场运行命令,并且基于产生的风电场运行命令对本地命令库进行更新;和共享命令库更新单元,被配置为响应于所述一个轮询结束,基于更新后的本地命令库对存储在共享内存中的关于风电场运行命令的共享命令库进行更新。
27.可选地,所述风电场的多进程运行装置集成设置在风电场的vsg中。
28.可选地,共享数据库和本地数据库可具有预设数据结构,从更新后的本地数据库获取的数据以预设的树形结构排列。
29.可选地,数据获取单元可被配置为:通过树形结构中叶节点的名称从更新后的本地数据库中查找点表索引;根据所述点表索引查找更新后的本地数据库的线性表中的相应地址的数据,并将所述线性表中的相应地址的数据作为所述叶节点的值填充到所述叶节点。
30.根据本公开的示例性实施例,提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被处理器执行时,实现根据本公开的示例性实施例的风电场的多进程运行方法。
31.根据本公开的示例性实施例,提供一种计算机设备,包括:处理器;存储器,存储有计算机程序,当所述计算机程序被处理器执行时,实现根据本公开的示例性实施例的风电场的多进程运行方法。
32.根据本公开的示例性实施例的风电场的多进程运行方法及装置,通过在针对风电场中的应用设备的一个轮询中,采集风电场运行数据并且基于采集的风电场运行数据对本
地数据库进行更新;响应于所述一个轮询结束,基于更新后的本地数据库对存储在共享内存中的关于风电场运行数据的共享数据库进行更新;响应于在所述一个轮询结束后共享内存中的关于风电场运行命令的共享命令库被应用进程服务器更新,从共享内存中获取更新后的共享命令库;并且基于更新后的共享命令库发送风电场运行命令,从而提高了风电场的多进程的运行效率。
33.将在接下来的描述中部分阐述本公开总体构思另外的方面和/或优点,还有一部分通过描述将是清楚的,或者可以经过本公开总体构思的实施而得知。
附图说明
34.通过下面结合示例性地示出实施例的附图进行的描述,本公开的示例性实施例的上述和其他目的和特点将会变得更加清楚,其中:
35.图1示出根据本公开的示例性实施例的由通信主站进程服务器执行的风电场的多进程运行方法的流程图;
36.图2示出根据本公开的示例性实施例的设备文件的示例;
37.图3示出根据本公开的示例性实施例的点表文件的示例;
38.图4示出根据本公开的示例性实施例的设备文件、点表文件和线性表之间的逻辑关系;
39.图5示出根据本公开的示例性实施例的由通信主站进程服务器执行的风电场的多进程运行方法的流程图;
40.图6示出根据本公开的示例性实施例的树形结构的示例;
41.图7示出根据本公开的示例性实施例的风电场的进程间通信方式的框架图;
42.图8示出根据本公开的示例性实施例的风电场的多进程运行装置的框图;
43.图9示出根据本公开的示例性实施例的风电场的多进程运行装置的框图;和
44.图10示出根据本公开的示例性实施例的计算机设备的示意图。
具体实施方式
45.现将详细参照本公开的示例性实施例,所述实施例的示例在附图中示出,其中,相同的标号始终指的是相同的部件。以下将通过参照附图来说明所述实施例,以便解释本公开。
46.数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。
47.顺序文件是指在物理结构中记录排列的先后次序与在逻辑结构中记录排列的先后次序一致的文件。
48.顺序查找法是指从文件的第一个记录开始,将用户给出的关键字值与当前被查找记录的关键字值进行比较,若匹配,则查找成功,给出被查到的记录在文件中的位置,查找结束。若所有n个记录的关键字值都已比较,不存在与用户要查的关键字值匹配的记录,则查找失败,给出信息0。
49.线性表是由n个具有相同特性的数据元素的有限序列。
50.顺序存储是指用一组地址连续的存储单元依次存储线性表的数据元素。顺序存储也被称为线性表的顺序存储结构或顺序映像(sequential mapping)。顺序存储以“物理位置相邻”来表示线性表中数据元素间的逻辑关系,可随机存取表中任一元素。
51.循环队列是指把队列(数组)设想成头尾相连的循环表,使得数组前部由于删除操作而导致的无用空间尽可能得到重复利用。
52.树是指由n30个结点组成的有穷集合(不妨用符号d表示)以及结点之间关系组成的集合构成的结构,记为t。当n=0时,称t为空树。在任何一棵非空的树中,有一个特殊的结点称之为该树的根结点;其余结点d

{t}被分割成m>0个不相交的子集d1、d2、
……
、dm,其中,每一个子集di分别构成一棵树,称之为t的子树。
53.进程间通信(ipc,interprocess communication)是指在不同进程之间传播或交换信息。ipc的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、socket、streams等,其中,socket和streams支持不同主机上的两个进程ipc。
54.共享内存(shared memory)是指两个或多个进程共享一个给定的存储区。
55.信号量(semaphore)是一个计数器,用于实现进程间的互斥与同步,而不是用于存储进程间通信数据。
56.图1示出根据本公开的示例性实施例的由通信主站进程服务器执行的风电场的多进程运行方法的流程图。
57.参照图1,在步骤s101,在针对风电场中的应用设备的一个轮询中,采集风电场运行数据并且基于采集的风电场运行数据对本地数据库进行更新。
58.在本公开的示例性实施例中,本地数据库可具有预设数据结构,在预设数据结构中可包括具有逻辑关系的设备文件、点表文件和线性表,在线性表、设备文件和点表文件中可按照顺序存储方式进行数据存储。
59.在本公开的示例性实施例中,设备文件可包括设备序号、设备名、变压器号、套接字、通信方式关键参数、报文收发关键参数、文件关联、以及设备最大最小点索引中的至少一个。这里,套接字可以为主关键字,设备序号可以为次关键字。例如,图2示出根据本公开的示例性实施例的设备文件的示例。在图2中,设备文件包括设备序号、设备名、变压器号、套接字、通信方式关键参数、报文收发关键参数、设备最大最小点索引等信息、以及文件关联。
60.在本公开的示例性实施例中,点表文件可包括点名、索引、地址偏置、读写类型、读写长度、读写地址、系数、以及死区中的至少一个。例如,图3示出根据本公开的示例性实施例的点表文件的示例。在图3中,点表文件包括索引、点名、地址偏置、读写类型、读写长度、读写地址、系数、以及死区。
61.在本公开的示例性实施例中,在线性表和点表文件中可依次按照定值、策略、opcua设备数据、opcua设备之外的设备数据的先后顺序排列数据。
62.具体来说,线性表按照顺序存储方式存储,查找时根据点在表中的序号(地址偏置),即可获取到值。图4示出根据本公开的示例性实施例的设备文件、点表文件和线性表之间的逻辑关系。在图4中,charmiodata[global_miodatalen]中存储每个点的值,此表与点的对应关系通过地址偏置获取。点表中的name则是将设备名和点名拼接在一起实现的。
[0063]
在本公开的示例性实施例中,在基于采集的风电场运行数据对本地数据库进行更
新时,可首先根据设备文件、点表文件和线性表之间的逻辑关系,查找采集的风电场运行数据在本地数据库的线性表中的相应地址,然后按照查找的相应地址将采集的风电场运行数据填充到本地数据库的线性表中。
[0064]
在步骤s102,响应于所述一个轮询结束,基于更新后的本地数据库对存储在共享内存中的关于风电场运行数据的共享数据库进行更新。
[0065]
在本公开的示例性实施例中,共享数据库和本地数据库具有相同的预设数据结构,在预设数据结构中可包括具有逻辑关系的设备文件、点表文件和线性表,在线性表、设备文件和点表文件中可按照顺序存储方式进行数据存储。
[0066]
在步骤s103,响应于在所述一个轮询结束后共享内存中的关于风电场运行命令的共享命令库被应用进程服务器更新,从共享内存中获取更新后的共享命令库。
[0067]
在步骤s104,基于更新后的共享命令库发送风电场运行命令。
[0068]
在本公开的示例性实施例中,在发送风电场运行命令时,可根据设备文件和点表文件之间的逻辑关系,通过先入先出fifo循环队列按照单个命令顺序发送或者多命令一起发送的方式将风电场运行命令发送到相应的设备。例如,当有32个进程、并且每个进程最多有500个命令时,每个命令通过32个长度的循环队列下发。
[0069]
在本公开的示例性实施例中,在发送风电场运行命令时,可通过分级数据处理方式对获取的共享命令库中的风电场运行命令进行处理并发送。
[0070]
在本公开的示例性实施例中,在通过分级数据处理方式对获取的共享命令库中的风电场运行命令进行处理时,在当前时间和上一次接收快速命令的时间之间的时间差大于第一时长时,从获取的共享命令库中读取快速命令,其中,快速命令要求相应的设备以超过预设速度的速度执行命令;在当前时间和上一次接收慢速命令的时间之间的时间差大于第二时长时,从获取的共享命令库中读取慢速命令,其中,慢速命令不要求相应的设备以超过预设速度的速度执行命令。
[0071]
具体来说,在根据本公开的示例性实施例的风电场的多进程运行方法中,采用多进程的方式实现不同的功能需求,每个功能都建立一个进程,根据实际市场和电网的不同需求,启动不同的进程,这样能灵活应用,又能减小调试和运行的复杂度。这里,不同进程之间通信方式可采用共享内存加信号量的方式实现。共享内存可以说是linux下最快速、最有效的进程间通信方式。两个不同进程a、b共享内存的意思是,同一块物理内存被映射到进程a、b各自的进程地址空间,进程a可以即时看到进程b对共享内存中数据的更新;反之,进程b也可以即时看到进程a对共享内存中数据的更新。信号量机制是一种卓有成效的进程同步工具。
[0072]
多进程可包括初始进程、普通数据主站进程、opcua数据主站进程等进程。
[0073]
在初始进程中,创建数据结构,按此结构创建共享内存,其他进程按照此数据结构的共享内存获取数据。
[0074]
在普通数据主站进程中,可读取风电场中设备的运行数据,通过设备文件、点表文件和线性表之间的逻辑关系确定读取的运行数据的存储地址,根据确定的存储地址将读取的数据填充到共享数据库的线性表(例如,共享内存区的线性表)中。在普通数据主站进程中,可获取共享命令库(例如,共享内存区的命令区数据),按照循环队列的方式,按照设备文件和点表文件的关联,将共享命令库中的风电场运行命令转发给风电场中相应的设备。
[0075]
在opcua数据主站进程中,可读取opcua设备数据,通过设备文件、点表文件和线性表之间的逻辑关系确定读取的opcua设备数据的存储地址,根据确定的存储地址将读取的opcua设备数据填充到共享数据库的线性表(例如,共享内存区的线性表)中。在opcua数据主站进程中,可获取共享命令库(例如,共享内存区的命令区数据),按照循环队列的方式,按照设备文件和点表文件的关联,将共享命令库中的风电场运行命令转发给相应设备。此进程的数据结构和共享内存区的处理思路与普通数据主站进程相似,这里不再赘述。
[0076]
图5示出根据本公开的示例性实施例的由通信主站进程服务器执行的风电场的多进程运行方法的流程图。
[0077]
参照图5,在步骤s501,在由通信主站进程服务器执行的针对风电场中的应用设备的一个轮询中,从共享内存中获取关于风电场运行数据的共享数据库,并且基于获取的共享数据库对本地数据库进行更新。
[0078]
在本公开的示例性实施例中,共享数据库和本地数据库可具有预设数据结构,从更新后的本地数据库获取的数据以预设的树形结构排列。
[0079]
在步骤s502,从更新后的本地数据库获取风电场运行数据。
[0080]
在本公开的示例性实施例中,在从更新后的本地数据库获取风电场运行数据时,可首先通过树形结构中叶节点的名称从更新后的本地数据库中查找点表索引,然后根据所述点表索引查找更新后的本地数据库的线性表中的相应地址的数据,并将所述线性表中的相应地址的数据作为所述叶节点的值填充到所述叶节点。
[0081]
在步骤s503,基于获取的风电场运行数据产生风电场运行命令,并且基于产生的风电场运行命令对本地命令库进行更新。
[0082]
在步骤s504,响应于所述一个轮询结束,基于更新后的本地命令库对存储在共享内存中的关于风电场运行命令的共享命令库进行更新。
[0083]
具体来说,多进程可包括无功调压进程、一次调频进程、iec104从站进程、modbus从站进程、防孤岛等进程。
[0084]
图6示出根据本公开的示例性实施例的树形结构的示例。在一次调频、无功调压、对外做从站发送数据等可采用相同的树形结构方式实现。例如,在一次调频中,可将数据分成几种树:定值、策略、并网点、设备、agc等树,每种数中有最后的叶节点包含名称,索引、值几个关键值。在图6中,name叶节点的值是设备名加点名拼接而成的,根据此名,到点表文件中检索出索引handle,并赋值给此树中的datahandle,然后根据此datahandle,到点表文件中检索出地址偏置addressoffset,根据addressoffset可到线性表miodata中查找具体的值,并将值存储到叶节点valuereal或者valueint16或valueint32中即可。依此类推,一个进程中的所有数据都可通过这种不同的树形数据结果关联起来的。
[0085]
在一次调频进程中,通过树形结构中叶节点的名称到共享内存数据结构中去找点表索引,然后根据索引找线性表中的相应地址的数据,并填充给叶节点中的值节点这种方式来获取所有实时数据。下命令时将叶节点中的datahandle索引和value放入到命令进程区中,最后统一放入共享内存区,并由主站进程获取命令然后下发。
[0086]
在无功调压进程中,通过树形结构中叶节点的名称到共享内存数据结构中去找点表索引,然后根据索引找线性表中的相应地址的数据,并填充给叶节点中的值节点这种方式来获取所有实时数据。下命令时将也节点中的datahandle索引和value放入到命令进程
区中,最后统一放入共享内存区,并由主站进程获取命令然后下发。
[0087]
图7示出根据本公开的示例性实施例的风电场的进程间通信方式的框架图。由于新能源电厂容量增大,接入设备过多后,如果采用锁内存后按点读写的方式,则会导致信号量过于频繁,导致共享内存不能立即响应,从而出现功能不响应或者响应慢问题。在图7中,采用每个进程使用共享内存的进程都将共享数据结构拿到本地,整个填充,而不是每个点独立填充。图7中的进程间通信方式兼容modbus、iec104、opcua、私有协议等多种通信协议。
[0088]
所有的通信主站进程(例如,普通主站进程、opcua主站进程)都可将数据采集的数据放入本地进程的数据结构线性表中,一个轮训之后将本地整个线性表放入共享内存中。这里,opcua主站进程的线性表填充在共享内存中定值、策略之后,而普通主站进程的线性表填充在opcua之后,区段分明,互不影响。命令区分为普通命令区和opcua命令区,一个轮询后将命令区写入共享内存一次。两个命令区分别处理:1)普通主站进程将普通命令区命令读到本地,再按照循环队列的方式依次下发给不同的设备。下发命令分为单个命令顺序发送和多命令一起发送两种方式,多命令一起发就减少了普通主站操作写的次数,进一步提高效率。2)opcua命令区的命令由opcua主站进程处理,无论从共享内存区读取的是单命令集合还是多命令集合,都可进行重新处理,能打包的都打包,以进一步提高效率。另外,opcua主站为了减少对从站的通信压力,可采用分级数据处理方式对读取的命令进行处理。即,只有需要快读的命令才会快速读,不需要快速度的其他的命令进行慢速读。
[0089]
所有的应用进程(例如,一次调频进程、无功电压控制进程、从站进程)都可将每个共享数据结构拿到本地,然后树结构获取数据则从本地数据结构中获取,而非一个点一个点从共享内存获取,本地数据结构每个轮训从共享内存拿一次,进行更新。下命令时,将命令放入命令区中。例如,命令区中可包括32个线程,每个线程可容纳500个命令。
[0090]
通过多个线程共享内存的存储方式,可提升风电场系统在增加新功能(新进程)时的扩容性。即,在增加新功能时,对原有的架构改动比较小。
[0091]
以上已经结合图1至图7对根据本公开的示例性实施例的风电场的多进程运行方法进行了描述。在下文中,将参照图8和图9对根据本公开的示例性实施例的风电场的多进程运行装置及其单元进行描述。
[0092]
图8示出根据本公开的示例性实施例的风电场的多进程运行装置的框图。
[0093]
参照图8,风电场的多进程运行装置包括本地数据库更新单元81、共享数据库更新单元82、共享命令库获取单元83和命令发送单元84。
[0094]
在本公开的示例性实施例中,风电场的多进程运行装置可被集成设置在风电场的虚拟同步发电机(virtual synchronous generator,简称vsg)中。
[0095]
本地数据库更新单元81被配置为在针对风电场中的应用设备的一个轮询中,采集风电场运行数据并且基于采集的风电场运行数据对本地数据库进行更新。
[0096]
在本公开的示例性实施例中,本地数据库更新单元81可被配置为根据设备文件、点表文件和线性表之间的逻辑关系,查找采集的风电场运行数据在本地数据库的线性表中的相应地址,并且按照查找的相应地址将采集的风电场运行数据填充到本地数据库的线性表中。
[0097]
共享数据库更新单元82被配置为响应于所述一个轮询结束,基于更新后的本地数据库对存储在共享内存中的关于风电场运行数据的共享数据库进行更新。
[0098]
在本公开的示例性实施例中,共享数据库和本地数据库可具有预设数据结构。在预设数据结构中,包括具有逻辑关系的设备文件、点表文件和线性表,在线性表、设备文件和点表文件中按照顺序存储方式进行数据存储。
[0099]
在本公开的示例性实施例中,设备文件可包括设备序号、设备名、变压器号、套接字、通信方式关键参数、报文收发关键参数、文件关联、以及设备最大最小点索引中的至少一个。点表文件可包括点名、索引、地址偏置、读写类型、读写长度、读写地址、系数、以及死区中的至少一个。
[0100]
在本公开的示例性实施例中,在线性表和点表文件中可依次按照定值、策略、opcua设备数据、opcua设备之外的设备数据的先后顺序排列数据。
[0101]
共享命令库获取单元83被配置为响应于在所述一个轮询结束后共享内存中的关于风电场运行命令的共享命令库被应用进程服务器更新,从共享内存中获取更新后的共享命令库。
[0102]
命令发送单元84被配置为基于更新后的共享命令库发送风电场运行命令。
[0103]
在本公开的示例性实施例中,命令发送单元84可被配置为根据设备文件和点表文件之间的逻辑关系,通过先入先出fifo循环队列按照单个命令顺序发送或者多命令一起发送的方式将风电场运行命令发送到相应的设备。
[0104]
在本公开的示例性实施例中,命令发送单元84可被配置为通过分级数据处理方式对获取的共享命令库中的风电场运行命令进行处理并发送。
[0105]
在本公开的示例性实施例中,命令发送单元84还可被配置为在当前时间和上一次接收快速命令的时间之间的时间差大于第一时长时,从获取的共享命令库中读取快速命令,其中,快速命令要求相应的设备以超过预设速度的速度执行命令;在当前时间和上一次接收慢速命令的时间之间的时间差大于第二时长时,从获取的共享命令库中读取慢速命令,其中,慢速命令不要求相应的设备以超过预设速度的速度执行命令。
[0106]
图9示出根据本公开的示例性实施例的风电场的多进程运行装置的框图。
[0107]
参照图9,风电场的多进程运行装置包括本地数据库更新单元91、数据获取单元92、本地命令库更新单元93和共享命令库更新单元94。
[0108]
在本公开的示例性实施例中,风电场的多进程运行装置可被集成设置在风电场的vsg中。
[0109]
本地数据库更新单元91被配置为在由通信主站进程服务器执行的针对风电场中的应用设备的一个轮询中,从共享内存中获取关于风电场运行数据的共享数据库,并且基于获取的共享数据库对本地数据库进行更新。
[0110]
在本公开的示例性实施例中,共享数据库和本地数据库可具有预设数据结构,从更新后的本地数据库获取的数据以预设的树形结构排列。
[0111]
数据获取单元92被配置为从更新后的本地数据库获取风电场运行数据。
[0112]
在本公开的示例性实施例中,数据获取单元92可被配置为首先通过树形结构中叶节点的名称从更新后的本地数据库中查找点表索引,然后根据所述点表索引查找更新后的本地数据库的线性表中的相应地址的数据,并将所述线性表中的相应地址的数据作为所述叶节点的值填充到所述叶节点。
[0113]
本地命令库更新单元93被配置为基于获取的风电场运行数据产生风电场运行命
令,并且基于产生的风电场运行命令对本地命令库进行更新。
[0114]
共享命令库更新单元94被配置为响应于所述一个轮询结束,基于更新后的本地命令库对存储在共享内存中的关于风电场运行命令的共享命令库进行更新。
[0115]
此外,根据本公开的示例性实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被执行时,实现根据本公开的示例性实施例的风电场的多进程运行方法。
[0116]
在本公开的示例性实施例中,所述计算机可读存储介质可承载有一个或者多个程序,当所述计算机程序被执行时可实现以下步骤:在针对风电场中的应用设备的一个轮询中,采集风电场运行数据并且基于采集的风电场运行数据对本地数据库进行更新;响应于所述一个轮询结束,基于更新后的本地数据库对存储在共享内存中的关于风电场运行数据的共享数据库进行更新;响应于在所述一个轮询结束后共享内存中的关于风电场运行命令的共享命令库被应用进程服务器更新,从共享内存中获取更新后的共享命令库;并且基于更新后的共享命令库发送风电场运行命令。
[0117]
计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的实施例中,计算机可读存储介质可以是任何包含或存储计算机程序的有形介质,该计算机程序可以被指令执行系统、装置或者器件使用或者与其结合使用。计算机可读存储介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。计算机可读存储介质可以包含在任意装置中;也可以单独存在,而未装配入该装置中。
[0118]
以上已经结合图8和图9对根据本公开的示例性实施例的风电场的多进程运行装置进行了描述。接下来,结合图10对根据本公开的示例性实施例的计算机设备进行描述。
[0119]
图10示出根据本公开的示例性实施例的计算机设备的示意图。
[0120]
参照图10,根据本公开的示例性实施例的计算机设备10,包括存储器101和处理器102,所述存储器101上存储有计算机程序,当所述计算机程序被处理器102执行时,实现根据本公开的示例性实施例的风电场的多进程运行方法。
[0121]
在本公开的示例性实施例中,当所述计算机程序被处理器102执行时,可实现以下步骤:在针对风电场中的应用设备的一个轮询中,采集风电场运行数据并且基于采集的风电场运行数据对本地数据库进行更新;响应于所述一个轮询结束,基于更新后的本地数据库对存储在共享内存中的关于风电场运行数据的共享数据库进行更新;响应于在所述一个轮询结束后共享内存中的关于风电场运行命令的共享命令库被应用进程服务器更新,从共享内存中获取更新后的共享命令库;并且基于更新后的共享命令库发送风电场运行命令。
[0122]
图10示出的计算机设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0123]
以上已参照图1至图10描述了根据本公开的示例性实施例的风电场的多进程运行方法及装置。然而,应该理解的是:图8和图9中所示的风电场的多进程运行装置及其单元可
分别被配置为执行特定功能的软件、硬件、固件或上述项的任意组合,图10中所示的计算机设备并不限于包括以上示出的组件,而是可根据需要增加或删除一些组件,并且以上组件也可被组合。
[0124]
根据本公开的示例性实施例的风电场的多进程运行方法及装置,通过在针对风电场中的应用设备的一个轮询中,采集风电场运行数据并且基于采集的风电场运行数据对本地数据库进行更新;响应于所述一个轮询结束,基于更新后的本地数据库对存储在共享内存中的关于风电场运行数据的共享数据库进行更新;响应于在所述一个轮询结束后共享内存中的关于风电场运行命令的共享命令库被应用进程服务器更新,从共享内存中获取更新后的共享命令库;并且基于更新后的共享命令库发送风电场运行命令,从而提高了风电场的多进程的运行效率。
[0125]
尽管已经参照其示例性实施例具体显示和描述了本公开,但是本领域的技术人员应该理解,在不脱离权利要求所限定的本公开的精神和范围的情况下,可以对其进行形式和细节上的各种改变。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜