数据发送方法

文档序号:7858537阅读:280来源:国知局
专利名称:数据发送方法
技术领域
本发明涉及数据传输技术,特别是涉及ー种数据发送方法。
背景技术
安全隔离网闸是ー种由带有多种控制功能专用硬件在电路上切断网络之间的链路层连接,井能够在网络间进行安全适度的应用数据交换的网络安全设备。对于安全性要求较高的电カ二次系统,用于监视和控制电网及电厂生产运行过程的、基于计算机及网络技术的业务处理系统及智能设备等。包括电カ数据采集与监控系统、能量管理系统、变电站自动化系统、换流站计算机监控系统、发电厂计算机监控系统、配电自动化系统、微机继电保护和安全自动装置、广域相量測量系统、负荷控制系统、水调自动 化系统和水电梯级调度自动化系统、电能量计量计费系统、实时电カ市场的辅助控制系统等。其中发电厂计算机监控系统(SIS系统)的特殊性在于其跨越一区、ニ区和三区。网络安全一般都采用隔离器把网络分成不同级别的安全区域,不同区域之间只能有单向的数据流向。数据流只能从高安全性区域流向安全性低的区域,对于高安全性区域中的具体情況,在低安全性区域是不可知的不可访问的,从而确保了高安全性区域的安全。如图I所示,电厂控制系统信息系统中,作为高安全性区域的生产区域,需要通过单向的隔离网闸与低安全性区域的管理区域进行隔离,电厂控制系统实时的电カ系统数据只能单向流向管理区域,从而确保生产区域的安全。电カ二次系统的实时数据采集位于电カ监控系统的最底层,数据海量且非常杂舌し由于实时数据只能单向传输,在网络由于安全网闸产生拥塞,阻断、宕机等故障吋,前面的通信节点无法预测后续通信节点是否接受到数据,而且后续通信节点也由于通信中断而无法回应前面的节点重新发送实时数据,这样就会导致信息系统的实时数据丢失,数据传输稳定性、连续性差。

发明内容
基于此,有必要针对上述现有的传输技术导致数据传输稳定性低、连续性差的问题,提供ー种数据发送方法。ー种数据发送方法,包括如下步骤读取数据源的实时数据并写入内存映射文件中;将内存映射文件中的实时数据发送至接收端,当网络通信中断时则将所述实时数据缓存到内存映射文件中;当网络恢复通信后,读取所述缓存的实时数据并将其发送至接收端。上述数据发送方法,用于使用单向安全隔离网闸的信息系统中,对数据源的实时数据进行采集,当网络通信中断时将实时数据缓存到文件中,在网络恢复正常后,再将实时数据和缓存在文件中的数据发送,从而在网络不稳定时也能保证传输数据的连续性,使得信息系统运行更平稳、安全、高效。


图I为电厂控制系统信息系统结构示意图;图2为ー个实施例的数据发送方法流程图;图3为步骤S300实现过程的一个应用实例流程图。
具体实施例方式下面结合附图对本发明的数据发送方法的具体实施方式
作详细描述。图2示出了一个实施例的数据发送方法流程图,主要包括如下步骤S100、读取数据源的实时数据并写入内存映射文件中;

