IP Library › Granted Patent US 12,493,557
Granted Patent B1
US 12,493,557 · App. 18/741,035 · Granted Dec 9, 2025

Controlled activation of interdependent bindings

Inventor: Carl Reuben Gould (Folsom, CA)
Assignee: Inductive Automation, LLC
G06F12/0862G05B19/058G06F8/38G06F16/9024G06F16/9027G05B19/05G05B2219/13144G05B2219/14083G05B2219/32082G05B2219/32268G06Q10/0639H04N19/12
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,493,557
App. No.
18/741,035
Granted
Dec 9, 2025
Kind
B1
Abstract

A system for efficiently configuring bindings based on a dependency graph is described. The system may generate or access a graph comprising a set of nodes. Each node may represent a binding and is associated with a component property of a component hierarchy corresponding to a hierarchical structure of a data model. Each node of the graph may be connected to at least one other node with an edge representing a dependency in the hierarchical structure of the data model. The system may receive a request to generate a view associated with the set of bindings. The system may determine an order to load the set of bindings based on the graph, and may load the set of bindings based on the determined order.

Claims (42)

1 . A computer-implemented method comprising:

receiving a request to populate a graphic user interface with a view associated with a set of bindings each associated with a component property of a real-world physical component;

determining an order to load the set of bindings to account for a startup lag caused by loading bindings and dependencies associated with the bindings by first loading bindings without dependencies and afterwards loading each dependent binding only after each binding on which the dependent binding depends has produced valid data, wherein the order further accounts for a detected binding dependency loop by randomly selecting an order in which bindings within the binding dependency loop are loaded;

loading the set of bindings within the view based on the determined order; and

while loading the set of bindings, monitoring configuration results from loaded bindings using a programmable logic controller physically coupled to the real-world physical component and configured to monitor and control one or more physical states associated with the real-world physical component, and delaying loading of a set of subsequent bindings until the monitored configuration results include successfully returned outputs detected by the programmable logic controller from all bindings on which the set of subsequent bindings depend.

2 . The computer-implemented method of claim 1 , wherein the graph is generated by traversing a hierarchical set of nodes to identify the set of bindings.

3 . The computer-implemented method of claim 2 , wherein nodes of the graph are generated based on each identified binding while traversing the hierarchical set of nodes.

4 . The computer-implemented method of claim 2 , wherein each edge of the graph is directional indicating a direction of dependency between the nodes coupled to the edge, and wherein determining the order to load the set of bindings comprises:

identifying within the graph a first set of nodes with no outgoing edges;

identifying a second set of nodes that are directly connected to the first set of nodes; and

loading the first set of nodes before loading the second set of nodes.

5 . The computer-implemented method of claim 2 , further comprising:

removing a cycle from the graph, wherein the cycle is not associated with an originating node.

6 . The computer-implemented method of claim 1 , wherein a binding is a tag binding, a property binding, an expression binding, an expression structure binding, a query binding, a tag history binding, or an HTTP (Hypertext Transfer Protocol) binding.

7 . The computer-implemented method of claim 1 , wherein a data source associated with the data model is one of: a programmable logic controller, an Application Programming Interface, a function, an expression, a database, and a subtree of a second property tree.

8 . A non-transitory computer-readable storage medium comprising memory with executable computer instructions encoded thereon that, when executed by one or more processors, cause the one or more processors to perform operations comprising:

receiving a request to populate a graphic user interface with a view associated with a set of bindings each associated with a component property of a real-world physical component;

determining an order to load the set of bindings to account for a startup lag caused by loading bindings and dependencies associated with the bindings by first loading bindings without dependencies and afterwards loading each dependent binding only after each binding on which the dependent binding depends has produced valid data, wherein the order further accounts for a detected binding dependency loop by randomly selecting an order in which bindings within the binding dependency loop are loaded;

loading the set of bindings within the view based on the determined order; and

while loading the set of bindings, monitoring configuration results from loaded bindings using a programmable logic controller physically coupled to the real-world physical component and configured to monitor and control one or more physical states associated with the real-world physical component, and delaying loading of a set of subsequent bindings until the monitored configuration results include successfully returned outputs detected by the programmable logic controller from all bindings on which the set of subsequent bindings depend.

9 . The non-transitory computer-readable storage medium of claim 8 , wherein the graph is generated by traversing a hierarchical set of nodes to identify the set of bindings.

10 . The non-transitory computer-readable storage medium of claim 8 , wherein nodes of the graph are generated based on each identified binding while traversing the hierarchical set of nodes.

11 . The non-transitory computer-readable storage medium of claim 8 , wherein each edge of the graph is directional indicating a direction of dependency between the nodes coupled to the edge, and wherein determining the order to load the set of bindings comprises:

identifying within the graph a first set of nodes with no outgoing edges;

identifying a second set of nodes that are directly connected to the first set of nodes; and

