一种组态文件的版本兼容方法及装置制造方法

文档序号:6628616阅读:242来源:国知局
一种组态文件的版本兼容方法及装置制造方法
【专利摘要】本发明公开了一种组态文件的版本兼容方法,所述组态文件包括至少一个段数据,所述段数据中的数据内容以BSON的规则进行数据存储;所述方法包括:当采用第一组态文件的格式解读第二组态文件时,若所述第二组态文件中存在所述第一组态文件不涉及的第一数据内容,则所述第一组态文件忽略所述不涉及的第一数据内容,并从所述第二组态文件的每个段数据中解析出自身支持的数据内容;其中,所述第一组态文件与所述第二组态文件为不同版本的组态文件。本发明还公开了一种组态文件的版本兼容装置。
【专利说明】一种组态文件的版本兼容方法及装置

【技术领域】
[0001] 本发明涉及工业自动化【技术领域】,尤其涉及一种组态文件的版本兼容方法及装 置。

【背景技术】
[0002] 工业自动化组态中的格式文件体系多种多样,根据具体应用场景不同及各系列 软件产品的区别存在各类文件格式,常用的有二进制文档、二进制复合文档、文本文档、 ini (Initial,初始化)配置文件、XML(Extensible Markup Language,可扩展标记语言)文 件等。其中,常用作为大量数据及配置信息存储的主要是二进制文档、二进制复合文档及 XML文件。
[0003] 相对来说,考虑到数据格式及组态的保密性,不同公司的软件产品大部分都是采 用二进制文档及二进制复合文档进行组态的记录,然而这两种格式对于软件升级所带来的 文件格式变动的兼容性比较差。相对出色一点的软件产品会在升级文件格式时,考虑到对 以前版本的一定兼容性,但是工业现场往往存在多个工段、多套装置,同一套工业自动化解 决方案历时也会比较久,跨度可能达到好几年,中间会分好几个阶段投产使用,在这些情况 中,现场可能会同时使用到不同版本的软件产品,并且会存在一些组态交互使用的情况,遇 到这类情况,常规的处理方式是将所有软件产品升级到最新的版本,并对出现兼容性问题 的地方进行人工组态修正,但是,这种做法不仅耗时耗力,同时对已经投产的现场会带来很 大的扰动,存在一定的安全隐患,并且,部分软件产品由于格式上难以做到兼容,会导致一 些组态需要重新配置,这类情况所带来的工作成本尤为庞大。


【发明内容】

