The present subject matter relates generally to providing software updates for industrial assets and, more particularly, to a system and method for scheduling software updates for an industrial asset based on forecasted operating data.
A variety of approaches have been used to manage and update industrial assets, including approaches that manually update industrial assets using physical connections and/or components. System integrators and complex system owners must deploy and maintain industrial control systems for their industrial assets. Control systems typically include software, such as control code, diagnostics code, operating parameter sets and/or the like. Typically, industrial assets are controlled on a one-by-one basis in which individual assets are configured or managed separately from other assets.
In order to apply an update or upgrade to a control system for an industrial asset(s), an operator must typically approve the update prior to its installation. In addition, certain updates may require that an asset be taken offline or that specific conditions be met. As a result, scheduling the installation of an update for an asset control system is often quite challenging, particularly given that an improperly scheduled update can result in significant losses in the productivity and/or efficiency of the industrial asset and, thus, significant losses in the revenue generated and/or output derived from the asset.
Accordingly, an improved system and method for scheduling software updates for an industrial asset that addresses one or more of the problems identified in the prior art, such as losses in the productivity and/or efficiency of an asset, would be welcomed in the technology.
Aspects and advantages of the invention will be set forth in part in the following description, or may be obvious from the description, or may be learned through practice of the invention.
In one aspect, the present subject matter is directed to a method for scheduling software updates for industrial assets. The method may generally include receiving, with a computing device, an indication that a software update is available for an industrial asset, accessing, with the computing device, forecasted operating data for the industrial asset, determining, with the computing device, a suggested time for installing the software update based on the forecasted operating data and providing, with the computing device, a notification indicating the availability of the software update and the suggested time for installing the software update.
In another aspect, the present subject matter is directed to a method for scheduling software updates for wind turbines. The method may generally include receiving, with a computing device, an indication that a software update is available for a wind turbine, accessing, with the computing device, forecasted operating data for the wind turbine, determining, with the computing device, a suggested time for installing the software update based on the forecasted operating data and providing, with the computing device, a notification indicating the availability of the software update and the suggested time for installing the software update.
In a further aspect, the present subject matter is directed to a system for scheduling software updates for industrial assets. The system may generally include a computing device coupled to an industrial asset. The computing device may include at least one processor and associated memory. The memory may store instructions that, when implemented by the processor(s), configure the computing device to receive an indication that a software update is available for the industrial asset, access forecasted operating data for the industrial asset, determine a suggested time for installing the software update based on the forecasted operating data and provide a notification indicating the availability of the software update and the suggested time for installing the software update.
These and other features, aspects and advantages of the present invention will become better understood with reference to the following description and appended claims. The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention.
A full and enabling disclosure of the present invention, including the best mode thereof, directed to one of ordinary skill in the art, is set forth in the specification, which makes reference to the appended figures, in which:
Reference now will be made in detail to embodiments of the invention, one or more examples of which are illustrated in the drawings. Each example is provided by way of explanation of the invention, not limitation of the invention. In fact, it will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the scope or spirit of the invention. For instance, features illustrated or described as part of one embodiment can be used with another embodiment to yield a still further embodiment. Thus, it is intended that the present invention covers such modifications and variations as come within the scope of the appended claims and their equivalents.
In general, the present subject matter is directed to a system and method for scheduling software updates for an industrial asset based on forecasted operating data associated with such asset. Specifically, in several embodiments, a new software update for an industrial asset(s) may be uploaded to or otherwise stored at an upgrade server located remote to the location of the industrial asset(s). In such embodiments, a local asset controller(s) configured to control the operation of the industrial asset(s) may be configured to communicate with the upgrade server to determine when the update is available for download. Upon downloading the software update, the asset controller(s) may be configured to analyze forecasted operating data associated with the industrial asset(s) to determine a suggested time in the future for installing the update. For instance, the asset controller(s) may suggest an installation time for the software update that, based on the forecasted operating data, is likely to minimize productivity and/or efficiency losses for the industrial asset. Thereafter, a notification may be provided to a manager/operator of the industrial asset(s) indicating that the software update is available to be installed. The notification may also provide the asset manager/operator with the suggested time for installing the update as determined by the asset controller(s) based on the forecasted data. The asset manager/operator may then decide whether the software update should be installed at the suggested time or at a different time. For instance, if the manager/operator determines that the time suggested by the asset controller(s) is not appropriate, the manager may request that the software update be installed prior to or following the suggested time, such as by requesting that the software update be installed immediately or by choosing that the installation of the update be delayed to a later time.
In a particular embodiment of the present subject matter, the asset controller(s) may correspond to a controller(s) (e.g., an individual turbine controller(s) and/or a farm controller(s)) configured to control the operation of one or more wind turbines located within a wind farm. In such an embodiment, when the asset controller(s) determines that a new software update is available for the wind turbine(s), the asset controller(s) may download the software update from the update server. Thereafter, the asset controller(s) may be configured to analyze forecasted operating data for the wind turbine(s) to determine a suggested time for installing the update. For instance, the asset controller(s) may be configured to analyze the forecasted weather conditions for the wind turbine(s) to determine a suggested time for installing the software update, such as by selecting a time that is forecasted for low wind conditions. The suggested time may then be transmitted to the manager/operator of the wind turbine farm to allow a decision to be made as to when the software update should actually be installed.
It should be appreciated that, as used herein, the term “industrial asset” or “asset” generally refers to any piece of industrial equipment that has a controller (e.g., a programmable logic controller) or other suitable computing device communicatively coupled thereto. Examples of assets include, but are not limited to, wind turbines, solar panels, gas turbines, water processing plants, aircraft engines, medical devices, and/or the like. Similarly, as used herein, the term “operating data” generally refers to any data associated with the operation of an industrial asset, such as measured and/or predicted operating parameters/conditions for the asset and/or the like. For instance, for industrial assets impacted by weather conditions (e.g., wind turbines and solar panels), operating data may include, but is not limited to, weather-related data, such as historical weather data and/or forecasted weather data. Similarly, operating data may include an operational status of an industrial asset, such as a speed value, a pressure value, a temperature value, a power output value and/or the like.
Referring now to
As shown in
In several embodiments, the data 114 may be stored in one or more databases. For example, the memory 112 may include an update database 118 including data associated with one or more software updates to be provided to the asset controller 104. In such an embodiment, it should be appreciated that the software update(s) stored within the update database 118 may be generated by the update server 102 or may be received by the server 102 and subsequently stored within the update database 118. For instance, a software update for a given industrial asset 108 may be initially created/stored on a separate computing device and subsequently transmitted or uploaded to the update server 102 for storage thereon.
Additionally, in several embodiments, the instructions 116 stored within the memory 112 of the update server 102 may be executed by the processor(s) 110 to implement a server update module 120. In general, the update module 120 may provide a means for receiving, publishing and/or transmitting software updates to the asset controller 104 associated with each industrial asset 108. For instance, the update module 120 may be configured to receive a software update associated with a given industrial asset(s) 108 and subsequently communicate with the corresponding asset controller 104 regarding the availability of the update. Moreover, the update module 120 may also be configured to transmit or serve the software update to the asset controller 104.
As shown in
Additionally, similar to the update server 102, the asset controller 104 may also include one or more processor(s) 130 and associated memory 132 configured to perform a variety of computer-implemented functions (e.g., performing the methods, steps, calculations and the like disclosed herein). Such memory 132 may generally be configured to store information accessible to the processor(s) 130, including data 134 that can be retrieved, manipulated, created and/or stored by the processor(s) 130 and instructions 136 that can be executed by the processor(s) 130.
In several embodiments, the data 134 may be stored in one or more databases. For instance, as shown in
Moreover, the instructions 136 stored within the memory 122 of the asset controller 104 may be executed by the processor(s) 130 to implement a client update module 144. In general, the client update module 144 may be configured to communicate with the server update module 120 for checking on the availability of new software updates and for downloading each software update(s) from the update server 102. For instance, the client update module 144 may be configured to periodically ping or poll the update server 120 to check for the availability of a new software update. When a new software update is available, the client update module 144 may then be configured to download the software update from the update server 102.
The instructions 136 stored within the memory 122 of the asset controller 104 may also be executed by the processor(s) 130 to implement a forecasting module 146. In general, the forecasting module 146 may be configured to analyze data associated with forecasted operating conditions for the industrial asset(s) 108 to determine a suggested time for installing a new software update received from the update server 102. For instance, as indicated above, the asset controller 104 may be configured to receive and/or store data associated with forecasted weather conditions for an industrial asset(s) 108. In such an embodiment, the forecasting module 146 may be configured to determine a suggested time for installing a new software update based on the forecasted weather conditions. For example, if the industrial asset(s) 108 corresponds to a wind turbine(s), the forecasting module 146 may suggest a time for installing the update when it is forecasted that the wind turbine(s) will be experiencing low wind conditions and/or other weather-related operating conditions that typically result in reduced power output. Similarly, as indicated above, the asset controller 104 may also receive and/or store data related to the operating schedule and/or the maintenance schedule for the industrial asset(s) 108. In such an embodiment, the forecasting module 146 may be configured to determine a suggested time for installing the software update that corresponds to the expected time at which the asset(s) 108 is scheduled to be down (e.g., for maintenance) or to be operating on a part-time or limited basis based on the referenced schedule(s). Moreover, the forecasting module 146 may also be configured to determine a suggested time for installing a new software update based on a forecasting model provided or developed for the industrial asset(s) 108. For example, a mathematical model may be developed based on historical operating data for the industrial asset(s) 108 that allows the forecasting module 146 to forecast or predict an appropriate time for installing the update that minimizes any losses associated with the asset's productivity and/or efficiency.
Moreover, the asset controller 104 may also include a network or communications interface 148 for communicating with the update server 102 or any other suitable computing device(s), such as the data source(s) 140 and/or the authorized client device(s) 142, over the network 106 (and/or any other suitable network). Similar to the interface 122 provided for the update server 102, the communications interface 148 may generally be any device/medium that allows the asset controller 104 to interface with the network 106.
It should be appreciated that the network 106 may correspond to any suitable wired or wireless network(s) that allows the various system components to communicate with one another via any suitable communications protocol (e.g. TCP/IP, HTTP, SMTP, FTP) and/or using any suitable encodings/formats (e.g. HTML, JSON XML) and/or protection schemes (e.g. VPN, secure HTTP, SSL). For example, in one embodiment, the network 106 may correspond to a wide-area network (WAN).
As indicate above, the asset controller 104 may be configured to notify a manager/operator of the industrial asset(s) 108 regarding the availability of each software update and the suggested time for installing such update. In one embodiment, the notifications may be generated by the asset controller 104 and subsequently displayed to the manager/operator via a display device associated with or coupled to the asset controller 104. In such an embodiment, the asset manager/operator may then utilize a user interface presented on the display device to schedule the installation of the software update, such as by instructing the asset controller 104 to install the software update at the suggested time or at a different time selected by the manager/operator. Alternatively, the asset controller 104 may be configured to transmit the notifications to a separate computing device(s), such as an authorized client device(s) 142 of the asset manager/operator. For instance, the asset controller 104 may be configured to store a list of each client device 142 that is authorized to receive notifications regarding the availability of software updates for the particularly industrial asset(s) 108 coupled to such controller 104. Thus, when a software update is available, the asset controller 104 may transmit a notification(s) directly to the authorized client device(s) 142. The asset manager/operator may then use his/her client device 142 to schedule the installation of the software update, such as by using a suitable user interface on his/her device to instruct the asset controller 104 to install the software update at the suggested time or at a different time selected by the manager/operator.
It should be appreciated that, in the event that the manager/operator selects a time that differs from the time suggested by the asset controller 104, the manager/operator may, in certain embodiments, be presented (e.g., via the user interface) with an estimate regarding the impact that installing the update at the selected time may have on the productivity and/or efficiency of the associated industrial asset(s) as compared to installing the update at the suggested time. For instance, the manager/operator may be presented with an “operations loss calculation” that indicates the productivity losses and/or efficiency losses that may occur if the update is installed at the manager/operator-selected time as opposed to the suggested time. The manager/operator may then select to proceed with the installation at his/her originally selected time or may select a different time for installing the update (e.g., by going back and selecting the time suggested by the asset controller 104 or by selecting a completely different time).
It should also be appreciated that each client device 142 may generally correspond to any suitable computing device and/or combination of computing devices, such as any suitable display(s) having one or more processors coupled thereto and/or embedded therein. However, in a particular embodiment, each client device 142 may correspond to a mobile device, such as a smartphone, a tablet, a wearable computing device(s) and/or any other suitable portable device(s).
Additionally, it should be appreciated that, although various functions and/or processes are generally described above as being performed by a given system component (e.g., the update server 102 and/or the asset controller 104), such functions and/or processes may, instead, by performed by a different system component. For example, as opposed to the asset controller 104, the update server 102 may be configured to transmit notifications to the asset manager/operator regarding the availability of a software update and/or the suggested time for installing the update. In addition, the update server 102 may also be configured to analyze the forecasted operating data for the industrial asset(s) in order to determine the suggested time for installing the update.
Moreover, as indicated above, it should be appreciated that the update server 102 may be configured to communicate with various different asset controllers 104 located at any number of remote locations, with each asset controller 104 being configured to be coupled to and/or control the operation of one or more industrial assets 108. For instance, as shown in the embodiment of
Referring now to
As shown in
Additionally, at (204), the method 200 may include accessing forecasted operating data for the industrial asset. For instance, as indicated above, the asset controller 104 may be configured to access forecasted operating data for the industrial asset(s) 108 coupled to such controller 104. The forecasted operating data may, for example, correspond to any suitable data relating to or otherwise associated with the future operation of the industrial asset, such as forecasted weather conditions, maintenance schedules, operation schedules, forecasting models and/or the like. As indicated above, the forecasted operating data may correspond to and/or derive from data stored within the memory 132 of the asset controller 104. Alternatively, the forecasted operating data may correspond to or derive from data received from a separate computing device, such as a separate data source 140 and/or a separate client device 142.
Moreover, at (206), the method 200 may include determining a suggested time for installing the software update based on the forecasted operating data. Specifically, in several embodiments, the asset controller 104 may be configured to analyze the forecasted operating data to determine the suggested time for installing the update. For instance, the forecasted operating data may be analyzed to identify one or more times occurring in the future at which the software update may be installed while minimizing the impact to the productivity and/or efficiency of the industrial asset, such as by identifying a time(s) at which a wind turbine is forecasted to be experiencing low wind conditions. The asset controller 104 may then select a suggested time for installing the software update based on the analysis of the forecasted data.
Referring still to
Upon receiving the notification, the asset manager/operator may then provide a suitable input to the asset controller 104 (e.g., directly via an input device associated with the asset controller 104 or indirectly via a separate computing device, such as his/her client device 142) associated with a selected time for installing the software update. For instance, as indicated above, the asset manager/operator may utilize a suitable user interface to provide a user input associated with selecting the desired time for installing the software update. In such instance, the selected time may correspond to the time suggested by the asset controller 104. Alternatively, the selected time may correspond to a time that differs from the suggested time, such as a time occurring before or after the suggested time. Regardless, once the input from the asset manager/operator is received, the asset controller 104 may be configured to install the software update at the selected time.
It should be appreciated that, in one embodiment, the notification transmitted to the manager/operator may indicate whether the time suggested by the asset controller 104 corresponds to an “opt-in” event or an “opt-out” event. For instance, for an “opt-in” event, the notification may indicate that the manager/operator must provide an input selecting or confirming a time for installing the update prior to such update being installed (e.g., “The suggested installation time for the update is on [date] at [time]. Please click to confirm installation for the suggested date/time or choose another installation time.”). Similarly, for an “opt-out” event, the notification may indicate that the update will be installed at the suggested time unless the manager/operator provides an input cancelling or rescheduling the update (e.g., “The suggested installation time for the update is on [date] at [time]. The update will be installed at the suggested date/time unless you cancel or reschedule the installation.”).
Referring now to
Moreover, at (306), an asset controller 104 located remote to the update server 102 may check to see if any new software updates are available for the asset(s) 108 coupled to such controller 104. For instance, as indicated above, the asset controller 104 may be configured to periodically poll the update server 102 for new updates. Alternatively, the update server 102 may be configured to transmit an indication of the availability of a new software update to the asset controller 104 without any periodic polling by the asset controller 104. As shown in
Additionally, as shown in
Moreover, at (320), based on the notification receive from the asset controller 104, the asset manager/operator may select an appropriate time for installing the software update. For instance, as indicated above, the asset manager/operator may be provided with a user interface that allows the manager/operator to select an installation time for the upgrade, such as by allowing the manager/operator to select the suggested installation time or a time that differs from the suggested time. The user input provided by the asset manager/operator may then be transmitted to or otherwise received by the asset controller 104. Thereafter, at (322), the asset controller 104 may install the software update at the time selected by the asset manager/operator.
As indicated above, each industrial asset 108 described herein may generally correspond to any piece of industrial equipment that has a controller or other suitable computing device communicatively coupled thereto. However, in a particular embodiment, each industrial asset 108 may correspond to a wind turbine. In this regard,
As shown in
The wind turbine 10 may also include a turbine control system or turbine controller 26 centralized within the nacelle 16 (or disposed at any other suitable location within and/or relative to the wind turbine 10). In general, the turbine controller 26 may comprise a computing device or other suitable processing unit. Thus, in several embodiments, the turbine controller 26 may include suitable computer-readable instructions that, when implemented, configure the controller 26 to perform various different functions, such as receiving, transmitting and/or executing wind turbine control signals. As such, the turbine controller 26 may generally be configured to control the various operating modes (e.g., start-up or shut-down sequences) and/or components of the wind turbine 10. For example, the controller 26 may be configured to adjust the blade pitch or pitch angle of each rotor blade 22 (i.e., an angle that determines a perspective of the blade 22 with respect to the direction of the wind) about its pitch axis 28 in order to control the rotational speed of the rotor blade 22 and/or the power output generated by the wind turbine 10. For instance, the turbine controller 26 may control the pitch angle of the rotor blades 22, either individually or simultaneously, by transmitting suitable control signals to one or more pitch drives or pitch adjustment mechanisms (not shown) of the wind turbine 10.
It should be appreciated that, in several embodiments, the wind turbine 10 shown in
It should also be appreciated that each wind turbine 10 located within the wind farm 40 may generally be configured the same as or similar to the wind turbine 10 described above with reference to
Additionally, as shown in
In accordance with aspects of the present subject matter, the asset controller 104 described above with reference to
This written description uses examples to disclose the invention, including the best mode, and also to enable any person skilled in the art to practice the invention, including making and using any devices or systems and performing any incorporated methods. The patentable scope of the invention is defined by the claims, and may include other examples that occur to those skilled in the art. Such other examples are intended to be within the scope of the claims if they include structural elements that do not differ from the literal language of the claims, or if they include equivalent structural elements with insubstantial differences from the literal languages of the claims.