Floating host controller

CN116931456BActive Publication Date: 2026-08-11SIEMENS ENERGY INC
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-01-31
Publication Date
2026-08-11

Smart Images

  • Figure CN116931456B_ABST
    Figure CN116931456B_ABST
Patent Text Reader

Abstract

A floating master controller and an FMC system are provided, comprising multiple hardware units, each capable of performing at least one mechanical function. Each hardware unit includes a processor configured via controller code included in memory to operate the corresponding hardware unit and perform at least one mechanical function. The controller code of each hardware unit includes an MC application and at least one FMC application. Each MC application is operably configured to act as the MC for the activity of at least one mechanical function of each of the multiple hardware units in the system, and is operably configured to control at least one mechanical function of its corresponding hardware unit in response to another MC application that tracks the role of the MC active in the system. Furthermore, at least one FMC application of each hardware unit is operably configured to automatically coordinate with each of the other FMC applications to move the active MC function of the system between each of the different MC applications in the system.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure generally relates to controllers for hardware units, and more particularly to main controllers capable of controlling the actions of multiple compressors, pumps, motors or other types of hardware units. Background Technology

[0002] A master controller is used to facilitate the simultaneous operation of multiple hardware units (such as electronic / mechanical devices) in a control system. The master controller determines the control data required by each hardware unit and sends the appropriate control data to each of the hardware units. Systems employing such a master controller can benefit from improvements. Summary of the Invention

[0003] Various disclosed embodiments include data processing systems and methods that can be used to facilitate the implementation of a floating master controller in a hardware unit system. In one aspect, the floating master controller system may include a plurality of hardware units, each capable of performing at least one mechanical function. Each hardware unit includes a processor configured to operate the hardware unit and perform at least one mechanical function via controller code included in memory. The controller code for each hardware unit may include a master controller (MC) application and at least one floating master controller (FMC) application. Each MC application is operably configured to act as a master controller controlling the activities of each of the plurality of hardware units in the system. Additionally, each MC application is operably configured to control at least one mechanical function for its corresponding hardware unit in response to another MC application that tracks the actions of the master controller acting as the active master controller in the system. Furthermore, at least one FMC application for each hardware unit is operably configured to automatically coordinate with each other FMC application to move the master controller function for the activities of the system between each of the different MC applications in the system.

[0004] In another aspect, the floating master controller for the hardware units can be employed in a system of multiple hardware units that network with each other, each hardware unit capable of performing at least one mechanical function, and each hardware unit including a corresponding floating master controller. The floating master controller may include a processor configured via executable instructions included in memory to cause the hardware units to operate in one of at least four modes, including master mode, backup mode, trace mode, and fault mode.

[0005] When the hardware unit operates in primary mode, it is configured to send control data to other hardware units in the system to control at least one mechanical function in each of those other hardware units. Additionally, when the hardware unit operates in backup mode, it is configured to: track another hardware unit operating in primary mode, and thereby operate at least one mechanical function of the hardware unit in response to control data received from the other hardware unit operating in primary mode; cause the hardware unit operating in backup mode to begin operating in primary mode in response to the other hardware unit entering a fault mode; and cause the hardware unit operating in backup mode to begin operating in primary mode again and track the other hardware unit in response to the other hardware unit resuming primary mode operation.

[0006] Additionally, when the hardware unit operates in tracking mode: the hardware unit is configured to: track another hardware unit operating in main mode, and thereby operate at least one mechanical function of that hardware unit in response to control data received from the other hardware unit operating in main mode; prevent the hardware unit operating in tracking mode from starting to operate in main mode in response to the other hardware unit operating in main mode entering a fault mode; and enable the hardware unit to start tracking other hardware units in the system or another hardware unit in response to the other hardware unit operating in main mode again or in response to another hardware unit operating in main mode. Furthermore, when the hardware unit detects an internal fault condition, the hardware unit is configured to start operating in fault mode.

[0007] In another example, the method for operating the floating master controller may include actions performed by operating at least one processor, which correspond to the functions that the previously described system is configured to perform.

[0008] Another example may include a non-transitory computer-readable medium encoded with executable instructions (e.g., software components on a storage device) that, when executed, cause at least one processor to perform the described method.

[0009] Another example may include a product or device comprising a processor, computer, component, controller, apparatus, module, and / or unit based on at least one piece of hardware, software, and / or firmware configured to perform functions corresponding to the described method.

[0010] The technical features of this disclosure have been outlined quite extensively above to enable those skilled in the art to better understand the following detailed description. Additional features and advantages of this disclosure that form the subject matter of the claims will be described below. Those skilled in the art will understand that they can readily use the disclosed concepts and specific embodiments as a basis for modifying or designing other structures for achieving the same purpose of this disclosure. Those skilled in the art will also recognize that such equivalent constructions do not depart from the spirit and scope of this disclosure in its broadest form.

[0011] Furthermore, before proceeding with the detailed description below, it should be understood that various definitions for certain words and phrases are provided throughout this document, and those skilled in the art will understand that such definitions apply to many (if not most) instances of the prior and future use of such defined words and phrases. While some terms may encompass various embodiments, the appended claims are intended to explicitly limit these terms to the specific embodiments. Attached Figure Description

[0012] To facilitate identification of any discussion of a particular element or action, one or more of the highest-order digits in the figure references indicate the figure number in which the element was first introduced.

[0013] Figure 1 A functional block diagram of an example system of hardware units controlled by an external master controller is shown.

[0014] Figure 2 A functional block diagram of an example system of hardware units is shown, each hardware unit having a separate floating master controller.

[0015] Figure 3 A functional block diagram of an example system of hardware units is shown, each hardware unit having multiple floating master controller applications.

[0016] Figure 4 A functional block diagram of an example system for performing data synchronization of a floating master controller is shown.

[0017] Figure 5 An exemplary graphical user interface is shown, which outputs the operating mode status of hardware units in the system and enables the operator to select which hardware unit to be operated as the main controller unit for system activities.

[0018] Figure 6 A method 600 according to one embodiment is shown.

[0019] Figure 7 A method 700 according to one embodiment is shown.

[0020] Figure 8 A block diagram of a data processing system 800 in which various implementation methods can be carried out is shown. Detailed Implementation

[0021] Various techniques relating to systems and methods facilitating multiple similar mechanical devices in a control system will now be described with reference to the accompanying drawings, wherein the same reference numerals consistently denote the same elements. The various embodiments used to describe the principles of this disclosure in this patent document, as well as the drawings discussed below, are merely exemplary and should not be construed in any way as limiting the scope of this disclosure. Those skilled in the art will understand that the principles of this disclosure can be implemented in any suitably arranged device. It should be understood that functions described as being performed by certain system elements can be performed by multiple elements. Similarly, for example, an element can be configured to perform functions described as being performed by multiple elements. Numerous inventive teachings of this application will be described with reference to exemplary, non-limiting embodiments.

