CN112198856A - 一种大规模分布式实时控制*** - Google Patents

一种大规模分布式实时控制*** Download PDF

Info

Publication number
CN112198856A
CN112198856A CN202011305639.2A CN202011305639A CN112198856A CN 112198856 A CN112198856 A CN 112198856A CN 202011305639 A CN202011305639 A CN 202011305639A CN 112198856 A CN112198856 A CN 112198856A
Authority
CN
China
Prior art keywords
node
control system
data
network
time control
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.)
Granted
Application number
CN202011305639.2A
Other languages
English (en)
Other versions
CN112198856B (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.)
Xi'an Kechuang Electronic Technology Co ltd
Original Assignee
Xi'an Kechuang Electronic Technology Co ltd
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 Xi'an Kechuang Electronic Technology Co ltd filed Critical Xi'an Kechuang Electronic Technology Co ltd
Priority to CN202011305639.2A priority Critical patent/CN112198856B/zh
Publication of CN112198856A publication Critical patent/CN112198856A/zh
Application granted granted Critical
Publication of CN112198856B publication Critical patent/CN112198856B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/41865Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by job scheduling, process planning, material flow
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32252Scheduling production, machining, job shop
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Manufacturing & Machinery (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供了一种大规模分布式实时控制***,所述***包括供电模块、核心控制器和节点执行模块,在核心控制器中使用可直接通过变量名称进行网络远程访问的网络变量,对节点数据进行管理,实现了控制节点的无限制增加,易于扩展,基于网络变量形式的数据访问便捷高效,同时提高了控制的实时性。

Description

一种大规模分布式实时控制***
技术领域
本发明涉及工业自动化控制领域,特别涉及一种大规模、分布式的实时控制***。
背景技术
在大规模的工业自动化控制***以及高精度科研自动化控制***中,由于传统的级联方式受到硬件处理速度和控制字符宽度的限制,因此不能实现控制节点数量的无限扩展。同时,也会由于扩展级联层数的增加而逐渐产生实时性下降的问题。解决上述问题的常见方式是增加中心处理器或处理单元的个数,但这样会导致控制***成本和复杂度大幅增加。
本发明针对自动控制***中需要控制的节点数量大、精度高和实时性好的需求,提出了一种基于网络变量的大规模分布式实时控制***,通过引入在核心控制器中使用可直接通过变量名称进行网络远程访问的网络变量,对节点数据进行管理,可以很好的解决同时对实时性、分布式以及可大规模部署的需求。与此同时,***设计兼顾通用性,使该***同时具备比同类产品更低成本,***搭建灵活方便等特点,同样可以适用于普通工业生产线、物联网应用等,具有广泛的市场应用。同时,本发明基于低成本单片机,且主控制器与采集模块集成一体,性价比高,同时控制***包含了自主研发的前台组态软件,有效降低了部署难度。
发明内容
本发明提出了一种大规模分布式实时控制***,包括供电模块、核心控制器和节点执行模块:
所述节点执行模块部署于分布的节点上,用于按照用户设置内容收集节点数据并执行对节点的控制操作;
所述核心控制器用于按照用户设置内容对收集的节点数据进行判断和处理;
其特征在于,在核心控制器中使用可直接通过变量名称进行网络远程访问的网络变量,对节点数据进行管理。
进一步的,所述核心控制器按照用户设置内容和节点状态发布网络变量。
进一步的,所述节点执行模块中设置有监控处理器,所述监控处理器用于检验用户设置内容与节点状态是否匹配和执行节点初始化操作。
进一步的,所述监控处理器用于判断节点数据是否异常。
进一步的,所述核心控制器中设置有控制处理器,所述控制处理器用于识别节点并判断节点状态,管理节点数据并对用户需求进行响应。
进一步的,所述控制处理器中包含通讯模块、数据更新模块和网络变量模块:
所述通讯模块用于按照用户配置内容或自动检测出的所连接节点的属性及端口信息,配合节点状态,创建每一个网络变量的数据刷新配置,并按照所创建的数据刷新配置获取节点数据,并将节点数据发送给数据更新模块;
所述数据更新模块用于将节点数据发送给网络变量模块。
所述网络变量模块用于为网络变量赋值和更新状态信息,并按照用户访问网络变量的方式确定与用户的数据通讯方式,向用户发送网络变量数值。
进一步的,所述大规模分布式实时控制***还包括网络变量服务器,所述网络变量服务器用于分担所述网络变量模块的功能载荷或收集存储网络变量的历史数据。
进一步的,当***中新加入节点后,所述控制处理器读取新节点属性或自动检测节点属性,对新节点进行自动配置并创建对应的网络变量,并进行网络变量的初始化。
进一步的,所述核心控制器和所述节点执行模块之间采用总线或局域无线网进行通讯。
进一步的,所述大规模分布式实时控制***还包括用于存储节点数据的数据库。
进一步的,所述大规模分布式实时控制***中可包含多个核心控制器,所述多个核心控制器之间可通过网络进行互相访问,实现各网络变量之间的互相连锁控制。
进一步的,所述大规模分布式实时控制***中的节点执行模块在多个核心控制器互相连锁控制状态下执行连锁动作。
利用上述大规模分布式实时控制***,能够在***中实现近乎无数量限制的分布式控制节点的管理,同时能很好的实现对节点的实时性管理。
附图说明
图1为本发明的小规模组网示意图;
图2为本发明中核心控制器的结构示意图;
图3位本发明中节点执行模块的结构示意图。
具体实施方式
本发明提出的种大规模分布式实时控制***,可用于各种场景,如大规模工业控制***、自动化流水线***、分布式环境监测***、人员流动和引流管理***等。现就本发明提出的***用于园区智慧管理的实施例介绍如下。
在办公园区或住宅小区中,使用本发明中提出的大规模分布式实时控制***,可实现园区内的各种设备自动化管理、园区内的能源管理等功能。
在本实施例中,把每一个能够由人工控制的开关视为一个节点,每一个节点处部署所述节点执行模块。如,园区中建筑物内的每个区域的灯光控制开关、空调控制总开关内均部署一个节点执行模块。节点执行模块通过建筑物中设置的WiFi信号与核心控制器进行通信。在WiFi信号的终端,配备CANWIFI-200T转换器,用于联通WiFi信号和CAN总线。考虑到成本问题,可以以每栋建筑物为一个节点,在建筑物的总开关处配备转换器。
本实施例中,WiFi转换器直接与核心控制器相连接,在每栋建筑物内配置一台核心控制器,核心控制器通过WiFi直接与各节点执行模块进行通讯。
本实施例中,节点执行模块使用了87C51MCU作为主控芯片,核心控制器采用工业级ARM Cotex-M7单片机,操作***采用RTEMS(The Real-Time Executive forMultiprocessor Systems)实时操作***。
当***部署完毕后,每个节点上的节点执行模块会通过CAN总线与核心控制器进行通信,核心控制器自动扫描并遍历查询所有节点,自动读取各节点执行模块的属性,包括节点类型、端口类型、端口数量等。接着,根据针对每个节点的每个端口的每一种数据类型,创建对应的网络变量,使得网络变量与具体的节点端口实现对应,并将网络变量发布于网络之上;并自动将所发布的网络变量与对应的节点的端口进行关联。
节点的控制模块每个端口,按照核心控制器中CPU配置的模式,自动完成数据的采集,完成采集之后,通过总线,将数据传送给核心控制器,核心控制器中包含以下几部分功能的模块:通讯模块、数据更新模块和网络变量模块。本实施例中,上述三个模块通过软件编程实现。
本实施例中,具有三种网络变量数值更新的方式,分别是:定期刷新、上次用户端主动获取和由底层端口用时间驱动更新。对于定期刷新的数据,将根据预先设置在CPU中的周期,定期从节点中获取对应的数据。数据刷新可以由客户端发送请求进行驱动刷新,也可以由核心控制器根据实际的硬件事件实时刷新,还可以由核心控制器直接进行实时刷新;变量的访问也可以以多种形式进行,节点可主动实时读取网络变量数据,也可注册一个回调接口,当网络变量数值有更新时,由核心控制器主动推送数据给需要使用数据的节点,并通过回调接口由节点的监控处理器进行相应的处理。
对于配置为上层用户端主动获取的网络变量,在用户进行读取时,向具体节点发送数据读取指令,驱动功能模块从硬件端口获取对应的数据,并传送给通讯模块。
对于由底层节点的端口硬件事件驱动的数据,节点收到硬件事件后,会将端口数据主动发送给通讯模块,由通讯模块推送给核心控制器中的网络变量数据更新模块。
核心控制器中的通讯模块通过以上三种模式获取到的数据,会实时发送给网络变量数据更新模块,该模块负责将实时获取到的各个端口的数据发送给网络变量模块,网络变量模块负责使用收到的底层数据实时更新网络变量的值和其它状态信息,再进一步通过网络变量的标准通讯接口,与网络变量的访问客户端通讯,发送给客户端。
当***内部新接入一个节点时,节点上的节点执行模块首先进行初始化。初始化后,即按照前述发布网络变量的方式,发布新接入的节点的网络变量。
在***工作过程中,每一个节点或核心控制器既可以作为网络变量的发布端,向***发布和/或更新网络变量,也可作为一个访问端,主动查询或改变一个网络变量的数值。
前述网络变量的类型可包括:
整数类型;长整数类型;浮点类型;双精度浮点类型;数字量输入类型;数字量输出类型;字符类型;字符串类型;数组类型;链接类型。
前述网络变量的属性包括:
数值范围,数值精度,初始值,当前值,数值最大长度,数值当前长度,当前最大值,当前最小值,数值更新状态,最后更新时间,网络应答状态,变量是否正在被占用更新中,刷新模式,自动刷新周期,刷新状态,报警状态,连锁,正常与否状态,访问连接状态。
此外,还可以在发布端部署相关的自动更新机制,从而实现变量值的自动更新(用在如从物理设备或传感器自动获取并更新数值的应用)。发布端可嵌入一个自动回调接口,并指定回调触发方式(硬件中断触发、消息触发、定时触发等),当回调被触发后,按照回调中设计好的数据获取方式,获取到相关数据,并更新网络变量的数值。
当多个访问端同时向发布端建立了连接并同时发起访问请求时,发布端会通过同步锁机制保证多个读写的原子性操作,即当变量正处于被某个访问端进行值或属性写入的过程中,对整个访问加锁,在加锁期间暂时冻结其它的访问,当值或属性更新完成后,解锁,然后才能进行其它读取或写入操作;
网络变量的发布端也可以在变量值或状态有变化时,主动向访问端推送数值变化:首先访问端向发布端发起注册,注册需要对某个值的值或属性进行自动推送请求,注册成功后,发布端在判断到相对应的注册项目的值发生变化后,会主动向访问端推送消息,通知网络变量最新的值或更新后的属性。
通过设计和控制上述操作中所遵循的网络变量互锁、推送和交互的机制,就能够实现园区内灯光控制、空调控制的自动化运行。
除此之外,如果还需要对园区内的供电进行实时监控,对光伏、风电、电网供电和蓄电池四种不同时段的电力供应进行合理配置,则需要在***中增加节点数量。本实施例中,为了增加***运行的安全性,在强电和弱电之间配置了隔离网关,把强电和弱电之间隔离成了两个相对独立的子网,提高了***运行的可靠性。
当两个子网之间的网络变量需要交互时,可以通过设置的网关将网络变量从其发布端所在的子网,转发到其它子网,以响应其它子网中的访问端的访问请求。
当对本实施例中的***进行扩展时,可以先以一个或多个核心控制器为基础,分别构建实现各个不同功能的子***,如空调控制子***、灯光控制子***、电力控制子***、门禁控制子***等,再把上述子***视为一个节点,按照前述的组网方式进行叠加组合。同时,为了提高扩展后***的实时响应能力,还可以为每一个子***配置一台网络变量服务器,作为核心控制器中网络变量模块,以分担核心控制器中网络变量模块的工作负荷。
在大规模网络条件下,***中可设置多个能够相互访问的核心控制器。所述多个核心控制器之间可以通过网关进行子网划分。并在网络中统一设置网络变量服务器,对工作网络中的网络变量数据吞吐流量进行平衡,并保存网络变量的历史数据,保证了***的稳定性和可回滚性。
以上对本发明所提供的大规模分布式实时控制***进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,本说明书内容不应理解为对本发明技术方案的限制。

Claims (12)

1.一种大规模分布式实时控制***,包括供电模块、核心控制器和节点执行模块:
所述节点执行模块部署于分布的节点上,用于按照用户设置内容收集节点数据并执行对节点的控制操作;
所述核心控制器用于按照用户设置内容对收集的节点数据进行判断和处理;
其特征在于,在核心控制器中使用可直接通过变量名称进行网络远程访问的网络变量,对节点数据进行管理。
2.根据权利要求1所述的大规模分布式实时控制***,其特征在于,所述核心控制器按照用户设置内容和节点状态发布网络变量。
3.根据权利要求2所述的大规模分布式实时控制***,其特征在于,所述节点执行模块中设置有监控处理器,所述监控处理器用于检验用户设置内容与节点状态是否匹配和执行节点初始化操作。
4.根据权利要求3所述的大规模分布式实时控制***,其特征在于,所述监控处理器用于判断节点数据是否异常。
5.根据权利要求3所述的大规模分布式实时控制***,其特征在于,所述核心控制器中设置有控制处理器,所述控制处理器用于识别节点并判断节点状态,管理节点数据并对用户需求进行响应。
6.根据权利要求5所述的大规模分布式实时控制***,其特征在于,所述控制处理器中包含通讯模块、数据更新模块和网络变量模块:
所述通讯模块用于按照用户配置内容或自动检测出的所连接节点的属性及端口信息,配合节点状态,创建每一个网络变量的数据刷新配置,并按照所创建的数据刷新配置获取节点数据,并将节点数据发送给数据更新模块;
所述数据更新模块用于将节点数据发送给网络变量模块。
所述网络变量模块用于为网络变量赋值和更新状态信息,并按照用户访问网络变量的方式确定与用户的数据通讯方式,向用户发送网络变量数值。
7.根据权利要求5所述的大规模分布式实时控制***,其特征在于,所述大规模分布式实时控制***还包括网络变量服务器,所述网络变量服务器用于分担所述网络变量模块的功能载荷或收集存储网络变量的历史数据。
8.根据权利要求5所述的大规模分布式实时控制***,其特征在于,当***中新加入节点后,所述控制处理器读取新节点属性或自动检测节点属性,对新节点进行自动配置并创建对应的网络变量,并进行网络变量的初始化。
9.根据权利要求5-8中任意一项所述的大规模分布式实时控制***,其特征在于,所述核心控制器和所述节点执行模块之间采用现场总线或局域无线网进行通讯。
10.根据权利要求1所述的大规模分布式实时控制***,其特征在于,所述大规模分布式实时控制***还包括用于存储节点数据的数据库。
11.根据权利要求1所述的大规模分布式实时控制***,其特征在于,所述大规模分布式实时控制***中可包含多个核心控制器,所述多个核心控制器之间可通过网络进行互相访问,实现各网络变量之间的互相连锁控制。
12.根据权利要求11所述的大规模分布式实时控制***,其特征在于,所述大规模分布式实时控制***中的节点执行模块在多个核心控制器互相连锁控制状态下执行连锁动作。
CN202011305639.2A 2020-11-20 2020-11-20 一种大规模分布式实时控制*** Active CN112198856B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011305639.2A CN112198856B (zh) 2020-11-20 2020-11-20 一种大规模分布式实时控制***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011305639.2A CN112198856B (zh) 2020-11-20 2020-11-20 一种大规模分布式实时控制***

Publications (2)

Publication Number Publication Date
CN112198856A true CN112198856A (zh) 2021-01-08
CN112198856B CN112198856B (zh) 2022-06-17

Family

ID=74034030

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011305639.2A Active CN112198856B (zh) 2020-11-20 2020-11-20 一种大规模分布式实时控制***

Country Status (1)

Country Link
CN (1) CN112198856B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114422344A (zh) * 2021-12-06 2022-04-29 北京四方继保自动化股份有限公司 一种dcs***网络变量增量更新方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102448075A (zh) * 2010-09-30 2012-05-09 上海贝尔股份有限公司 一种传感器网络节点移动性管理的方法及***
CN103905537A (zh) * 2014-03-20 2014-07-02 冶金自动化研究设计院 分布式环境下管理工业实时数据存储的***
CN106656706A (zh) * 2017-02-25 2017-05-10 华南理工大学 基于软件总线的面向服务的机器人开放式控制***及方法
US20180288027A1 (en) * 2015-11-25 2018-10-04 Wire I.P. Limited Network architecture for controlling data signalling
CN109146213A (zh) * 2017-06-16 2019-01-04 北京航空航天大学 航天器电源***健康管理验证评估环境
CN109639483A (zh) * 2018-12-12 2019-04-16 明阳智慧能源集团股份公司 一种风力发电机组数据互通共享平台及其故障穿越方法
CN110995783A (zh) * 2019-11-05 2020-04-10 河北寰亚泵业股份有限公司 一种远程监控***
CN111556074A (zh) * 2020-05-13 2020-08-18 常熟瑞特电气股份有限公司 基于opc ua的通信协议配置方法及装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102448075A (zh) * 2010-09-30 2012-05-09 上海贝尔股份有限公司 一种传感器网络节点移动性管理的方法及***
CN103905537A (zh) * 2014-03-20 2014-07-02 冶金自动化研究设计院 分布式环境下管理工业实时数据存储的***
US20180288027A1 (en) * 2015-11-25 2018-10-04 Wire I.P. Limited Network architecture for controlling data signalling
CN106656706A (zh) * 2017-02-25 2017-05-10 华南理工大学 基于软件总线的面向服务的机器人开放式控制***及方法
CN109146213A (zh) * 2017-06-16 2019-01-04 北京航空航天大学 航天器电源***健康管理验证评估环境
CN109639483A (zh) * 2018-12-12 2019-04-16 明阳智慧能源集团股份公司 一种风力发电机组数据互通共享平台及其故障穿越方法
CN110995783A (zh) * 2019-11-05 2020-04-10 河北寰亚泵业股份有限公司 一种远程监控***
CN111556074A (zh) * 2020-05-13 2020-08-18 常熟瑞特电气股份有限公司 基于opc ua的通信协议配置方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
杨帅 等: ""基于LON总线平台的智慧型水质监测管理***"", 《科技通报》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114422344A (zh) * 2021-12-06 2022-04-29 北京四方继保自动化股份有限公司 一种dcs***网络变量增量更新方法
CN114422344B (zh) * 2021-12-06 2024-05-10 北京四方继保自动化股份有限公司 一种dcs***网络变量增量更新方法

Also Published As

Publication number Publication date
CN112198856B (zh) 2022-06-17

Similar Documents

Publication Publication Date Title
US10791193B2 (en) Remote access gateway configurable control system
US10429092B2 (en) Asynchronous reporting system
US10992494B2 (en) Gateway round-robin system
US9292014B2 (en) Digital control manager
JP5584308B2 (ja) センサネットワークを操作するシステムおよび方法
WO2015093070A1 (ja) ゲートウェイ、管理センタおよび遠隔アクセスシステム
CN104765341A (zh) 一种基于物联网技术的空气净化器控制***
BRPI1011923B1 (pt) sistema e método para fornecer serviços de gerenciamento de automação
Huang et al. Development of an intelligent energy management network for building automation
US10514713B2 (en) Mailbox data storage system
CN112198856B (zh) 一种大规模分布式实时控制***
CN109361585A (zh) 一种主节点自动设置子节点波特率和地址的方法
CN112789872A (zh) 低能量工业无线仪器网络
CN112463755B (zh) 基于hdfs的异构物联网大数据的存储与读取***及方法
CN117112459A (zh) 一种多设备分布式数据采集***构建及方法
Althoff et al. An architecture for real-time control in multi-robot systems
CN107222520B (zh) 一种基于定向扩散算法的分布式***
JP4883194B2 (ja) プログラマブルコントローラおよびコントローラシステム
CN101968646A (zh) 一种智能集群控制***及其控制方法
CN201945859U (zh) 一种智能集群控制***
Mersch et al. Service-orientation on behalf of self-configuration for the automation environment
CN113841095A (zh) 工业物联网代理装置
Karanika et al. CoMesh: Fully-Decentralized Control for Sense-Trigger-Actuate Routines in Edge Meshes
Jia et al. Wireless remote monitor and control system based on Zigbee and web
JP2012064130A (ja) 分散システムにおけるデータレプリケーション管理方法

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