S200、将内存映射文件中的实时数据发送至接收端,当网络通信中断时则将所述实时数据缓存到内存映射文件中;S300、当网络恢复通信后,读取所述缓存的实时数据并将其发送至接收端。为了更清晰本发明的技术方案,下面阐本发明实现过程的较佳实施例。对于步骤SlOO的过程,具体地,由接ロ程序采用同步读取的方式采集数据源实时数据包;然后根据数据包的类型对实时数据包进行解析,如果解析成功,则将解析获得的实时数据写入内存映射文件中,如果解析失败,则丢弃该实时数据包,并记录错误日志。上述通过同步读取的方式,可以使软件流程相对简单,无需复杂的接ロ程序,加快了数据的读取速度,利用内存映射文件,可以实现实时数据的缓存。对于步骤S200的过程,具体地,读取内存映射文件中的实时数据输入到发送结构中,对这些实时数据进行TCP打包后发送至接收端(接收程序或实时数据库);当网络通信中断吋,导致发送失败,则将实时数据缓存在内存映射文件中,同时写入发送失败日志;优选地,采用无压缩方式缓存这些实时数据。上述无压缩的缓存方式,可以提高存取速度,提高缓存文件的通用性,可以通过其它工具读取数据。对于步骤S200中的将实时数据缓存到内存映射文件过程,考虑到内存映射文件的长度有限,进ー步地,判断缓存的实时数据大小是否大于内存映射文件的长度,若大于该长度,则在磁盘上新建与内存映射文件关联的缓存文件,然后将缓存的实时数据从内存映射文件转移到新建的缓存文件上;在转移实时数据过程中,若写入缓存文件成功,则更新用于记录缓存文件信息的缓存文件名称列表,同时关闭缓存文件;若写入缓存文件失败,则写入转移失败日志信息。作为ー个实施例,内存映射文件的结构如下#define SHMOFCPIPTDATACOl JNTFR 400000 //映尉内存文件可存放测点最大数量typedef struct
{
unsigned in t n—pt—order; Il测点在点表中的序号float f_pt_val;//测点的模拟量值
int n pt state; //测点的开矢量值 int n_pt—time; //测点的时间标签 } STRU PIPT;//测点结构,发送结构
typedef struct
{
unsigned int n_header_ptr,//映射内存文件中当前测点指针
unsigned int n_pipt—count;//映射内存文件中测点总数
STRU PIPT s—pipt[SHM—OPC PiPT—DATA—COUNTER];/Z存放
测点的数据区
} SHM OPC PIPT EVENTS; //映射内存文件的结构内存映射文件管理硬盘文件的存储400000点,每次缓存数据时都新建ー个6MB的文件,把内存映射中的实时数据一次写入到新建的缓存文件中,可以减少硬盘写入频率;上述步骤中,通过创建一个关联磁盘文件的缓存文件,用UnmapViewOfFile解除内存映射与文件的关联,再用将实时数据写入磁盘文件上。对于步骤S300中读取所述缓存的实时数据并将其发送至接收端的过程,根据缓存文件名称列表顺序将所述缓存文件的实时数据读取到内存映射文件中;若读取成功,将内存映射文件中的实时数据输入到发送结构中进行TCP打包后发送,若读取失败,则写入读取失败日志;关闭缓存文件,删除在磁盘上对应的缓存文件,更新缓存文件名称列表,释放硬盘空间,重复上述步骤,直至发送完所有缓存文件。參见图3所示,具体地,步骤S300包括如下步骤S301、获取磁盘的缓存文件名称列表;S302、判断缓存文件名称列表上记录的文件个数是否为0,若是,结束,若否,进入步骤S303 ;S303、根据缓存文件名称列表记录的文件顺序,打开列表中的第一个文件;S304、把该文件内的全部实时数据读取到内存映射文件上;
S305、判断读取数据是否成功,若是,执行步骤S306,若否,执行S307 ;S306、关闭该缓存文件,然后进行删除,更新缓存文件名称列表,释放硬盘空间;S307、将读取失败信息写入错误日志。以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员 来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
权利要求
1.ー种数据发送方法,其特征在于,包括如下步骤 读取数据源的实时数据并写入内存映射文件中; 将内存映射文件中的实时数据发送至接收端,当网络通信中断时则将所述实时数据缓存到内存映射文件中; 当网络恢复通 信后,读取所述缓存的实时数据并将其发送至接收端。
2.根据权利要求I所述的数据发送方法,其特征在于,所述将内存映射文件中的实时数据发送至接收端,当网络通信中断时则将所述实时数据缓存到内存映射文件中步骤包括 接ロ程序采用同步读取的方式采集数据源实时数据包; 根据数据包的类型对所述实时数据包进行解析,若解析成功,则将解析获得的实时数据写入内存映射文件中,若解析失败,则丢弃该实时数据包,并记录错误日志。
3.根据权利要求I所述的数据发送方法,其特征在于,所述将所述实时数据缓存到内存映射文件中步骤包括 读取内存映射文件中的实时数据输入到发送结构中,对所述实时数据进行TCP打包后发送; 当网络通信中断吋,将实时数据缓存在内存映射文件中,同时写入发送失败日志。
4.根据权利要求I所述的数据发送方法,其特征在于,所述采用无压缩方式缓存所述实时数据。
5.根据权利要求3所述的数据发送方法,其特征在于,还包括 判断缓存的实时数据大小是否大于内存映射文件的长度,若是,则在磁盘上新建与内存映射文件关联的缓存文件; 将缓存的实时数据从内存映射文件转移到所述缓存文件上; 若转移成功,则更新用于记录缓存文件信息的缓存文件名称列表,关闭缓存文件,若转移失败,则写入转移失败日志信息。
6.根据权利要求5所述的数据发送方法,其特征在干,所述读取所述缓存的实时数据并将其发送至接收端步骤包括 根据缓存文件名称列表顺序将所述缓存文件的实时数据读取到内存映射文件中; 若读取成功,将内存映射文件中的实时数据输入到发送结构中进行TCP打包后发送,若读取失败,则写入读取失败日志; 关闭缓存文件,删除在磁盘上对应的缓存文件,释放硬盘空间。
全文摘要
本发明提供一种数据发送方法,包括步骤读取数据源的实时数据并写入内存映射文件中;将内存映射文件中的实时数据发送至接收端,当网络通信中断时则将所述实时数据缓存到内存映射文件中;当网络恢复通信后,读取所述缓存的实时数据并将其发送至接收端。通过本发明的技术,在网络不稳定时也能保证传输数据的连续性,使得信息系统运行更平稳、安全、高效。
文档编号H04L12/24GK102868552SQ20121029941
公开日2013年1月9日 申请日期2012年8月21日 优先权日2012年8月21日
发明者陈世和, 张曦, 罗嘉, 万文军, 邵艳军 申请人:广东电网公司电力科学研究院, 北京同方电子科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1