[0004] 有鉴于此,本发明实施例的主要目的在于提供一种组态文件的版本兼容方法及装 置,以实现兼容不同版本组态文件的目的。
[0005] 为实现上述目的,本发明实施例提供了一种组态文件的版本兼容方法,所述组态 文件包括至少一个段数据,所述段数据中的数据内容以BSON的规则进行数据存储;所述方 法包括:
[0006]当采用第一组态文件的格式解读第二组态文件时,若所述第二组态文件中存在所 述第一组态文件不涉及的第一数据内容,则所述第一组态文件忽略所述不涉及的第一数据 内容,并从所述第二组态文件的每个段数据中解析出自身支持的数据内容;其中,所述第一 组态文件与所述第二组态文件为不同版本的组态文件。
[0007] 优选地,当采用第一组态文件的格式解读第二组态文件时,若所述第一组态文件 中存在所述第二组态文件不涉及的第二数据内容,则所述第一组态文件从所述第二组态文 件的每个段数据中解析出自身支持的数据内容,并将所述不涉及的第二数据内容设置为默 认值。
[0008] 优选地,所述组态文件还包括文件头、与每个段数据一一对应的段描述;
[0009] 所述文件头包括:文件标志、文件标志位、段数量、头部数据大小、文件的最后修改 时间、文件类型、文件版本标识、第一预留区域;
[0010] 所述段描述包括:与段数据对应的段名称、段数据的校验数据、段数据偏移量、段 数据的标志位、第一数据段大小、压缩算法标识、加密算法标识、第二预留区域。
[0011] 优选地,若所述段数据的标志位指示所述段数据被压缩,则当采用第一组态文件 解读第二组态文件时,所述第一组态文件利用所述压缩算法标识指示的解压算法解压从所 述第二组态文件中解析出的数据内容。
[0012] 优选地,若所述段数据的标志位指示所述段数据被加密,则当采用第一组态文件 解读第二组态文件时,所述第一组态文件利用所述加密算法标识指示的解密算法解密从所 述第二组态文件中解析出的数据内容。
[0013] 优选地,所述段数据包括第二数据段大小和数据内容;
[0014] 所述第二数据段大小为实际的段数据大小,所述第一数据段大小为压缩前的段数 据大小。
[0015] 本发明实施例还提供了一种组态文件的版本兼容装置,所述组态文件包括至少一 个段数据,所述段数据中的数据内容以BSON的规则进行数据存储;所述装置包括 :
[0016] 第一兼容单元,用于当采用第一组态文件的格式解读第二组态文件时,若所述第 二组态文件中存在所述第一组态文件不涉及的第一数据内容,则所述第一组态文件忽略所 述不涉及的第一数据内容,并从所述第二组态文件的每个段数据中解析出自身支持的数据 内容;其中,所述第一组态文件与所述第二组态文件为不同版本的组态文件。
[0017] 优选地,所述装置还包括:
[0018] 第二兼容单元,用于当采用第一组态文件的格式解读第二组态文件时,若所述第 一组态文件中存在所述第二组态文件不涉及的第二数据内容,则所述第一组态文件从所述 第二组态文件的每个段数据中解析出自身支持的数据内容,并将所述不涉及的第二数据内 容设置为默认值。
[0019] 优选地,所述组态文件还包括文件头、与每个段数据一一对应的段描述;
[0020] 所述文件头包括:文件标志、文件标志位、段数量、头部数据大小、文件的最后修改 时间、文件类型、文件版本标识、第一预留区域;
[0021] 所述段描述包括:与段数据对应的段名称、段数据的校验数据、段数据偏移量、段 数据的标志位、第一数据段大小、压缩算法标识、加密算法标识、第二预留区域;
[0022] 若所述段数据的标志位指示所述段数据被压缩,则当所述第一兼容单元或所述第 二兼容单元采用第一组态文件解读第二组态文件时,所述第一组态文件利用所述压缩算法 标识指示的解压算法解压从所述第二组态文件中解析出的数据内容;
[0023] 若所述段数据的标志位指示所述段数据被加密,则当所述第一兼容单元或所述第 二兼容单元采用第一组态文件解读第二组态文件时,所述第一组态文件利用所述加密算法 标识指示的解密算法解密从所述第二组态文件中解析出的数据内容。
[0024] 优选地,所述段数据包括第二数据段大小和数据内容;
[0025] 所述第二数据段大小为实际的段数据大小,所述第一数据段大小为压缩前的段数 据大小。
[0026] 本发明实施例提供的组态文件的版本兼容方法及装置,可以达到识别当前版本数 据、只丢弃高版本新增数据的目的,方便于不同版本软件的识别,由于高、低版本软件在理 解一份组态文件时可以得到各自支持的信息,甚至于不同软件的不同功能,由此解决了不 同版本组态的兼容性问题,包括高版本对低版本的兼容、低版本对高版本的兼容、以及平行 版本的兼容。

【专利附图】

【附图说明】
[0027] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明 的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据 这些附图获得其他的附图。
[0028] 图1为本发明实施例组态文件格式示意图;
[0029] 图2为本发明实施例组态文件的版本兼容方法的流程示意图;
[0030] 图3为本发明实施例组态文件的版本兼容装置的组成示意图。

