本发明涉及智能变电站自动化设备技术领域,特别涉及一种用于相量数据集中器的数据通信方法。
背景技术:
随着智能变电站自动化建设的发展,同一个变电站内的同步相量测量装置(phasormeasurementunit,pmu)必须配置相量数据集中器(phasordataconcentrator,pdc),完成对所有pmu采集到的同步相量数据进行接收、汇集、存储与发送到主站的功能。
相量数据集中器通过以太网方式接收不少于20台pmu装置实时上传的相量数据,依据同步时钟进行对齐数据,实现对接收到的所有相量测量信号的断面数据对齐,并依据配置文件和扩展通信规约,将对齐数据的相量测量信号汇聚并上传到系统主站。上传速率支持1/5/10/25/50/100/200帧/秒可调,同时也需要能够存储这些实时数据,存储时间不少于14天。并且在实时数据传输的同时,也可能会传输离线文件数据(速率为100帧/s)。
因处理的数据量巨大且处理时间较长,现有的pdc在实现上述功能时,存在以下风险:
(1)处理离线文件数据时间过长,影响实时数据传输,无法保证实时数据传输速率的稳定。
(2)处理离线文件时间过长,导致实时数据传输管道中断,数据丢失。
(3)pdc不能及时读取缓冲中的实时数据,导致在接收缓冲区内的数据粘包时需额外拆包,增加了工作量,长此以往严重影响pdc实时数据的汇集,无法保证发送数据的实时性。
(4)主站通过pdc召唤单台pmu离线文件数据花费时间过长,pdc装置效率较低,严重可能导致离线数据管道中断,不能正确返回给主站。
(5)文件量巨大,如果装置内存较小,存储14天的文件将导致pdc内存空间不够。
设8个相量、10个模拟量和4个开关量为1个信息元,以3个信息元为例,计算接入20台pmu的单台pdc存储占用如下表1所示:
表1
综上,由于数据量大,处理时间长,运行时间久等原因,现有的相量数据集中器对接收到的相量数据的处理过程存在实时数据丢失,实时数据实时性低,上传实时数据速率无法保证,内存不够等严重问题。
技术实现要素:
本发明的目的在于克服现有技术存在的缺陷,实现对相量数据准确、快速、安全的收发。
为实现以上目的,本发明采用一种用于相量数据集中器的数据通信方法,包括:
在程序运行阶段,创建data线程、command线程和file线程,并在每个线程上建立一个tcpserver和一个tcpclient以分别用于接收、处理、传输主站或者pmu的实时数据、离线文件数据和命令;
在command线程中,下发配置文件到pmu,并在pmu正确返回下发打开实时数据的命令,开始pmu与pdc之间的实时数据传输;
在data线程中,pdc接收pmu上传的实时数据报文,并对实时数据进行汇集、存储,以及向所述主站发送汇集的实时数据;
在command线程中,创建一个定时器,定时向pmu发送离线数据传送命令,并在file线程中建立离线文件管道连接,侦听pmu上传的离线文件数据报文;
在file线程中,当pdc接收pmu上传的离线文件数据报文时,根据上传的离线文件数据类型的不同,将离线文件数据存储在本地中该类型的目录下,以便根据所述主站的召唤向所述主站发送pdc存储的离线文件数据。
进一步地,所述在data线程中,pdc接收pmu上传的实时数据报文,并对实时数据进行汇集、存储,包括:
所述pdc判断接收到的实时数据报文是否存在连帧或者断帧;
若是,则对连帧或者断帧的实时数据进行处理,将处理过的数据按照时标,对多台pmu的同一时标的数据进行汇集;
若否,将实时数据直接按照时标,对多台pmu的同一时标的数据进行汇集和存储。
进一步地,所述在data线程中,pdc对汇集的实时数据进行存储,包括:
所述pdc将每分钟内的数据存储在同一个文件夹中,并在一分钟内的数据全部存储完成后,将该文件夹压缩后保存在动态数据文件目录下;
判断实时数据文件目录中时间最早的文件是否超过设定的14天,并将超过时间阈值的文件删除。
进一步地,还包括:
检查所述本地中相应离线文件数据类型目录下的数据量是否超过1000条,若超过则将标识时间最早的文件删除。
进一步地,还包括:
在所述command线程中,所述pdc接收所述主站下发的召唤离线文件的命令;
所述pdc对接收到的召唤离线文件命令进行解析,得到召唤离线文件命令的解析结果,该解析结果包括文件类型、pmuid和时间范围;
若解析结果为召唤连续录波文件,则pdc根据pmuid将召唤连续录波文件命令发送至对应的pmu;
在所述file线程中,所述pdc利用所述文件管道接收该对应的pmu上传的连续录波文件,并将连续录波文件转发至所述主站。
进一步地,若解析结果为召唤事件标识文件或暂态文件,则在文件类型对应的相应类型目录下,所述command线程根据所述主站请求的pmuid及时间范围,在所述相应类型的文件目录下查找符合的文件,并将该文件的名称传入所述file线程;
所述file线程根据该文件的名称查找到对应文件,对文件内容进行读取、组帧,并发送到所述主站。
进一步地,若解析结果为传送动态记录数据,则所述command线程根据所述主站请求的时间范围,在所述相应类型的文件目录下查找符合的文件并将该文件的名称传入所述file线程;
所述file线程根据该文件的名称查找到对应文件,并对解压该文件;
所述file线程对解压后的文件内容进行读取、组帧并发送给所述主站,然后将解压的文件重新压缩后保存。
与现有技术相比,本发明存在以下技术效果:本发明中采用多线程多通道,对pmu和主站之间传送过程中的各项不同类型的数据进行合理的处理与调度,可同时完成实时数据和离线文件数据等报文的收发,实现高并发数据通信,提高了pdc的处理高并发数据通信的能力,保证pdc的准确、快速、安全和稳定的运行。
附图说明
下面结合附图,对本发明的具体实施方式进行详细描述:
图1是一种用于相量数据集中器的数据通信方法的流程图;
图2是相量数据集中器接收、发送和存储实时数据的示意图;
图3是相量数据集中器定时召唤及存储同步相量测量装置离线事件文件的示意图;
图4是主站召唤相量数据集中器离线文件的示意图。
具体实施方式
为了更进一步说明本发明的特征,请参阅以下有关本发明的详细说明与附图。所附图仅供参考与说明之用,并非用来对本发明的保护范围加以限制。
如图1所示,本实施例公开了一种用于相量数据集中器的数据通信方法,包括如下步骤s1至s4:
s1、在程序运行阶段,创建data线程、command线程和file线程,并在每个线程上建立一个tcpserver和一个tcpclient以分别用于接收、处理、传输主站或者pmu的实时数据、离线文件数据和命令;
s2、在command线程中,下发配置文件到pmu,并在pmu正确返回下发打开实时数据的命令,开始pmu与pdc之间的实时数据传输;
s3、在data线程中,pdc接收pmu上传的实时数据报文,并对实时数据进行汇集、存储,以及向所述主站发送汇集的实时数据;
s4、在command线程中,创建一个定时器,定时向pmu发送离线数据传送命令,并在file线程中建立离线文件管道连接,侦听pmu上传的离线文件数据报文;
s5、在file线程中,当pdc接收pmu上传的离线文件数据报文时,根据上传的离线文件数据类型的不同,将离线文件数据存储在本地中该类型的目录下,以便根据所述主站的召唤向所述主站发送pdc存储的离线文件数据。
本实施例在程序运行阶段创建3个线程,采用多线程多通道来处理不同的数据类型,可同时完成实时数据和离线文件数据等报文的收发,实现高并发数据通信。
具体来说,如图2所示,本实施例command线程用于向pmu发送配置文件命令,以在pmu正确解析命令后,下发打开实时数据传输的命令,开始pmu与pdc之间的实时数据的传输。data线程用于在相量数据集中器接收多台同步相量测量装置的相量数据时,对相量数据进行接收、发送和存储,包括如下步骤:
a1、在data线程中,pdc接收pmu上传的实时数据。
a2、判断接收到的实时数据报文是否存在连帧或者断帧的情况,若是则执行步骤a3,若否则执行步骤a4;
a3、正确处理连帧或者断帧,得到处理后的实时数据。
a4、将处理过的数据,按照时标,对多台pmu的同一时标数据进行汇集;
a5、将实时数据直接按照时标,对多台同步相量测量装置的同一时标的数据进行汇集;
a6、将汇集过后的实时数据,发送给主站。
优选地,在data线程中,pdc还对汇集后的实时数据进行存储,具体过程如下:
a7、在存放实时数据文件的目录中,pdc将每分钟内汇集的实时数据存储在同一个文件中,对比此帧数据的分钟时间,检查是否已经有了存放的文件,若存在则执行a8,否则执行a10;
a8、将此帧数据写入已有了存放的文件中,并判断一分钟内的数据是否已经全部存储完成,若是则保存文件之后进行压缩,然后执行a9;
a9、判断目录中时间最早的文件是否已经超过14天,如果超过则将时间最早的文件删除。
a10、没有用于存放此帧数据的文件,则创建一个新的文件,以此帧分钟命名,再将汇集后的数据写入到此文件。
需要说明的是,本实施例中采用压缩的方式存储实时数据文件,压缩存储能够节省装置的存储空间,且在发送实时数据文件之前解压压缩文件,并在发送完成之后再度压缩文件进行存储。
具体来说,如图3所示,本实施例用于command线程用于向pmu发送事件标识文件命令及暂态数据文件命令,以在pmu正确解析命令后,下发打开离线文件传输的命令,开始pmu与pdc之间的离线文件的传输。
在command线程中,pdc定时召唤pmu暂态事件标识文件、暂态数据文件,并缓存所有pmu的此项数据在pdc本地,以便主站召唤时能及时响应,提升装置性能,具体包括如下步骤b1-b1:
b1、在command线程中创建一个定时器,pdc定时向pmu发送上传暂态事件标识文件、暂态数据文件等命令,并在file线程中建立离线文件管道连接,侦听pmu上传的离线文件数据报文;
b2、在file线程中,当pdc接收到pmu上传的暂态事件标识文件或暂态数据文件时,根据上传数据类型的不同,按照规定格式命名(包含时间,以及pmuid信息)并存储在本地该相应类型的文件目录下。
b3、检相应类型的文件目录下的数据量是否超过1000条,若是则执行步骤b4,否则执行步骤b5;
b4、将标识时间最早的文件删除;
b5、不对文件进行删除。
需要说明的是,本实施例中pdc定时召唤pmu暂态事件标识文件、暂态数据文件等,并优先缓存在pdc本地,便于主站召唤pmu离线文件时可以直接发送本地已经缓存的文件,使pdc更加的快速高效。
具体来说,如图4所示,主站发送召唤pdc离线文件,实现透传以及高并发数据通信与大文件传输,包括如下步骤c1至c9:
c1、在command线程中,pdc接收主站下发的召唤离线文件的命令,并对召唤离线文件的命令进行解析,得到解析结果,若解析结果是召唤连续录波文件则执行步骤c2~c3,若解析结果是召唤事件标识文件或者暂态文件则执行步骤c4~c5,若解析结果是传送动态记录数据文件则执行步骤c6~c9;
c2、pdc根据pmuid直接将此命令转发给相对应id的pmu,并在file线程中建立离线文件管道连接,侦听pmu上传的连续录波文件。
c3、在file线程中pdc通过文件管道接收该pmu上传的连续录波文件,直接将数据转发给主站。
c4、pdc根据数据的类型到该类型目录下,根据主站请求的pmuid以及时间范围,找到符合的文件,并将文件名传入file线程;
c5、将符合条件的文件名传入file线程,由file线程完成读取文件内容,组帧,发送到主站等工作。
c6、pdc根据主站请求的时间范围,找到符合的文件,并将文件名传入file线程;
c7、在file线程中,首先根据传入的文件名找到该文件,并解压该压缩文件;
c8、读取解压后的文件内容,完成组帧并且发送给主站等功能。
c9、发送完成,重新将解压的文件压缩后保存。
需要说明的是,本发明技术方案可提高pdc处理高并发数据通信的能力,提升装置的性能,节省装置的存储空间,保证了pdc准确、快速、安全、稳定的运行。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。