IP Library Granted Patent US 9,170,579
Granted Patent B1
US 9,170,579 · App. 13/753,908 · Granted Oct 27, 2015

System, method and computer program product for monitoring and controlling industrial energy equipment

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 9,170,579
App. No.
13/753,908
Granted
Oct 27, 2015
Kind
B1
Abstract

A digital energy system monitors and controls a plurality of industrial energy devices. The system includes a server and one or more interface devices coupled to the industrial energy devices. Each of the interface devices has a dynamically configurable runtime environment. The server sends configuration data to each of interface devices. The configuration data includes variable definitions that reference specific registers on the industrial energy devices. The server monitors the industrial energy devices by obtaining values for one or more of the variables set forth in the variable definitions. To control an industrial energy device, the server sends a write request for the industrial energy device to the interface device with a value for a defined variable in the device definition for the industrial energy device.

Claims (65)

1. A method for monitoring and controlling a plurality of industrial energy devices, wherein the method is performed by a system having a server and an interface device coupled to the industrial energy devices, the method comprising:

sending configuration data from the server to the interface device, wherein:

the configuration data includes a port definition for each port on the interface device coupled to an industrial energy device and a device definition for each industrial energy device coupled to the interface device; and

each device definition specifies a unique ID and network address for one of the industrial energy devices, memory registers at which data is to be read from and written to on the industrial energy device, and one or more variable definitions that reference data at specific memory registers on the industrial energy device;

reading the configuration data received at the interface device;

dynamically configuring one or more ports on the interface device in accordance with the port definitions in order to enable the interface device to read output data from and write control data to the industrial energy devices coupled to the interface device;

dynamically allocating memory on the interface device for the defined variables in the device definitions;

periodically reading output data at each industrial energy device coupled to the interface module, wherein the output data is read from memory registers on the industrial energy device specified in the device definition for the industrial energy device;

determining values for the defined variables in the configuration data using the read output data;

monitoring the plurality of industrial energy devices on the server by receiving values from the interface device for one or more of the defined variables in the configuration data; and

controlling one of the industrial energy devices by sending a write request to the interface device with a value for one of the defined variables in the device definition for the industrial energy device; and

in response to receiving the write request at the interface device, retrieving the variable definition for the variable in the write request, identifying the memory register on the applicable industrial energy device referenced in the definition, and writing the value in the write request to said memory register on the applicable industrial energy device.

2. The method of claim 1 , wherein the output data includes a plurality of data items and wherein determining the values of the variables comprises:

for each data item in the output data, determining if there is a variable definition in the configuration data that references the data item and, in response to identifying a variable definition that references the data item, determining a value for the defined variable using the data item.

3. The method of claim 1 further comprising:

updating the configuration data at the interface device in response to a change in the industrial energy devices coupled to the interface device.

4. The method of claim 3 , wherein updating the configuration data comprises deleting configuration data for an industrial energy device disconnected from the interface device and adding configuration data for a new industrial energy device connected to the interface device.

5. The method of claim 3 , further comprising dynamically reconfiguring ports and reallocating memory as required by updates to the configuration data.

6. The method of claim 1 , wherein at least one variable definition includes a scale and determining a value of said variable includes obtaining a data point in the output data and scaling the data point as specified in the definition for the variable.

7. The method of claim 1 , wherein at least one variable definition includes a condition statement and determining the value of said variable includes evaluating whether the condition statement is true or false.

8. A system for monitoring and controlling a plurality of industrial energy devices, the system comprising:

a server; and

an interface device in communication with the server and operatively coupled to the plurality of industrial energy devices to read data from and write data to the industrial energy devices, wherein the interface device has a dynamically configurable runtime operation for processing output data from the industrial equipment devices, wherein the runtime operation is dictated by configuration data that is received from the server and updated by the server as needed, wherein the configuration data includes a port definition for each port on the interface device coupled to an industrial energy device and a device definition for each industrial energy device coupled to the interface device, wherein each device definition specifies a unique ID and network address for one of the industrial energy devices, memory registers at which data is to be read and written to on the industrial energy device, and one or more variable definitions that reference data at specific memory registers on the industrial energy device, and wherein, in response to receiving configuration data from the server, the interface device performs the following:

dynamically configuring one or more ports on the interface device in accordance with the port definitions in order to enable the interface device to read output data from and write control data to the industrial energy devices coupled to the interface device;

dynamically allocating memory on the interface device for the defined variables in the device definitions;

periodically reading output data at each industrial energy device coupled to the interface module, wherein the output data is read from memory registers on the industrial energy device specified in the device definition for the industrial energy device; and

determining values for the defined variables in the configuration data using the read output data; and

wherein the server monitors the plurality of industrial energy devices by receiving values from the interface device for one or more of the defined variables in the configuration data, and controls one of the industrial energy devices by sending a write request to the interface device with a value for one of the defined variables in the device definition for the industrial energy device.

9. The system of claim 8 , wherein the interface device is configured to dynamically reconfigure ports and reallocate memory as required by updates to the configuration data.

10. The system of claim 8 , wherein at least one variable definition includes a scale and determining a value of said variable includes obtaining a data point in the output data and scaling the data point as specified in the definition for the variable.

11. The system of claim 8 , wherein at least one variable definition includes a condition statement and determining the value of said variable includes evaluating whether the condition statement is true or false.

12. A method for monitoring and controlling a plurality of industrial energy devices in a system having a server and an interface device coupled to the industrial energy devices, the method performed by the interface device and comprising:

obtaining configuration data from the server, wherein:

the configuration data includes a port definition for each port on the interface device coupled to an industrial energy device and a device definition for each industrial energy device coupled to the interface device; and

each device definition specifies a unique ID and network address for one of the industrial energy devices, memory registers at which data is to be read from and written to on the industrial energy device, and one or more variable definitions that reference data at specific memory registers on the industrial energy device;

reading the configuration data;

dynamically configuring one or more ports in accordance with the port definitions in order to enable the interface device to read output data from and write control data to the industrial energy devices coupled to the interface device;

dynamically allocating memory for the defined variables in the device definitions;

periodically reading output data at each industrial energy device coupled to the interface module, wherein the output data is read from memory registers on the industrial energy device specified in the device definition for the industrial energy device;

determining values for the defined variables in the configuration data using the read output data;

sending the server data pertaining to the industrial energy devices by sending the server values for the defined variables; and

in response to receiving a request from the server to write a variable value to an industrial energy device, retrieving the variable definition for the variable in the write request, identifying the memory register on the applicable industrial energy device referenced in the definition, and writing the value in the write request to said memory register on the applicable industrial energy device.

13. The method of claim 12 , wherein the output data includes a plurality of data items and wherein determining the values of the variables comprises:

for each data item in the output data, determining if there is a variable definition in the configuration data that references the data item and, in response to identifying a variable definition that references the data item, determining a value for the defined variable using the data item.

14. The method of claim 12 further comprising:

obtaining updated configuration data at the interface device in response to a change in the industrial energy devices coupled to the interface device.

15. The method of claim 14 , further comprising dynamically reconfiguring ports and reallocating memory as required by updates to the configuration data.

16. The method of claim 12 , wherein at least one variable definition includes a scale and determining a value of said variable includes obtaining a data point in the output data and scaling the data point as specified in the definition for the variable.

17. The method of claim 12 , wherein at least one variable definition includes a condition statement and determining the value of said variable includes evaluating whether the condition statement is true or false.

18. A computer program embodied on one or more non-transitory computer-readable mediums and comprising code that when executed by a computer system, enables the computer system to perform the following method for monitoring and controlling a plurality of industrial energy devices in a system having a server and an interface device coupled to the industrial energy devices, the method comprising:

sending configuration data from the server to the interface device, wherein:

the configuration data includes a port definition for each port on the interface device coupled to an industrial energy device and a device definition for each industrial energy device coupled to the interface device; and

