本发明涉及测井数据传输技术领域,尤其涉及一种用于存储式测井的声波数据文件下载的断点续载方法。
背景技术:
目前存储式测井的应用越来越广泛,在测井完成测井后需要将仪器在井下工作测得的数据传输到pc中,然后经过测井平台对数据加载处理后才能得到可供专业人员分析解释的测井曲线。
声波仪器是存储式测井仪器中的一种常见仪器,在测井过程中其产生的数据存储在仪器的声波存储版中,因其采集时间长,采集样点多,导致其产生的记录数据量极大,再加上硬件设备和传输协议的局限,会使其传输速度变慢。在长时间的传输过程中,因线路连接不稳定,软件奔溃,电路断开等意外情况导致文件传输失败的几率变高。当出现传输失败时,需要将整个文件重新下载,造成时间上的浪费。因此需要设计一种支持断点续传的产品来实现大文件的上传,并提高数据的传输速度以节省时间,从而高效快速地上传大的数据文件。
“断点续流”是pc应用软件上的常见功能,若因意外原因造成的上传或下载中断,下次上传或下载时必须从中断处即断点位置继续完成未完成的操作.从断点位置继续上传或下载的过程统一称之为断点续流。
“断点续载”在测井领域的各类相关平台软件上的应用并不多见。日常的pc应用软件上的“断点续流”多是基于http协议,是应用最为广泛的网络传输协议,适用于日常生活。而测井仪器并不遵循http协议,因此需要根据仪器制订适应需求的的通讯协议,通过对下发命令和字节流的操作完成定制的断点续载。
现阶段已经存在于测井平台的断点续载的实现也并不相同。大多通过在下载文件的同时在程序内部设置相关的变量以保存文件的下载位置,当发生中断并再次连接后,将该变量的值发送至仪器,继续传输。但上述方法存在一定的局限性,其只能保证在软件程序处于正常运行的情况下才能实现续载,当电路断开、pc非正常关机或者测井平台软件意外关闭时,再次打开后记录的常量仍会被初始化,记录传输的信息也将消失。
针对上述方法进行改进,可以新建一个配置文件,将存储信息的变量写入到文件中,以在平台软件意外关闭重启后能够读取该配置文件,从而对初始化后的变量赋值。但上述改进后的方法增加了对于文件的读写操作,增加了对系统资源的占用,可能会使软件处理速度变慢甚至引发程序奔溃。这就需要一种开发设计一种更为合理的断点续载方法。
技术实现要素:
为此,本发明提供一种用于存储式测井的声波数据文件下载的断点续载方法,用以克服现有技术中主机因意外关闭后无法续载的问题。
为实现上述目的,本发明提供一种用于存储式测井的声波数据文件下载的断点续载方法,包括:
步骤1:连接声波仪器和工控机并获取声波仪器存储板中信息区的信息,所述存储板中设有多个不同编号的存储块,各存储块均可以储存指定字节的数据,所述声波文件会占据多个连续编号的存储块,并将声波信息记录在存储块中;
步骤2:工控机开始确定要下载的声波文件,并检测所述声波仪器存储板信息区中是否存在该声波文件,当检测到声波文件存在时,工控机会打开声波文件并获取该声波文件的长度;
步骤3:工控机在下载前会对声波文件进行检测以判定此次下载为一次下载还是二次下载,当工控机判定下载的声波文件为二次下载时,工控机会读取一次下载时下载声波文件的断点位置,并通过计算重新确定起始存储块编号,将声波仪器存储板存储的声波信息发送到工控机;
步骤4:二次下载开始时,工控机会先将声波文件中下载好的部分打开以获取已下载文件的字节数,工控机会接收剩余的声波文件,并从断点处开始写入数据;
步骤5:当声波文件传输完毕时,关闭传输流,初始化各变量,并释放占用资源。
进一步地,当测井平台软件接受数据流的下载过程中出现意外中断时,工控机会保存已下载部分的声波文件。
进一步地,在下载指定的声波文件时,所述工控机会检测其内部是否存在相同的声波文件:
当工控机内不存在该声波文件时,则工控机判定此次下载为首次下载并从该声波文件的起始位置开始下载;
当工控机内存在该声波文件时,工控机会对其存储的文件大小与声波仪器存储板信息区内的声波文件大小进行对比,当存储的声波文件大小小于信息区内的声波文件大小时,工控机判定在一次下载的过程中出现意外导致下载中断并开始进行二次下载;当存储的声波文件大小等于信息区内的声波文件大小时,工控机判定该声波文件已经下载。
进一步地,所述步骤2中声波文件的长度即为该声波文件占用的字节数。
进一步地,所述声波文件的长度为该声波文件起始的存储块号和结束的存储块号。
进一步地,各所述存储块中可以存放1024个字节。
进一步地,在所述步骤3中确定起始存储块编号时,将字节数除以每块存储块存放的字节数并取整,再将取整后的整数加上该声波文件的起始存储块号即可得到该声波文件在进行二次下载时的起始存储块号。
进一步地,在确定声波文件二次下载的位置时,通过将所述起始的存储块号乘以各存储块存放的字节数,声波文件中该乘积所处位置即为一次下载中断的位置,在确定位置后,即可发送该位置并开始进行二次下载。
进一步地,在下载时,所述声波仪器存储板存储的声波信息会以数据流的形式发送到所述工控机。
进一步地,在进行二次下载时,工控机会向计算后得到的二次下载起始的存储块发送数据,并将这些数据记录保存进文件。
与现有技术相比,本发明的有益效果在于,本发明通过在每次下载前对工控机中的声波文件是否存在进行判断,能够对声波文件是否进行过一次下载进行有效的判定,提高了工控机在下载时的稳定性,适用于各种断接情况。同时本发明通过使用多个存储块对声波文件进行储存,通过计算存储块编号即可确定起始下载的具体位置,避免了时间的浪费。
附图说明
图1为本发明所述用于存储式测井的声波数据文件下载的断点续载方法的工作流程图。
具体实施方式
为了使本发明的目的和优点更加清楚明白,下面结合实施例对本发明作进一步描述;应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。
下面参照附图来描述本发明的优选实施方式。本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非在限制本发明的保护范围。
需要说明的是,在本发明的描述中,术语“上”、“下”、“左”、“右”、“内”、“外”等指示的方向或位置关系的术语是基于附图所示的方向或位置关系,这仅仅是为了便于描述,而不是指示或暗示所述装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,还需要说明的是,在本发明的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可根据具体情况理解上述术语在本发明中的具体含义。
请参阅图1所示,其为本发明所述用于存储式测井的声波数据文件下载的断点续载方法的工作流程图。
在进行下载之前,会将声波仪器的存储板分为多个不同编号的存储块,各存储块能够存储1024个字节,当存储板在存储声波文件时,会在一个存储块字节存满之后自动向下一个顺次编号的存储块进行续存,当一个声波文件存储完成后,该声波文件会占据多个连续编号的存储块,并将声波信息记录在存储块中。
当工控机开始下载时,工控机会先确定要下载的存储文件,并检测声波仪器存储板信息区中是否存在该声波文件,当检测到声波文件存在时,工控机会打开声波文件,获取该声波文件的长度并确定该文件在工控机中的存放位置。
具体而言,工控机只需从信息去获取需要下载文件的起始存储块号num1和结束存储块号num2,通过num2-num1得到占用的存储块数量,再将该数值乘以各存储块存储的字节数即可得到该声波文件的长度。
在开始下载前,工控机会检测预设的存放位置中是否已有所述声波文件,并根据结果做出判定,其中,当工控机内不存在该声波文件时,则工控机判定此次下载为首次下载并从该声波文件的起始位置开始下载;
当工控机内存在该声波文件时,工控机会获取文件大小得到声波文件占用字节数num3,并将num3与完整声波文件所占字节数(num2-num1)*1024进行对比,当存储的声波文件大小num3小于信息区内的声波文件大小(num2-num1)*1024时,工控机判定在一次下载的过程中出现意外导致下载中断并开始进行二次下载;当存储的声波文件大小num3等于信息区内的声波文件大小(num2-num1)*1024时,工控机判定该声波文件已经下载完成。
当工控机判定下载的声波文件为二次下载时,工控机会读取一次下载时下载声波文件的断点位置,并通过计算重新确定起始存储块编号,将声波仪器存储板存储的声波信息发送到工控机。
具体而言,在确定二次上下载时的起始存储块编号时,将字节数除以每块存储块存放的字节数num3/1024并对结果取整得到num4,再将取整后的整数num4加上该声波文件的起始存储块号num1即可得到该声波文件在进行二次下载时的起始存储块号。在确定声波文件二次下载的位置时,通过将所述起始的存储块号乘以各存储块存放的字节数,声波文件中该乘积所处位置即为一次下载中断的位置,在确定位置后,即可发送该位置并开始进行二次下载。
当声波文件传输完毕时,关闭传输流,初始化各变量,并释放占用资源。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征做出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
以上所述仅为本发明的优选实施例,并不用于限制本发明;对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
1.一种用于存储式测井的声波数据文件下载的断点续载方法,其特征在于,包括:
步骤1:连接声波仪器和工控机并获取声波仪器存储板中信息区的信息,所述存储板中设有多个不同编号的存储块,各存储块均可以储存指定字节的数据,所述声波文件会占据多个连续编号的存储块,并将声波信息记录在存储块中;
步骤2:工控机开始确定要下载的声波文件,并检测所述声波仪器存储板信息区中是否存在该声波文件,当检测到声波文件存在时,工控机会打开声波文件并获取该声波文件的长度;
步骤3:工控机在下载前会对声波文件进行检测以判定此次下载为一次下载还是二次下载,当工控机判定下载的声波文件为二次下载时,工控机会读取一次下载时下载声波文件的断点位置,并通过计算重新确定起始存储块编号,将声波仪器存储板存储的声波信息发送到工控机;
步骤4:二次下载开始时,工控机会先将声波文件中下载好的部分打开以获取已下载文件的字节数,工控机会接收剩余的声波文件,并从断点处开始写入数据;
步骤5:当声波文件传输完毕时,关闭传输流,初始化各变量,并释放占用资源。
2.根据权利要求1所述的用于存储式测井的声波数据文件下载的断点续载方法,其特征在于,当测井平台软件接受数据流的下载过程中出现意外中断时,工控机会保存已下载部分的声波文件。
3.根据权利要求1所述的用于存储式测井的声波数据文件下载的断点续载方法,其特征在于,在下载指定的声波文件时,所述工控机会检测其内部是否存在相同的声波文件:
当工控机内不存在该声波文件时,则工控机判定此次下载为首次下载并从该声波文件的起始位置开始下载;
当工控机内存在该声波文件时,工控机会对其存储的文件大小与声波仪器存储板信息区内的声波文件大小进行对比,当存储的声波文件大小小于信息区内的声波文件大小时,工控机判定在一次下载的过程中出现意外导致下载中断并开始进行二次下载;当存储的声波文件大小等于信息区内的声波文件大小时,工控机判定该声波文件已经下载。
4.根据权利要求1所述的用于存储式测井的声波数据文件下载的断点续载方法,其特征在于,所述步骤2中声波文件的长度即为该声波文件占用的字节数。
5.根据权利要求1所述的用于存储式测井的声波数据文件下载的断点续载方法,其特征在于,所述声波文件的长度为该声波文件起始的存储块号和结束的存储块号。
6.根据权利要求1所述的用于存储式测井的声波数据文件下载的断点续载方法,其特征在于,各所述存储块中可以存放1024个字节。
7.根据权利要求1所述的用于存储式测井的声波数据文件下载的断点续载方法,其特征在于,在所述步骤3中确定起始存储块编号时,将字节数除以每块存储块存放的字节数并取整,再将取整后的整数加上该声波文件的起始存储块号即可得到该声波文件在进行二次下载时的起始存储块号。
8.根据权利要求1所述的用于存储式测井的声波数据文件下载的断点续载方法,其特征在于,在确定声波文件二次下载的位置时,通过将所述起始的存储块号乘以各存储块存放的字节数,声波文件中该乘积所处位置即为一次下载中断的位置,在确定位置后,即可发送该位置并开始进行二次下载。
9.根据权利要求1所述的用于存储式测井的声波数据文件下载的断点续载方法,其特征在于,在下载时,所述声波仪器存储板存储的声波信息会以数据流的形式发送到所述工控机。
10.根据权利要求1所述的用于存储式测井的声波数据文件下载的断点续载方法,其特征在于,在进行二次下载时,工控机会向计算后得到的二次下载起始的存储块发送数据,并将这些数据记录保存进文件。
技术总结