[0022] Reference Figure 1 The document describes an exemplary system 100, which includes several hardware units 102, 104, and 106 performing mechanical functions. System 100 may also employ a main controller 108, which controls the operation of each of the control units 102, 104, and 106. Examples of such hardware units may include compressors, pumps, motors, or any other set of machines that can track and respond to the main controller. For example, mechanical functions may include a compressor compressing gas, a pump pumping fluid, or a motor turning a shaft. In an example involving compressors, such a main controller may perform flow control on three or more compressors to maintain throughput across the entire plant. The main controller 108 determines the required action for each hardware unit and sends appropriate control commands to each of the hardware units. The main controller may be separate from the controlled hardware units, which increases cost, space requirements, and complexity. If the main controller fails or the connection to the hardware units fails, the individual units may become unable to operate independently and revert to a failed state or other default state (where the system completely stops operating or operates in an undesirable degraded mode).

[0023] Reference Figure 2 An improved example system 200 is described, which includes several partially spaced hardware units 202, 204, 206 that perform mechanical functions (e.g., will be operated by...). Figure 1 (As described in Units 102, 104, 106). Similarly, examples of such units may include compressors, pumps, motors, or any other group of machines or motors operated and / or controlled by a common main controller. However, with Figure 1In contrast to the system 100 depicted in the figure, each hardware unit 202, 204, 206 in system 200 includes a floating master controller 242, 244, 246, which is operably configured to perform the functions of an active master controller when needed.

[0024] Each floating master controller can be implemented via controller codes 222, 224, 226 (i.e., processor / computer-executable instructions), which are configured to be executed by a corresponding general-purpose or special-purpose processor 228, 230, 232 included with each corresponding hardware unit. In the example, such controller codes may include various software / firmware applications (i.e., programs, services) that execute and implement the functionality of the controller codes described herein. Such controller codes may include master controller (MC) applications 214, 216, 218. Such controller codes may also include floating master controller (FMC) applications 208, 210, 212. It should also be understood that each of the MC and FMC applications may itself consist of one or more applications (i.e., programs, services).

[0025] In an exemplary embodiment, portions of the controller code referred to as MC applications 214, 216, and 218 are configured to have the necessary code for controlling their associated hardware units and one or more other hardware units, and to be controlled in response to controller code in another hardware unit in the system. Portions of the controller code referred to as FMC applications 208, 210, and 212 are configured to "float" the active (i.e., currently controlling itself and other hardware units) master controller among the hardware units; and to facilitate data synchronization and fault detection between the hardware units.

[0026] Therefore, each MC application is operably configured to act as a master controller, controlling the mechanical functions of each of the multiple hardware units (i.e., other hardware units and itself) in the system. Additionally, each MC application is operably configured to control at least one mechanical function of its corresponding hardware unit in response to another MC application that acts as the master controller in the system. Furthermore, the FMC application for each hardware unit is operably configured to automatically coordinate with each other FMC application so that the master controller functions for the system's activities move as needed between the different MC applications in the system. This described controller code implementation can reduce hardware costs (e.g., eliminate the need for a separate master controller mounted on the panel) and provide redundancy for the system in the event of a single hardware unit failure.

[0027] Furthermore, it should be noted that communication used to implement such functionality between hardware units can be performed via wired or wireless network 220. It should also be understood that communication between different parts of the controller code (i.e., the MC application and the FMC application) can be performed in response to software and / or firmware via function calls, network communication, or another form of communication that can be executed by the processor. Additionally, it should be understood that the hardware processors 228, 230, 232 of each hardware unit may be capable of executing other applications and other types of controller and / or hardware unit hardware functions.

[0028] Furthermore, it should be understood that, in alternative implementations of the controller code, the functions performed by the MC application and the FMC application can be programmed into a single software / firmware application that performs and implements these functions, or alternatively, can be programmed into more than two software / firmware applications that perform and implement these functions. Additionally, each hardware unit may include one or more physical general-purpose or special-purpose hardware processors 228 capable of executing applications or functions (as well as other applications, programs, services, functions, and code) corresponding to the controller code. Therefore, the controller code may correspond to one or more software and / or firmware applications that can be executed by one or more hardware processors included in the floating master controller of the hardware unit.

[0029] like Figure 2 As shown, hardware unit 202 may include an MC application 214 and a corresponding FMC application 208. However, as will be... Figure 3 As described in more detail, it should be understood that a hardware unit may include more than one FMC application, each configured to track different inputs or perform other different functions (e.g., one FMC application for each function or function type that is desired to be monitored and / or controlled by the main controller). These FMC applications may be distributed across several hardware units performing similar functions. However, it should also be understood that some of such MC applications and FMC applications may be applicable to different types of hardware units that do not perform the same set of functions. Furthermore, although the examples described herein illustrate a system with three different hardware units, it should be understood that alternative implementations may include two, three, four, or more hardware units capable of operating using the described arrangement of FMC applications and MC applications.

[0030] In an exemplary implementation, each combination of the FMC application and the MC application can be operated (when operated in a suitable processor associated with the hardware unit) to provide redundancy of control across multiple units. Thus, two or more hardware units can be configured such that each unit can take over the operation of itself and other units acting as the active master controller unit. For example, when a unit detects that an active master controller unit can no longer continue to act as the active master controller, other hardware units can be configured to determine which of the remaining units will take over the operation of the system's active master controller (via communication over network 220). Furthermore, in any given system, one or more hardware units can be configured not to take over the master controller role. Such a unit can be configured to only track the unit currently operating as the active master controller, but is also configured not to automatically take over and become the active master controller itself.

[0031] To implement the described functionality, each FMC application 208, 210, 212 can be operatively configured to synchronize data between units via network 220, including operator selections from a human-machine interface (HMI) 240 and data associated with each MC application and each FMC application. Such an HMI 240 may include input devices and output devices (such as displays), as per [reference to...]. Figure 8 Those described in more detail. The controller code and / or the FMC application itself may include user interface portions 234, 236, 238 that transmit information to or from hardware units connected locally or to an HMI 240 connected via network 220.

[0032] Each FMC application can be operablely configured to detect faults related to communication (and / or lack of communication) from the active master controller unit and implement a rollback strategy. Such a rollback strategy may include attempting to transfer the active master controller functionality to another unit via unobstructed transfer (i.e., without interrupting the unit's operation). Such a rollback strategy may also include the FMC application placing its corresponding unit in a specific operating mode corresponding to the preferred operation of that unit when the active master controller fails to operate as expected. Additionally, as will be discussed later... Figure 5As described in detail, the FMC application (via the user interface portion) can enable the HMI to display the current operating mode and fault indications of the hardware units in the system. Such information can be collected by each FMC application through communication with other FMC applications operating in other hardware units. Additionally, in an exemplary embodiment, the FMC application of any of the hardware units in the system can be operatively configured (e.g., in response to selection input via the HMI) to switch the main controller function for system activities to any of the MC applications through communication with the FMC applications of each of the hardware units.

[0033] As discussed earlier, the hardware unit can include more than one FMC application. This arrangement facilitates data synchronization from different controller functions throughout the system. For example, refer to... Figure 3 The text describes an alternative example system 300, which includes hardware unit 302 and several similarly configured hardware units 304. Each hardware unit (as illustrated in hardware unit 302) can be configured to have an MC application 306 and optional other types of controllers, such as proportional-integral-derivative (PID) controllers 308 and 310. Corresponding FMC applications 312, 314, and 316 can be included with each unit to handle data transmission between these different types of functions and / or controllers (i.e., MC application 306, PID controller 308, and PID controller 310) within the hardware unit. It should be understood that a unit can include as many FMC applications as needed to facilitate unit operation. If multiple FMC applications are configured in each hardware unit, they can be configured to synchronize with each other so that all FMC applications within the same hardware unit are in the same operating mode regarding the hardware unit at the same time.

[0034] For example, the FMC and MC applications in the hardware unit can be configured to operate in various modes, such as: master mode; backup mode; tracking mode; and fault mode. In master mode, the FMC and MC applications cause their hardware unit to operate as the active master controller of the unit system. The FMC and MC applications in each of the other hardware units in the system are typically in tracking mode, tracking control data communications from the active master controller unit (operating in response to control data communications from the active master controller unit). In an exemplary embodiment, tracking mode may include backup mode; tracking mode; and fault mode.

[0035] In backup mode, a unit is configured to track the active master controller unit, but is also configured to become the active master controller (i.e., switch to master mode and stop tracking) when the unit cannot communicate with the currently active master controller unit (e.g., fails to detect expected heartbeat communication) or the currently active master controller unit fails and transmits that it is now in a fault mode. When multiple hardware units are in backup mode and detect a lack of communication with the currently active master controller unit or a failure of the currently active master controller unit, such hardware units will determine which one switches to master mode and becomes the new active master controller unit.

[0036] When a hardware unit detects a fault preventing it from becoming or remaining the active master controller, it puts itself into fault mode and transmits its fault status to other units. The former master controller unit that switches to fault mode can either begin tracking a new active master controller unit, or it can choose not to track another unit and instead take other actions based on its configuration.

[0037] In tracking mode, the hardware unit is also configured as the master controller unit tracking the activity. However, unlike in backup mode, the hardware unit in tracking mode will not automatically become the active master controller if it cannot communicate with the currently active master controller or if the currently active master controller fails (and changes to a failure mode).

[0038] As previously discussed, the FMC application associated with a hardware unit can be operatively configured to receive from the HMI a selection of which unit in the system should be set as the active master controller unit. This is useful when the unit currently active as the master controller is undergoing maintenance or will be disabled / shut down. The initial FMC application receiving the selection will pass this selection to the FMC applications of other hardware units, and the system will configure itself accordingly. However, a hardware unit in track / inland mode or fault mode (e.g., having received a field fault or communication failure) may not be selectable as the active master controller via the HMI (by switching to master mode) until it is no longer in track mode and / or no longer in fault mode (e.g., the unit fault has been cleared / corrected).

[0039] Figure 4An example system 400 is illustrated, in which hardware units can be configured to perform and synchronize data communication between the FMC application, MC application, and HMI within the unit to enable the described operating modes. For example, the FMC application 402 of hardware unit 404 can receive communication in the form of control data, configuration settings, and / or fault data from its hardware unit 404 and / or from another hardware unit 418, 420 (e.g., via communication between FMC applications). The MC application can operate in response to this data collected by its FMC application to perform operations on its hardware unit.

[0040] In an exemplary embodiment, the hardware unit can be configured with certain configuration or operator settings via the HMI. These settings may include automatic / manual configuration settings 408, and other settings 410 that affect the operation of the MC application, such as setpoints and adjustment parameters. Additionally, in an exemplary embodiment, the FMC application may be operably configured to collect the current operating mode 412 of the hardware unit in the system, store it in memory, and transmit it via its user interface portion for display via the HMI. Furthermore, the FMC application may be operably configured to collect fault data from the MC application or other controllers, store it in memory, and transmit such fault data to the HMI. Examples of such fault data may include unit fault status 414 and main fault status 416 (indicating whether the hardware unit is faulty and optionally indicating the fault type).

[0041] In an exemplary implementation, the FMC application handles data synchronization between different FMC applications running in other hardware units within the system to ensure all hardware units operate with the same data. Each FMC application can use existing communication networks to send and receive synchronization data from other FMC applications. Such synchronization data may include heartbeat signals that enable the receiving unit to determine the health of the communication. Such synchronization data may also include the current operating mode of its hardware unit (e.g., master mode, backup mode, tracking mode, fault mode). Furthermore, such synchronization data may include MC application values ​​to ensure that the MC application state in each unit remains synchronized. Additionally, such synchronization data may include operator settings (e.g., automatic / manual configuration settings, setpoints, and adjustment parameters) provided via the HMI. If an operator changes these values ​​on the active master controller unit, these values ​​are automatically transmitted to other hardware units via data synchronization performed by the FMC application. MC applications operating in master mode in the active master controller unit feed back updated data to the FMC application for forwarding to other hardware units. MC applications in the tracking unit (hardware units in tracking mode) synchronize with data received from the active master controller unit.

[0042] Figure 5An exemplary user interface output 500 is shown, which outputs the status of hardware units in the system. Such a user interface output 500 may correspond to a graphical user interface (GUI) 502 displayed via an HMI. The graphical user interface may be generated by the user interface portion 234 of an FMC application based on information collected by the FMC application from its MC application and / or other FMC applications. However, it should also be understood that a portion of another application or controller code in the hardware unit may include the user interface portion and be capable of generating the user interface output 500.

[0043] In an exemplary implementation, GUI 502 displays information that enables the operator to understand the status of the hardware unit and control its operation as needed via communication with the FMC application. In this example, the GUI outputs the status 504 of all controller units (e.g., units 1 to 4), such as their current operating mode (e.g., master, backup, tracking, fault, or disabled). Furthermore, in this example, the GUI outputs selection user interface elements 506 (e.g., buttons, toggle keys, switches) that allow the user (via selection input from the HMI) to select which unit should be the active master controller unit (if not in fault or tracking mode). Such a GUI 502 can be displayed at each unit with an enabled FMC application.

[0044] In an exemplary embodiment, the FMC application in the hardware unit can also be configured to receive configuration settings from the HMI via another GUI screen (not shown). Such configuration settings may include the unit number (1 to 4) of the unit and the total number (2 to 4) of units in the system that also have FMC applications.

[0045] When a hardware unit starts up, the FMC application can be configured to delay the startup time to allow the unit to complete startup and establish communication with any existing hardware units. After the time delay expires, if no active master control unit is detected in the system and the hardware unit is not configured for tracking mode, the FMC application will make that unit the active master control unit (in master mode). When the hardware unit's FMC application is configured to be in master mode, the hardware unit can be referred to as the master unit, which has a master state 508 displayed through the unit's GUI 502.

[0046] If an active master control unit is detected in the system, the FMC application will put its hardware unit into tracking mode and track the active master unit (e.g., in backup mode or tracking mode). In an exemplary embodiment, if a hardware unit is tracking the active master controller but is not configured in tracking mode, it can be referred to as a backup unit, which has a backup status 510 displayed via the hardware unit's GUI 502. Such a hardware unit will be in backup mode and will take over as the active master controller unit when needed, as previously discussed.

[0047] When the FMC application of a hardware unit is configured in tracing mode, the hardware unit can be referred to as a tracing unit, which has a tracing status 512 displayed via the hardware unit's GUI 502. Such a tracing unit will track the active master controller unit, or, if no active master controller unit exists, the unit with the lowest assigned unit number. However, as previously discussed, if no active master controller unit exists, such a tracing unit will not become the active master controller unit of the system. Instead, the MC application of the tracing unit will maintain its current state until an active master controller unit is detected again.

[0048] In an exemplary implementation, the loss of a process variable in one of the process controllers, which is part of a unit, may cause the hardware unit to enter a fault mode and may be referred to as a faulty unit, which has a fault status 514 displayed via GUI 502. If this hardware unit is the active master control unit, it will no longer continue to act as the active master control unit. The controller in backup mode will take over as the active master control unit until the fault of the previous active master control unit is repaired and reset. At that time, the hardware unit that exited as the active master control unit (previously selected by the operator as the active master control unit) may automatically become the active master control unit again. In addition, as a backup strategy, if multiple backup units can become the active master control unit, the MC application of the hardware unit with the lowest configuration number can take over as the active master control unit by default.

[0049] This description scheme of deploying FMC applications on hardware units enables hardware control code (including the MC application or other controller unit functions with input tracking capabilities) to be implemented in a distributed architecture with automatic synchronization, fallback strategies, operator control, and feedback, with minimal architectural changes.

[0050] Now refer to Figure 6 and Figure 7Methods 600 and 700 for facilitating the implementation of a floating master controller in a system of hardware units are illustrated. While the method is described as a series of actions performed sequentially, it should be understood that the method is not limited by the order. For example, unless otherwise stated, some actions may occur in a different order than those described herein. Furthermore, in some cases, one action may occur simultaneously with another. Moreover, in some cases, not all actions are required to implement the methods described herein.

[0051] Reference Figure 6 Method 600 may begin at 602 and may include several actions performed by the processors of hardware units in a system of multiple hardware units communicating with each other via a network, each hardware unit capable of performing at least one mechanical function and each hardware unit including a corresponding floating master controller. The floating master controller may be configured to operate in one of at least four modes, including master mode, backup mode, tracking mode, and fault mode, and the hardware units are configured to operate in one of said at least four modes. The described method may include action 604, in which a hardware unit operates in backup mode and tracks another hardware unit operating in master mode, and thereby operates at least one mechanical function of the hardware unit in response to control data received from the other hardware unit operating in master mode. In action 606, the hardware unit detects that the tracked other hardware unit is operating in fault mode, and in response, the hardware unit begins to operate in master mode instead of backup mode, and thereby sends control data to the other hardware units in the system to control at least one mechanical function of each of the other hardware units. In action 608, the hardware unit detects that other previously tracked hardware units are operating in master mode, and in response, the hardware unit begins to operate in backup mode again and track other hardware units.

[0052] Reference Figure 7 Additional action 700 of method 600 may include action 702, in which the hardware unit receives updated configuration data that causes the hardware unit to begin operating in tracking mode, and thereby tracks other hardware units. In action 704, the hardware unit detects that another tracked hardware unit is operating in fault mode, and in response to the hardware unit being in tracking mode, the hardware unit does not begin operating in main mode. In action 706, the hardware unit detects that another previously tracked hardware unit or a different hardware unit in the system is operating in main mode, and in response, the hardware unit begins tracking the other hardware unit or different hardware unit operating in main mode. In action 708, the hardware unit detects an internal fault condition, and in response, the hardware unit begins operating in fault mode. At 710, methods 600 and 700 may terminate.

[0053] It should be understood that the described method may include additional and / or alternative actions corresponding to the previously described features of the floating master controller.

[0054] For example, the method may include an FMC application storing configuration settings regarding the configuration of the hardware unit and the system in memory, and transferring control data between itself and another FMC application executing in the corresponding processor of each of the other hardware units in the system. Additionally, the method may include an MC application controlling at least one mechanical function of the hardware unit in response to control data and configuration settings received from the FMC application.

[0055] In these examples, the FMC application and the MC application can be configured to enable the hardware unit to operate in one of at least four modes, including master mode, backup mode, trace mode, and fault mode. When the hardware unit operates in master mode, the MC application is configured to send control data to the FMC application, which in turn transmits the control data to another FMC application to control at least one mechanical function of each of the other hardware units in the system.

[0056] When a hardware unit operates in backup mode: the MC application is configured to track another hardware unit operating in primary mode among other hardware units in the system, and to operate at least one mechanical function of the hardware unit in response to control data received by the FMC application from another FMC application of another hardware unit operating in primary mode among other hardware units; and the FMC application and the MC application are configured to cause the hardware unit operating in backup mode to start operating in primary mode in response to another hardware unit operating in primary mode entering a fault mode.

[0057] When the hardware unit operates in tracking mode, the MC application is configured to track another hardware unit operating in master mode in the other hardware unit in the system, and to operate at least one mechanical function of the hardware unit in response to control data received by the FMC application from another FMC application in another hardware unit operating in master mode in another hardware unit.

[0058] In an exemplary embodiment of the method described herein, the FMC application can provide data that enables a human-machine interface (HMI) to display a graphical user interface describing the current operating mode of each of the hardware units in the system.

[0059] The method may include an FMC application and / or a user interface application providing data that enables the HMI to depict at least one selectable user interface element, which allows an operator to provide input to the HMI to select which hardware unit should be the active master controller unit. The method may also include an FMC application receiving data via the HMI indicating that a hardware unit in the system has been selected as the active master controller unit, and in response, the FMC application changing the operating mode of the hardware device to master mode and transmitting the change of operating mode to FMC applications in other hardware units. In an exemplary embodiment, when a hardware unit begins to operate in a fault mode, the FMC application may transmit information about the hardware unit operating in fault mode to FMC applications in other hardware units.

[0060] Additionally, the method may include the FMC application receiving updated data via the HMI indicating that a second hardware unit in the system has been selected as the active master controller, and in response, the FMC application transmitting the selection of the second hardware unit as the active master controller to the FMC application of the second hardware unit, thereby the hardware unit begins to operate in backup mode, and the other hardware unit begins to operate in master mode.

[0061] Similarly, in an exemplary embodiment, the FMC application may correspond to a first FMC application. The hardware unit may include a PID controller. The method may also include a second FMC application controlling the PID controller to operate in response to a control signal received by the second FMC application from a third FMC application operating in main mode.

[0062] Furthermore, in these described embodiments of the method, the hardware unit may include a compressor, and at least one mechanical function may include compressed gas.

[0063] It is important to note that while this disclosure is described within the context of a full-function system and / or a series of actions, those skilled in the art will understand that the mechanisms and / or at least a portion of the actions described herein can be distributed in the form of computer / processor-executable instructions (e.g., software / firmware applications) contained within a storage device corresponding to any form of non-transitory machine-usable, computer-usable, or computer-readable medium (e.g., flash memory, SSD, hard disk). Computer / processor-executable instructions may include routines, subroutines, programs, applications, modules, libraries, etc. Furthermore, it should be understood that computer / processor-executable instructions may correspond to code from source code, bytecode, operational-time code, machine code, assembly, Java, JavaScript, Python, Rust, Swift, Go, C, C#, C++, or any other form of code that can be programmed / configured to cause at least one processor to perform the actions and features described herein, and / or can be generated from such code. Additionally, the results of the stated / claimed process or function may be stored in a computer-readable medium, displayed on a display device, etc.

[0064] It should be understood that the actions (other than any described manual actions) related to the methods, features, and functions described above can be performed by one or more data processing systems via the operation of one or more processors. Therefore, it should be understood that when referring to a data processing system, such a system can be implemented in several data processing systems organized in a distributed system that communicate directly or via a network with each other.

[0065] As used herein, a processor corresponds to any electronic device configured to process data via hardware circuitry, software, and / or firmware. For example, a processor described herein may correspond to one or more (or combinations thereof) of a microprocessor, CPU, or any other integrated circuit (IC) or other type of circuit capable of processing data in a data processing system. As previously discussed, a processor described or claimed to be configured to perform a particular described / claimed process or function may correspond to a CPU that executes computer / processor-executable instructions stored in memory in software form to perform such a described / claimed process or function. However, it should also be understood that such a processor may correspond to an IC hard-wired with processing circuitry (e.g., an FPGA or ASIC IC) to perform such a described / claimed process or function. Additionally, it should be understood that references to a processor may include multiple physical processors or cores configured to perform the functions described herein. Furthermore, it should be understood that a data processing system and / or processor may correspond to a controller operatively configured to control at least one operation, including a programmable logic controller (PLC).

[0066] Furthermore, it should be understood that a processor described or claimed as being configured to perform a specific described / claimed process or function may correspond to a combination of a processor and executable instructions (e.g., software / firmware applications) loaded / installed into the memory (volatile and / or non-volatile), which are currently being executed and / or can be executed by the processor to cause the processor to perform the described / claimed process or function. Therefore, a processor that is powered off or executing other software but loads / stores that software in a storage device (e.g., flash memory, SSD, or hard disk) operatively connected to it in a manner executable by the processor (when started by a user, hardware, and / or other software) may also correspond to the described / claimed processor operatively configured to perform the specific processes and functions described / claimed herein.

[0067] Figure 8 A block diagram of an exemplary data processing system 800 is shown, which can be used to implement one or more embodiments of the floating master controller and / or other data processing systems described herein. For example, in some embodiments, at least one processor 802 (e.g., CPU) may be connected to one or more bridges / buses / controllers 804 (e.g., Northbridge, Southbridge). For example, one of the buses may include one or more I / O buses, such as a PCI Express bus. In the described example, processor memory 806 (e.g., RAM) and a graphics controller 808 may also be connected to the various buses. The graphics controller 808 may generate video signals to drive a display device 810 (e.g., an LCD, OLED screen). It should also be noted that the processor 802 in the form of a CPU may include memory therein, such as CPU cache memory. Furthermore, in some embodiments, one or more controllers (e.g., graphics, Southbridge) may be integrated with the CPU (on the same chip or die). Examples of CPU architectures include IA-32, x86-64, and ARM processor architectures.

[0068] Other peripherals connected to one or more buses may include a communication controller 812 (Ethernet controller, WiFi controller, cellular controller) operably configured to connect to network 814 (e.g., local area network (LAN), wide area network (WAN), Internet, cellular network, and / or any other wired or wireless network or communication device). Data processing system 800 may be operably configured to communicate with one or more servers 816 connected to network 814, and / or any other type of device or other data processing system. For example, in some embodiments, data processing system 800 may be operably configured to communicate with a database. Examples of databases may include relational databases (e.g., MySQL, Oracle Database, Microsoft SQL Server) or non-relational databases (e.g., NoSQL databases). Additionally, it should be understood that in some embodiments, such a database may be executed by processor 802.

[0069] Additional components connected to various buses may include one or more I / O controllers 820, such as USB controllers, Bluetooth controllers, and / or dedicated audio controllers (connected to speakers and / or microphones). It should also be understood that various peripheral devices may be connected to the I / O controllers (via various ports and connections), including input devices 822 (e.g., mouse, indicator, keyboard, touchscreen, keypad) and output devices 824 (e.g., printer, speaker) or any other type of device operated to provide input to and / or output from the data processing system. Additionally, for example, output device 824 may also include a display device 810 or a device corresponding to display device 810.

[0070] It should be understood that many devices, referred to as input devices or output devices, can provide both input for communication with the data processing system 800 and output for receiving communication with the data processing system 800. For example, the processor 802 can be integrated into a housing (e.g., a tablet computer) that includes a touchscreen as both an input device and a display device. Furthermore, it should be understood that some input devices, such as human-machine interfaces (HMIs), can include multiple different types of input devices (e.g., touchscreens, touchpads, and keyboards) and display devices (touchscreens or non-touchscreens). Additionally, it should be understood that other hardware 826 connected to the I / O controller 820 can include any type of device, machine, sensor, or component configured to communicate with the data processing system, including the communication controller 812 and / or the storage controller 828 (e.g., HBA, SCSI, SATA).

[0071] Storage controllers connected to one or more buses or I / O controllers in the system can also be connected to storage devices 830, such as one or more non-volatile storage drives and / or any associated removable media. Additionally, in some examples, storage devices 830, such as NVMe SSDs, can be directly connected to the system's main I / O bus, such as the PCI Express bus.

[0072] It should be understood that the data processing system 800 can be connected directly or via network 814 to one or more other data processing systems, such as server 816 (which may be combined to correspond to a larger data processing system). For example, the larger data processing system may correspond to multiple smaller data processing systems implemented as part of a distributed system, wherein processors associated with several smaller data processing systems can communicate via one or more network connections and can collectively perform tasks described as being performed by a single larger data processing system.

[0073] A data processing system according to embodiments of this disclosure may include data 832 and executable instructions 834 (e.g., operating system 836 and application 838) that enable a processor to perform the functions described herein. Such programs and information may be stored and accessed from storage device 830, database 818, processor memory 806, and / or another data processing system such as server 816—all of which may correspond to the type of memory 840 in the system. Therefore, it should be understood that processor 802 may be configured to execute, manage, retrieve, generate, use, modify, and / or store executable instructions 834 and / or data 832 and / or other information from any type of memory 840 accessible to the system. It should also be understood that memory 840 may also be referred to herein as a data storage device.

[0074] In exemplary embodiments, the operating system may employ a command-line interface (CLI) shell and / or a graphical user interface (GUI) shell. The GUI shell allows multiple display windows to be presented simultaneously within the graphical user interface, each providing an interface to different applications or different instances of the same application. The cursor or indicator in the graphical user interface can be manipulated by the user using a pointing device such as a mouse or touchscreen. The position of the cursor / indicator can be changed and / or events such as clicking a mouse button or touching a touchscreen can be generated to initiate a desired response. Examples of operating systems that can be used in data processing systems include Microsoft Windows, Linux, UNIX, iOS, macOS, and Android operating systems.

[0075] Furthermore, it should be understood that the data processing system may include virtual machines that execute executable instructions within a virtual machine architecture or cloud environment. For example, the processor and related components may correspond to a combination of one or more virtual machine processors operating within one or more physical processors of the physical data processing system 800. Examples of virtual machine architectures include VMware ESCi, Microsoft Hyper-V, Xen, and KVM. Additionally, the executable instructions may be bundled into containers that can be executed via containerized environments / platforms such as Docker and / or Kubernetes.

[0076] Additionally, it should be noted that the processor described herein may correspond to a remote processor located in a data processing system (e.g., a server located remotely from the display and input devices (or HMIs) described herein). In such an example, the described display and input devices may be included in a client data processing system (which may have its own processor) that communicates with a server (which includes a remote processor) via a wired or wireless network (which may include the Internet). In some embodiments, such a client data processing system may, for example, execute a remote desktop application, or may correspond to a portal device that implements a remote desktop protocol with the server to send input from the input device to and receive visual information from the server for display on the display device. Examples of such remote desktop protocols include Microsoft's RDP and RFB protocols. In another example, such a client data processing system may execute a web browser or thin client application. Input from the user may be transmitted from the web browser or thin client application to the server for evaluation, and such a server may provide data, code, and / or images (or a series of images) back to the client data processing system to update the user interface being displayed by the web browser or thin client application. Additionally, in some examples, the remote processor described herein may correspond to a combination of virtual processors of a virtual machine executing in the physical processor of a server.

[0077] Those skilled in the art will understand that the hardware and software described for a data processing system may differ for a particular implementation. The examples described are for illustrative purposes only and are not intended to limit the architecture of this disclosure. Furthermore, those skilled in the art will recognize that, for simplicity and clarity, not all the structures and operations of all data processing systems suitable for use with this disclosure are depicted or described herein. Rather, only the complete contents of data processing systems specific to or necessary for understanding this disclosure are depicted and described. The remainder of the construction and operation of the data processing system 800 may conform to various current implementations and practices known in the art.

[0078] As used herein, the terms “component” and “system” are intended to encompass hardware, software, or a combination of hardware and software. Thus, for example, a system or component can be a process, a process executing on a processor, or a processor itself. Additionally, a component or system can reside on a single device or be distributed across several devices.

[0079] Furthermore, the phrase "at least one" preceding an element (e.g., a processor) configured to perform more than one function / process can correspond to one or more elements (e.g., processors) that each perform that function / process, or it can correspond to two or more elements (e.g., processors) that perform one or more different functions / processes respectively.

[0080] Furthermore, it should be understood that, unless explicitly limited in some examples, the words or phrases used herein should be interpreted broadly. For example, the terms “including” and “comprising” and their derivatives mean non-restrictive inclusion. Unless the context explicitly indicates otherwise, the singular forms “a,” “one,” and “the” are also intended to include the plural forms. Additionally, the term “and / or (and / or)” as used herein refers to and includes any and all possible combinations of one or more associated listed items. Unless the context explicitly indicates otherwise, the term “or” is inclusive, meaning and / or (and / or). The phrases “associated with” and “related to” and their derivatives may mean including, being included in, interconnected with, containing, contained within, connected to or connected with, coupled to or coupled with, communicable with, cooperating with, intertwined, juxtaposed, proximate, combined with or combined with, having, possessing the properties of, etc.

[0081] Furthermore, although the terms “first,” “second,” “third,” etc., may be used herein to refer to various elements, information, functions, or actions, these elements, information, functions, or actions should not be limited by these terms. Rather, these numerical adjectives are used to distinguish different elements, information, functions, or actions from one another. For example, without departing from the scope of this disclosure, a first element, first information, first function, or first action may be referred to as a second element, second information, second function, or second action, and similarly, a second element, second information, second function, or second action may be referred to as a first element, first information, first function, or first action.

[0082] Additionally, unless the context clearly indicates otherwise, the term "adjacent to" can mean: an element is relatively close to another element but not in contact with it; or an element is in contact with other parts. Furthermore, unless otherwise explicitly stated, the phrase "based on" is intended to mean "at least partially based on".

[0083] Although exemplary embodiments of this disclosure have been described in detail, those skilled in the art will understand that various changes, substitutions, variations, and modifications disclosed herein can be made without departing from the spirit and scope of the broadest form of this disclosure.

[0084] Nothing described in this application should be construed as implying that any particular element, step, action, or function is a fundamental element that must be included within the scope of the claims: the scope of the patent subject matter is defined only by the permissible claims. Furthermore, unless the exact phrase “configuration for…” is followed by a participle, these claims are not intended to invoke a device-plus-function claim structure.

Claims

1. A floating master controller system, comprising: A plurality of hardware units, each capable of performing at least one mechanical function, wherein each hardware unit includes a processor configured to operate the hardware unit and perform the at least one mechanical function via controller code included in memory, wherein the controller code for each hardware unit includes a main controller (MC) application and at least one floating main controller (FMC) application, wherein each MC application is operably configured to act as an active main controller controlling the at least one mechanical function in each of the plurality of hardware units in the system, wherein each MC application is operably configured to control the at least one mechanical function of a corresponding hardware unit for each MC application in response to another MC application that acts as the active main controller in the system, wherein the at least one FMC application for each hardware unit is operably configured to automatically coordinate with each other FMC application to move the active main controller function for the system between each of the different MC applications in the system. Specifically, the controller code for each hardware unit is configured to cause the corresponding hardware unit to operate in at least one of four modes, including master mode, backup mode, tracing mode, and fault mode, whereby the hardware unit is configured to operate. Wherein, when the hardware unit operates in the tracking mode: the hardware unit is configured to: track one of the other hardware units in the system that operates in the main mode, and thereby operate at least one mechanical function of the hardware unit in response to control data received from the other hardware unit operating in the main mode; prevent the hardware unit operating in the tracking mode from starting to operate in the main mode in response to the other hardware unit operating in the main mode entering the fault mode; and enable the hardware unit to start tracking the other hardware unit in the system or the other hardware unit in response to the other hardware unit operating in the main mode again or in response to another hardware unit operating in the main mode.

2. The floating host controller system of claim 1, wherein, The hardware unit is a compressor, wherein the at least one mechanical function includes compressing gas.

3. The floating master controller system according to claim 1, wherein, Each hardware unit includes multiple FMC applications, wherein each hardware unit includes a proportional-integral-derivative PID controller, wherein a first FMC application in the FMC application for each corresponding hardware unit coordinates communication with the MC application for each corresponding hardware unit, and wherein a second FMC application in the FMC application for each corresponding hardware unit coordinates communication with the PID controller of each corresponding hardware unit.

4. The floating master controller system according to claim 1, in, When the hardware unit operates in the main mode, the hardware unit is configured to send the control data to other hardware units in the system to control at least one mechanical function in each of the other hardware units. Wherein, when the hardware unit operates in the backup mode, the hardware unit is configured to: track one of the other hardware units in the system that operates in the main mode, and thereby operate the at least one mechanical function of the hardware unit in response to control data received from the other hardware unit operating in the main mode; cause the hardware unit operating in the backup mode to start operating in the main mode in response to the other hardware unit operating in the main mode entering the fault mode; and cause the hardware unit to start operating in the backup mode and track the other hardware unit in response to the other hardware unit operating in the main mode again. and When the hardware unit detects an internal fault condition, the hardware unit is configured to begin operating in the fault mode.

5. A floating master controller for hardware units in a system of multiple hardware units communicating with each other via a network, each hardware unit being capable of performing at least one mechanical function, and each hardware unit including a corresponding floating master controller, the floating master controller comprising: A processor, configured via executable instructions contained in memory, to cause the hardware unit to operate in at least one of four modes, including master mode, backup mode, trace mode, and fault mode. When the hardware unit operates in the main mode, it is configured to send control data to other hardware units in the system to control at least one mechanical function in each of the other hardware units. Wherein, when the hardware unit operates in the backup mode, the hardware unit is configured to: track one of the other hardware units in the system that operates in the main mode, and thereby operate the at least one mechanical function of the hardware unit in response to control data received from the other hardware unit operating in the main mode; cause the hardware unit operating in the backup mode to start operating in the main mode in response to the other hardware unit operating in the main mode entering the fault mode; and cause the hardware unit to start operating in the backup mode and track the other hardware unit in response to the other hardware unit operating in the main mode again. Wherein, when the hardware unit operates in the tracking mode: the hardware unit is configured to: track one of the other hardware units in the system that operates in the main mode, and thereby operate at least one mechanical function of the hardware unit in response to control data received from the other hardware unit operating in the main mode; prevent the hardware unit operating in the tracking mode from starting to operate in the main mode in response to the other hardware unit operating in the main mode entering the fault mode; and cause the hardware unit to start tracking the other hardware unit in the system or the other hardware unit in response to the other hardware unit operating in the main mode again or in response to another hardware unit operating in the main mode. When the hardware unit detects an internal fault condition, the hardware unit is configured to begin operating in the fault mode.

6. The floating master controller according to claim 5, wherein, The processor is configured to: The Floating Master Controller (FMC) application is executed, the FMC application being configured to store configuration settings regarding the hardware unit and the system in memory, and the FMC application being operablely configured to transfer control data between the FMC application itself and other FMC applications executed in the corresponding processors of each of the other hardware units in the system. as well as The main controller (MC) application is executed, and the MC application is configured to control at least one mechanical function of the hardware unit in response to the control data and configuration settings received from the FMC application. The FMC application and the MC application are configured to enable the hardware unit to operate in one of at least four modes, including the main mode, the backup mode, the tracing mode, and the fault mode. When the hardware unit operates in the main mode, the MC application is configured to send control data to the FMC application, which then transmits the control data to another FMC application to control at least one mechanical function in each of the other hardware units in the system. Wherein, when the hardware unit operates in the backup mode: the MC application is configured to: track one of the other hardware units in the system operating in the primary mode, and operate at least one mechanical function of the hardware unit in response to control data received by the FMC application from another FMC application of the other hardware unit operating in the primary mode; and the FMC application and the MC application are configured to, in response to the other hardware unit operating in the primary mode entering the fault mode, cause the hardware unit operating in the backup mode to begin operating in the primary mode, and When the hardware unit operates in the tracking mode, the MC application is configured to: track one of the other hardware units in the system that operates in the main mode, and to operate at least one mechanical function of the hardware unit in response to control data received by the FMC application from another FMC application of the other hardware unit that operates in the main mode.

7. The floating master controller according to claim 6, wherein, The FMC application is configured to provide a human-machine interface (HMI) capable of displaying data in a graphical user interface that describes the current operating mode of each of the hardware units in the system.

8. The floating master controller according to claim 7, wherein, The FMC application is configured to provide data enabling the HMI to depict at least one selectable user interface element, the at least one selectable user interface element enabling an operator to provide input to the HMI to select which of the hardware units to be the active master controller unit, wherein the FMC application is configured to receive data via the HMI indicating that the hardware unit in the system is selected as the active master controller unit, and in response thereto, the FMC application is configured to change the operating mode of the hardware unit to the master mode, and transmit the change of operating mode to the FMC applications in the other hardware units.

9. The floating master controller according to claim 8, wherein, When the hardware unit begins to operate in the fault mode, the FMC application is configured to transmit information about the hardware unit's operation in the fault mode to the FMC application in the other hardware units.

10. The floating master controller according to claim 8, wherein, The FMC application is configured to receive updated configuration data via the HMI indicating that another hardware unit in the system has been selected as the active master controller, and in response thereto, the FMC application is configured to transmit the selection of the other hardware unit as the active master controller to the FMC application of the other hardware unit, thereby the hardware unit begins to operate in the backup mode, and the other hardware unit begins to operate in the master mode.

11. The floating master controller according to claim 8, wherein, The FMC application corresponds to a first FMC application, wherein the hardware unit includes a proportional-integral-derivative PID controller that controls additional functions of the hardware unit, wherein the processor of the hardware unit is configured to execute a second FMC application, the second FMC application being configured to cause the PID controller to operate in response to control signals received by the second FMC application from a third FMC application executed in the processor of another hardware unit operating in the main mode of the system.

12. A hardware unit comprising a floating master controller according to claim 5, wherein, The hardware unit includes a compressor, wherein the at least one mechanical function includes compressing gas.

13. A system comprising a plurality of hardware units according to claim 12.

14. A method for operating a floating master controller, comprising: The operation of the processors of the hardware units in a system of multiple hardware units communicating with each other via a network enables the following processing, wherein each hardware unit is capable of performing at least one mechanical function, and each hardware unit includes a corresponding floating master controller configured to operate in at least one of four modes in which the hardware unit is configured to operate, including master mode, backup mode, tracking mode, and fault mode: The hardware unit operates in the backup mode and tracks one of the other hardware units operating in the main mode, and thus operates at least one mechanical function of the hardware unit in response to control data received from the other hardware unit operating in the main mode. The hardware unit detects that the other hardware unit being tracked is operating in the fault mode, and in response thereto, the hardware unit begins to operate in the primary mode instead of the backup mode, and thereby sends control data to the other hardware units in the system to control the at least one mechanical function in each of the other hardware units. The hardware unit detects that the other hardware unit that was previously tracked is operating in the main mode, and in response, the hardware unit begins to operate in the backup mode again and track the other hardware unit. The hardware unit receives updated configuration data that causes it to begin operating in the tracking mode, and thereby tracks the other hardware units. The hardware unit detects that the other hardware unit being tracked is operating in the fault mode, and in response to the hardware unit being in the tracking mode, the hardware unit does not begin operating in the main mode. The hardware unit detects that the other hardware unit previously tracked or a different hardware unit in the system is operating in the main mode, and in response, the hardware unit begins tracking the other hardware unit or the different hardware unit operating in the main mode; and The hardware unit detects an internal fault condition, and in response, the hardware unit begins to operate in the fault mode.

15. The method of claim 14, further comprising operations via the processor: The Floating Master Controller (FMC) application stores configuration settings regarding the hardware units and the system in memory, and transfers control data between the FMC application itself and other FMC applications executing in the corresponding processors of each of the other hardware units in the system; and The main controller (MC) application controls at least one mechanical function of the hardware unit in response to the control data and configuration settings received from the FMC application. in, The FMC application and the MC application are configured to cause the hardware unit to operate in one of at least four modes, including the main mode, the backup mode, the tracing mode, and the fault mode. When the hardware unit operates in the main mode, the MC application is configured to send control data to the FMC application, which then transmits the control data to another FMC application to control at least one mechanical function in each of the other hardware units in the system. Wherein, when the hardware unit operates in the backup mode, the MC application is configured to track one of the other hardware units in the system operating in the primary mode, and to operate at least one mechanical function of the hardware unit in response to control data received by the FMC application from another FMC application of the other hardware unit operating in the primary mode; and the FMC application and the MC application are configured to, in response to the other hardware unit operating in the primary mode entering the fault mode, cause the hardware unit operating in the backup mode to begin operating in the primary mode, and When the hardware unit operates in the tracking mode, the MC application is configured to track one of the other hardware units in the system that operates in the main mode, and to operate at least one mechanical function of the hardware unit in response to control data received by the FMC application from another FMC application of the other hardware unit that operates in the main mode.

16. The method of claim 15, further comprising the FMC application providing data that enables the human-machine interface (HMI) to display a graphical user interface describing the current operating mode of each of the hardware units in the system.

17. The method of claim 16, further comprising: The FMC application provides data that enables the HMI to depict at least one selectable user interface element, which allows the operator to provide input to the HMI to select which of the hardware units should be the active master controller unit. as well as The FMC application receives data via the HMI indicating that the hardware unit in the system is selected as the active master control unit, and in response, the FMC application changes the operating mode of the hardware unit to the master mode and transmits the change of operating mode to the FMC applications in the other hardware units.

18. The method of claim 17, further comprising the FMC application transmitting information about the FMC application being in the fault mode to the FMC application in the other hardware unit.

19. The method of claim 17, further comprising the FMC application receiving updated data via the HMI indicating that a second hardware unit in the system has been selected as the active master controller, and in response thereto, the FMC application transmitting the selection of the second hardware unit as the active master controller to the FMC application of the second hardware unit, thereby the hardware unit begins operating in the backup mode and the second hardware unit begins operating in the master mode.

20. The method of claim 15, wherein, The FMC application corresponds to a first FMC application, wherein the hardware unit includes a proportional-integral-derivative PID controller, and the method further includes, through the operation of the processor, a second FMC application controlling the PID controller to operate in response to a control signal received by the second FMC application from a third FMC application executed by the second FMC application from the processor of another hardware unit operating in the main mode of the system.

21. The method according to claim 14, wherein, The hardware unit includes a compressor, wherein the at least one mechanical function includes compressing gas.

22. A non-transitory computer-readable medium encoded with processor-executable instructions, which, when executed by at least one processor, cause the at least one processor to perform the method of operating a floating master controller as described in claim 14.

Citation Information

Patent Citations

  • Method, system and related device for confirming master-slave relationship among multiple controllers

    CN112486740A

  • Building management system with dynamic master controller selection

    US20180225244A1