CN108681556B - 分布式指令域数据的访问方法及其系统 - Google Patents

分布式指令域数据的访问方法及其系统 Download PDF

Info

Publication number
CN108681556B
CN108681556B CN201810305821.4A CN201810305821A CN108681556B CN 108681556 B CN108681556 B CN 108681556B CN 201810305821 A CN201810305821 A CN 201810305821A CN 108681556 B CN108681556 B CN 108681556B
Authority
CN
China
Prior art keywords
data
file
instruction domain
instruction
domain data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810305821.4A
Other languages
English (en)
Other versions
CN108681556A (zh
Inventor
陈吉红
惠恩明
黄晨云
冯冰艳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201810305821.4A priority Critical patent/CN108681556B/zh
Publication of CN108681556A publication Critical patent/CN108681556A/zh
Application granted granted Critical
Publication of CN108681556B publication Critical patent/CN108681556B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本申请涉及数控系统,公开了一种分布式指令域数据的访问方法及其系统。可以方便而有效率地读取数控系统产生的指令域数据。本发明中,接收请求数据访问的消息,其中包括要查询的第一工作标识;根据第一工作标识访问元数据;如果根据元数据找到到文件名中包含第一工作标识的第一数据文件,则返回第一数据文件;否则从元数据获得文件中的指令域数据可能包含第一工作标识的数据文件列表;读取和解析文件列表中每一个数据文件中的各条指令域数据,将与第一工作标识相匹配的各条指令域数据写入第二数据文件;将第二数据文件的信息更新到元数据中,并返回第二数据文件。

Description

分布式指令域数据的访问方法及其系统
技术领域
本申请涉及数控系统,特别涉及数控系统的指令域数据的访问技术。
背景技术
随着云计算、物联网、通讯技术迅速发展以及移动终端的接入,大数据以一种“新货币”身份带来前所未有的变革。其中,美国“重振制造业战略”、德国“工业4.0”、“新工业法国”、韩国“未来增长动力计划”以及“中国制造2025”都顺应了工业大数据的发展潮流。
制造业向智能化转型的过程中,将催生工业大数据的广泛应用。因此,工业大数据将成为未来提升制造业生产力、竞争力、创新能力的关键要素。由此可见,对工业大数据的应用研究将具有很强的现实意义。
目前,数控机床在制造业已经得到广泛应用,其在生产运作中产生的“大数据”,作为工业大数据重要的基础组成成分。
具体地说,数控机床在日常工作中产生的大量、珍贵的“电数据”,这些数据包括加工程序信息、运动轴状态数据、主轴状态数据、数控设备操作状态数据和运行状态数据等,这些数据与机床状态、工件加工状态、工装夹具状态等密切相关,这些数据在生产过程和制造质量实时监测监控、数控设备设备故障预警与诊断、产品加工质量分析及优化方面有着关键作用,因此,通过相关采集设备把这些大数据采集下来并加以分析处理,对于实现数控机床智能化发展至关重要。
然而,从数控系统采集的数据可以以指令域数据的形式进行存储,如何根据用户的需要,方便而高效地读取所需要的指令域数据,仍然是本领域急需解决的问题。
发明内容
本申请的目的在于提供一种分布式指令域数据的访问方法及其系统,可以方便而有效率地读取数控系统产生的指令域数据。
为了解决上述问题,本申请公开了一种分布式指令域数据的访问方法,包括:
接收请求数据访问的消息,其中包括要查询的第一工作标识;
根据该第一工作标识访问元数据;
如果根据该元数据找到到文件名中包含该第一工作标识的第一数据文件,则返回该第一数据文件;
否则从该元数据获得文件中的指令域数据可能包含该第一工作标识的数据文件列表;读取和解析该文件列表中每一个数据文件中的各条指令域数据,将指令域数据的工作标识与该第一工作标识相匹配的各条指令域数据写入第二数据文件,其中该第二数据文件的文件名包含该第一工作标识;将该第二数据文件的信息更新到该元数据中,并返回该第二数据文件。
在一优选例中,该“读取和解析该文件列表中每一个数据文件中的各条指令域数据,将指令域数据的工作标识与该第一工作标识相匹配的各条指令域数据写入第二数据文件”的步骤中,
使用第一线程负责指令域数据的读取和解析,当一条指令域数据的工作标识与该第一工作标识相匹配时,触发第二线程将匹配该第一工作标识的指令域数据写入该第二数据文件。
在一优选例中,该消息中还包含功能部件和/或数据类型;
该“读取和解析该文件列表中每一个数据文件中的各条指令域数据,将指令域数据的工作标识与该第一工作标识相匹配的各条指令域数据写入第二数据文件”的步骤进一步包括:
逐行读取该文件列表中每一个数据文件中的指令域数据,并解析每一条指令域数据中表示功能部件和/或数据类型的键;
如果被解析的指令域数据中表示功能部件和/或数据类型的键与该消息中包含的功能部件和/或数据类型相匹配,则将该表示功能部件和/或数据类型的键的键值写到该第二数据文件。
在一优选例中,该工作标识包括数控系统的标识、G代码名称和时间戳。
在一优选例中,该元数据和该数据文件存储在分布式文件系统中;
每一个该数据文件中包括至少一条指令域数据,每一条指令域数据包括工作标识字段。
在一优选例中,该数据文件的存储方式为:属于不同的数控设备的该数据文件存储在不同的文件夹下,其中一个文件夹存储一台数控设备对应的所有数据文件,一个文件夹中的各数据文件中存储一台数控设备的所有指令域数据。
在一优选例中,每个该数据文件中存储一台数控设备在一个时间段内产生的指令域数据;
该数据文件中的每一行为一条完整的指令域数据。
在一优选例中,该元数据包括该数据文件的属性信息,和存放该数据文件的目录的属性信息。
在一优选例中,该数据文件的属性信息包括以下之一或其任意组合:
文件名,文件长度,文件块大小,冗余度,创建时间,修改时间,文件所有者和权限,父目录信息
该目录的属性信息包括以下之一或其任意组合:
目录名,创建时间,父目录信息。
在一优选例中,该指令域数据是来自数控设备的指令域数据。
在一优选例中,该数控设备包括:数控机床、数控加工中心,工业机器人。
本申请还公开了一种分布式指令域数据的访问系统,包括:
接收单元,用于接收请求数据访问的消息,其中包括要查询的第一工作标识;
元数据访问单元,用于根据该第一工作标识访问元数据;
数据返回单元,用于如果根据该元数据找到到文件名中包含该第一工作标识的第一数据文件,则返回该第一数据文件;否则从该元数据获得文件中的指令域数据可能包含该第一工作标识的数据文件列表;读取和解析该文件列表中每一个数据文件中的各条指令域数据,将指令域数据的工作标识与该第一工作标识相匹配的各条指令域数据写入第二数据文件,其中该第二数据文件的文件名包含该第一工作标识;将该第二数据文件的信息更新到该元数据中,并返回该第二数据文件。
在一优选例中,该数据返回单元包括第一线程和第二线程;
该第一线程用于指令域数据的读取和解析,当一条指令域数据的工作标识与该第一工作标识相匹配时,触发该第二线程将匹配该第一工作标识的指令域数据写入该第二数据文件。
在一优选例中,该工作标识包括数控系统的标识、G代码名称和时间戳。
在一优选例中,该元数据和该数据文件存储在分布式文件系统中;
每一个该数据文件中包括至少一条指令域数据,每一条指令域数据包括工作标识字段。
在一优选例中,该数据文件的存储方式为:属于不同的数控设备的该数据文件存储在不同的文件夹下,其中一个文件夹存储一台数控设备对应的所有数据文件,一个文件夹中的各数据文件中存储一台数控设备的所有指令域数据。
在一优选例中,每个该数据文件中存储一台数控设备在一个时间段内产生的指令域数据;
该数据文件中的每一行为一条完整的指令域数据。
在一优选例中,该元数据包括该数据文件的属性信息,和存放该数据文件的目录的属性信息。
在一优选例中,该数据文件的属性信息包括以下之一或其任意组合:
文件名,文件长度,文件块大小,冗余度,创建时间,修改时间,文件所有者和权限,父目录信息
该目录的属性信息包括以下之一或其任意组合:
目录名,创建时间,父目录信息。
在一优选例中,该指令域数据是来自数控设备的指令域数据。
本申请还公开了一种服务器,包括:
存储器,用于存储计算机可执行指令;以及,
处理器,用于在执行该计算机可执行指令时实现如前文描述的分布式指令域数据的访问方法中的步骤。
在一优选例中,该服务器基于SOA架构的WebService技术进行数据访问接口发布,向发送请求数据访问的消息的客户端提供服务。
在一优选例中,该服务器中数据文件的数据来自基于虚拟化技术的虚拟数控系统,该虚拟数控系统模拟实际数控加工,提供数控加工产生的大数据。
本申请还公开了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现如前文描述的分布式指令域数据的访问方法的步骤。
本申请实施方式方便而有效率地实现了在分布式文件系统中读取所需要的指令域数据的功能。
本申请的说明书中记载了大量的技术特征,分布在各个技术方案中,如果要罗列出本申请所有可能的技术特征的组合(即技术方案)的话,会使得说明书过于冗长。为了避免这个问题,本申请上述发明内容中公开的各个技术特征、在下文各个实施方式和例子中公开的各技术特征、以及附图中公开的各个技术特征,都可以自由地互相组合,从而构成各种新的技术方案(这些技术方案均因视为在本说明书中已经记载),除非这种技术特征的组合在技术上是不可行的。例如,在一个例子中公开了特征A+B+C,在另一个例子中公开了特征A+B+D+E,而特征C和D是起到相同作用的等同技术手段,技术上只要择一使用即可,不可能同时采用,特征E技术上可以与特征C相组合,则,A+B+C+D的方案因技术不可行而应当不被视为已经记载,而A+B+C+E的方案应当视为已经被记载。
附图说明
图1是本发明第一实施方式中一种分布式指令域数据的访问方法的流程示意图;
图2是本发明第二实施方式中一种分布式指令域数据的访问系统的结构示意图。
图3是本发明实施方式中的分布式指令域数据的访问的示意图;
图4是本发明实施方式中的基于分布式的指令域数据访问流程图;
图5是本发明实施方式中的指令域数据访问接口发布及调用的示意图;
图6是本发明实施方式中的基于虚拟化技术的离线开发环境服务的示意图。
具体实施方式
在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
术语解释:
分布式文件系统:分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。本文所述分布式文件系统为HDFS
指令域数据:存有某个时间点数控机床内部各个部件的电信号的半结构化数据。
SOA框架:面向服务的体系结构,是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。
WebService:一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。
数控系统:是数字控制系统的简称(Numerical Control System),根据计算机存储器中存储的控制程序,执行部分或全部数值控制功能,并配有接口电路和伺服驱动装置的专用计算机系统。通过利用数字、文字和符号组成的数字指令来实现一台或多台机械设备动作控制,它所控制的通常是位置、角度、速度等机械量和开关量等。
G代码:数控程序中的指令。
本发明人经过广泛而深入的研究发现,由于现有的数控设备数据采集装置采集的数控设备大数据包含该设备通电后的所有数据,包括加工时的数据,也包括非加工时的数据,这些数据经过采集装置的处理成为指令域数据,指令域数据经过数据传输管道传输到数据存储平台后,以半结构化数据格式存储在分布式文件系统上,指令域数据以Job段和非Job段,区分加工段数据和非加工段数据,又以JobID区分不同加工时段的数据,每条Job段数据都包含了数控加工过程中的关键数据,这些数据价值极高,在数控大数据软件开发中有着极其重要的作用,Job段数据存储着数控设备加工时段价值极高的数据,而非Job段数据是数控设备非加工时段的数据,价值偏低。如果开发人员想进行针对数控设备的大数据软件的开发,首先必须了解存储这些指令域数据的分布式文件系统的底层实现,这样才能够提取出需要的Job段数据,另外现在仍没有在脱机、脱离实际生产环境下进行数控领域大数据开发的环境,这些因素共同导致数控领域大数据软件开发的成本极高。所以从海量数据中,根据用户需求提取出这些价值高的Job段数据,在这些Job段数据上进行数据分析开发,为脱离生产环境的开发者提供开发环境,对后续的工业大数据软件开发有着重大意义。
根据这种情况,本发明人提出了一种新的方式,当收到带有一个工作标识(即第一工作标识)的数据访问请求消息时,根据第一工作标识访问元数据,如果可以找到文件名中包含第一工作标识的数据文件(即第一数据文件),就可以直接返回该数据文件,如果没有找到的话,根据第一工作标识中的信息从元数据获得一个文件列表,该文件列表中的数据文件均存在包含具有第一工作标识的指令域数据的可能性,对该文件列表中的数据文件逐条地进行读取和分析,一旦发现一条指令域数据包含第一工作标识,就将这个数据文件写入一个新的数据文件(即第二数据文件),将该文件列表的数据文件中所有包含第一工作标识的指令域数据都写入第二数据文件后,返回第二数据文件,并将第二数据文件保存到分布式文件系统,并且更新元数据,在元数据中加入第二数据文件的信息,将来再次遇到包含第一工作标识的数据访问请求消息时,就可以直接返回第二数据文件,从而节约了许多计算量,因为本领域中重要的指令域数据有可能会被反复的提取,因此本发明实施方式可以大大提高整体效率。通过上述方式可以有效地从分布式文件系统中获得与某工作标识相关的数据,简化了指令域的数据访问。
可选地,本申请实施方式还通过虚拟化技术,在脱离实际生产环境下虚拟数控设备的数据采集、传输、存储、处理服务,将现有的云端服务通过虚拟化技术封装提供给用户,便于数控领域大数据开发人员摆脱物理设备的限制,在脱离实际生产环境下也可以获得与实际生产环境下一致的开发环境。
可选地,本申请实施方式还通过SOA架构相关技术将有关的功能接口封装发布,不需要用户了解相关的底层文件系统,不需要相关开发者改变开发语言习惯,不需要用户更改操作平台,为用户提供便捷的指令域大数据访问功能,提高相关数据开发人员的开发效率,大大降低开发成本。
具体的,本发明人提供了一种基于分布式的指令域数据访问方法及系统。该访问方法包括:响应用户数据访问请求,根据用户设置的具体访问条件,返回符合用户要求的数据请求的处理结果;本申请人还提出了一种指令域数据访问系统,通过虚拟化技术,在脱离实际生产环境下虚拟数控设备的数据采集、传输、存储、处理服务,将现有的云端服务通过虚拟化技术封装提供给用户,便于数控领域大数据开发人员摆脱物理设备的限制,在脱离实际生产环境下也可以获得与实际生产环境下一致的开发环境。本发明人提出的分布式指令域数据访问方法,通过SOA架构相关技术将有关的功能接口封装发布,不需要用户了解相关的底层文件系统,不需要相关开发者改变开发语言习惯,不需要用户更改操作平台,为用户提供便捷的指令域大数据访问功能,提高相关数据开发人员的开发效率,大大降低开发成本。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施方式作进一步地详细描述。
本发明第一实施方式涉及一种分布式指令域数据的访问方法。图1是该分布式指令域数据的访问方法的流程示意图。该分布式指令域数据的访问方法包括:
在步骤101中,服务器从客户端接收请求数据访问的消息。
具体的,该消息中包括要查询的第一工作标识。
基于上述情况下,可选的,工作标识包括数控系统的标识、G代码名称和时间戳。
此后进入步骤102,根据第一工作标识访问元数据。
此后进入步骤103,判断是否可以根据元数据找到到文件名中包含第一工作标识的第一数据文件,如果是则进入步骤104,否则进入步骤105。
在步骤104中,服务器向客户端返回第一数据文件。此后结束本流程。
具体的,本申请实施方式中,返回是指向请求方(例如客户端)发送所需要的信息。
在步骤105中,从元数据获得文件中的指令域数据可能包含第一工作标识的数据文件列表。此后进入步骤106。
在步骤106中,读取和解析文件列表中每一个数据文件中的各条指令域数据,将指令域数据的工作标识与第一工作标识相匹配的各条指令域数据写入第二数据文件。
需要指出的是,第二数据文件的文件名包含第一工作标识。
此后进入步骤107,将第二数据文件的信息更新到元数据中。
此后进入步骤108,服务器向客户端返回第二数据文件。
在上述方式中,步骤107和步骤108的执行顺序没有限制。
具体的,本申请实施方式中所称的包含某工作标识有多种实现方式,可以是直接包含该工作标识的原始字符串,也可以是包含该工作标识的变化形式,例如做一个映射或哈希运算或加密运算,等等。
具体的,指令域数据读取、解析和写文件的实现方式可以是多种多样的。
可选地,步骤106中,可以使用两个线程,使用第一线程负责指令域数据的读取和解析,当一条指令域数据的工作标识与第一工作标识相匹配时,触发第二线程将匹配第一工作标识的指令域数据写入第二数据文件。
这样做的好处是可以加快整体过程。
可选地,也可以只用一个线程来实现指令域数据读取、解析和写文件的步骤。
可选地,消息中还可以包含功能部件和/或数据类型。
具体的,在步骤106中,逐行读取文件列表中每一个数据文件中的指令域数据,并解析每一条指令域数据中表示功能部件和/或数据类型的键。如果被解析的指令域数据中表示功能部件和/或数据类型的键与消息中包含的功能部件和/或数据类型相匹配,则将该表示功能部件和/或数据类型的键的键值写到第二数据文件。
可选的,在一个实施例中,使用分布式文件系统来存储元数据和数据文件。其中,每一个数据文件中包括至少一条指令域数据,每一条指令域数据包括工作标识字段。具体的,数据文件的存储方式为:属于不同的数控设备的数据文件存储在不同的文件夹下,其中一个文件夹存储一台数控设备对应的所有数据文件,一个文件夹中的各数据文件中存储一台数控设备的所有指令域数据。每个数据文件中存储一台数控设备在一个时间段内产生的指令域数据。数据文件中的每一行为一条完整的指令域数据。元数据包括数据文件的属性信息,和存放数据文件的目录的属性信息。指令域数据是来自数控设备的指令域数据。数控设备可以是数控机床、数控加工中心、工业机器人等等。
可选地,数据文件的属性信息包括文件名,文件长度,文件块大小,冗余度,创建时间,修改时间,文件所有者和权限,父目录信息,等等。
可选地,目录的属性信息包括目录名,创建时间,父目录信息,等等。
上述实施方式可以通过多种方式来实现,下面通过其中一个具体实现方式,对上述实施方式做进一步说明。
在该实现方式中,上文提到的指令域数据,存储在不同的文件夹下,根据这些数据的存储特点,以文件夹来对不同的设备的数据进行隔离,一个文件夹存储的是一台数控设备的所有指令域数据。
具体的,在该文件夹下,包含具体的数据文件,每个文件中存放的是一段时间内的数控设备产生的指令域数据。
具体的,指令域数据以半结构化的格式存储在分布式文件系统上,上述文件中的每一行为一条完整的指令域数据。
具体的,用户发起数据访问请求被封装成消息,系统接受到该消息,首先访问的分布式文件系统的元数据,根据用户的访问请求,查找出可能包含查询结果的文件列表。
具体的,根据上文中的文件列表,结合分布式文件系统上数据的冗余存储方式,系统访问最优的数据节点,逐个读取上述文件列表中的文件。
具体的,在读取上述文件时,系统采取的是逐行读取的方式,根据半结构化数据的特点,系统对指令域数据进行解析,根据指令域数据的JobID的键,解析该键对应的值,与用户的访问请求进行对比。
具体的,一个线程负责数据的读取与解析,当匹配到符合要求的JobID时,触发另一个写线程,该线程将当前数据复制,并写入到新文件中。
在这种情况下,新文件的文件地址由用户指定,依然存储在分布式文件系统上。
并且,文件名由系统自动设置为该JobID,便于区分,在完成所有写文件的工作后由系统返回给用户JobID和文件存储位置,同时更新元数据。
在本发明的另一种实现方式中,还提出了一种基于指令域数据的数据类型和功能部件的数据预处理方法,该方法包括:
用户发起访问请求,用户将JobID与功能部件或者数据类型封装为消息。
首先访问分布式文件系统的元数据,系统根据用户的请求,先检查系统是否存在以该JobID作为文件名的文件,若有,系统记录该文件,直接访问该文件,逐行读取该文件内的数据,根据访问请求,一条线程解析表示数据类型或者功能部件的键,当匹配到符合条件的键时,触发写线程,只复制该键对应的值,写到新文件。
若没有查找到以该JobID作为文件名的文件,重复5、6、7,当匹配到符合要求的JobID时,触发代表数据类型或者功能部件的键的匹配,复制这些键的值,写入新文件。
可选的,文件存储逻辑与上一个实现方式是一致的,为了便于区分,文件名设置为包含JobID与数据类型或者功能部件的形式。
下面通过更多的细节,对一种实现方式进一步的说明。
图3是本实现方式中的分布式指令域数据的访问的示意图;图4是本实现方式中的基于分布式的指令域数据访问流程图。
参见图3、图4,将用户的请求4封装成消息,来自用户4的消息与分布式文件系统进行交互,触发分布式文件系统首先访问其元数据1,其中,元数据记录着指令域数据2的文件名,文件长度,文件块大小,冗余度,修改时间,文件所有者和权限等信息,分布式文件系统根据接受的用户消息,访问元数据,根据元数据,判断用户设置的文件地址上是否存在以要查询的JobID作为文件名的文件。若有,直接将该消息返回给用户,若无,首先匹配出可能包含查询结果的文件列表(步骤S1)。
注意,这样做的好处是,大大减少了后续步骤要读取的文件的数目,提高了访问效率。
此后,分布式文件系统根据该文件列表,访问这些指令域数据2,逐行读取该列表中所有文件(步骤S2)。
其中,指令域数据2以半结构化数据格式存储在分布式文件系统上。
在逐行读取文件的同时(步骤S3),解析键JobID的对应的值,与用户设置的JobID进行对比(步骤S4)。
若匹配到与用户设置的相同JobID,触发一个线程,复制这条指令域数据,写到用户设置的文件地址上以该JobID作为文件名的文件里(S5)。
请注意,这里提到的文件地址,是指分布式文件系统上的地址,如果没有匹配到用户设置的JobID,继续读取下一条数据,继续步骤S4,直到将S2中的文件都读取完,完成当前指令域数据访问请求,将结果文件3的信息更新到元数据1之中,将文件3的信息返回给用户。
前文提到的基于分布式的指令域数据访问结果是符合用户设置的JobID的指令域数据,在另一种实现方式中,还提供了一种基于分布式指令域数据的访问方法的另一种实现。
具体的,该方法的访问结果是符合用户设置的功能部件或者数据类型的数据,实现方法与前文提到的方法类似,根据用户设置的JobID与功能部件或者数据类型,依次完成步骤S1,S2,S3,S4,在步骤S5触发的写文件操作,只写该条指令域数据中表示功能部件或者数据类型的键对应的值,完成根据功能部件或者数据类型的指令域数据访问,完成当前指令域数据访问请求,将结果文件3的信息更新到元数据1之中,将文件3的信息返回给用户。这样,开发人员不需要了解底层数据存储原理,不需要了解分布式文件系统,即可访问到他们需要的指令域数据。
参见图3,上述提到的基于分布式的指令域数据访问服务31,通过基于SOA架构的WebService技术进行相关的数据访问接口发布,虽然这里只提到了指令域数据的访问服务,但是不局限于这些服务。用户32通过调用相关WebService接口,对基于分布式的指令域数据进行访问。因为接口是已经定义好的,执行实际功能的应用程序可以用任意编程语言编写,这样就实现平台的无关性、互通性,用户无需改变开发语言,无需更换操作平台,不受相关技术约束,即可进行基于分布式的指令域数据的开发,大大降低开发人员的学习成本,扩大本方法的应用范围。
下面对本实施方式中的要点进一步进行说明。
第一、在本实施方式中,HDFS的元数据(matadata)记录三类重要信息:
第一类是文件和目录自身的属性信息,例如文件名、目录名、父目录信息、文件大小、创建时间、修改时间等。
第二类记录文件内容存储相关信息,例如文件块情况、副本个数、每个副本所在的Data Node信息等。
第三类用来记录HDFS中所有Data Node信息,用于Data Node管理。
这样做的好处是,当数据结点上文件数量过大时,就会导致元数据(matedata)过大,导致根据元数据定位目标文件的处理速度变慢。而在HDFS这一分布式文件系统上,根据元数据查找文件所在地址(组成该文件的block所在的位置)目前该系统采用的是遍历(顺序查找,时间复杂的为O(n))的方法,改进方法就是在每个文件写入HDFS的时候,在主节点维护一个MySQL数据库,该数据库只存储文件名及其对应的地址,以文件名作为索引,文件地址作为索引所对应的值,根据指令域数据文件命名的特点,可知索引有序,实时将元数据中记录文件位置的数据写入到该SQL中,记录每个文件在数据结点的位置,在查找文件位置时,直接访问该SQL,基于MySQL自身的查找算法(索引有序,使用二分查找,时间复杂的O(logn)),确定文件所在位置,缩短文件查找速度,在文件数量越大的情况下,优势越明显。
第二、HDFS是设计成适应一次写入,多次读出的场景。
这样做的好处是,在匹配成功触发写数据的时,将数据首先写入缓存之中,在读写线程之外,创建一新线程监控该缓存大小,当该缓存达到预定设置的阈值时将这一块缓存写入HDFS中,避免大量的写入小文件。
第三、HDFS上存储的是相对于数据采集及传输过程中的历史数据,基于HDFS上的历史数据,对指令域数据中的电流数据进行聚类,电流数据与机床的运行健康状态有直接联系,所以根据聚类结果,将数据分为三类,代表机床处于健康状态的数据簇,代表机床处于健康与非健康状态临界处的数据簇,非健康状态数据簇,然后在数据的传输管道之中,根据历史数据聚类结果对采集过程中每一条实时数据的电流数据进行所属类别的预测。
这样做的好处是,能够提前预警,将机床健康状态用心电图的形式展示出来。
第四、基于指令域数据中的代表各个轴位置的数据,对这些位置数据进行差分、联合差分、计算出各个轴的速度、加速度、将每个轴的速度、加速度与该轴的电流数据进行相关性(逻辑回归)分析,确定电流与轴的速度、加速度的内在关系,从而将速度、加速度与机床健康状态之间的关系确定。
这样做的好处是,能够根据这些结果,优化用户G代码,运行优化后的G代码将提高机床健康状态运行时间。
第五、本实施方式涉及到的数据传输模块,是基于Redis实现的。
这样做的好处是,基于Redis的发布订阅功能,在数据传输管道中,不影响数据传输的情况下,实时订阅其中的数据,监控其中的指令域数据的报警信息,一旦监控到报警信息,直接向系统管理员上报。
第六、在用户和Tomcat之间加一层Kafka作为缓存,将kafka作为消息队列。
这样做的好处是,当Tomcat在接受大量访问,或者需要返回给用户大量数据时,用来做消息处理和任务调度,提高Tomcat在高并发时的稳定性。
第一实施方式的优点至少包括:能够方便而有效率地实现了在分布式文件系统中读取所需要的指令域数据的功能。
本发明第二实施方式涉及一种分布式指令域数据的访问系统。图2是该分布式指令域数据的访问系统的结构示意图。该分布式指令域数据的访问系统包括:
接收单元201,用于接收请求数据访问的消息,其中包括要查询的第一工作标识。
元数据访问单元202,用于根据第一工作标识访问元数据。
数据访问单元203,用于如果根据元数据找到到文件名中包含第一工作标识的第一数据文件,则返回第一数据文件。否则从元数据获得文件中的指令域数据可能包含第一工作标识的数据文件列表。读取和解析文件列表中每一个数据文件中的各条指令域数据,将指令域数据的工作标识与第一工作标识相匹配的各条指令域数据写入第二数据文件,其中第二数据文件的文件名包含第一工作标识。将第二数据文件的信息更新到元数据中,并返回第二数据文件。
具体的,数据访问单元203包括第一线程和第二线程。
其中,第一线程用于指令域数据的读取和解析,当一条指令域数据的工作标识与第一工作标识相匹配时,触发第二线程将匹配第一工作标识的指令域数据写入第二数据文件。
可选的,工作标识包括数控系统的标识、G代码名称和时间戳。
可选的,元数据和数据文件存储在分布式文件系统中。
进一步的,可选的,每一个数据文件中包括至少一条指令域数据,每一条指令域数据包括工作标识字段。
进一步的,可选的,数据文件的存储方式为:属于不同的数控设备的数据文件存储在不同的文件夹下,具体的,其中一个文件夹存储一台数控设备对应的所有数据文件,一个文件夹中的各数据文件中存储一台数控设备的所有指令域数据。
进一步的,可选的,每个数据文件中存储一台数控设备在一个时间段内产生的指令域数据。
进一步的,可选的,数据文件中的每一行为一条完整的指令域数据。
进一步的,可选的,元数据包括数据文件的属性信息,和存放数据文件的目录的属性信息。
进一步的,可选的,数据文件的属性信息包括以下之一或其任意组合:
文件名,文件长度,文件块大小,冗余度,创建时间,修改时间,文件所有者和权限,父目录信息
进一步的,可选的,目录的属性信息包括以下之一或其任意组合:
目录名,创建时间,父目录信息。
进一步的,可选的,指令域数据是来自数控设备的指令域数据。
第一实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。
上述实施方式可以通过多种方式来实现,下面通过其中一个具体实现方式,对上述实施方式做进一步说明。
上述实施方式可以通过多种方式来实现,下面通过其中一个具体实现方式,对上述实施方式做进一步说明。
如图4所示,本实现方式提出了一种支持用户在脱离实际生产环境下进行针对数控领域大数据开发的具体的开发环境,用基于虚拟化技术的虚拟数控系统41,模拟实际数控加工,提供数控加工产生的大数据,基于虚拟化技术的虚拟数据平台42,进行数据的采集,存储管理,用户44通过上文提到的基于分布式的指令域数据访问访问方法服务43,进行数控领域的大数据开发,通过这套开发环境,开发人员可以在脱机环境下进行相关功能的开发测试,不受限于物理设施,不受限于网络条件,极大的降低了开发成本。
在另一个实现方式中,还提供了一种基于SOA框架下相关技术的接口发布方案,将本说明书中的实施方式、具体实现方式中提到的接口,通过SOA框架相关技术,进行封装,发布。
这样做的好处在于,如图5所示,用户可以通过网络调用这些接口,且不受编程语言的限制,不需要改变编程语言,不需要更换操作平台,即可简单的使用这些接口,完成分布式指令域数据的访问,大大方便了相关人员的开发工作。
另外,在另一实现方式中,如图6所示,还提供了一种基于虚拟化技术的指令域大数据的开发环境服务,包括通过虚拟化技术虚拟数控系统与数控领域的数据存储,数据采集,数据处理相关服务。
这种情况下,通过调用上述接口,使用虚拟化技术模拟实际生产环境,即可摆脱物理设备的限制,进行数控领域大数据的开发与测试。
注意,通过本发明的基于分布式的指令域数据访问系统和方法,可以使用户在不了解分布式文件系统以及大数据相关知识的前提下,不受编程语言约束,直接进行数控领域大数据相关开发,也可以在脱离实际生产环境下通过本发明提供的相关开发环境进行数控领域的大数据开发与测试。
上述第二实施方式的优点至少包括:能够方便而有效率地实现了在分布式文件系统中读取所需要的指令域数据的功能。
进一步的,上述实现方式能够为开发人员,提供便捷的开发环境,降低针对数控领域大数据开发的成本,大大简化开发人员的开发工作。
本发明第三实施方式涉及一种服务器。该服务器包括:
存储器,用于存储计算机可执行指令。以及,
处理器,用于在执行计算机可执行指令时实现如第一实施方式所述的分布式指令域数据的访问方法中的步骤。
可选地,服务器基于SOA架构的WebService技术进行数据访问接口发布,向发送请求数据访问的消息的客户端提供服务。
可选地,服务器中数据文件的数据来自基于虚拟化技术的虚拟数控系统,虚拟数控系统模拟实际数控加工,提供数控加工产生的大数据。
需要说明的是,本领域技术人员应当理解,上述分布式指令域数据的访问系统的实施方式中所示的各模块的实现功能可参照前述分布式指令域数据的访问方法的相关描述而理解。上述分布式指令域数据的访问系统的实施方式中所示的各模块的功能可通过运行于处理器上的程序(可执行指令)而实现,也可通过具体的逻辑电路而实现。本发明实施方式上述用户设备如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施方式的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施方式所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本发明实施方式不限制于任何特定的硬件和软件结合。
相应地,本发明实施方式还提供一种计算机存储介质,其中存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现本发明的各方法实施方式。
需要说明的是,在本专利的申请文件中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本专利的申请文件中,如果提到根据某要素执行某行为,则是指至少根据该要素执行该行为的意思,其中包括了两种情况:仅根据该要素执行该行为、和根据该要素和其它要素执行该行为。多个、多次、多种等表达包括2个、2次、2种以及2个以上、2次以上、2种以上。
在本申请提及的所有文献都在本申请中引用作为参考,就如同每一篇文献被单独引用作为参考那样。此外应理解,在阅读了本申请的上述讲授内容之后,本领域技术人员可以对本申请作各种改动或修改,这些等价形式同样落于本申请所要求保护的范围。

Claims (22)

1.一种分布式指令域数据的访问方法,其特征在于,包括:
接收请求数据访问的消息,其中包括要查询的第一工作标识;
根据所述第一工作标识访问元数据;
如果根据所述元数据找到文件名中包含所述第一工作标识的第一数据文件,则返回所述第一数据文件;
否则从所述元数据获得文件中的指令域数据可能包含所述第一工作标识的数据文件列表;读取和解析所述文件列表中每一个数据文件中的各条指令域数据,将指令域数据的工作标识与所述第一工作标识相匹配的各条指令域数据写入第二数据文件,其中所述第二数据文件的文件名包含所述第一工作标识;将所述第二数据文件的信息更新到所述元数据中,并返回所述第二数据文件,其中,所述工作标识包括数控系统的标识、G代码名称和时间戳。
2.根据权利要求1所述的分布式指令域数据的访问方法,其特征在于,所述“读取和解析所述文件列表中每一个数据文件中的各条指令域数据,将指令域数据的工作标识与所述第一工作标识相匹配的各条指令域数据写入第二数据文件”的步骤中,
使用第一线程负责指令域数据的读取和解析,当一条指令域数据的工作标识与所述第一工作标识相匹配时,触发第二线程将匹配所述第一工作标识的指令域数据写入所述第二数据文件。
3.根据权利要求1所述的分布式指令域数据的访问方法,其特征在于,所述消息中还包含功能部件和/或数据类型;
所述“读取和解析所述文件列表中每一个数据文件中的各条指令域数据,将指令域数据的工作标识与所述第一工作标识相匹配的各条指令域数据写入第二数据文件”的步骤进一步包括:
逐行读取所述文件列表中每一个数据文件中的指令域数据,并解析每一条指令域数据中表示功能部件和/或数据类型的键;
如果被解析的指令域数据中表示功能部件和/或数据类型的键与所述消息中包含的功能部件和/或数据类型相匹配,则将该表示功能部件和/或数据类型的键的键值写到所述第二数据文件。
4.根据权利要求1所述的分布式指令域数据的访问方法,其特征在于,所述元数据和所述数据文件存储在分布式文件系统中;
每一个所述数据文件中包括至少一条指令域数据,每一条指令域数据包括工作标识字段。
5.根据权利要求4所述的分布式指令域数据的访问方法,其特征在于,所述数据文件的存储方式为:属于不同的数控设备的所述数据文件存储在不同的文件夹下,其中一个文件夹存储一台数控设备对应的所有数据文件,一个文件夹中的各数据文件中存储一台数控设备的所有指令域数据。
6.根据权利要求4所述的分布式指令域数据的访问方法,其特征在于,每个所述数据文件中存储一台数控设备在一个时间段内产生的指令域数据;
所述数据文件中的每一行为一条完整的指令域数据。
7.根据权利要求5所述的分布式指令域数据的访问方法,其特征在于,所述元数据包括所述数据文件的属性信息,和存放所述数据文件的目录的属性信息。
8.根据权利要求7所述的分布式指令域数据的访问方法,其特征在于,所述数据文件的属性信息包括以下之一或其任意组合:
文件名,文件长度,文件块大小,冗余度,创建时间,修改时间,文件所有者和权限,父目录信息
所述目录的属性信息包括以下之一或其任意组合:
目录名,创建时间,父目录信息。
9.根据权利要求1所述的分布式指令域数据的访问方法,其特征在于,所述指令域数据是来自数控设备的指令域数据。
10.根据权利要求9所述的分布式指令域数据的访问方法,其特征在于,所述数控设备包括:数控机床,数控加工中心,工业机器人。
11.一种分布式指令域数据的访问系统,其特征在于,包括:
接收单元,用于接收请求数据访问的消息,其中包括要查询的第一工作标识;
元数据访问单元,用于根据所述第一工作标识访问元数据;
数据返回单元,用于如果根据所述元数据找到文件名中包含所述第一工作标识的第一数据文件,则返回所述第一数据文件;否则从所述元数据获得文件中的指令域数据可能包含所述第一工作标识的数据文件列表;读取和解析所述文件列表中每一个数据文件中的各条指令域数据,将指令域数据的工作标识与所述第一工作标识相匹配的各条指令域数据写入第二数据文件,其中所述第二数据文件的文件名包含所述第一工作标识;将所述第二数据文件的信息更新到所述元数据中,并返回所述第二数据文件,其中,所述工作标识包括数控系统的标识、G代码名称和时间戳。
12.根据权利要求11所述的分布式指令域数据的访问系统,其特征在于,所述数据返回单元包括第一线程和第二线程;
所述第一线程用于指令域数据的读取和解析,当一条指令域数据的工作标识与所述第一工作标识相匹配时,触发所述第二线程将匹配所述第一工作标识的指令域数据写入所述第二数据文件。
13.根据权利要求11或12所述的分布式指令域数据的访问系统,其特征在于,所述元数据和所述数据文件存储在分布式文件系统中;
每一个所述数据文件中包括至少一条指令域数据,每一条指令域数据包括工作标识字段。
14.根据权利要求13所述的分布式指令域数据的访问系统,其特征在于,所述数据文件的存储方式为:属于不同的数控设备的所述数据文件存储在不同的文件夹下,其中一个文件夹存储一台数控设备对应的所有数据文件,一个文件夹中的各数据文件中存储一台数控设备的所有指令域数据。
15.根据权利要求13所述的分布式指令域数据的访问系统,其特征在于,每个所述数据文件中存储一台数控设备在一个时间段内产生的指令域数据;
所述数据文件中的每一行为一条完整的指令域数据。
16.根据权利要求14所述的分布式指令域数据的访问系统,其特征在于,所述元数据包括所述数据文件的属性信息,和存放所述数据文件的目录的属性信息。
17.根据权利要求16所述的分布式指令域数据的访问系统,其特征在于,所述数据文件的属性信息包括以下之一或其任意组合:
文件名,文件长度,文件块大小,冗余度,创建时间,修改时间,文件所有者和权限,父目录信息
所述目录的属性信息包括以下之一或其任意组合:
目录名,创建时间,父目录信息。
18.根据权利要求11或12所述的分布式指令域数据的访问系统,其特征在于,所述指令域数据是来自数控设备的指令域数据。
19.一种服务器,其特征在于,包括:
存储器,用于存储计算机可执行指令;以及,
处理器,用于在执行所述计算机可执行指令时实现如权利要求1至10中任意一项所述的分布式指令域数据的访问方法中的步骤。
20.根据权利要求19所述的服务器,其特征在于,所述服务器基于SOA架构的WebService技术进行数据访问接口发布,向发送请求数据访问的消息的客户端提供服务。
21.根据权利要求19所述的服务器,其特征在于,所述服务器中数据文件的数据来自基于虚拟化技术的虚拟数控系统,所述虚拟数控系统模拟实际数控加工,提供数控加工产生的大数据。
22.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现如权利要求1至10中任意一项所述的分布式指令域数据的访问方法的步骤。
CN201810305821.4A 2018-04-08 2018-04-08 分布式指令域数据的访问方法及其系统 Active CN108681556B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810305821.4A CN108681556B (zh) 2018-04-08 2018-04-08 分布式指令域数据的访问方法及其系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810305821.4A CN108681556B (zh) 2018-04-08 2018-04-08 分布式指令域数据的访问方法及其系统

Publications (2)

Publication Number Publication Date
CN108681556A CN108681556A (zh) 2018-10-19
CN108681556B true CN108681556B (zh) 2021-01-29

Family

ID=63800731

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810305821.4A Active CN108681556B (zh) 2018-04-08 2018-04-08 分布式指令域数据的访问方法及其系统

Country Status (1)

Country Link
CN (1) CN108681556B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109558082B (zh) * 2018-11-26 2021-12-07 深圳天源迪科信息技术股份有限公司 分布式文件系统
CN109753505B (zh) * 2018-12-26 2022-06-24 济南银华信息技术有限公司 在大数据存储系统中创建临时存储单元的方法及系统
CN110474877A (zh) * 2019-07-16 2019-11-19 盐城师范学院 一种基于大数据技术的数字内容交互方法
CN112306413B (zh) * 2020-10-30 2024-05-07 北京百度网讯科技有限公司 用于访问内存的方法、装置、设备以及存储介质
CN112579620A (zh) * 2020-12-23 2021-03-30 上海上实龙创智能科技股份有限公司 一种基于消息队列的分布式系统数据最终一致性方法
CN113672559A (zh) * 2021-08-30 2021-11-19 中科新松有限公司 一种机器人的访问方法、装置、机器人及存储介质
CN117032089B (zh) * 2023-08-23 2024-01-30 杭州峰景科技有限公司 基于物联网的焊机控制指令处理方法、装置及存储介质
CN117688104A (zh) * 2024-02-01 2024-03-12 腾讯科技(深圳)有限公司 请求处理方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101699392A (zh) * 2009-11-12 2010-04-28 中国人民解放军国防科学技术大学 流处理器中io单元复用方法
CN104298175A (zh) * 2014-09-26 2015-01-21 华中科技大学 一种基于虚拟化技术的数控系统及方法
CN105427193A (zh) * 2015-12-17 2016-03-23 山东鲁能软件技术有限公司 一种基于分布式时序数据服务的大数据分析装置及方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050080799A1 (en) * 1999-06-01 2005-04-14 Abb Flexible Automaton, Inc. Real-time information collection and distribution system for robots and electronically controlled machines
WO2015012871A1 (en) * 2013-07-26 2015-01-29 Intel Corporation Methods and apparatus for supporting persistent memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101699392A (zh) * 2009-11-12 2010-04-28 中国人民解放军国防科学技术大学 流处理器中io单元复用方法
CN104298175A (zh) * 2014-09-26 2015-01-21 华中科技大学 一种基于虚拟化技术的数控系统及方法
CN105427193A (zh) * 2015-12-17 2016-03-23 山东鲁能软件技术有限公司 一种基于分布式时序数据服务的大数据分析装置及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"数控机床大数据采集总线技术及发展趋势研究";宋杰、王科社等;《制造技术与机床》;20161102(第11期);第49-54页 *

Also Published As

Publication number Publication date
CN108681556A (zh) 2018-10-19

Similar Documents

Publication Publication Date Title
CN108681556B (zh) 分布式指令域数据的访问方法及其系统
US10776170B2 (en) Software service execution apparatus, system, and method
CN1811757B (zh) 用于定位万维网页以及计算机网络文件的系统和方法
JP6461435B1 (ja) ヒストリアンと統合された分散組み込みデータおよび知識管理システム
US20190034429A1 (en) Translating a natural language request to a domain-specific language request using templates
CN115129736B (zh) 基于规则引擎的规则事件动态加载与更新方法及相关设备
CN110908641B (zh) 基于可视化的流计算平台、方法、设备和存储介质
CN111324610A (zh) 一种数据同步的方法及装置
JP7108039B2 (ja) システム全体の制御とデータ探索の自動化を可能にするための視覚的および実行テンプレートの推奨
CN109753596B (zh) 用于大规模网络数据采集的信源管理与配置方法和系统
CN111400288A (zh) 数据质量检查方法及系统
CN111258978A (zh) 一种数据存储的方法
CN111752945B (zh) 一种基于容器和层次模型的时序数据库数据交互方法和系统
Zheng et al. Big data storage and management in SaaS applications
CN112965939A (zh) 一种文件合并方法、装置和设备
CN113704272B (zh) 一种人机物融合环境下的数字对象状态表达方法及装置
JP7230349B2 (ja) 設計データ分析のためのシステムおよび方法
Shakhovska et al. Big Data information technology and data space architecture
Dhanda Big data storage and analysis
CN110781430B (zh) 互联网新型虚拟数据中心系统及其构造方法
CN114490679A (zh) 一种基于标识解析的数据治理方法、装置、设备及介质
Anh et al. Component-based design for SCADA architecture
GB2536921A (en) Apparatus, program, and method for updating cache memory
US11907097B1 (en) Techniques for processing trace data
CN109344216A (zh) 一种面向大数据的k近邻连接查询方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant