TECHNICAL FIELDThe present invention relates generally to centralized control of electronic devices. More specifically, the present invention relates to systems and methods for providing real-time control of multiple electronic devices by a centralized computing platform.
BACKGROUNDComputer and communication technologies continue to advance at a rapid pace. Indeed, computer and communication technologies are involved in many aspects of a person's day. For example, many devices being used today by consumers have a small computer incorporated within the device. These small computers come in varying sizes and degrees of sophistication. These small computers may vary in sophistication from one microcontroller to a fully-functional complete computer system. For example, small computers may be a one-chip computer, such as a microcontroller, a one-board type of computer, such as a controller, or a typical desktop computer, such as an IBM-PC compatible, etc.
Typically, control of these devices occurs locally at the device with the incorporated computer or microcontroller. Therefore, control of multiple electronic devices in a residential or industrial setting has been distributed. Control and coordination of each device is usually implemented in dedicated, single purpose hardware. Each device typically has its own microcontroller, programmable logic controller, or servo card to perform the necessary servo control. Consequently, the control loops are typically closed in the control hardware at the device itself.
As electronic device control technologies continue to advance in a competitive environment, companies are driven to differentiate their product lines. As a result, some user interfaces of electronic devices have become increasingly complex. This has resulted in an inundation of complex interfaces for devices that have limited coordination with one another. For example, it is not uncommon for a typical entertainment system to have five different wireless remote control devices: one for the television, one for the VCR, one for the DVD player, one for the CD changer, and one for the stereo.
Consequently, it would be desirable to have centralized, instead of distributed control of these automated devices. It would further be desirable to provide a simple and straightforward user interface that can be used to control devices from a centralized location.
BRIEF DESCRIPTION OF THE DRAWINGSThe present embodiments will become more fully apparent from the following description and appended claims, taken in conjunction with the accompanying drawings. Understanding that these drawings depict only typical embodiments and are, therefore, not to be considered limiting of the invention's scope, the embodiments will be described with additional specificity and detail through use of the accompanying drawings in which:
FIG. 1 is a block diagram illustrating the main hardware components of one embodiment of the device control system;
FIG. 2 is a block diagram illustrating one example of a managing controller process in a host device of the system;
FIG. 3 is a block diagram depicting a control loop process that occurs between the host device and a controlled device;
FIG. 4 is a block diagram illustrating the main hardware components of an alternative embodiment of the device control system;
FIG. 5 is a block diagram illustrating a host device communicating with a controlled device over a wireless network;
FIG. 6 is a block diagram illustrating the major hardware components typically utilized in a host device;
FIG. 7 is a block diagram illustrating the major hardware control components typically utilized in a controlled device to communicate and respond to input from the host device;
FIG. 8 is a block diagram depicting the hardware control components of a controlled device having a motor;
FIG. 9 is a flow diagram of one embodiment of a method for processing multiple control loops within the managing controller process;
FIG. 10 is a flow diagram of a method for processing a single control loop within the managing controller process for one controlled device;
FIG. 11 is a flow diagram of a method for processing within a controlled device, a control loop initiated by the host device;
FIG. 12 is a flow diagram of a method for allowing user access to the managing controller process; and
FIG. 13 is a flow diagram of one embodiment of a method for providing user access to the managing controller process from a remote computing device.
DETAILED DESCRIPTIONA method for controlling electronic devices through a centralized host device is disclosed. In the method, electronic communications are established between the host device and a controlled device. A control frequency is assigned for the controlled device using a 2Ntime slicing algorithm, where N is a non-negative integer. Control input for the controlled device is generated at the host device and sent to the controlled device at the assigned control frequency.
Once electronic communications are established with the controlled device, the host device may initiate a control loop process. The host device may also receive output from the controlled device which is generated in response to sent control input. Further, the electronic communications between the host and the controlled devices may be in real-time on a network.
The 2Ntime slicing algorithm may include assigning the control frequency for the controlled device at 2Nhertz, where N is a non-negative integer that yields a control frequency approximate to the preferred control frequency of the controlled device. In certain embodiments, real-time electronic communications may be established between multiple electronic devices and the host device. Each controlled device is assigned a discrete control frequency using the 2Ntime slicing algorithm where the N value for each controlled device is determined independent of the other controlled devices.
The method may further include accessing the host device from a remote computing device via the Internet. Information relating to the controlled device may then be provided to the user at the remote computing device. The user may then generate and send input to the host device from the remote computing device. The input may relate to the control or monitoring of the controlled device.
A computing device configured for controlling electronic devices is also provided. The computing device includes a processor and memory in electronic communications with the processor. The computing device also includes executable instructions that can be executed by the processor. The executable instructions are configured to establish electronic communications between the computing device and one or more controlled devices. The executable instructions are also configured to assign a control frequency to each controlled device using a 2Ntime slicing algorithm where N is a non-negative integer. Control input is then generated and sent to the controlled device at the assigned control frequency.
A computer-readable medium for storing program data is provided as well. The program data includes executable instructions for implementing a method of controlling electronic devices from a computing device. In the method, electronic communications are established between the computing device and a controlled device. A control frequency is assigned for the controlled device using a 2Ntime slicing algorithm, where N is a non-negative integer. Control input for the controlled device is generated at the computing device and sent to the controlled device at the assigned control frequency.
It will be readily understood that the components of the embodiments as generally described and illustrated in the Figures herein could be arranged and designed in a wide variety of different configurations. Thus, the following more detailed description of the embodiments of the systems and methods of the present invention, as represented in the Figures, is not intended to limit the scope of the invention, as claimed, but is merely representative of the embodiments of the invention.
The word “exemplary” is used exclusively herein to mean “serving as an example, instance, or illustration.” Any embodiment described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments. While the various aspects of the embodiments are presented in drawings, the drawings are not necessarily drawn to scale unless specifically indicated.
Several aspects of the embodiments described herein will be illustrated as software modules or components stored in a computing device. As used herein, a software module or component may include any type of computer instruction or computer executable code located within a memory device and/or transmitted as electronic signals over a system bus or network. A software module may, for instance, comprise one or more physical or logical blocks of computer instructions, which may be organized as a routine, program, object, component, data structure, etc., that performs one or more tasks or implements particular abstract data types.
In certain embodiments, a particular software module may comprise disparate instructions stored in different locations of a memory device, which together implement the described functionality of the module. Indeed, a module may comprise a single instruction, or many instructions, and may be distributed over several different code segments, among different programs, and across several memory devices. Some embodiments may be practiced in a distributed computing environment where tasks are performed by a remote processing device linked through a communications network. In a distributed computing environment, software modules may be located in local and/or remote memory storage devices.
Note that the exemplary embodiment is provided as an exemplar throughout this discussion, however, alternate embodiments may incorporate various aspects without departing from the scope of the present invention.
The order of the steps or actions of the methods described in connection with the embodiments disclosed herein may be changed by those skilled in the art without departing from the scope of the present invention. Thus, any order in the Figures or detailed description is for illustrative purposes only and is not meant to imply a required order.
FIG. 1 is a block diagram illustrating the major components of one embodiment of thedevice control system102. Thedevice control system102 ofFIG. 1 includes ahost device104 that is in electronic communication with three controlledelectronic devices106a,106b,106cvia acommunications network108. Thedevice control system102 may alternatively be in communication with greater than or fewer than the three controlleddevices106a,106b,106cillustrated.
Thehost device104 may be one of any number of computing devices such as a Personal Computer (PC), tablet PC, or Personal Digital Assistant (PDA) device having an operating system that can run or support real-time applications for over the network servo control. Furthermore, more than onehost device104 may be utilized in thepresent system102. The major hardware components of thehost device104 will be described with greater detail and specificity in conjunction with the description accompanyingFIG. 6. Thehost device104 includes a managing controller process110 to manage and execute the control loops for the controlleddevices106a,106b,106csimultaneously. Control loops generally include the generation of control input, such as a command parameter, the processing of the control input by the designated controlled device106, generation of outputs such as feedback at the controlled device106, and the processing of the device outputs. The managing controller process110 is a software module or application that runs on thehost device104.
The controlleddevices106a,106b,106cmay be one of any number of electronic devices such as motors, actuators, and sensors associated with residential or industrial devices. For example, in a residentialdevice control system102, the controlleddevices106a,106b,106cmay include typical residential devices and systems such as washing machines, clothes dryers, refrigerators, microwave ovens, conventional gas or electric ovens, telephone systems, security systems, sprinkler systems, Heating, Ventilation, & Air Conditioning (HVAC) systems, dishwashers, lighting systems, sound systems, television and home theater systems, and many other similar devices.
Alternatively, thedevice control system102 may control industrial devices used in chemical processing systems, material handling, and motion systems for use on devices such as machine tools, robots, conveyors, and the like. Additionally, complicated industrial and commercial HVAC systems that utilize many actuators, motors, switches and sensors can all be controlled through thehost device104 of thedevice control system102.
Unlike the distributed control of many conventional automated devices, thedevice control system102 has a centralized control architecture. The term centralized does not mean that all control must occur at a single location, as there may be more than one host device. Centralized control may be contrasted from distributed control in that centralized control may put control in one or a few devices, while distributed control has control functions distributed on all, or many devices.
The managing controller process110 of thehost device104 provides the control input to perform the controlling functions of the controlleddevices106a,106b,106cthat are traditionally performed by programmable logic controllers, microcontrollers, and related hardware. In conventional systems, the control loops are customarily closed in control hardware at the electronic device itself. The only closing of control loops over the network that usually occurs in conventional systems is to obtain status and deliver settings, which are not accomplished in real-time. In the present embodiment, a portion of the control hardware for traditional automated devices is typically replaced with control software (the managing controller process110) on acentralized host device104. Each control loop associated with a particular controlleddevice106a,106b,106cis closed in software over thenetwork108 from thehost device104.
Thehost device104 communicates with the controlleddevices106a,106b,106cover acomputer network108. In certain embodiments thecomputer network108 may be a high-speed network. An exemplary high-speed network108 that may be used is an Ethernet system. Thenetwork108 may be aphysical transportation medium112 such as twisted pair wires, cables, or fiber optics. Thenetwork108 may also includewireless links114, or a combination of physical112 andwireless mediums114. Any transportation medium capable of delivering and receiving command signals and feedback signals to and from the controlleddevices106a,106b,106cwould be sufficient as long as the network can perform in an isochronous (fixed frequency) mode.
Furthermore, thedevice control system102 may includeadditional access points116 such as a touch-screen Liquid Crystal Display (LCD) panel, conventional PC and monitor, or similar graphical interfaces.Additional access points116 would enable a user to access thedevice control system102 from a different location in the house, industrial plant, or building. A user can thereby program or monitor the managing controller process110 at several locations. Access points116 may optionally be located on the device itself, to control the controlled device106 locally if desired. Eachaccess point116 is connected to thehost device104 through thenetwork108.
Exemplary graphical interfaces provided by thehost device104 and theadditional access points116 may be web-enabled browser applications. Browser applications possess the advantages of networking and communication of data, but also support common applications that can be used to facilitate user interactions, such as the Flash interface application.
Typically the controlleddevices106a,106b,106cwould not have direct connections to theInternet118 which could provide the user with access to the World Wide Web directly from the controlled device106. Thedevice control system102 has a centralized control system through alocal network108 to provide real-time process control not available through an Internet connection. Thus, in embodiments herein a user may access thehost device104 through theInternet118, and thehost device104 communicates with the controlled devices106 through thecomputer network108.
Thehost device104 of thedevice control system102 may be accessed by a user from a location remote from where thedevice control system102 is located. According to the embodiment depicted inFIG. 1, thehost device104 is connected to theInternet118, which in turn may be accessed from any location around the world. The user may log-on to thedevice control system102 from aremote computer120 or similar web-enabled computing device, to program or monitor the controlleddevices106a,106b,106con the system. The user may alternatively use a web-enabledwireless device122 such as a cell phone or wireless PDA to access thehost device104. Thewireless signal114 is transmitted to a cellular service provider which is then connected to the Internet. Therefore, from a remote computer or a cellular phone, a residential user could arm the security system or program the lighting system of his home to deter potential burglaries while away on vacation. Alternatively, a parent could unlock the doors to his home from work when his children are locked out.
Furthermore, in cooperation with public utilities, thedevice control system102 may be configured to establish a secure interface with utility companies through theInternet118. Thehost device104 could be connected to water, gas, and electric meters through asecure network108 connection to interface with and electrically monitor each utility. At a specific time of the month, thehost device104 would query the secure interfaces, obtain data indicating the amount of the utility used, and then automatically mail the data to the public utility over theInternet118, thus eliminating the need for manual inspection by utility employees. Algorithms could also be incorporated into the managing controller process110 to alert the home or business owner at thedevice control system102 interface of over-usage of utility resources.
The centralized control architecture provided by thedevice control system102 provides for flexibility in defining and altering the managing controller process110 through software modification instead of hardware upgrade and replacement for each individualized controlleddevice106a,106b,106c. Since thehost device104 is connected to theInternet118, a new control process for an existing device or for a new device could be downloaded over theInternet118. The downloading process could be automated and occur without initiation by the user. In such situations thehost device104 will automatically download new control processes and inform the user that a new process is ready to be installed. Upon user consent, the new process will be installed for the device, along with its associated monitoring and scheduling interface.
The control and interface software for the centralized control architecture of thedevice control system102 is typically developed in a standard programming environment that currently exists on a PC, or the computing device used as ahost device104. Consequently, device control software upgrades and new installations will all be uniform for thedevice control system102. Conventionally, when developing software for custom computing hardware devices, a unique language or a variant of an existing language may be used. Functional restrictions in conventional device control hardware may also act as limitations. For example, mathematical imprecision is usually taken into account when using an 8-bit computer, but is not as relevant when dealing when modern 32-bit or 64-bit computing devices. As a result, writing software for new process systems or upgrades is facilitated through the use of thedevice control system102.
Furthermore, the centralized control architecture of thedevice control system102 also eliminates the need for distributed computing hardware such as most microcontrollers, programmable logic controllers, PC servo control cards, or peripheral servo controllers associated with controlleddevices106a,106b,106c. The controlleddevices106a,106b,106care instead connected to and controlled directly by thehost device104. Replacing device computing hardware with software on thehost device104 will diminish costs. Furthermore, the programming interfaces, control wiring and power electronics of the controlleddevices106a,106b,106care simplified as a result of thedevice control system102.
FIG. 2 is a block diagram illustrating one example of a managingcontroller process210 in ahost device204 of adevice control system202. The managingcontroller process210 provides an interface with the user to monitor or program device control. The managingcontroller process210 also is the real-time control process that runs on thehost device204 and communicates the control parameters over thenetwork208 to each controlleddevice206a,206b,206c. The managingcontroller process210 runs individual control loop processes224a,224b,224cfor each controlleddevice206a,206b,206cat a specified control frequency required for each specific device.
As graphically illustrated in the block diagram ofFIG. 2, a firstcontrol loop process224aruns as a part of the managingcontroller process210 at a specified control frequency to provide command parameters and receive feedback from the first controlleddevice206a. Simultaneously, a secondcontrol loop process224bruns as a part of the managingcontroller process210 at a specified control frequency to control and monitor the second controlleddevice206b. A thirdcontrol loop process224calso runs simultaneously as a part of the managingcontroller process210 at a specified control frequency to provide control input and receive and process device output of the third controlleddevice206c. Additional control loop processes224 may run as a part of the managingcontroller process210 if additional controlled devices206 are added on thedevice control system202.
The control frequency of the firstcontrol loop process224amay be different from the control frequency of the secondcontrol loop process224b, and likewise the thirdcontrol loop process224c. For example, a motor may need to operate at a control frequency of 1000 cycles per second (hertz—Hz). Simultaneously, a thermostat may only need to operate at a control frequency of 2 Hz. While a washing machine will need to cycle at about 100 Hz. Each of these process cycles is run in real-time. Consequently, the managingcontroller process210 is designed to control different device types, each demanding a different control frequency, in real-time. The processing power of thehost device204 runs thecontrol loops224a,224b,224csufficiently fast to control the controlled devices206.
By pulling the control loop processes into thehost device204, the need for custom computing hardware on the controlleddevices206a,206b,206cis eliminated. Furthermore, additional control algorithms could be used with this centralized control architecture. For example, an algorithm could be developed to detect degradation in component performance of a controlled device206 and alert the user that the device needs to be serviced before it breaks down. In the context of HVAC systems, this algorithm, run as a part of the managingcontroller process210, could be used to detect whether a motor is drawing more current than it should. The system could also detect whether a furnace is consuming more electricity than it should due to the increased work of pushing air through a dirty filter. The user is then notified at the graphical interface to replace the filter. Such a system would provide a user with great savings compared to conventional device control.
FIG. 3 is a block diagram depicting a singlecontrol loop process324 occurring at a host device (not shown) which controls a controlleddevice306 at a specific control frequency. Thecontrol loop process324 that occurs at the host device creates acontrol loop325 between the host device and the controlleddevice306. Thecontrol loop325 generally constitutes the generation ofcontrol input326, such as a command parameter, at the host device. Thecontrol input326 may be any input that can be used by the controlled device. Thecontrol input326 is transmitted to the controlleddevice306 via the network (not shown). The controlleddevice306 receives and processes thecontrol input326. In a closed-loop system, as illustrated inFIG. 3, the controlleddevice306 generates anoutput328, such as a feedback signal, which is transmitted to the host device over the network. Theoutputs328 may be any output provided by or generated by thedevice306. Thecontrol loop process324 of the host device then processes the controlled device outputs328, thereby completing one cycle of thecontrol loop325.
Typically the host device is situated in close proximity to the controlleddevice306. The maximum allowable distance between the host device and the controlleddevice306 is dependent upon the cycle time to close thecontrol loop325 between the controlleddevice306 and the host device. This will be a function of the high speed network type and the control frequency required for the controlleddevice306. That is, for real-time device control, the time it takes to transmit data over the distance between the host device and the controlleddevice306 needs to be fast enough to meet the real-time constraints of the system.
The controlleddevice306 may optionally receivedevice inputs330 from a source separate from the host device. For example, the controlleddevice306 may also include buttons, on/off switches, or an LCD touch-screen display for a user to control the device locally. Alternatively, the device may include sensors or other input sources that are not part of the device control system. The controlleddevice306 may also optionally producedevice outputs332 that are not transmitted to the host device. Indicator lights, speakers, or similar systems may act upon receivingdevice output332.
FIG. 4 is a block diagram illustrating the major components of an alternative embodiment of thedevice control system402. Thedevice control system402 is able to control multiple controlleddevices406a,406b,406cthrough first andsecond host devices404a,404b. More than twohost devices404a,404bmay be utilized if needed, depending upon the number and complexity of the devices that need to be controlled, and the processing power of eachhost device404a,404b. Eachhost device404a,404bruns a managingcontroller process410a,410b, which operates the individual control loops for each controlleddevice406a,406b,406c.
All local components of thedevice control system402 are connected to thenetwork hub408. Thehub408 contains multiple ports for receiving connections for the first andsecond host devices404a,404b, the first, second, and third, controlleddevices406a,406b,406c, and theadditional access point416 which provides an additional graphical interface for a user to operate and monitor thedevice control system402 from an alternative location. Thehub408 may be used as part of an Ethernet or other high-speed network in connecting all peripheral devices to thehost devices404a,404b. One proposed network media for use with thedevice control system402 is IEEE 802.3 Ethernet which has been restricted in its application protocol for real-time communications.
Furthermore, like the embodiment of the system described in conjunction withFIG. 1, the first andsecond host devices404a,404bof thedevice control system402 are connected to theInternet418 to allow downloads of new control process software or software updates. TheInternet418 connection also allows a user remote access to thedevice control system402 from aremote computer420 or a web-enabledwireless device422.
FIG. 5 is a block diagram illustrating adevice control system502 with ahost device504 communicating with a controlleddevice506 over awireless network508. Thehost device504 hosts the managing controller process510 which runs the individual process control loops for each controlleddevice506. In the embodiment ofFIG. 5 the control loop between thehost device504 and the controlleddevice506 occurs over a wireless network orconnection508. The wireless transmissions typically operate in the Radio Frequency (RF) spectrum, but could alternatively operate in the microwave or infrared spectrum, or any other operable frequency range or any other alternative forms of wireless communication known in the art such as ultrasonic. Both thehost device504 and the controlleddevice506 may includes a wireless card to communicate with each other, or a more rudimentary transmitter/receiver system or similar wireless devices known in the art.
FIG. 6 is a block diagram illustrating the major hardware components typically utilized in ahost device604. As mentioned previously, thehost device604 is a computing device such as a PC, tablet PC, or PDA device capable of running real-time applications. For example, Windows XP may run on thehost device604 to serve the user interfaces and network browsers. Windows XP may also run a real-time operating system such as QNX, which runs as a kernel process within Windows XP. VenturCom and others also have real-time applications that can run similarly.
For purposes ofFIG. 6, the term “host device” and “computing device” are used synonymously.Computing devices604 are known in the art and are commercially available. The major hardware components typically utilized in acomputing device604 are illustrated inFIG. 6. Acomputing device604 typically includes aprocessor634 in electronic communication with input components ordevices636 and/or output components ordevices638. Theprocessor634 is operably connected to input636 and/oroutput devices638 capable of electronic communication with theprocessor634, or, in other words, to devices capable of input and/or output in the form of an electrical signal. Embodiments ofdevices604 may include theinputs636,outputs638 and theprocessor634 within the same physical structure or in separate housings or structures.
Theelectronic device604 may also includememory640. Thememory640 may be a separate component from theprocessor634, or it may be on-board memory640 included in the same part as theprocessor634. For example, microcontrollers often include a certain amount of on-board memory.
Theprocessor634 is also in electronic communication with acommunication interface642. Thecommunication interface642 may be used for communications with other computing devices, controlled devices, servers, etc. Thus, the communication interfaces642 of the various devices may be designed to communicate with each other to send signals or messages between thecomputing device604 and other devices.
Thecomputing device604 may also includeother communication ports644. In addition,other components646 may also be included in thecomputing device604.
Of course, those skilled in the art will appreciate the many kinds of different devices that may be used with embodiments herein. Thecomputing device604 may be a one-board type of computer, such as a controller, a typical desktop computer, such as an IBM-PC compatible, a PDA, a Unix-based workstation, or any other available computing device that is capable of operating real-time control processes. Accordingly, the block diagram ofFIG. 6 is only meant to illustrate typical components of acomputing device604 and is not meant to limit the scope of embodiments disclosed herein.
FIG. 7 is a block diagram illustrating the major hardware control components typically utilized in a controlleddevice706 in order to communicate and respond to input from the host device. The controlleddevice706 may includesimple control logic734 or a processor in electronic communication with acommunication interface742. Thecommunication interface742 is used for communications with the host device. Thus, the communication interfaces742 of the controlleddevice706 may be designed to communicate with the host device by sending signals or messages between each other. In some situations the controlleddevice706 only sends a signal to the host device when instructed to do so by the host device.
The controlleddevice706 may also be in electronic communication with input components ordevices736 and/or output components ordevices738. The logic/processor734 is operably connected to input736 and/oroutput devices738 capable of electronic communication with theprocessor734, or, in other words, to devices capable of input and/or output in the form of an electrical signal.Input devices736 may include such control buttons or switches for a user to actuate or external or internal sensors such as temperature or pressure sensors.Output devices738 could be indicator lights, LCD display screens, and the like. The controlleddevice706 itself, such as a motor, HVAC system, or dishwasher, would also receive the electronic output signals from the hardware control components to operate in accordance with the parameters sent by the host device.
The hardware control components of the controlleddevice706 may also includememory740. Thememory740 may be a separate component from the logic/processor734, or it may be on-board memory740 included in the same part as theprocessor734. For example, microcontrollers often include a certain amount of on-board memory.
FIG. 8 is a block diagram depicting the hardware control components of an embodiment of a controlleddevice806 being used in combination with adigital amplifier856 and amotor850. There may be some control loops that are preferably closed in hardware at the controlleddevice806. For example, the current/torque control loop needed to control amotor850 is closed at the controlleddevice806. The control hardware needed for the current/torquecontrol loop process852 is amicrocontroller854 and adigital amplifier856.
Themotor850 provides mechanical movement for the controlleddevice806; thedigital amplifier856 modulates motor power; and themicrocontroller854 is used to communicate digital control commands over the network. Themicrocontroller854 interprets commands received from the host device and passes the digital control parameters to and from theamplifier856 accordingly. Themicrocontroller854 is not a conventional microcontroller since it only serves to pass digital data.
FIG. 9 is a flow diagram of one embodiment of a method for processing multiple control loops within the managing controller process110. The managing controller process110 performs902 any control and monitoring of control loop processes currently running. The functions of the managing controller process and each control loop for a particular controlled device are described in detail in conjunction withFIGS. 2 and 3, respectively. For instance, if an HVAC system is operating, the managing controller process is performing control loop processes for the thermostats, furnace motors or condenser coil fan motors, compressors and the like.
As the managing controller process110 operates, it110 determines904 whether a new controlled device has been connected to the device control system network. The device control system will recognize new controlled devices when they are connected to the network without having to restart the host device. Moreover, controlled devices currently running on the device control system can be disconnected from the network without having to restart the host device. This ability to hot-swap controlled devices enables devices to be added or removed randomly from the device control system network.
A negative response to thequery904 whether a new controlled device has been connected will cause the managing controller process to continue performing902 any control and monitoring of control loop processes currently running. However, if a positive response to thenew device query904 is received because a new controlled device has been connected to the network, the managing controller process determines906 the control frequency needed for the new controlled device.
Each controlled device operates at a specific control frequency or duty cycle. The control frequency of one controlled device is often different from the control frequency of another device. As mentioned previously, the control frequency of a motor may be at about 1000 Hz, while a washing machine operates at a control frequency of about 100 Hz, and a thermostat might operate at a control frequency of about 2 Hz.
Once the control frequency of the new controlled device is determined, the managing controller process must then determine908 whether the sum of all control frequencies exceeds the bandwidth. In order for all the controlled devices to operate in real-time while running on the device control system network, the sum of all the control frequencies for each device cannot exceed the bandwidth of the device control system. For example, given a bandwidth of 5 kHz, if four motors were running at a control frequency of about 1 kHz each, along with a washing machine operating at 100 Hz, the devices could continue to run in real-time because 4100 Hz<5 kHz. However, if a new controlled device having a motor that requires 1 kHz is connected to the device control system, the sum of all control frequencies of the controlled devices is 5100 Hz, which exceeds the bandwidth (5 kHz).
If thequery908 whether adding the new device will exceed the bandwidth is answered positively, the new controlled device is refused910 from operating on the device control system in order to preserve real-time communication. The managing controller process will subsequently continue to control and monitor902 the control loop processes of existing controlled devices that operate at control frequencies that do not exceed the bandwidth.
However, in the more likely event that thequery908 whether adding the new device will exceed the bandwidth is answered negatively, a control frequency is assigned912 for the controlled device using a 2Ntime slicing algorithm. A control loop process for the new controlled device is assigned a specific, discrete control frequency defined by the 2Nalgorithm, where N is an integer that defines the control resolution (a larger N value increases the control resolution).
For example, given a control bandwidth F of 5 kHz, the managing controller process is capable of cycling the control loop processes F times per second. The 2Ntime slicing algorithm recognizes that many devices can be controlled at a control frequency less than F, allowing many devices to be controlled within the bandwidth of F. The integer N determines the control resolution. For instance, if a motor operates at a control frequency of about 1000 Hz, if N=10, then the motor will be assigned a control frequency of 1024 Hz (210=1024). If a washing machine operates at a control frequency of about 100 Hz, then it will be assigned a control frequency of 128 Hz (2N−3=210−3=27=128). Furthermore, if a thermostat operates at about 2 cycles per second, then it will be assigned a control frequency of 2 Hz (2N−9=210−9=21=2).
The sum of all the control frequencies for all controlled devices must be less than F to operate in real-time. Given the above example, 1024 Hz (motor)+128 Hz (washing machine)+2 Hz (thermostat)=1154 Hz<F (5 kHz). Conventional real-time controllers function at one specified frequency. The 2Ntime slicing algorithm allows many more devices to be controlled because the bandwidth is not being used to scan devices at a higher than necessary rate. Every process in the host device has a driver that maps the controlled device I/O and other control parameters into the 2Nresolution space.
After the new controlled device is assigned a control frequency at 2NHz912, the control loop process for the new controlled device is initiated914 between the host device and the controlled device. Programming and scheduling interfaces for the added controlled device may also be loaded as part of the managing controller process from a database of device control system-enabled devices. The managing controller process then performs902 any control and monitoring of control loop processes for controlled devices on the device control system network.
In performing any control and monitoring902 of control loop processes, the managing controller process specifically, and the device control system collectively, operates under a communications architecture that consists of three basic rules. The first rule is that controlled devices do not transmit on the network unless instructed to do so or unless they receive a communication from the host device. The second rule is that time is sliced into regular 2Nintervals to give all devices a specified fixed time to respond. And the third rule is that only controlled devices for use specifically on the device control system network may communicate on the network. These three basic rules serve to preserve real-time communication integrity of the device control system.
FIG. 10 is a flow diagram of a method for processing a single control loop within the managing controller process110 as it controls one controlled device106. The control loop process begins by generating1020 control inputs for the controlled device if the device is running or needs to be controlled in some fashion. The control inputs could be any variety of instructions, from device start-up to shut-down, to continue performing task, to provide sensor feedback, etc. For example, the managing controller process110 may generatecontrol input1020 in the form of command parameters instructing an HVAC system to start the condenser fan motor. The control inputs generated are then sent1021 over the network to the relevant controlled device.
The control loop process then receives1022 any output communication from the controlled device106. Controlled device output may be in the form of feedback to indicate successful completion of the instructions/command parameters, or an error, or any other signal or data that is generated by the controlled device106 and transmitted to thehost device104 at the request of the control loop process. Controlled devices on the device control network typically do not produce output signals on the network unless requested by the host device.
The control loop process is most often a closed control loop where control inputs are generated1020 and the control loop process receivesfeedback1022 from the controlled device. However, the device control system may also work with open control loop processes, where the control loop process generates thecontrol input1020 and does not receive an output signal back from the controlled device.
After receiving anoutput signal1022 from the controlled device, if there is any, the control loop process then queries1024 whether the controlled device should continue to run. If the answer to thequery1024 is positive then the control loop process again generates1020 control inputs for the controlled device106, if necessary. If the answer to thequery1024 is negative then the managing controller process110 is notified1026 of task completion, which results in terminating the control loop process for that particular controlled device. Task completion may also be coordinated with other control loop processes running on the managing controller process110. The managing controller process may also provide notice at the graphical interface to indicate that the controlled device is shut-down or the particular task requested was completed.
FIG. 11 is a flow diagram of a method for processing within a controlled device106, a control loop initiated by thehost device104. The controlled device listens1130 for control input generated by the control loop process on thehost device104. As mentioned previously, the controlled device106 typically does not speak on the device control system network unless spoken to by thehost device104. However, the input signal that could be received by the controlled device106 may not be directly from thehost device104. An input signal may be received from the controlled device itself, such as from a sensor or user input locally at the device.
The controlled device then determines1132 whether a control input signal has been received. If the answer to thequery1132 is negative, the controlled device continues to listen1130 for control input. If the answer to thequery1132 is positive, the controlled device then processes1134 the input. Processing1134 the control input may include performing the instructions received and acting upon the controlled device accordingly. In a closed-loop process, the controlled device then generates1136 output. Output may be in the form of a feedback signal to thehost device104, or it may be instructions to initiate a local process, such as illuminating an LED indicator light on the controlled device itself.
After generating1136 output, such as a feedback signal, the controlled device106 then transmits1138 the output to thehost device104 over the device control network.Transmission1138 of the output signal may be over a physical transmission medium or over a wireless network as discussed previously. The controlled device then returns to listening1130 for control input to start the method again.
FIG. 12 is a flow diagram of a method for allowing user access to the managing controller process110 of thehost device104. A user first accesses1240 the managing controller process110 through an electronic medium. Access may occur by a user initiating electronic communications at thehost device104 itself, or at aseparate access point116 on the device control system network. Additionally, access may occur by a user at a location remote from the device control system. Such access may be initiated via a remote computing device connected directly or indirectly to theInternet118, or through a wireless connection via a web-enabledwireless device122 such as a wireless PDA or cell phone.
Often the user may use a browser application to access1240 the managing controller process110 from a remote location. However, other methods of access may be employed that do not require a browser, such as Telnet or other known methods of electronic communication.
Once the user accesses1240 the managing controller process, the user logs1242 on to the managing controller process110. The process of logging-on1242 may comprise entering simple instructions to be able to monitor or control the managing control process, or it may include entering a username or a username and password.
Upon logging-on1242 to the device control system, the managing control process110 provides1244 an interface to the user to access the control processes running on the system. If desired, access may be limited depending upon who the identified user is. The access to the managing controller process may provide, among other things, the ability to alter current control loop processes, re-start or shut-down other control loop processes or just monitor control loop processes running. The interface provided1244 by the managing controller process may be a graphical interface to make the navigation of the device control system more user friendly.
The managing controller process110 then determines1246 whether the user wants to enter a new control or monitoring parameter. If the user does not wish to enter a new control/monitoring parameter, then the user access method is completed1248.Completion1248 may include, among other things, leaving the system idle or automatically logging-out the user.
If the user does want to enter a new control/monitoring parameter, the relevant device menu interface is displayed1250. The device menu interface may be a graphical interface, such as an LCD touch screen menu that is easy to navigate, so a user having minimal technical training in computing systems will be able to perform the desired task for the relevant controlled device.
When the relevant device menu interface is displayed1250, the user then enters the desired control/monitoring parameters and the user command is executed1252. Execution of theuser command1252 occurs in real-time on the device control system network. Subsequent to execution of theuser command1252, the method returns to thequery1246 of whether the user wants to enter a new control or monitoring parameter.
FIG. 13 is a flow diagram of one exemplary embodiment of a method for providing user access to the managing controller process110 from a remote computing device. A user enters1339 the Uniform Resource Locator (URL) that provides access to thehost device104 to establish electronic communications with the managing controller process110. The URL may provide direct access to thehost device104, or it may be indirect, such as through a designated server that routes the user to thehost device104 upon entering additional identifying information. The URL is entered in a browser application, which provides the platform for electronic communications with the managing control process110. Browser applications possess the advantages of networking and Internet communication of data, and also support common applications that can be used to speed up user interactions, such as the Flash interface application.
Upon entering1339 the appropriate URL, the user is able to access1340 the managing control process110 and establish electronic communications with thehost device104. The user then logs1342 on to the managing controller process by entering in an appropriate username and password. The step of entering the correct username and password works to prevent unauthorized access and establish a secure connection with the appropriate user.
Upon logging-on1342 to the device control system, the managing control process provides1344 an interface to the user to access the control process(es) running on the system, similar to the method described in conjunction withFIG. 12. Typically, the interface provided1344 is a user-friendly graphical interface to assist in navigating the managing controller process110.
The managing controller process110 then determines1346 whether the user wants to enter a new control or monitoring parameter. If the user does not wish to enter a new control/monitoring parameter, then the user access method is completed1348.
If the user does want to enter a new control/monitoring parameter, the relevant device menu interface is displayed1350, whereupon the user then enters the desired control/monitoring parameters and the user command is executed1352. Execution of theuser command1352 occurs on the device control system network. Subsequent to execution of theuser command1352, the method returns to thequery1346 of whether the user wants to enter a new control or monitoring parameter.
Those of skill in the art would understand that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.
Those of skill would further appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.
The various illustrative logical blocks, modules, and circuits described in connection with the embodiments disclosed herein may be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array signal (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
The steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor such the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a user terminal. In the alternative, the processor and the storage medium may reside as discrete components in a user terminal.
The methods disclosed herein comprise one or more steps or actions for achieving the described method. The method steps and/or actions may be interchanged with one another without departing from the scope of the present invention. In other words, unless a specific order of steps or actions is required for proper operation of the embodiment, the order and/or use of specific steps and/or actions may be modified without departing from the scope of the present invention.
While specific embodiments and applications of the present invention have been illustrated and described, it is to be understood that the invention is not limited to the precise configuration and components disclosed herein. Various modifications, changes, and variations which will be apparent to those skilled in the art may be made in the arrangement, operation, and details of the methods and systems of the present invention disclosed herein without departing from the spirit and scope of the invention.