loading the first set of nodes before loading the second set of nodes.

12 . The non-transitory computer-readable storage medium of claim 8 , wherein a data source associated with the data model is one of: a programmable logic controller, an Application Programming Interface, a function, an expression, a database, and a subtree of a second property tree.

13 . A computing system comprising:

a processor; and

a non-transitory computer-readable storage medium storing instructions for detecting and blocking a pop-up loop, the instructions when executed by the processor cause the processor to perform steps including:

receiving a request to populate a graphic user interface with a view associated with a set of bindings each associated with a component property of a real-world physical component;

determining an order to load the set of bindings to account for a startup lag caused by loading bindings and dependencies associated with the bindings by first loading bindings without dependencies and afterwards loading each dependent binding only after each binding on which the dependent binding depends has produced valid data, wherein the order further accounts for a detected binding dependency loop by randomly selecting an order in which bindings within the binding dependency loop are loaded;

loading the set of bindings within the view based on the determined order; and

while loading the set of bindings, monitoring configuration results from loaded bindings using a programmable logic controller physically coupled to the real-world physical component and configured to monitor and control one or more physical states associated with the real-world physical component, and delaying loading of a set of subsequent bindings until the monitored configuration results include successfully returned outputs detected by the programmable logic controller from all bindings on which the set of subsequent bindings depend.

14 . The computing system of claim 13 , wherein the graph is generated by traversing a hierarchical set of nodes to identify the set of bindings.

15 . The computing system of claim 13 , wherein nodes of the graph are generated based on each identified binding while traversing the hierarchical set of nodes.

16 . The computing system of claim 13 , wherein each edge of the graph is directional indicating a direction of dependency between the nodes coupled to the edge, and wherein determining the order to load the set of bindings comprises:

identifying within the graph a first set of nodes with no outgoing edges;

identifying a second set of nodes that are directly connected to the first set of nodes; and

loading the first set of nodes before loading the second set of nodes.

17 . The computing system of claim 13 , wherein a binding is a tag binding, a property binding, an expression binding, an expression structure binding, a query binding, a tag history binding, or an HTTP (Hypertext Transfer Protocol) binding.

18 . The computing system of claim 13 , wherein a data source associated with the data model is one of: a programmable logic controller, an Application Programming Interface, a function, an expression, a database, and a subtree of a second property tree.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 25, 2024
From: GOULD, CARL REUBEN
To: INDUCTIVE AUTOMATION, LLC
Reel/Frame 068687/0612 →
Continuity (3)
Continuation 18441761 · Feb 14, 2024
Continuation 18472226 · Sep 22, 2023
Continuation 17969621 · Oct 19, 2022
References Cited (22)
US 10275265B1 · Gould et al. · 2019 [cited by applicant]
US 11803478B1 · Gould · 2023 [cited by applicant]
US 11934315B1 · Gould · 2024 [cited by applicant]
US 20060242002A1 · Sun · 2006 [cited by examiner]
US 20090132636A1 · Natanzon et al. · 2009 [cited by applicant]
US 20100223216A1 · Eggert · 2010 [cited by examiner]
US 20140313215A1 · Woods · 2014 [cited by applicant]
US 20210034687A1 · Achan · 2021 [cited by examiner]
CN 101606122B · 2009 [cited by applicant]
CN 105303465A · 2016 [cited by applicant]
CN 108319483A · 2018 [cited by applicant]
WO WO2020119485A1 · 2020 [cited by applicant]
Shyh-Kwei et al, CN 100419744, (translation), Sep. 17, 2008, 12 pgs <CN_100419744.pdf>. [cited by examiner]
Liu et al., CN 105303465, (translation) May 14, 2019, 8 pgs <CN_105303465.pdf>. [cited by examiner]
Zhao, Dong CN 104899336A, (translation), Sep. 9, 2015, 7 pgs <CN_104899336A.pdf>. [cited by examiner]
JP 4694031, (translation), Jun. 1, 2011, 29 pgs <JP_4694031.pdf>. [cited by examiner]
Yang, Yang, Cn 111783002A (translation), Oct. 16, 2020, 15 pgs <CN_111783002A.pdf>. [cited by examiner]
JP 4073618, (translation)—Apr. 9, 2008, 57 pgs <JP_4073618.pdf>. [cited by examiner]
United States Office Action, U.S. Appl. No. 17/969,621, filed May 30, 2023, 22 pages. [cited by applicant]
United States Office Action, U.S. Appl. No. 17/969,621, filed Feb. 16, 2023, 20 pages. [cited by applicant]
United States Office Action, U.S. Appl. No. 18/472,226, filed Nov. 16, 2023, 5 pages. [cited by applicant]
United States Office Action, U.S. Appl. No. 18/441,761, filed Apr. 23, 2024, 8 pages. [cited by applicant]