each device definition specifies a unique ID and network address for one of the industrial energy devices, memory registers at which data is to be read from and written to on the industrial energy device, and one or more variable definitions that reference data at specific memory registers on the industrial energy device;

reading the configuration data received at the interface device;

dynamically configuring one or more ports on the interface device in accordance with the port definitions in order to enable the interface device to read output data from and write control data to the industrial energy devices coupled to the interface device;

dynamically allocating memory on the interface device for the defined variables in the device definitions;

periodically reading output data at each industrial energy device coupled to the interface module, wherein the output data is read from memory registers on the industrial energy device specified in the device definition for the industrial energy device;

determining values for the defined variables in the configuration data using the read output data;

monitoring the plurality of industrial energy devices on the server by receiving values from the interface device for one or more of the defined variables in the configuration data; and

controlling one of the industrial energy devices by sending a write request to the interface device with a value for one of the defined variables in the device definition for the industrial energy device; and

in response to receiving the write request at the interface device, retrieving the variable definition for the variable in the write request, identifying the memory register on the applicable industrial energy device referenced in the definition, and writing the value in the write request to said memory register on the applicable industrial energy device.

19. The computer program of claim 18 , wherein the output data includes a plurality of data items and wherein determining the values of the variables comprises:

for each data item in the output data, determining if there is a variable definition in the configuration data that references the data item and, in response to identifying a variable definition that references the data item, determining a value for the defined variable using the data item.

20. The computer program of claim 18 , further comprising:

updating the configuration data at the interface device in response to a change in the industrial energy devices coupled to the interface device.

Assignments (11)
CORRECTIVE ASSIGNMENT TO CORRECT THE RECEIVING PARTY DATA PREVIOUSLY RECORDED AT REEL: 51065 FRAME: 514. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 13, 2025
From: PIVOTAL CAPITAL FUND, LP
To: BPAC, INC.
Reel/Frame 070569/0152 →
AFTER-ACQUIRED INTELLECTUAL PROPERTY SECURITY AGREEMENT (THIRD SUPPLEMENTAL FILING) Recorded Jul 11, 2024
From: GENERAC POWER SYSTEMS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 068283/0215 →
MERGER Recorded Jul 18, 2023
From: BPAC, INC.
To: GENERAC POWER SYSTEMS, INC.
Reel/Frame 064299/0058 →
VOLUNTARY SURRENDER OF COLLATERAL Recorded Nov 20, 2019
From: BLUE PILLAR, INC.
To: BPAC, INC.
Reel/Frame 051064/0227 →
ASSIGNMENT AND ASSUMPTION AGREEMENT Recorded Nov 20, 2019
From: PIVOTAL CAPITAL FUND, LP
To: BPAC, INC.
Reel/Frame 051065/0514 →
RELEASE OF SECURITY INTEREST Recorded Nov 20, 2019
From: BPAC, INC.
To: BPAC, INC.
Reel/Frame 051063/0104 →
RELEASE OF SECURITY INTEREST Recorded Jul 17, 2017
From: WESTERN ALLIANCE BANK
To: BLUE PILLAR, INC.
Reel/Frame 043021/0641 →
SECURITY INTEREST Recorded Jul 3, 2017
From: BLUE PILLAR, INC.
To: PIVOTAL CAPITAL FUND, LP
Reel/Frame 042883/0620 →
RELEASE OF SECURITY INTEREST Recorded Feb 16, 2017
From: SILICON VALLEY BANK
To: BLUE PILLAR, INC.
Reel/Frame 041741/0157 →
SECURITY INTEREST Recorded Jul 1, 2016
From: BLUE PILLAR, INC.
To: SILICON VALLEY BANK
Reel/Frame 039063/0743 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 27, 2013
From: WITTER, BRADLEY JAY; ZERONIK, KYLE PATRICK
To: BLUE PILLAR, INC.
Reel/Frame 029884/0395 →