【具体实施方式】
[0031] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员 在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0032] 需要说明的是,组态通常泛指工业自动化领域中对自动化控制系统软硬件及工程 信息的配置行为,亦指通过这种配置行为产生的文件和数据集合,本发明中的组态特指通 过这种配置行为产生的文件和数据集合。
[0033] 在介绍本发明实施例中组态文件的版本兼容方法之前,首先介绍所述组态文件的 组成:
[0034] 在本发明实施例中,将所述组态文件分为若干个段(与复合文档不同,这里没有 Strorage的概念),即所述组态文件由三个部分组成:一个文件头、至少一个段数据、以及 与每个段数据一一对应的段描述,也就是说,每个组态文件有一个文件头,每个段数据都各 自对应有一个段描述。
[0035] 所述文件头包括:文件标志、文件标志位、段数量、头部数据大小、文件的最后修改 时间、文件类型、文件版本标识、第一预留区域;
[0036] 所述段描述包括:与段数据对应的段名称、段数据的校验数据、段数据偏移量、段 数据的标志位、第一数据段大小、压缩算法标识、加密算法标识、第二预留区域。
[0037] 所述段数据包括第二数据段大小和数据内容。
[0038] 其中,所述段数据中的第二数据段大小为实际的段数据大小,所述段描述中的第 一数据段大小为压缩前的段数据大小。
[0039] 参见图1所示的组态文件格式示意图,其中,文件头大小为64字节,其结构如下:
[0040] 0?3:文件标志,即组态文件的标志,比如"SDFF(Supcon Data File Format,中 控数据文件格式)";
[0041] 4?7:文件标志位,一个32bit的Flags,目前未使用;
[0042] 8?11:段数量,32bit整型数据,用以表示在该SDFF文件中有多少段(段描述或 段数据的数量);
[0043] 12?15:头部数据大小,可选的头部数据大小optional header size,该数据紧 接在SDFF文件头之后,通常为0;
[0044] 16?23:文件的最后修改时间,FILETME;
[0045] 24 ?39:文件类型,使用一个 UUID (Universally Unique Identifier,通用唯一识 别码)表示;
[0046] 40?43:文件版本标识,即SDFF文件内部版本标识,用于SDFF文件格式本身的前 后兼容;
[0047] 44?63:第一预留区域,未使用,保留。
[0048] 在文件头之后,紧接着的就是段数据的描述数据即所述段描述(如果optional header size大于0,则在文件头之后还会有其指定大小的附加数据,通常没有这部分数 据)。每个段数据的描述数据大小为128字节,所有的段数据的描述数据依次紧密排列,每 个段数据的描述数据结构如下:
[0049] 0?63:与某个段数据对应的段名称,数据类型为wchar _t [32];
[0050] 64?79:该段数据的校验数据,为段数据的MD5(Message Digest Algorithm MD5, 消息摘要算法第五版)值;
[0051] 80?87;段数据偏移量,指示该段数据在文件中的偏移,无符号64bit;
[0052] 88?95;该段数据的标志位Flags,用于指示该段是否压缩、是否加密、是否校验 等特征;
[0053]96?99 :第一数据段大小,即该段数据的数据大小,指示该段用户数据的大小(压 缩前的大小);
[0054] 100?103:压缩算法标识,由文件创建者定义,用于指示解压数据所用的算法;
[0055] 104?107:加密算法标识,由文件创建者定义,用于指示解密数据所用的算法;
[0056] 108?127:第二预留区域,未使用,保留。
[0057] 在所有的段描述之后,保存的是各个段的具体数据(即所述至少一个段数据),考 虑到10性能问题,第一个段数据未必紧跟在最后一个段描述的后边。各个段数据的排列顺 序也未必和段描述的排列顺序一致。其中,每个段数据的前4个字节表示该段数据的大小 (即所述第二数据段大小),这个数据大小不包含这4个字节本身,这个数据大小和相应的 段描述中的第一数据段大小可能相同,也可能不同,这个数据的具体大小取决于段数据中 的数据内容是否进行了压缩、加密、字节对齐等因素,但无论如何,它代表了该段数据在文 件中的实际大小。
[0058] 以SUPCON的VisualField软件为例,其流程图组态软件运用了上述SDFF作为其 文件格式,并通过SDFF的使用作为其组态应用的解决方案。下表为对应文件数据实例:
[0059]表1
[0060]

