Home
Patent Search
IMT Blog
REGISTER
|
SIGN IN
United States Patent
5511188
Pascucci , ; et al.
April 23, 1996
Title
Networked facilities management system with time stamp comparison for data base updates
Abstract
A networked system having a wide variety of applications and particularly applicable to facilities management systems has multiple levels of software in processing nodes. The levels include a "features" processing level which communicates requests for data to a software object level containing databases of processes and attributes and database managers. The database managers in the software object level operate to provide data to the high level features in the same format. The software object level communicates with a hardware object level which also contains databases and database managers to mask differences between operational hardware units. By categorizing operational units by type, additional units of a known type can be added with only low level hardware object database changes. Adding units of a new type is facilitated by software changes confined to the lower level hardware and software objects, avoiding software changes at high level features. Individual software objects are tailored for typical types of inputs and output devices encountered by facilities management systems. Universal drive circuitry also provides applicability to a broad range of devices. In each node a time stamp indicates the most recent update of the node's data base. Periodically each node transmits its time stamp. When a node receives a time stamp later than its own, the receiving node requests the transmitting node to transmit its data base to update the receiving node with the earlier time stamp.
Inventors:
Pascucci; Gregory A.
(Waukesha,
WI
)
, Rasmussen; David E.
(Wales,
WI
)
, Decious; Gaylon M.
(Milwaukee,
WI
)
, Garbe; James R.
(Greenfield,
WI
)
, Hyzer; Susan M.
(Brown Deer,
WI
)
, Woest; Karen L.
(Wauwatosa,
WI
)
, Vairavan; Vairavan
(Milwaukee,
WI
)
, Koch; David L.
(Fox Point,
WI
)
, Gottschalk, Jr.; Donald A.
(Milwaukee,
WI
)
, Burkhardt; Dennis E.
(Franklin,
WI
)
, Standish; Darrell E.
(New Berlin,
WI
)
, Madaus; Paul W.
(Oak Creek,
WI
)
, Spacek; Dan J.
(Cudahy,
WI
)
, Nesler; Clay G.
(New Berlin,
WI
)
, Stark; James K.
(Wauwatosa,
WI
)
, Mageland; Otto M.
(Greenfield,
WI
)
, Singers; Robert R.
(Brown Deer,
WI
)
, Wagner; Michael E.
(Delafield,
WI
)
Assignee:
Johnson Service Company
(Milwaukee,
WI
)
Appl. No.:
176730
Filed:
December 30, 1993
Current U.S. Class:
707/203
707/104.1
Field of Search:
364/DIG.1MSFile,DIG.2MSFile 395/200,325,550,600,200.01
U.S. Patent Documents
4558413
December 1985
Schmidt et al.
4875159
October 1989
Cary et al.
4941084
July 1990
Terada et al.
5175852
December 1992
Johnson
Other References
A Multilayered Operating System For Microcomputers, F. Eliassen et al, Microprocessing and Microprograming 14 (1984) Sep., No. 2, Amsterdam, Netherlands, pp. 45-54. .
1988 International Conference on Computer Languages, J. P. Diaz-Gonzalez et al, Oct. 9-13, 1988, Florida, IEEE, "Language Aspects of Envisager: An object-oriented environment for the specification of re-time systems", pp. 214-225. .
Conic: An Integrated approach to distributed Computer Control Systems, Kramer et al. IEE Proceedings Section A a I, vol. 130, No. 1, Jan. 1983 (Old Working Surrey, GB), pp. 1-10. .
Proceedings of the Seventh Annual Joint Conference of the IEEE Computer and Communication Societies, IEEE Infocom'88, New Orleans, Louisiana, 27th-31st Mar. 1988, pp. 1050-1059, IEEE New York, U.S.; M. H. Ammar et al: "Using Hint Tables to Locate Resources in Distributed Systems". .
Proceedings of the 6th International Conference on Distributed Computing Systems, Cambridge, Massachusetts, 19th-23rd May 1986, pp. 515-522, IEEE, New York, U.S.; A. B. Sheltzer et al.: "Name Service Locality and Cache Design in a Distributed Operating System". .
Usenix Association Summer Conference Proceedings Atlanta 1986, Atlanta, Georgia, 9th-13th Jun. 1986, pp. 172-181, J. M. Bloom, et al.: "Experiences Implementing Bind, a Distributed name Server for the DARPA Internet"..~
Primary Examiner:
Harrell; Robert B.
Attorney, Agent or Firm:
Harness, Dickey & Pierce
Parent Case Text
This application is a divisional of U.S. patent application Ser. No. 07/476,031, filed on Jan. 30, 1990, now abandoned.
Claims
What is claimed is:
1. A method of synchronizing a plurality of data bases stored in a network, the network including a plurality of nodes communicating over at least one communication link, each of the nodes including a storage means for storing at least one of the data bases, the method comprising steps of:
storing in a first storage means of a first node of the nodes a first time stamp indicating a most recent time of updating a first data base stored in the first node;
automatically and periodically transmitting from the first node the first time stamp stored in the first node;
receiving a second time stamp from a second node of the nodes and comparing the second time stamp with the first time stamp, the second time stamp being stored in a second storage means of the second node and indicating a most recent time of updating a second data base stored in the second node; and
automatically requesting the second node to transmit the second data base stored in the second node to the first node if the second time stamp is later than the first time stamp.
2. The method recited in claim 1, comprising storing in a non-volatile memory of the first node an identifier of an archive device and initializing the first data data base from the archive device.
3. The method recited in claim 1, wherein the first node controls at least one slave device further comprising:
reporting a slave time stamp from a slave device coming in line to the first node, the slave time stamp indicating a most recent updating of a slave data base stored in the slave node;
in the first node, comparing the first time stamp with the slave time stamp and if the first time stamp is later than the slave time stamp, transmitting at least a portion of the first data base in the first node to the slave device.
4. The method recited in claim 1, wherein the network is a facilities management system, comprising at least monitoring at least one control process.
5. A system for synchronizing data bases in a network, the network including a plurality of nodes communicating over at least one communication link, each node comprising:
storage means for storing a first data base and a transmit time stamp indicating a most recent time of updating the first data base;
communication means for periodically and receiving a received time stamp from at least one other node in the network;
means for comparing the received time stamp with the transmitted time stamp, the received time stamp being indicative of a most recent time of updating a second data base stored in the one other node and
automatically requesting the one other node to transmit the second data base if the received time stamp is later than the transmit time stamp.
6. The system as recited in claim 5, wherein each node further comprises a non-volatile memory means for storing an identifier of an archive device and means for initializing the first data base from the archive device.
7. The system as recited in claim 5, wherein each node controls at least one slave device, and each node further comprises:
second communication means for receiving a reported time stamp from a slave device coming in line to the node; and
wherein the means for comparing in the node also compares the reported time stamp with the transmit time stamp; and
wherein each node further comprises means for transmitting at least a portion of the first data base to the slave device if the transmit time stamp is later than the reported time stamp.
8. The system as recited in claim 5, wherein the network is a facilities management system, and each node further comprises means for monitoring at least one control process.
9. A storage medium including stored indicia of a plurality of instructions synchronizing data bases stored in storage means of a plurality of nodes communicating over a network, the instructions including instructions for:
storing in the storage means of each node of the nodes a stored time stamp indicating a most recent time of updating a data base stored in the node;
periodically transmitting from the node the stored time stamp;
receiving a periodically transmitted time stamp at the node and comparing the transmitted time stamp with the stored time stamp;
automatically requesting the data base from another node if the transmitted time stamp is later than the stored time stamp.
10. Stored indicia as recited in claim 9, including instructions for storing in a non-volatile memory of each node an identifier of an archive device and for initializing the data bases of the nodes from the archive device.
11. Stored indicia as recited in claim 9, wherein at least one node controls at least one slave device further including instructions for:
receiving a reported time stamp from a slave device coming in line to a corresponding node;
comparing the reported time stamp with the stored time stamp in the node and if the time stored stamp is later than the reported time stamp, transmitting at least a portion of the data base in the node to the slave device.
12. Stored indicia as recited in claim 9, wherein the network is a facilities management system, including instructions for at least monitoring at least one control process.
Description
BACKGROUND OF THE INVENTION
1. Field of the Invention
The invention relates to automated processing systems which can operate independently or be interconnected to form a network. In particular the invention can be used in a Facilities Management Systems (FMS), although it is not limited to such systems.
2. Related Art
State of the art automated systems operating under processor control pass data to and from processors, operational units such as sensors and other physical parameter monitoring units, and other data acquisition and control instruments implemented in hardware. Facilities Management Systems (FMS) performing automated industrial and environmental control are among such contemporary systems. Since there is no uniformity among various types of data acquisition and control instruments, automated systems must be compatible with a multitude of non-standard operational units. To achieve compatibility, such systems have often relied on software tailored to specific interface requirements. This requires numerous compromises in software design. In addition, when new operational units are added, or existing operational units are changed, it often becomes necessary to rewrite one or more entire software packages. This is because requirements of new operational units are often incompatible with software written for earlier units. Since the interfaces among various portions of the software and between operational units and the processor are an integral part of the software, the entire software package must be rewritten.
One approach to reducing the extent of software affected by changes in operational units is the use of logical point information nodes. This is a modular approach which seeks to isolate high level software features from operational unit specific characteristics. However, this approach remains relatively dependent on the physical or logical location of operational units and on their individual characteristics. While some level of isolation of high level software features could be achieved by such a modular approach, it is still necessary to write operational unit specific software to accommodate inputs and outputs. Thus, using known technology, it has not been possible to provide software which would be relatively unaffected by the differences in operational unit hardware. As a result, it has also not been possible to produce software which need not be extensively modified when new operational units are added or existing data acquisition units are substantially changed.
A further limitation of the related art, especially in systems employing data acquisition and other remotely controlled hardware, is the limited data constructs available. Data acquisition and other remotely controlled hardware typically provide and require specifically formatted data and often do not allow convenient access to desired portions of the data. As a result, in current systems it is sometimes necessary to duplicate data to be used for different purposes or again access data previously obtained. Similarly, it is sometimes difficult in such systems to access intermediate data developed by a processing apparatus rather than data gathered directly by a data acquisition device.
Automated systems, including those used for facilities management, can operate using centralized or distributed processing techniques. As a result, data at a host node can be accessed for processing at another node (a referencing node) connected to the host node over a network. In distributed real time processing systems, processor nodes operating relatively independently communicate over one or more data buses to exchange information. In order for a referencing node to access a data element within the data base of a host node, a convention must be established whereby the referencing node can identify the host node whose data base contains the required data element and the specific location of the data element within the host node.
Such a convention should avoid relying on a central node to translate a data access request to the appropriate host node address or address within the host node. This is because a failure of the central node performing this function would prevent operation of the entire system.
It would also be unacceptable to search an entire real time network or even the data base of one node for a particular data element. This is because the time consumed by such a search would be excessive. Thus, a direct access mechanism to obtain the required data from within the host node is needed. Moreover, the data base at each node of the distributed system should be independent of data bases at other nodes of the system. It should not be necessary to synchronize the nodes by downloading new data into referencing nodes each time a host data base is changed. Data that was available previously from a host node should, if still present, be available to referencing nodes regardless of how the host node data base addresses are changed. Moreover, the data should still be available to the referencing node, even when the data element moves from one node to another.
Conventional techniques for referencing data between nodes on such distributed real time systems cannot meet all of the above requirements simultaneously. One known approach is the use of hard memory addresses. A referencing node maintains in its data base a fixed memory address of the data within the host data base. The address is normally bound to a named element of data when the referencing data base is generated, usually in an off-line generation device. The results are then downloaded to the on-line nodes to allow direct access to the data within the host node. While this technique provides quick access to data and does not require a central node to translate addresses, there is no adaptability to changes in the host node data base.
Host node data base changes that result in address changes within the node cause fixed memory addresses associated with the data elements in the referencing nodes to become obsolete. The same problem arises when a data element moves from one node to another. As a result, all the referencing nodes must be re-synchronized to the new addresses of the data elements. Especially in large systems, this is a time consuming task which causes the referencing nodes to be taken off line until the update is complete. In a facilities management system (FMS), the referencing nodes perform industrial and environmental control functions which often can no longer be maintained when the node is off line.
A second technique uses a "soft" address or record number to locate a data element within the host node. Using this technique, the relative position within a logical data base structure or a unique identifying number is assigned to a data element. As with the hard memory address technique, high speed and reliable access to the data is achieved. However, if the host node data base changes so that the relative position of the element in the data base is now different, the reference nodes are again obsolete and new information must be downloaded to the referencing devices. An additional problem occurs when attempting to assign a unique identifying number to a data item. Without further processing, it is impossible to guarantee that the same identifying number is not used by more than one host in the distributed system. This would create an intolerable conflict on the network. Finally, after referencing nodes are updated, it would not be possible to download an old data base to the host node since this would now invalidate the information in the referencing nodes.
A third conventional approach involves assigning a name to each data element in the system. The names are stored in a central node which is used to locate the data. While this allows increased flexibility because data elements can move at will, this central node containing the mapping of names to physical locations becomes a reliability problem. This is because a failure in the central node would eliminate all communication on the network.
The fourth conventional approach also assigns a name to each data element but avoids the central lookup node by searching the network each time the reference is made. However, in most systems, searching an entire network for a data element each time it is requested would result in an intolerable data communication and processing burden.
Networked systems with a plurality of nodes further require synchronizing time and global data for consistent operation. This is especially true in a facilities management system in which scheduled activities, such as temperature control of areas of a building, may operate routinely based on time of day and other variables. Thus, one of the nodes on the system must accurately track time and coordinate the time information among the other nodes. However, current systems employing master nodes risk losing time coordination should the master node fail.
As additional nodes are brought onto a networked system, it also becomes necessary to synchronize the data base of each new node with the most current data base of global variables. Traditional systems which employ a master node to perform these functions also risk reliability problems in this area should the master node fail.
Similarly, operational units communicating with individual nodes or intermediate processors between the nodes and the operational units can be connected to the nodes using data bus networks or similar structures. For consistency, it is necessary that operational and processing units connected to the individual nodes receive the most current values of system variables. Networked systems under master node control introduce similar reliability risks at this level.
In automatic processing systems, high level software features and routines may be triggered by events occurring in other processors at the same level or in lower level processors controlled by one of the nodes on the system. However, data base changes occurring from down-loading new information into one of the nodes could result in errors in such event triggering. Current systems which do not track these event triggering synchronization problems are unable to guarantee that important software functions will be performed after downloading new information into one of the nodes.
Similarly, reports of results produced by processes performed in the system, or of commands issued by the system, must be routed to appropriate display or storage devices. Current systems which do not accommodate changing the locations of such devices are severely restricted in dynamic environments. Similarly, current systems which do not synchronize changes in the location data of such devices downloaded into the nodes cannot guarantee that reports or messages will arrive at the correct device. Indeed, in some systems, messages which cannot be routed are discarded. This is a potentially serious limitation to applying such designs to facilities management systems.
Often, especially in facilities management systems, displays and reports include standardized summarizes of system data. In a typical approach to generating standard summaries, a processor retrieves individual records, either in response to a command or as part of routine polling of devices for data awaiting transmission. The processor must then test the retrieved data to determine if incorporation into the data summary being assembled is appropriate. Such dedicated summary report generation tests occupy the processors and intensify data communications, resulting in reducing achievable processing speeds.
In some cases, it is desirable to obtain reports by routing messages to devices which were not part of the network when configured. For example, ease of maintenance may be enhanced by allowing connection of a personal computer (PC) to an unoccupied port on a network node. It may also be desirable to provide other non-configured devices, such as printers, access to the nodes on the network. Traditional systems restrict the use of such non-configured devices, since there is no way to communicate with a device whose presence has not previously been made known to the network, for example, by assignment and storage of an address.
As previously noted, networked systems have at least 2 nodes with components for performing processing functions appropriate to the system and communicating with each other over communication links. In a facilities management system (FMS) such nodes can contain processors, A/D and D/A converters and other equipment interface circuits to obtain sensor data required for processes implemented in the node and to issue equipment commands. The communication links include various communication media facilitating communication among nodes on the same bus, subnet or network or between nodes on different networks over gateways. Nodes are configured on a system when they are defined in one or more storage devices as members of a network. Node configuration may occur by storing data defining a path to the node. Thus, the system has knowledge of the node's existence. Depending on the system, storage of configuration information may be centralized or distributed. Such configuration information may include data indicating the type of node, its location on the system, and other information defining a path to the node.
A number of techniques for communicating among nodes interconnected on a networked system currently exist. In broadcast communications methods, all nodes on a network receive a broadcast message or pass the message sequentially from one node to the next. Inefficient communications result from each node's handling of the broadcast message. Thus, other routing strategies have been developed to improve network efficiency.
Routing strategies may be adaptive or non-adaptive and systems may contain elements of both strategies. Non-adaptive routing strategies route messages independently of measurements or estimates of current traffic or topology. These may include flooding or broadcast, selective flooding, and static routing. One such non-adaptive routing strategy involves building a graph of communication paths from every node to every other node within the network and between networks interconnected by a gateway. Graph analysis techniques for determining the shortest path between pairs of nodes are employed and this information is then programmed into a static routing table. In one such routing table, each node stores partial path data identifying the next intermediate destination for a message ultimately targeted for a final destination node. Since each node has a static routing table which is defined at the time of node configuration, it is inconvenient to alter the routing table to facilitate communications by temporary or extraneous nodes which are not normally part of the network. This is because only nodes listed in the routing table are available for use in the data communications path.
Dynamic or adaptive routing strategies route messages over communications links in response to message traffic and topology. Adaptive strategies include centralized, isolated or decentralized, and dynamic routing. Centralized routing strategies have a central node monitoring the number and length of messages transmitted over communications links and dynamically issuing routing strategies based on message traffic patterns. This is usually accomplished by updating and changing routing tables in response to the changing traffic patterns. Decentralized strategies distribute partial routing tables among the nodes. For example, when a message is routed to an intermediate node along a path to its final destination, the intermediate node examines the traffic pattern among alternative remaining paths to the destination node and dynamically selects one of the several alternatives according to certain measures of efficiency. Thus, adaptive strategies provide for reconfiguring routing tables in response to changed conditions, including the addition of new devices. However, in many cases it is not possible to incorporate non-configured devices. Even where this is possible, the temporary incorporation of a previously non-configured device often does not justify the added processing required for dynamically adjusting routing tables. Such processing increases message transmission time and reduces overall system efficiency.
Regardless of the routing strategy employed by various parts of the system, in certain applications, such as maintenance, diagnostics, and administrative functions, it is desirable to allow data communications between a node on one of the communications links in the system and a temporary node or processing device. This is particularly true in automated networked control systems. Such systems often have need for emergency maintenance and diagnostic activities and for temporary load analysis. Present techniques are cumbersome because these require temporarily disabling at least portions of the network while a new node is configured onto the network. Configuring new nodes on a network is difficult since new data communication path strategies must be worked out. Moreover, developing temporary data path strategies could result in inefficient communication strategies between the temporary or non-configured device and the nodes configured on the network.
In networked automated processing or computer systems multiple processors requiring access to the same data may exist. Often this data is acquired by one of the processors which communicates with a particular sensor. Other processors requiring the same data communicate with the processor containing the data, either directly or through an intermediary, over a data bus. Using currently existing methods, a processor requiring sensor data not available through its own sensors, communicates over the data bus to signal the processor interfacing with the sensor that data is required. In response, the processor connected to the sensor polls the sensor and retrieves the data. It then transmits this data to the requesting processor for use in the remote processing routine. In another known arrangement, the remote processors signal a master node that data is required from a sensor controlled by a different processor. The master node then signals the sensor controlling processor which then retrieves the data and transmits it to the master node. The master node then provides the data to the requesting remote processor. Thus, each time a processor requires data from a sensor, the sensor controlling processor must access the sensor and transmit the information either to the requesting processor or the master node. If numerous processors request frequent access to sensor information, the data bus connecting the remote processors to each other and/or to a master node quickly becomes bogged down with message traffic.
In another known method, slave sensors connected on a bus to a master sensor are set up with a filtering increment. When a filtering increment is used, the slave processor controlling the sensor defines a certain "delta" value that the sensor must change before the slave will report the new value to the master. The master keeps a copy of the data as the slave transmits it. When a filtering increment is employed, the slave processor determines how often data is sent to the master. Thus, even if the master processor has no requirement for updated sensor information, the slave processor signals the master that the information is to be transmitted. If the sensor parameter is one which changes frequently, the slave processor may inordinately occupy the data bus with unnecessary updates of information to the master processor.
In another known method, the master regularly polls each processor for sensor updates. This also results in excessive message traffic on the interconnecting bus, since data is transmitted automatically, even when updates are not needed. In addition, polling systems risk missing important transient data transitions which might occur in a sensor while the master is polling another sensor.
In each of the above cases, unnecessary message traffic on the data bus tends to create bottlenecks and reduces the ability of the data bus to respond quickly to higher priority message traffic.
Presently known systems usually operate according to a fixed set of instructions forming one or more programs. Temporary or permanent variations to a program are accomplished using a software patch. A software patch directs the program to jump to another memory location, execute the steps beginning at that location and return either to the location following the calling location or to a different memory location, thereby skipping a portion of the program. Known systems using software patch techniques do not provide an easy mechanism for implementing the transfer of control. For example, one must leave intermediate memory available for possible insertion of the jump prior to the instructions to be by-passed. More importantly, if the jump is somehow missed, the incorrect code with its unfortunate consequences will be executed. Thus, in currently available systems, it is desirable to improve the certainty of executing a revised set of instructions.
Another factor often not considered in modern automated processing and data communication systems is the reliability or integrity of data acquired and communicated among the elements of the system. The level of data integrity and reliability is especially important to facilities management systems which seek to achieve robust control of an environment or process by updating manipulated variables to desired states based on measured parameters of the process. Current systems fail to develop and effectively use reliability or data integrity indicators to produce controlled variations of system performance based on the quality of measured data.
Numerous computerized systems exist which perform high-level functions based on data obtained from various data acquisition devices. A facilities management system (FMS) used for industrial and environment control is one example of such a computerized system. Due to the wide variety of data acquisition and control hardware used in such systems, standard functional interfaces usually do not exist. In conventional systems, different software implementations are required to accomplish the different functions performed by the hardware to which interfaces are made. For example, programming required to receive data from a counter is different from that required to receive data from a voltmeter. Conventional systems with proportional and integral and derivative (PID) controllers also do not have prepackaged software functions which can interface to a variety of physical instruments. Programming required to obtain specific functions results in software individually tailored for specific pieces of hardware. In addition, some PID controllers require additional hardware to interface with specific systems. Thus, conventional systems do not provide a convenient means for transferring information between a hardware device performing data acquisition functions and a controller.
In the case of operating hardware which provides a binary input having two possible states to the computer (binary input hardware), various debouncing functions may be required, a normally open or normally closed state may be reversed from one apparatus to another, and alarm processing and triggering may be different depending on a function being performed by higher level software. In addition, some systems may require displaying the state of a binary input or overriding such inputs under certain circumstances. Additionally, some higher level software features may also require maintaining a history of binary input hardware states, a function which cannot be performed by many binary input type devices. Thus, conventional systems do not provide a convenient means for transforming binary input information between an operating binary input hardware device and a controller.
Output drive requirements of numerous analog and digital devices present similar difficulties. For example, programming required to drive a counter is different from that required to drive a voltmeter. Conventional systems with proportional and integral and derivative (PID) controllers also do not have prepackaged software functions which can interface to a variety of physical instruments. Programming required to obtain specific functions results in software individually tailored for specific pieces of hardware. In addition, some PID controllers require additional hardware to interface with specific systems.
Different priority queues, different minimum on and off times, different delay features and different alarm reporting requirements result in multiple software implementations. In addition, various output devices which can be driven to one of two states may require either a momentary signal or a maintained signal on a single line or on different lines to remain in the desired state. Programming required to obtain specific functions results in software individually tailored for specific pieces of hardware. As a result, when the hardware is changed, numerous software changes are also required. Thus, conventional systems do not provide a convenient means for driving binary output hardware units.
In a conventional system, operation of proportional plus integral plus derivative controllers used in Facilities Management Systems has traditionally involved control of one loop at a time. Multiple instances of such PID loops have not been controlled using a single software approach due to the variations in such loops.
Another factor in the design of facilities management and other systems is the design of control systems which are tolerant of system component failures which has been an objective for decades. The motivations for increasing levels of fault tolerance include improved human safety, equipment safety, and control of system performance. The most basic form of fault tolerance involves the application of fail-safe system components. In the traditional pneumatic HVAC controls industry, this often involves the use of normally open valves for heating applications and normally closed actuators for mixed air damper applications. Under these circumstances, a system failure (e.g., loss of compressed air, temperature transmitter failure) returns the mechanical system to a safe, although potentially uncomfortable and uneconomic state. In electronic control systems, electric actuators can be specified with automatic spring returns to provide a similar fail-safe functionality.
With the introduction of digital control systems, a higher degree of fault tolerance is possible. The digital controller has the ability to trap specific input signal fault conditions, such as a sensor malfunction, and can then partially compensate for that failure in software. The flexible software response is referred to as a fail-soft feature. Examples of fail-soft functionality in the event of a sensor failure include: 1) maintaining the current control signal, 2) commanding the control device to an intermediate safe position, or 3) computing an appropriate control signal based on an alternative strategy.
Aside from the application of redundant components, the use of an alternative or backup control strategy provides the best opportunity for simultaneously maintaining equipment safety, occupant comfort, and energy efficiency in the event of an instrumentation failure. An extension of the fail-soft concept involves the application of an intelligent strategy which individually adapts to a specific controlled process and can satisfy nominal system performance requirements over extended periods of time in the event of a failure. Some intelligent strategies are currently applied in advanced military aircraft and nuclear power plants. The method and apparatus described below is an intelligent backup control strategy to be applied in the HVAC industry.
Facilities management systems employ both demand limiting and load rolling for energy optimization. The demand limiting feature monitors the current energy consumption over a sliding interval of time corresponding to the demand interval used by the power company. This feature controls the system to maintain an average energy consumption below an established limit. Conventional systems which do not use historical data to predict future demand, tend to overreact to sudden peaks in energy consumption, and as a result shed excessive loads. The load rolling feature reduces total energy consumption by periodically shutting loads off for short periods of time. The user specifies a target amount of load to remain off. Systems that do not accommodate environmental conditions may cause extremes in areas controlled by loads that are shed for too long a period of time.
In a distributed facilities management system, loads might be distributed over multiple control nodes. However, one node runs the demand limiting and load rolling features, shedding loads on its and other nodes in the system. After shedding a load, a problem can occur where communications can be lost between the node issuing the shed command and the node that contains the load. In such a situation the load could remain shed indefinitely causing environmental extremes in areas controlled by the load. The node commanding the load shedding may also experience time delays and information bottlenecks in its attempt to monitor every load and its environmental overrides.
Conventional structures of program instructions used in facilities management systems have several drawbacks. Program statements and instructions requiring data must access that data from addressable storage locations. Thus a two step process involving identifying the address and later accessing the data in the address is required. In addition, conventional program structures do not permit immediate response to changing system conditions. Presently the program must specifically test a variable periodic intervals. Similarly it is difficult to share variables among processes. The resulting limitations of these program language constraints reduce processing through put.
Motors, actuators, dampers, positioning type mechanisms, and other devices and transducers in control applications often require an analog drive signal. Such analog drive signals may be either voltage or current sources depending on the requirements of the driven device. Generally, such analog output signals have their voltage or current outputs referenced to a common ground and are thus single ended. Large physical distances often exist between the analog signal source and the driven device. Cable mismatches and noisy environments through which cables interconnecting the analog source and the driven device pass introduce a path for entry of noise and ground current loops in such multi-port control systems. Often, the noise introduced has a summing effect relative to a common node, such as circuit ground, resulting in distorting the system control and operation. While there have been some attempts to eliminate such problems in analog voltage output circuits, a more comprehensive approach addressing both analog voltage and analog current outputs is needed.
Another important factor in achieving high level performance of facilities management systems is reducing effects of both external and self-induced noise. In addition, it is necessary for a system to provide immunity to external electromagnetic interference (EMI) and prevent the generation of unwanted levels of EMI which may effect other systems. This is particularly critical where wide dynamic range is required, for example, to accommodate both extremely low level sensor signals and much larger digital and binary signals. Systems which employ a single power supply and other known power supply filtering techniques may fail to provide sufficient isolation from spurious signals or sufficient reliability, due to their reliance on a sole power supply. Similarly, many contemporary systems also fail to sufficiently isolate digital signal lines from sensors which are subject to extremes of environmentally induced spurious signals. This is particularly important in systems employing bus structures and networks. An unpredictable variation in a single sensor on a network can result in systemic problems, if the signal is communicated to other devices connected to the same communications media. A further need for isolation from effects of failures of devices interconnected on a common communications media also exist. Omitting such isolation exposes networks and sub-networks to complete breakdown should a failure occur in a single node. Thus, it is desirable at all levels of system interconnection to provide for isolating interconnected system components from each other. Similarly, as mentioned above, it is also desirable to provide graceful system degradation in the presence of a failure.
Other limitations of facilities management systems arise in the connections of various devices to control nodes. Multiple devices, especially if connected on a bus, introduce noise on the transmission medium. In addition, the transmission medium may be susceptible to noise from other internal and external sources. Both differential noise, in which opposite polarity voltages appear on two leads of a transmission medium, e.g., a twisted pair, and common mode noise, in which the same noise is induced on both lines of the bus, are possible. Even where optical coupling of devices to the bus is used, it may be necessary to take steps to further reduce noise effects.
SUMMARY AND OBJECTS OF THE INVENTION
In view of the limitations of the related art described above, it is an object of the invention to provide a method for substantially isolating the software providing the interface between higher level software features and operational units.
It is a further object of the invention to provide a method and apparatus for allowing changes to operational units without requiring extensive higher level software changes.
It is a further object of the invention to provide an intermediate level of software which treats all inputs and outputs in the same way independent of the characteristics of the operational units.
It is a further object of the invention to provide a further intermediate level of software which controls interfaces between a higher software level and operational unit hardware.
It is a further object of the invention that the first intermediate level of software treat all higher level software requests for data from operational units in the same way.
It is a further object of the invention that the further intermediate level of software categorize hardware units into types which can be manipulated according to a standardized approach for the type.
It is a further object of the invention that all intermediate levels of software have a database of attributes and a common method and set of messages for manipulating the attributes.
It is still another object of the invention to provide broad data constructs for accommodating remotely controlled operational units.
It is still another object of the invention to provide data constructs minimizing the need to reproduce the same data or data attributes for multiple operational units.
It is another object of the invention to provide data constructs with attributes defining paths to at least one other data construct.
It is still a further object of the invention to provide data constructs containing attributes of an associated data construct.
In another aspect, it is an object of the invention to provide a flexible, reliable method of accessing data among nodes in a distributed system.
It is a further object of the invention to provide a method of accessing data in a distributed system without requiring a central look up node.
It is a further object of the invention to provide a method for providing data in a distributed system without requiring a search of the entire network on every reference to the data.
It is a further object of the invention to provide a method of accessing data within a distributed system by assigning a unique name to the data element when it is first defined.
It is a further object of the invention to bind the unique name of the data element to a host node at the time the data element is first accessed.
It is a further object of the invention to provide a method of accessing data in a distributed network using a multi-level naming convention based on a user defined name and the physical location of the data element on the network.
It is a further object of the invention to provide a naming convention in which a user assigns names to data elements independent of where the data element is located on a network.
It is a further object of the invention to provide a naming convention in which a name is bound to a unique address, such as a physical location and data base location within the node, when it is referenced for the first time in the running network.
It is a further object of the invention to provide for subsequent references to data elements using the user assigned name bound to the unique address.
It is a further object of the invention to provide a distributed system having time synchronization of system nodes.
It is another object of the invention to provide a distributed system having synchronized databases of global variables among the nodes.
It is a further object of the invention to provide a system with nodes which periodically broadcast their presence on a system using time stamps indicating when the nodes' database of global variables was last updated.
It is a further object of the invention to coordinate all nodes on a network to incorporate the global database of the node having the most recently updated global database.
It is a further object of the invention to detect and report inconsistencies and duplication of data constructs in their respective databases.
It is a further object of the invention for the system to recognize directory entries in the nodes' databases which have multiple definitions in other locations on the system.
It is a further object of the invention to provide nodes without routing tables the ability to identify other nodes with routing tables in order to identify paths to route download requests from the nodes without routing tables to devices containing download information.
It is a further object of the invention to provide a system wherein data constructs allow high level features in the nodes to be notified or triggered by changes of state in attributes and objects on other nodes.
It is a further object of the invention to detect changes in locations of object and attributes in the system and to notify features activated or triggered by the objects or attributes.
It is another object of the invention to report results produced by system processes to appropriate display and storage devices.
It is another object of the invention to detect changes in physical locations of display and storage devices and route reports to the correct devices.
It is another object of the invention to reduce the volume of data traffic required to produce standard or predefined summaries of data for storage or display.
It is a further object of the invention to filter data used in producing standard summaries by defining criteria for data retrieval in a high level feature directory routed to a task in the same node as a directory of the data to be retrieved.
It is a further object of the invention to retrieve standard summary data according to nodes identified in a directory and to assemble the data in the node containing the directory into a message for transmission to a feature generating the summary.
In another aspect, it is an object of the invention to provide a system allowing devices not included in the original network configuration to communicate with configured nodes on the network.
It is another object of the invention to allow such non-configured devices to receive messages from configured nodes on the network.
It is yet another object of the invention to allow such non-configured devices access to networks which employ either adaptive or non-adaptive routing strategies.
It is a further object of the invention to allow such non-configured devices access to the network without requiring the down loading or updating of static or dynamic routing tables in existing nodes.
It is a further object of the invention to allow such non-configured devices to be attached to a first configured node on a network using one of either an adaptive or non-adaptive routing strategy and to receive messages from other nodes on other networks using the same or a different routing strategy.
It is a still further object of the invention to allow such non-configured devices access to a network without requiring shutdown of the system.
It is yet another object of the invention to provide access to a communication system on demand by processing devices without requiring their membership in a network on the system.
It is a further object of the invention to provide such processing devices access to a system to perform diagnostics, maintenance, and administrative functions from anywhere in the system.
It is a still further object of the invention to provide a processing device access to a data communication system on demand without requiring changes to global variables or static or dynamic routing tables or directories.
It is also an object of the invention to provide a data communications approach which allows access to data remote from the requesting processor without creating unnecessary message traffic.
It is a further object of the invention to reduce unnecessary access to sensor data in a facilities management system.
It is still a further object of the invention to prevent slave controllers from providing unnecessary information to a master controller which does not require it.
It is a further object of the invention to control access to sensor information based on the expected rate of change of the parameter measured by the sensor.
It is a further object of the invention to provide a master controller which regulates access to sensor information by remote slave controllers according to the validity of the sensor and the data transfer needs of the system.
It is a further object of the invention to regulate access to data by remote master controllers connected on a network bus to a master controller regulating the data producing processor on a local bus.
It is still another object of the invention to provide a system with programs which can be easily modified by routing control to different portions of firmware memories.
It is another object of the invention to provide such routing in firmware memory by executing calls to program segments through erasable pointers identifying the next section of code to be executed.
It is a further object of the invention to store and execute software patches containing revised or additional code from an area of memory within a node as identified by an erasable pointer within the node.
It is another object of the invention to implement such erasable pointers in erasable memory in the form of a pointer table accessed by each subroutine call in a main program.
It is still another object of the invention to test reliability of data elements and tag a status of the tested data with an indicator of its reliability.
It is a further object of the invention to report the reliability indicators associated with data elements throughout the system. It is a further object of the invention to associate a reliability indicator with data used in intermediate calculations throughout a system to determine a reliability indication of a result obtained through one or more calculations.
In another aspect it is an object of the invention to receive signals from hardware operating units operated by control systems and convert these signals to appropriate data formats for use by high-level software features in the control system.
It is a further object of the invention to provide a unified approach to transferring information between the controller and a variety of types of data acquisition devices.
It is still a further object of the invention to convert raw data in the form of analog to digital (A/D) counts into floating point values that represent characteristics of an analog signal, e.g. amplitude, polarity, frequency, periodicity, etc.
Another object of the invention is to provide a software object at an intermediate level of a system to interface to analog input hardware residing on a variety of operational input hardware devices.
It is a further object of the invention to provide an analog input software object residing in software which performs signal conditioning operations on inputs from analog hardware in order to provide a common format of variables supplied to higher-level software features.
It is still another object of the invention to provide an analog input software object which performs alarm detection and reporting independent of the operation of higher-level software features.
It is a still further object of the invention to provide an analog input software object which performs a variety of specific prepackaged functions applicable to a particular system, e.g., a facilities management system.
It is another object of the invention to provide the ability to override a value reported by an operational input hardware device.
It is a further object of the invention to provide a status indication of the operational input hardware device identifying when the hardware device is off-line or unreliable.
It is a further object of the invention to provide an analog input software object which can map to different hardware types and provide required information to higher-level software features independent of the hardware used to obtain the raw data value.
It is a still further object of the invention to provide an analog input software object which performs functions on data and has attributes accessible to the functions.
It is a further object of the invention to provide an analog input software object located in a network controller or having functions distributed over multiple pieces of equipment.
It is a further object of the invention to provide an analog input software object which can be used in closed loop control associated with facilities management systems.
In a further aspect it is an object of the invention to provide an apparatus with means to sense the state of an external contact or a means to sense the presence or absence of a signal.
It is a further object of the invention to provide a means for "debouncing" a binary input hardware signal.
It is a further object of the invention to provide a means to display the state of binary input hardware whose state would otherwise be unknown.
It is still another object of the invention to provide an override feature allowing an operator to select a desired state of binary input hardware to be communicated to a higher level software function.
It is a further object of the invention to provide alarm detection when a binary input value produced by the hardware varies from a user specified normal condition.
It is a still further object of the invention to provide an alarm delay timer which prevents alarm reports for user specified time periods.
It is still another object of the invention to provide a means for archiving and displaying a history of a binary input hardware point based on sample point data.
It is also an object of the invention to translate commands from control systems and convert these commands to appropriate signals which result in activation of physical hardware.
It is a further object of the invention to provide a unified approach to transferring information from the controller to achieve control of different physical devices.
It is a still another object of the invention to convert commands from floating point values representing a percentage of full scale deflection into individual signals capable of moving actuators or developing voltages or currents as required by attached physical devices.
It is a further object of the invention to implement a built-in set of priorities among several sources of commands to aid a user in configuring a system.
It is still another object of the invention to provide a closed loop control method which can maintain a single set point using multiple devices by providing separate outputs derived from a single control loop output.
It is a further object of the invention to provide a span function which allows appropriate sequencing of multiple devices wherein each device performs a function over a specified range so that devices appear as a single device to a PID controller.
It is still a further object of the invention to allow a PID controller to provide a standard set of outputs independent of the requirements of the physical output device.
It is a further object of the invention to provide an apparatus and method which handles proportional analog outputs.
It is a further object of the invention to provide an apparatus and method which handles incremental or delta modulation type outputs.
It is a further object of the invention to provide a control system which supports a hardware override function.
It is a further object of the invention to report the status of a hardware override throughout the system.
It is a further object of the invention to provide a control system which can be used with an analog input in tandem to detect alarm conditions.
In an additional aspect, it is an object of the invention to provide software in the form of a generalized binary output object which can translate commands from high-level software features in control systems and convert these commands to appropriate signals which activate binary hardware output devices.
It is a further object of the invention to provide in such a software object a database having both methods and attributes controlled by a database manager to carry out translation and other functions.
It a further object of the invention to provide built in levels of priority to allow coordination of commands issued by various high-level software features.
It is a further object of the invention to allow a user, during system configuration, to specify levels of priority which are automatically implemented during system operation.
It is a further object of the invention to verify that a binary output command has been acted on by the device by associating a binary output object with a binary input object also implemented in software.
It is still another object of the invention to prevent stress on equipment driven by binary output objects by programming a minimum on and off time and the maximum number of starts per hour of the equipment connected to a binary output. It is a further object of the invention to provide a delay between starting successive equipment connected to binary outputs to avoid power surges.
It is another object of the invention to provide for specifying either a normally open or a normally closed contact for both start and stop conditions.
It is a further object of the invention to provide control of maintained binary output devices which are energized by a signal in a start state and de-energized by a signal in a stop state.
It is a further object of the invention to provide control of momentary binary output hardware devices energized by a start pulse applied to one portion of the device and a stop pulse applied to a second portion of the device.
It is a further object of the invention to provide an override capability to manually turn a binary output on or off.
It a further object of the invention to broadcast throughout the system an indication of an override condition.
It is a further object of the invention to allow a user to select between reporting and locking out reporting of change of status of a binary output.
It is a further object of the invention to record a timed stamped history of commands executed.
It is another object of the invention to provide software in the form of a generalized proportional plus integral plus derivative control object to translate commands from high-level software features in control systems and convert these commands to appropriate signals which activate and control a proportional plus integral plus derivative (PID) control loop (e.g., activate and control devices as part of a closed loop control process).
It is a further object of the invention to provide a predictable and controlled transfer from control by a scheme outside a PID loop to control by PID automatic control means.
It is a further object of the invention to eliminate the hysteresis effect that a controller may experience between the output controlling a process and a sensed feedback from the process.
It is a further object of the invention to provide an adjustable dead band to PID control.
It is a further object of the invention to provide software mechanism in the form of a PID device object to interface actual PID hardware to other software objects.
It is a further object of the invention to provide scheduling means for PID loops.
In view of desirability of implementing improved back-up control strategies in HVAC applications, it is an object of the invention to provide an HVAC control system with the ability to maintain control over a process when an input variable becomes unreliable.
It is a still further object of the invention to provide operation of a process, even when feedback from the process is lost or unreliable, based on a model of the system or process and other system inputs.
It is a still further object of the invention to employ a set of parameters locked at the time that the system or feedback becomes unreliable.
It is a still further object of the invention to adjust a manipulated variable based on the state of process variables just prior to the system or process becoming unreliable and based on current status of process variables.
It is a still further object of the invention to control response of an HVAC system to a changing setpoint in the presence of an unreliable variable.
It is still another object of the invention to predict energy demand in a future demand time period based on the current demand and historical collected data.
It is a further object of the invention to automatically vary on and off times of a load to accommodate the predicted energy demand thereby maintaining average demand below the target.
It is a further object of the invention to adjust operating time of a load to minimize costs by shifting energy consumption from expensive periods of high demand to less expensive periods of lower demand.
It is a further object of the invention to adjust the operating time of a load to also accommodate environmental conditions in areas affected by the load.
In another aspect, it is an object of the invention to ensure that communications between demand limiting and load rolling features in one node and objects in other nodes do not become impaired by excessive traffic.
It is a further object of the invention that loads shed as a result of demand limiting remain shed until communications with the demand limiting feature are restored.
It is a further object of the invention to assure that a load shed as a result of load rolling be restored even if communication with the node containing the load rolling feature are not restored.
It is a further object of the invention to provide shed and restore characteristics as attributes as part of an object rather than as part of a higher level software feature.
It is a further object of the invention to provide a message to an object manager to redirect load related characteristics for the load local to the node using a restore task localized within the node.
In another aspect, it is an object of the invention to provide a means for programming predefined features into a facilities management system.
It is a further object of the invention to provide a data construct in the programming language which allows remembering data values in programming statements rather than variables.
It is a further object of the invention to provide a programming language with a plurality of executable statements which remember values from one execution of the statement to a next execution of the statement.
It is a further object of the invention to provide a data construct which allows a facilities management system to trigger execution of a process based on a change to an element in the system.
It is a further object of the invention to provide data constructs which automatically sign-up to be informed of changes in any triggerable attribute of any object.
It is a further object of the invention to provide data constructs that are not dependent on objects in the facilities management system and are independent of the types of controllers or objects on the system and create a substantially generic interface to system objects.
It is a further object of the invention to provide data constructs for sharing variables among algorithms.
It is a further object of the invention to provide a data construct in which a change to a Boolean shared variable can be used to trigger a process.
It is a further object of the invention to provide a software function which resets a set point in a closed loop system by means of a proportional plus integral plus derivative calculation.
In another aspect, it is an object of the invention to provide a universal analog output circuit which allows selecting a balanced output voltage or balanced output current.
It is a still further object of the invention to provide an analog output circuit which maintains high accuracy of the output driver.
It is a still further object of the invention to provide an analog output circuit which decouples its outputs from ground loop currents induced when load grounds are connected together.
It is a still further object of the invention to provide an analog output circuit with a sample and hold feature such that a single D/A output can drive multiple circuits.
It is a still further object of the invention to integrate a sample and hold circuit within a closed control loop of a analog output circuit, so that compensation for multiple sources of errors can be effected.
It is a still further object of the invention to provide an analog output control circuit with a current sense network for sensing the current at the analog output whether the output is a voltage or current drive type.
It is a still further object of the invention to provide a current sense network which, in the current drive case, senses an analog output current as part of a feedback to control the current output of an analog output circuit.
It is a still further object of the invention to provide an analog output circuit with a current sense network which, in a voltage drive case, protects against a short circuit load at the output.
It is a still further object of the invention to provide an analog output circuit with balanced differential outputs.
It is a still further object of the invention to provide an analog output circuit which is not destroyed by the misapplication of large voltages to either of a pair of outputs.
It is a still further object of the invention to provide an analog output circuit with a pair of outputs having a positive side and a negative side linked together.
It is a still further object of the invention to provide an analog output circuit with an open a common emitter configuration in both outputs to provide for high reverse breakdown voltages protection.
It is a still further object of the invention to provide an analog output circuit a pair of balanced outputs with one of the outputs being an inverted image of the other output.
It is a still further object of the invention to provide electronic selection of a balanced voltage output or a balanced current output.
It is an object of the invention to reduce noise coupling among local devices connected to a node.
It is another object of the invention to provide optical coupling of signals between the nodes and local devices connected to a local bus.
It is another object of the invention to ameliorate effects of differential mode noise induced on the bus by biasing the leads of the bus to a predetermined voltage.
It is a further object of the invention to protect optical isolators from large common mode voltages by using tranzorbs and metal oxide varistors to shunt such high voltages safely to ground.
It is a further object of the invention to provide indicators of when a node is transmitting and receiving data.
It is a further object of the invention to provide separate digital and communications power supplies to portions of the local bus interface circuits.
It is a further objective to provide an optocoupler to isolate the digital and communications power supplies.
It is a still further object of the invention to operate a system with no ill effects with up to 2500 volts, peak, noise on the communication power supply.
To accomplish the above objects of the invention, software is organized into multiple levels. The highest or "features" level communicates with a software object level containing software object database managers and databases. The software object level treats all inputs and outputs to and from the features level the same way. In addition, the software object level communicates with a lower intermediate level, the hardware object level. The hardware object level contains a hardware object database manager and databases. The hardware object level operates to mask the differences between individual operational units to the software object level. The hardware object level categorizes data acquisition units so that additional units of a known type can be added with no more than a minor database change. Additional types of operational units can also be added while software changes are confined to the hardware object level. Thus, new units can be incorporated without any major impact on overall system software.
To accomplish the above objects of the invention software also employs points and pseudo points. One or more attributes define a point as a vector quantity. The values of the attributes which characterize the vector quantity are obtained from operational units, such as sensors. Each individual point is an independent vector quantity which is defined without reference to any other point in the system. A pseudo point is also a vector quantity defined by attributes. However, at least one of the attributes of a pseudo point identifies an associated point or attribute of a point. Additional attributes of the pseudo point are then obtained from the identified point to facilitate intermediate calculations without requiring repeated access to the operational unit associated with the point.
Other aspects of the above objects of the invention are also accomplished by a multi-level naming convention. First, each data element is assigned a name unique to the system, so that it is a unique identifier which is used only for that piece of data. The name assignment is done when the data element is created in a network generation process. When the name is referenced the first time in the running network, the name is assigned or bound to a unique address identifying both the node location and the data base location within the node. This is done by searching the network for the data element by name the first time it is referenced. Thereafter, this bound reference is used to locate the data element at each subsequent reference to that data element during run time.
In another aspect, the objects of the invention are accomplished by maintaining consistency among global variables in the nodes. At regular intervals each node broadcasts its presence and a time stamp indicating the most recent update of its data base of global variables. The nodes receiving the broadcast compare their time stamps with the one most recently broadcast. If the time stamps are not the same, the receiving node requests the broadcasting node with the latest data to download the more recent global variable data base. This occurs so that all the nodes have the most recent global variables.
In another aspect, the objects of the invention are accomplished by dividing a facilities management system into a plurality of individual systems with each of a plurality of nodes having a list of all the names in systems defined on the nodes. In order to allow the systems to be distributed over one or more interconnected networks, the system definitions include a directory of objects for the system stored on the system defining node. The directory defines which node the object is located on so that it is not necessary for all the objects of the system to be resident on a single node. When objects are moved around from the control of one node to another, the directories are updated.
Another aspect of the above objects of the invention is accomplished by using a single node to coordinate timing within the system. The time keeping node monitors calendar date and time of day to assure that regularly scheduled activities take place as required. In addition, should the node monitoring calendar date and time become disabled, a second node performs this function.
Another aspect of the above objects of the invention is accomplished by maintaining calendar date and time of day information in all the nodes distributed on a system. The nodes are time synchronized by redistributing to all the nodes date and time information at a fixed time everyday under normal operating conditions. This permits routine updating and synchronization on a regular basis of the plurality of nodes.
In another aspect, the above objects of the invention are accomplished by providing nodes the ability to cascade download requests through other nodes. A node without a routing table identifies another node with a routing table which can identify a path to route a download request. Thus, once a first node contains a routing table a second node without a routing table can receive download information from an external device through the node with the routing table.
Another aspect of the above objects of the invention is accomplished by triggering attributes of objects in response to changes of state. Object managers and high level software features "sign-up" to be notified when specific events occur. For example, an alarm might be triggered when a sensor exceeds a known threshold. It is not necessary that the object manager which handles the sensor information and the feature be located at the same node. The feature need only "sign-up" to be notified by the appropriate object manager. However, in the event that the object manager is changed the sign-up becomes invalid. This is detected and the feature is notified.
In another aspect, the objects of the invention are accomplished by distributing the routing of reports. Routing information is retained within each node on the network as global data. Reports emanating from the node are routed through a report router task for ultimate distributions to the destination device. The report routing task acts as intermediary between input/output routines of the nodes. The report router determines if the input/output routine can route the report to a destination device. If not, the report router determines if a second or default device is available. If not the message is discarded and the report routers are so notified. If a default device is available, the report is routed to the default device.
In another aspect, the above objects of the invention are accomplished by reducing the volume of data traffic required to produce the standard or predefined summaries of data for storage or display. This is accomplished by localizing filtering of data at the node of which the particular object directory of interest is located. Standard summary data is obtained from the nodes identified in a directory of a first node. The data need not be obtained from devices connected to the first node, but obtained from the nodes identified in the directory. When the data is obtained it is assembled in the node containing the directory into a message for transmission to the high level software feature generating the summary. The high level software feature may be located in any node.
The above objects of the invention are further accomplished by attaching a non-configured device to a port on a configured node of a network. The non-configured device, which contains its own process identifiers, communicates via that port with the configured network node. The configured network node communicates with other configured network nodes to route messages from the non-configured device to their destinations. Destination nodes recognize the message source as the configured network node or as a non-configured device dropped from a port on a configured node. Thus, at the destination node, responses generated are transparent to the status of the source as a non-configured device. The final destination node responds as though the message is from a configured node and the response message follows the same or an alternate data communication path back to the configured node having the non-configured device connected to its port. Based on communications over a drop between the non-configured node and the configured node, the configured node provides the message to the non-configured device which delivers it to a process identified in the message. This allows any configured node to respond to data requests made by a non-configured device.
Other aspects of the above objects of the invention are accomplished by a method and apparatus in which a master controller stores sensor values in a data aging table and associates each sensor value with a valid time frame. All requests for data during the valid time frame are serviced by transmitting the value from the data aging table in the master controller. This prevents further data requests to the slave controller and reduces message traffic on either the local or the network bus. This also allows matching the aging timer value to the characteristics of the sensor data.
In another aspect, the objects of the invention are accomplished by a memory system in which every call to a subroutine results in accessing a pointer stored in a erasable section of memory. The pointer identifies the next section of code to be executed. Since the pointer is erasable, the next section of code to be executed for each subroutine call can be altered electronically. Thus control can be transferred to a section of memory other than that originally programmed. This allows additional flexibility in operating the system by providing for easy incorporation of software patches. Since every call to a subroutine results in accessing the pointers, it is not necessary to provide blank spaces of memory to accommodate jumps to previously undefined memory locations. Control is easily transferred by changing the value of the pointer to the newly desired memory location.
In another aspect, the objects of the invention are accomplished by providing an indicator to detect the status of data reliability. Each data element is assigned a reliability indicator which is propagated throughout all the calculations involving the data element. As a result, it is possible to determine an overall certainty of the accuracy of a calculation, since each intermediate calculation also considers the reliability of the data elements.
The above objects of the invention are further accomplished by an analog input software object which interfaces to analog input hardware residing on a variety of hardware devices. The analog hardware input is received and ranged using an equation and parameters unique to the operational hardware device. Optional filtering, square root, and span functions can then be performed on the ranged value to provide information in a format compatible with higher-level software features. The analog input software object then checks the final value against the warning and/or alarm limits to determine the current status of the object. In addition, a point history can be stored to provide trend analysis. The final value is in the form of a floating point value representative of the physical system. Using the alarm features, the software object detects and reports excursions from the normal state and provides an override of the current value to force the parameter to a specified value.
The above objects of the invention are also accomplished by a binary input software object which interfaces to binary input operating hardware residing on a variety of hardware devices. A signal from the binary input hardware is received and a contact condition determined. A debounce filter produces a filtered binary input and the current state of the binary input is examined for alarm analysis by the binary input software object. In addition, the point's history can be stored to provide trend analysis. Using the alarm features, the software object detects and reports excursions from the normal state and provides an override of the current value to force a binary parameter to a specified state.
The above objects of the invention are further accomplished by a prepackaged analog output object software function to accomplish the objectives outlined above. The prepackaged software functions require no specialized additional hardware and provide a unified approach to device control independent of hardware. The software resides either in PID hardware and/or in a network controller which supports an object manager. Local commands from a PID loop are represented in percentages of full scale deflection of the driven device. The command is translated into a current command and a span range is selected. Fixed span outputs in the form of digital counts are provided as are output pulses whose duration is a function of the difference in the change in command, thus reflecting the change in the full scale output required.
The above objects of the invention are further accomplished by a binary output object software function residing either in binary output hardware or in a network controller which supports a binary output software object manager. The binary output software object manager receives commands from high-level software features and access methods and attributes to control binary outputs directed to output devices having two stable states.
The above objects of the invention are accomplished by a proportional and integral and derivative controller software object which is based on sampling a feedback value at consistent time intervals. The object incorporates the proportional, integral, and derivative terms independently so that the individual terms may be removed. This facilitates having any combination of proportional, integral and derivative controls. The PID software object employs points and pseudo points on which input conditioning is performed and which are processed according to a sample period, proportional band, and other parameters. By outputting a percentage of full scale deflection of a variable, the corresponding output port may be driven.
The above objects of the invention are also accomplished using a fault tolerant control strategy to predict steady state change in a controlled variable for a given change in inlet process conditions. Applying a simplified model based on measures of effectiveness, the change in effectiveness due to a change in a process variable is derived. Further assuming that the process model will only be valid for a limited region around the current operating point allows calculation of a manipulated variable value based on previous values of the manipulated variable, other manipulated variables, primary and secondary process variables, the initial value of the controlled variable, and a setpoint. By incorporating the setpoint and primary and secondary process variables into a system dependent only on the initial value of the controlled variable, a variable can be manipulated based on current inputs and system history, even though the controlled variable or feedback signal is presently unreliable.
In another aspect, the above objects of the invention are accomplished by incorporating a programming language which is enhanced over other languages used in facilities management systems. The language includes the ability to transmit data through executable statements themselves rather than through variables, and automatically sign-up for executing statements when such variables reach their trigger points. In addition to providing a generic interface to the objects in a facilities management system such that data values can be read through the name of the object and the name of the data field to be read, similar constructs are applied for writing values and commanding objects. Moreover, the data constructs provide for sharing variables between two or more algorithms so that multiple algorithms may read and update the data value. Another data construct in the language allows for resetting a set point by means of a proportional plus calculation.
In another aspect the above objects of the invention are accomplished by predicting energy demand in a future demand period based on a window of previous energy consumption. In response to the predicted energy demand, commands can be issued to shed loads contributing to the demand so that a demand limit is not exceeded. Loads that are shed either by the demand limiting or load rolling feature will be restored either due to a defineable time period expiring or as a result of an extreme in an environmental condition being detected in an area affected by the load.
A high level feature which sheds a load may lose communication with the load since loads are distributed over multiple nodes in a system. To be certain that a load shed as a result of a load rolling command is restored after a prescribed time interval for that load, a restore task is localized within each node. Specific shed and restore characteristics are stored as attributes of the object in the node with the load and not as part of the demand limit/load rolling high level software feature. This allows high level software features in one node to shed loads distributed over the system without requiring that communications be maintained with the load in order to restore the load at the proper time.
A localized restore task also will monitor environmental conditions affected by the load and, thus, eliminate the extra traffic on the network by removing that task from the node running the demand limit/load rolling feature.
The above objects of the invention are further accomplished by an analog output circuit with a current sense network, a switchable feedback stage, and a balancing network. In one embodiment, a voltage input and a voltage feedback signal are applied through a buffer to a sample and hold circuit, the output of the sample and hold is summed with the feedback signal and the result is amplified and passed to the current sense network. The output of the current sense network provides a first of the balanced outputs. A mirroring circuit connected to the first output provides a balanced second output equal in magnitude but opposite in plurality from the signal at the first output. Since the signals track each other precisely, errors introduced by ground loops and other noisy effects are eliminated. The feedback stage is switchable so that the voltage output from a voltage driver is fed back and so that the current output from a current driver is converted to a voltage output for feedback purposes.
Still other aspects of the above objects of the invention are accomplished by a customized optical interface to a local optical bus compatible with the RS/485 Electronic Industries Association specification. The interface employs bias circuitry which is used to "swamp out" differential mode noise on the leads of the bus and transorb and MOV circuitry to shunt common mode voltage and excessive differential-mode noise to ground. Optical isolators provide isolation between digital and communications power supplies and retriggerable one shots are used to activate data transmission and reception indicators such as LEDs.
BRIEF DESCRIPTION OF THE DRAWINGS
The above objects of the invention are accomplished as described below in accordance with the following figures:
FIG. 1 is a network control module according to the invention.
FIG. 2 shows a digital control module according to the invention.
FIG. 3 shows an expansion module according to the invention.
FIG. 4 shows a network control unit in a five slot configuration.
FIG. 5 shows a network control unit in a two slot configuration.
FIG. 6 shows a single slot configuration network control unit.
FIG. 7 tabulates modules used in one, two, and five slot configurations of a network control unit.
FIG. 8 tabulates modules used in one, two, and five slot configurations of a network expansion unit.
FIGS. 9A and 9B illustrates a sample facilities management system configuration.
FIG. 10 illustrates a lighting controller used in a network according to the invention.
FIG. 11 illustrates a card access controller used in a network according to the invention.
FIG. 12 illustrates a intelligent fire controller used in a network according to the invention.
FIG. 13 illustrates a facilities management configuration for small buildings.
FIG. 14 illustrates a facilities management configuration for mid-size buildings.
FIG. 15 illustrates a facilities management configuration for large buildings.
FIG. 16 illustrates a facilities management configuration for remote buildings.
FIG. 17 shows one system configuration according to the present invention.
FIG. 18 shows a more detailed view of various software levels.
FIG. 19 illustrates the use of points and pseudo points according to the invention.
FIG. 20 is another overview of a system according to the present invention.
FIG. 21 is a flow diagram illustrating a first embodiment of the method of the invention.
FIG. 22 is a flow diagram illustrating a second embodiment of the method of the invention.
FIG. 23 illustrates a further optimization of the method in FIG. 22.
FIG. 24 illustrates an embodiment of the method of the invention using multiple levels of names.
FIG. 25 illustrates an example of the invention when a name changes its address within a node.
FIG. 26 illustrates an example of the invention when a name moves between nodes.
FIG. 27 illustrates a method of time synchronizing nodes according to the invention.
FIG. 28 illustrates downloading global variables to nodes on the network according to the invention.
FIG. 29 is a more detailed illustration of downloading variables according to the invention.
FIG. 30 illustrates cascading of download devices according to the invention.
FIG. 31 is a table showing transmission of messages when a download request originates from an archive unit.
FIG. 32 is a table illustrating a sequence of message passing when a node without a routing table initiates a download request.
FIG. 33 illustrates triggering of features from attributes of objects.
FIG. 34 illustrates distributive report routing according to the invention.
FIG. 35 illustrates filtering of summary report data at local nodes.
FIG. 36 shows a more detailed description of the events which occur in applying selection criteria to filtered attributes.
FIG. 37 shows an example of a non-configured device attached to a configured node for communicating over communications links with one or more configured nodes.
FIG. 38 illustrates the message path between the non-configured and configured nodes in FIG. 1 along with various data communication layers.
FIG. 39 illustrates the transmission of a request from a non-configured device or a response from a configured device.
FIG. 40 illustrates the receipt of a request from a non-configured device or the receipt of a response from a configured device.
FIG. 41 tabulates a possible routing strategy for messages between the non-configured device and a configured node.
FIG. 42 shows the general configuration of a facilities management system.
FIG. 43 shows a basic configuration in which a master node communicates with slave nodes over a local bus.
FIG. 44 shows another embodiment in which multiple master nodes communicate over a network bus.
FIG. 45 shows a memory configuration with pointers to segments of memory according to the invention.
FIG. 46 illustrates a method of tagging data with reliability indicators.
FIG. 47 shows an overview of a facilities management system with an analog input object according to the invention.
FIG. 48 shows a more detailed overview of a network controller with an analog input object.
FIG. 49 is a general model of an analog input software object.
FIG. 50 shows the input and output values for a span function.
FIG. 51 shows limits for change of state generation.
FIG. 52 shows an analog input software object with functions distributed between a network controller and a proportional integral differential controller.
FIG. 53 is an overview of a facilities management system with a binary input object.
FIG. 54 shows a binary input object in a network controller.
FIG. 55 is a general model of a binary input object.
FIG. 56 shows a Binary Input Object used in a feedback loop.
FIG. 57 shows a binary input object and the interface to a proportional, integral, differential hardware controller, which may be implemented in a Digital Control Module (DCM) hardware controller.
FIG. 58 is an overview of a first type of analog output object.
FIG. 59 is an overview of a facilities management system with analog output devices.
FIG. 60 is an overview of an alternative facilities management system with PID hardware.
FIG. 61 illustrates the use of analog output objects to allow set point maintenance using multiple devices connected to a single PID controller.
FIG. 62 is an overview of a second type of analog output object.
FIG. 63 shows an analog output object used in operation with feedback for alarm analysis.
FIG. 64 is an overview of a facilities management system with a binary output object.
FIG. 65 is an overview of a binary output object in a network controller in a facilities management system.
FIG. 66 is an overview of a binary output object.
FIG. 67 shows one distribution of functions between a binary output object manager in a network controller and control hardware.
FIG. 68 illustrates processing of a PID Loop Object.
FIG. 69 shows a typical HVAC control system with a fault tolerant control strategy implementation.
FIG. 70 shows the phases of implementing a fault tolerant control strategy.
FIG. 71 illustrates the inputs and outputs of the phases of the strategy.
FIG. 72 illustrates one configuration of a system with a digital control module and a network controller.
FIG. 73 shows one embodiment of the invention with a balanced output.
FIG. 74 shows multiple units according to the embodiment with balanced outputs driven by a single source.
FIG. 75 shows a second embodiment of the invention with a balanced output.
FIG. 76 is a schematic diagram of the first embodiment with a balanced output.
FIG. 77 shows a configuration of a system with distributed load shedding and localized restore tasks.
FIG. 78 shows a fault tolerant control configuration.
FIGS. 79A and 79B show process monitoring steps.
FIG. 80 shows steps in operating a fault tolerant controller.
FIG. 81 shows steps in switching a manipulating and backup variable.
FIG. 82 illustrates nodes operating slave devices over a local or slave bus.
FIGS. 83A and 83B illustrate an optical interface between a node and a bus having slave devices.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
FIG. 1 shows generally network control module 1-1 which has a processor 1-3, dynamic random access memory 1-5, and electronically programmable read only memory 1-7. Network control module 1-1 communicates with high speed bus 1-9, the N1 bus, so that network control module 1-1 can be interconnected in a local area network configuration to other network control modules. A plurality of network control modules 1-1 connected over high speed bus 1-9 form a network which can be interconnected through gateways to other networks of network control modules interconnected on high speed buses. Network control module 1-1 further has standard RS-232 interface 1-11 with a plurality of ports to provide communication through a modem over port 1-13, a specialized network terminal over port 1-15 and a computer, or printer over port 1-17. Field trunk controllers 1-19 and 1-21 allow network control module 1-1 to communicate with field devices interconnected on communications media 1-23 and 1-25.
Subnet controller 1-27 allows devices 1-29, 1-31, 1-33 to communicate with network control module 1-1 over N2 bus 1-35. To isolate network control module 1-1 from spurious signals and power surges which may become impressed on N2 bus 1-35, N2
subnet controller 1-27 incorporates an opto-22 interface 1-37, as shown. A network control module according to the invention functions as a central part of a network control unit described below. Network control modules, either alone or as part of network control units, function as controllers for nodes interconnected by the high speed N1 bus 1-9. Thus, a primary function of the network control module is to supervise peer-to-peer communications with other network control modules or network control units and operator work stations on high speed bus 1-9.
In a facilities management system (FMS) the network control module performs supervisory control of an area of a building. Thus, in accordance with specialized programs, the network control module supervises maintaining environmental conditions according to program parameters and communicating with operational units, such as sensors and other devices connected to the network control module 1-1 via N2 bus 1-35. Network control module 1-1 further manages communications over a RS-232 interface
1-11 to various person machine interfaces (PMI). Specialized devices in the facilities management system can be connected via field trunk controllers 1-21 and 1-19 and corresponding communication media 1-25 and 1-23. In a facilities management system (FMS) according to the invention, the network control module 1-1, which is sometimes referred to as a network controller, is configured as a plug in module which mates with a connector on a backplane.
FIG. 2 shows digital control module 2-1 which also interfaces with a connector on a backplane. Digital control module 2-1 includes processor 2-3 and memory 2-5. Memory 2-5 is divided into a static random access memory section 2-7, and electronically programmable read only memory (EPROM) section 2-9, and an electronically erasable programmable read only memory (EEPROM) 2-11. In addition, digital control module 2-1 has input/output sections 2-13 and 2-15. A digital control module 2-1
may also be incorporated into a network control unit according to the invention, as discussed below. A digital control module conditions sensor inputs received through input/output sections 2-13 and 2-15 and reports changes to the network controller or network control module 1-1. In addition, in a facilities management system (FMS) the digital control module performs closed loop control for a plurality of control loops. Thus, closed loop control can be accomplished without a network control module. In addition, the digital control module 2-1 executes commands received from network control module 1-1. Digital control module 2-1 further may accept inputs either directly or through a function module. A function module (FM) also performs conditioning of an input or output signal. While a digital control module according to the invention can accept inputs directly (100-1,000 ohms, RTD (resistive temperance device) 4-20 mA, 0-10 volts DC) or through an input function module, all outputs from a digital control module 2-1 are characterized by function module selection. A function module (not shown) conditions signals but does not perform sophisticated processing. Such function modules, according to the invention, are tailored to accommodate the specific conditioning function required. Thus, a function module may contain sophisticated electronics tailored to perform a specific task or may be as simple as a single resistor.
Network control module 1-1 also performs numerous background tasks, as discussed below, to assure that each of the nodes on the system is operating with the same global variables, is time synchronized, and has consistent directories of system names. In addition, software in the network control modules 1-1 to reduce data communications, to track the aging of data, and to provide a uniform means of isolating high level software features from specialized operational units is discussed below.
Typical input function modules in a facilities management system include pressure/electric transducers, binary input contacts or AC line voltage conditioners, differential pressure inputs, and binary frequency inputs. Typical output function modules include analog outputs, analog outputs with isolated grounds, electric/pressure transducers, binary polarity reversing, triac incremental function modules, motor start/motor stop function modules, electrically maintained relay outputs, magnetically latched relay outputs, and solenoid air valve function modules.
As shown in FIG. 3, expansion module (XM) 3-1 according to the invention, includes processor 3-3 and memory 3-5. The memory is typically divided into static random access memory (SRAM) 3-7 and electronically erasable programmable read only memory (EEPROM) 3-9. Point multiplex modules 3-11 provide a configurable input/output for the expansion modules. The expansion module is also a plug in module which plugs into a connector on a back plane in a node of a facilities management system. The expansion modules condition binary, analog and pulse inputs and report changes to the network controller or network control module 1-1. In addition, the expansion module executes binary output commands from network controller 1-1. Point multiplex modules 3-11 provide five configurations of expansion modules. These include a first configuration having 32 binary inputs, a second configuration having 8 binary inputs and 8 pairs of outputs using momentary relays, a third configuration having 8
binary inputs and 8 magnetically latched relay outputs, a fourth configuration having 8 analog inputs and a fifth configuration having 8 binary inputs and 8 electrically maintained relay outputs.
Network control modules, digital control modules, and expansion modules, can be combined in various configurations to form a network control unit according to the invention. A network control unit (NCU) in a facilities management system monitors and supervises heating ventilating and air conditioning (HVAC), lighting, and building functions. Network control units are interconnected by the N1 bus 1-9. As part of an N1 network, the NCU shares all data with all other NCUs in a dynamic data access relationship. A distributed system is formed because peer-to-peer communications allow each network control unit to access and use data acquired under the control of any other network control unit. Thus, information at any level is accessible to every NCU to integrate and optimize all components within a building. Network control units can also be interconnected to perform other control functions involving the use and monitoring of diverse physical sensors and equipment, such as a broad array of industrial control processes and other processes involving control systems.
FIG. 4 shows one configuration of an NCU 4-1 in which five slots 4-3, 4-5, 4-7, 4-9 and 4-11 are available. Slot 4-3 contains a network control module as previously discussed relative to FIG. 1. The network control module provides the sole means of communication along the high speed N1 bus through communication terminal board 4-13. It should be noted that only a network control module can communicate on the high speed N1 bus. Slots 4-5 through 4-11 can be occupied by digital control modules, expansion modules, or additional network control modules as shown. Communications between these devices and with the network control module is via the N2 bus. Slots 4-5 and 4-9 can also accommodate network control modules. These network control modules may also communicate over the N1 bus 4-15 as indicated by dotted lines 4-17 and 4-19 in FIG. 4.
As shown in FIG. 1, network control unit 4-1 is provided an interface to an operator through RS-232 interface portion 1-11 of network control module 1-1. Using a dial-up modem 1-13, specialized network terminal 1-15 or an operator work station such as a personal computer, an operator may generate or respond to commands and provide program changes and organizing data to user specified data bases.
The five slot NCU configuration in FIG. 4 also shows connectors 4-21 and 4-23 for a plurality of input function modules and corresponding input function module terminal boards 4-27 and 4-25. Similarly, connectors 4-29 and 4-31 accommodate a plurality of output function modules and corresponding output function module terminal boards 4-33 and 4-35 are provided. It should also be noted that each individual slot 4-3 through 4-11 is provided with its own power supply 4-37 through 4-45. Expansion module input terminal boards are provided at 4-47 and 4-49 and expansion module inputs/output terminal boards are provided at 4-51 and 4-53. Line voltage is applied to the power terminal board 4-55.
An alternative configuration of a network control unit is the two slot configuration 5-1 shown in FIG. 5. Slots 5-3 and 5-5 can each accommodate an expansion module. Slot 5-3 can also accommodate a digital control module while slot 5-5 can also accommodate a network control module. It should be noted that in order to constitute a network control unit, at least one network control module is required. This is because, as previously noted, it is only a network control module which can communicate in a peer-to-peer relationship with other network control units over the N1 bus. Thus, slot 5-5 has a connection to the N1 bus 5-7. Devices installed in slots 5-3 and 5-5 communicate with each other over N2 bus 5-9. Both the N1 and N2
buses are connected to communications terminal board 5-11 to provide further communications with the remaining parts of the system.
In a manner analogous to that discussed in FIG. 4, a plurality of input function modules can be located at connectors 5-13 and the plurality of output function modules can be located at connectors 5-15. Input function module terminal board 5-17
and a corresponding output function module terminal board 5-19 are also provided. Similarly, expansion module input terminal board 5-21 and expansion module input/output terminal board 5-23 provide access to the expansion module. It should be further noted that devices in slots 5-3 and 5-5 also have independent power supplies 5-25 and 5-27. Line voltage is provided to power terminal board 5-29.
FIG. 6 shows a single slot configuration according to the invention. Slot 6-3 can contain a network control module in which case the device operates as a network control unit with the ability to communicate on a peer-to-peer basis with other devices via the N1 bus 6-5. Communication with devices on the N2 bus external to the NCU 6-1 is over N2 bus 6-7.
As FIG. 6 shows, line voltage is connected to power terminal board 6-9 and power supply 6-11 supplies the device in slot 6-3. FIG. 6 also shows that device in slot 6-3 can be an expansion module. Thus, the single slot configuration in FIG. 6
also has expansion module input terminal board 6-13 and expansion module input/output terminal board 6-15.
As previously stated, a network control unit must have a network control module in order to accomplish peer-to-peer communications over the N1 bus. However, as the single slot configuration in FIG. 6 shows, it is possible for a device to be constructed having an expansion module without a network control module. Since an expansion module could not communicate over the N1 bus, the device can not be a network control unit. It is possible, according to the invention, to construct in either the 5 slot back plane shown in FIG. 4, the two slot back plane shown in FIG. 5 and the one slot back plane shown in FIG. 6 a device which does not have the capability of communicating over the N1 bus. Such devices are called network expansion units (NEU). Network expansion units serve two functions. First, they serve as a collection platform for I/O points in order to increase the point and control loop capacity of an NCU. Second, network expansion units can be remotely located from an NCU to monitor and distribute control to points and then transfer the data from these points back to the NCU over the N2 bus.
Since the back planes can be used to construct either a network control unit or a network expansion unit, alternative configurations are possible. FIG. 7 shows fully loaded alternative configurations possible for network control units having 1,
2 and 5 slot back planes. FIG. 8 shows fully-loaded possible configurations of network expansion units having 1, 2 and 5 slot back planes.
FIG. 9 illustrates a possible configuration of a facilities management system according to the invention. Five slot NCU 9-1 communicates with one slot NCU 9-3 over N1 bus 9-5. N1 bus 9-5 is also connected to personal computer 9-7. Personal computer 9-7 can be used as a download device to download new information and data bases to NCUs 9-1 and 9-3 and other devices connected to NCUs 9-1 and 9-3. N1 bus 9-5 is connected to communication terminal board 9-9 in NCU 9-1 and terminal communication board 9-11 in NCU9-3. Within NCU 9-1 N1 bus 9-13 is connected to network control module 9-15. Since this is the only network control module shown in five slot NCU 9-1, there are no further connections within the five slot NCU to the N1
bus 9-13. Five slot NCU 9-1 also has expansion modules 9-17 and 9-19 and digital control modules 9-21 and 9-23. These modules perform the functions discussed previously and are interconnected with the five slot NCU via N2 bus 9-25. An interface communicates dir