【权利要求】
1. 一种组态文件的版本兼容方法,其特征在于,所述组态文件包括至少一个段数据,所 述段数据中的数据内容以BSON的规则进行数据存储;所述方法包括 : 当采用第一组态文件的格式解读第二组态文件时,若所述第二组态文件中存在所述 第一组态文件不涉及的第一数据内容,则所述第一组态文件忽略所述不涉及的第一数据内 容,并从所述第二组态文件的每个段数据中解析出自身支持的数据内容;其中,所述第一组 态文件与所述第二组态文件为不同版本的组态文件。
2. 根据权利要求1所述的方法,其特征在于, 当采用第一组态文件的格式解读第二组态文件时,若所述第一组态文件中存在所述第 二组态文件不涉及的第二数据内容,则所述第一组态文件从所述第二组态文件的每个段数 据中解析出自身支持的数据内容,并将所述不涉及的第二数据内容设置为默认值。
3. 根据权利要求1或2所述的方法,其特征在于,所述组态文件还包括文件头、与每个 段数据一一对应的段描述; 所述文件头包括:文件标志、文件标志位、段数量、头部数据大小、文件的最后修改时 间、文件类型、文件版本标识、第一预留区域; 所述段描述包括:与段数据对应的段名称、段数据的校验数据、段数据偏移量、段数据 的标志位、第一数据段大小、压缩算法标识、加密算法标识、第二预留区域。
4. 根据权利要求3所述的方法,其特征在于, 若所述段数据的标志位指示所述段数据被压缩,则当采用第一组态文件解读第二组态 文件时,所述第一组态文件利用所述压缩算法标识指示的解压算法解压从所述第二组态文 件中解析出的数据内容。
5. 根据权利要求3所述的方法,其特征在于, 若所述段数据的标志位指示所述段数据被加密,则当采用第一组态文件解读第二组态 文件时,所述第一组态文件利用所述加密算法标识指示的解密算法解密从所述第二组态文 件中解析出的数据内容。
6. 根据权利要求3所述的方法,其特征在于,所述段数据包括第二数据段大小和数据 内容; 所述第二数据段大小为实际的段数据大小,所述第一数据段大小为压缩前的段数据大 小。
7. -种组态文件的版本兼容装置,其特征在于,所述组态文件包括至少一个段数据,所 述段数据中的数据内容以BSON的规则进行数据存储;所述装置包括 : 第一兼容单元,用于当采用第一组态文件的格式解读第二组态文件时,若所述第二组 态文件中存在所述第一组态文件不涉及的第一数据内容,则所述第一组态文件忽略所述不 涉及的第一数据内容,并从所述第二组态文件的每个段数据中解析出自身支持的数据内 容;其中,所述第一组态文件与所述第二组态文件为不同版本的组态文件。
8. 根据权利要求7所述的装置,其特征在于,所述装置还包括: 第二兼容单元,用于当采用第一组态文件的格式解读第二组态文件时,若所述第一组 态文件中存在所述第二组态文件不涉及的第二数据内容,则所述第一组态文件从所述第二 组态文件的每个段数据中解析出自身支持的数据内容,并将所述不涉及的第二数据内容设 置为默认值。
9. 根据权利要求7或8所述的装置,其特征在于,所述组态文件还包括文件头、与每个 段数据一一对应的段描述; 所述文件头包括:文件标志、文件标志位、段数量、头部数据大小、文件的最后修改时 间、文件类型、文件版本标识、第一预留区域; 所述段描述包括:与段数据对应的段名称、段数据的校验数据、段数据偏移量、段数据 的标志位、第一数据段大小、压缩算法标识、加密算法标识、第二预留区域; 若所述段数据的标志位指示所述段数据被压缩,则当所述第一兼容单元或所述第二兼 容单元采用第一组态文件解读第二组态文件时,所述第一组态文件利用所述压缩算法标识 指示的解压算法解压从所述第二组态文件中解析出的数据内容; 若所述段数据的标志位指示所述段数据被加密,则当所述第一兼容单元或所述第二兼 容单元采用第一组态文件解读第二组态文件时,所述第一组态文件利用所述加密算法标识 指示的解密算法解密从所述第二组态文件中解析出的数据内容。
10. 根据权利要求9所述的装置,其特征在于,所述段数据包括第二数据段大小和数据 内容; 所述第二数据段大小为实际的段数据大小,所述第一数据段大小为压缩前的段数据大 小。
【文档编号】G06F17/30GK104317817SQ201410504267
【公开日】2015年1月28日 申请日期:2014年9月26日 优先权日:2014年9月26日
【发明者】谭彰, 陈吉平, 徐伟强, 陈挺 申请人:浙江中控技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1