Aspects of the present invention generally relate to building automation systems and, more particularly, systems and methods for simulating system operation conditions of a building or group of buildings.
Building automation systems provide the capability of managing many building management components from a central front-end interface or group of interfaces. These building management components include building equipment for lighting, power, heating, ventilation, air conditioning, fire safety, and security. The building automation systems offer operational and sustainability benefits for building developers, managers, and occupants.
When developing data analytic applications or optimization applications for building automation systems, data sets that depict actual system and operational data are helpful to analyze and develop these applications. On the other hand, during the development phase, it is not economically feasible to have a development environment connected to actual system controllers since any actions taken by the applications during the development phase may unintentionally affect the operation of the actual systems.
BACnet simulators currently available on the market generate random values for each individual BACnet control point. These randomly generated values are only helpful for alarm limit testing and event enable/disable, so the capabilities of existing BACnet simulators are limited. Actual operating data needed for the development of applications may be created manually by-hand by an application developer, but it becomes the responsibility and difficult tasks of the developer to read such data and write the data to simulate operating values. Thus, manual creation of actual operating data is very cumbersome and hinders the ability to provide operating data and conditions that are closed to actual system operation in real time or semi-real time.
Briefly described, there are described a building simulation system of a building automation system for simulating system operation conditions of one or more building environments. The building simulation system provides simulated system and operation data and/or conditions to data consumers for developing or testing of analytic applications, optimization applications, devices, systems, and other components of a building automation system. Simulated data may be utilized during development to avoid adverse effects to the operation of the building automation system and its components. Simulated data may also allow for targeted analyses and testing of specific faults and conditions of interest. Simulated data further allows for timing management of a simulated system and operation in order to accelerate development of components for the building automation system.
The building simulation system operates on a management device of the building automation system to provide various features. The system provides a simulated environment, which may include an import mechanism to parse the data of a building model. For example, the system includes the capability of playing back data from an actual system for the purpose of repeating tests necessary for product and system development. The system also provides a system and method to automatically generate points for the simulated building automation system for each associated data entry or data set. The system further enables the ability to playback simulated data values through various points over particular time intervals, in which the playback mechanism instantiates the simulated data model by a standard communication protocol for a building automation network, such as BACnet. Other devices and systems may observe the simulated data for the building automation system as if the data represents an actual system.
The building simulation system is also built on a flexible and scalable framework supporting simulation, concurrency, distribution, and fault tolerance. In particular, the framework provides flexibility in managing the type of simulated data and manner in which the simulated data may be provided to data consumers. The framework also provides scalability of the simulated system operation conditions provided to the data consumers such that a wide range of environments, from individual systems to large scale buildings or municipalities, may be represented.
One aspect of the building simulation system for simulating system operation conditions associated with a building automation system comprises a memory, a processor, and a communication component. The memory has a configuration file associated with one or more virtual nodes. The configuration file includes device properties of a field device simulated by a building simulation system executing the point simulator service. The configuration file also references a data file that includes time intervals and one or more simulated system operation conditions of one or more points associated with the field device for the time intervals. The processor is coupled to the memory, and the processor executes instructions for generating a virtual node hosting environment, creating the virtual node or nodes in the virtual hosting environment, and generating simulated operation data of the point or points from the building simulation system executing the point simulator service based on the data file. The building simulation system includes point simulator servers in which each point simulator server corresponds to a point of the one or more system operation condition identified by the data file. The communication component is coupled to the processor, and the communication component provides the simulated operation data to a data consumer.
Others aspects include a method for simulating system operation conditions of one or more building environments and a non-transitory computer readable medium including executable instructions which, when executed, cause one or more processors to provide for simulation of system operation conditions. A virtual node hosting environment is generated by a processor. One or more virtual nodes are created in the virtual node hosting environment to communicate with a data consumer by a communication component. The virtual node hosting environment allocates memory and processor resources to the virtual node or nodes. A building simulation system is configured by the processor in the virtual node or nodes based on a configuration file associated with the virtual node or nodes. The configuration file includes device properties of a field device simulated by the building simulation system. The configuration file also references a data file that includes time intervals and simulated system operation conditions of one or more points associated with the field device for the time intervals. Simulated operation data of the point or points are generated, by the processor, from the building simulation system based on the data file. The building simulation system includes point simulator servers in which each point simulator server corresponds to one or more system operation conditions identified by the data file. The communication component provides the simulated operation data to the data consumer.
For a more complete understanding of the present disclosure, and the advantages thereof, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, wherein like numbers designate like objects.
To facilitate an understanding of embodiments, principles, and features of the present invention, they are explained hereinafter with reference to implementation in illustrative embodiments. In particular, they are described in the context of a building simulation system for simulating system operation conditions of a building or group of buildings. Embodiments of the present invention, however, are not limited to use in the described devices or methods.
The components and materials described hereinafter as making up the various embodiments are intended to be illustrative and not restrictive. Many suitable components and materials that would perform the same or a similar function as the materials described herein are intended to be embraced within the scope of embodiments of the present invention.
The building simulation system may be used to provide real time collaboration of external reference data between building automation systems and external data sources or consumers. The building simulation system may also be used to bring data from Internet sources. The data may be presented to the building automation systems as virtual nodes and objects as well as unlocking point data of the building automation systems for use by other network-based data consumers.
For example, to a data consumer, each virtual node is a digital representation of a physical field device and its associated points. The data consumer observes data as if the data consumer is physically connected to field device controlling physical equipment, but in fact the data consumer is observing only virtual copies. The data consumer may retrieve data, while having minimal impact or risk to the physical devices and systems.
The building simulation system includes as many of these virtual nodes as necessary to model the physical system. One advantage of the building simulation system is this ability to scale to immense size, as needed to digitally represent the physical world in a building, campus, or even a large enterprise. The maximum number of points allowed in a virtual node varies because it is dependent on the user-configured variables of polling times (i.e., polling intervals) and the time periods between individual events corresponding to points (i.e., separation times).
With ability to represent simulated building and system operating data as if the data were provided by non-simulated entities, the building automation system provides simulated data in semi-real time operating conditions similar to data provided by the non-simulated devices and systems. As a result, the building automation system may enhance and validate analytic applications, such as Fault Detection and Diagnostic Systems (FDD). For example, the building model of the building automation system may include various simulated conditions and fault events that may be used for testing new data analytics and optimization applications. The play back of these fault events, via the virtual node hosting environment, may validate the detection capabilities of monitoring systems by detecting the various played back faults. The play back capabilities may also be used to feed data for automated testing process such that new applications may be consistently tested with the same data set to ensure the accuracy and quality of the applications being developed.
Referring to
As shown in
As stated above, the building automation system 100 includes a building simulation system 102. The building simulation system 102 includes various components described herein, and
For the illustrated embodiment, the building automation system 100 provides connectivity to subsystems for various environmental parameters such as components of comfort sub-systems 112, safety sub-systems 114, and security sub-systems 116. For example, comfort sub-systems 112 may include various devices 120 for monitoring and controlling heating, cooling, ventilation, and lighting of areas within a building or group of buildings. Examples of comfort devices include, but are not limited to, stations, field panels, field controllers, field devices, light fixtures, and the like. Similarly, safety sub-systems 114 may include various devices 122 for monitoring and controlling fire protection for areas within a building or a group of buildings. Examples of safety devices include, but are not limited to, controllers, control panels, detectors, alarm systems, video surveillance cameras, and the like. Further, security sub-systems 116 may include various devices 124 for monitoring and controlling activities within a building or group of buildings. Examples of security devices include, but are not limited to, video surveillance cameras, motion detectors, portal controls, and the like. Some devices 120 may communicate through the communication bus 108, and some devices 122 may communicate directly or wirelessly with other devices. It is to be understood that the system 100 may comprise any suitable number of any of components 120-124 based on a particular configuration for each building or group of buildings.
The processor 208 may execute code and process data received other components of the device components 200, such as information received at the communication component 204 or stored at the memory component 210. The code associated with the building automation system 100 and stored by the memory component 210 may include, but is not limited to, operating systems, applications, modules, drivers, and the like. An operating system includes executable code that controls basic functions of the management device 104, such as interactions among the various components of the device components 200, communication with external devices via the communication component 204, and storage and retrieval of code and data to and from the memory component 210. Each application includes executable code to provide specific functionality for the processor 208 and/or remainder of the management device 104. Examples of applications executable by the processor 208 and stored by the memory component 210 include, but are not limited to, building simulation applications, such as MSIB applications 212. Data is information that may be referenced and/or manipulated by an operating system or application for performing functions of the management device 104. Examples of data associated with the building automation system 100 and stored by the memory component 210 may include, but are not limited to, configuration files associated with one or more virtual nodes, data files referenced by the configuration files, and the like.
The device components 200 of each management device 104 may further comprise one or more input and/or output components (I/O interfaces) 218. The I/O interfaces 218 of the device components 200 may include a variety of video, audio, and/or mechanical components. The I/O interfaces 218 of each management device may comprise a user interface 220 for interaction with a user of the management device. The user interface 220 may include a combination of hardware and software to provide a user with a desired user experience. For example, the user interface 220 may include one or more input components to allow the user to enter information and one or more output components to provide information to the user. Although the user interface 220 may include all input components and all output components of the I/O interface 218, the user interface may also be directed to a specific subset of input components and/or output components.
The device components 200 may further comprise a power source 222, such as a power supply or a portable battery, for providing power to the other device components 200 of each management device 104 of the building management system 100.
It is to be understood that
Referring to
The virtual node hosting environment 302, and any components thereof, may scan the building automation system 100 for field devices 112, 114, 116 to create data files which may be used as import files for configuring and operating the building simulation system 300. The data files may include, but are not limited to, points associated with the building automation system and their corresponding values associated with system operation conditions over a particular period of time. In particular, the virtual node hosting environment 302 may send out a discovery message throughout the building automation system 100 and create an initial list of field devices that respond. The hosting environment 302 may then obtain an object list of each field device and read the properties of each supported object of each field device. The learned information may be collected in a data file and stored in memory, one for each device or multiple devices. When scanning is complete, a summary file with all of the field devices may be created as well. The scanning may be limited to specific devices or include the entire network. The various object types implemented in the building simulation system and that correspond to the discovered devices include, but are not limited to, an analog type, a binary type, a multi-state type, and a pulse converter type.
As shown in
Each virtual node 304 may include a virtual node supervisor 312 to monitor the operations of the virtual node and oversee the activity of multiple servers 314, 316, 318 managing these operations. The virtual node supervisor 312 also enables communication with other components of the virtual node hosting environment 302 as well as the components of other virtual nodes. The virtual node supervisor 312 may manage a service supervisor server 314 to supervise the services 306, 308, 310 of the virtual node 304. If a service ceases to operate properly or dies, the service supervisor server 314 may spawn a replacement service or restart the service and clean-up resources related to the service. The virtual node supervisor may also manage a database server 316 to provide data storage for the servers and services for the duration of the existence of the virtual node. Information that may be stored by the database service 316 include, but are not limited to, configuration files 320 associated with one or more components of the virtual node 304 and data files 322 referenced by the configuration files. The virtual node supervisor may further manage a network server, such as a BACnet server 318, to provide data communications for various components throughout, and external to, the building automation system 100. For example, the BACnet server 318 shown in
A data consumer 106 may request or otherwise receive simulated data from the virtual node 304 of the virtual node hosting environment 302 and provide simulated operation data to one or more data consumers 106. The simulated operation data may be the simulated data, analytical data based on the simulated data, or a combination of simulated and analytical data. Rather than communicate with other components of the building automation system 100, the data consumer 106 accesses the virtual node 304 and receives simulated operation data generated and/or stored at the virtual node 304.
The virtual node 402 includes a point simulator poller 410 which may communicate directly or indirectly with the service supervisor server 404, the database server 406, and the network server 408. The point simulator poller 410 may poll point simulator servers and, optionally, poll other servers for data corresponding to actual devices as well. The virtual node 402 may spawn the point simulator poller 410 in response to receiving an instruction from the management device, such as the processor 208 or I/O interface 218, to generate a point simulator service. For example, the virtual node 402 may spawn the point simulator poller 410 by reading or execution of a configuration file by the management device. Also, the point simulator poller 410 may communicate with the network service 408 or via the service supervisor 404 or the database server 406. While configuring the building simulation system executing the point simulator service in the virtual node 402, the point simulator poller 410 may receive data, such as data from configuration files and/or data files, from the database server 406 to create multiple point simulator servers 412, 414, 416. Similarly, while generating simulated operation data from the building simulation system executing the point simulator service in the virtual node 402, the point simulator poller 410 may receive data from the database server 406 and operate the multiple point simulator servers 412, 414, 416. The building simulation system executing the point simulator service may be configured in the virtual node 402 based on a configuration file of the database server 406 associated with the virtual node, and the configuration file may reference a data file that includes time intervals and multiple simulated system operation conditions of one or more points associated with one or more field devices for the time intervals. Each point simulator server 412, 414, 416 may represent one or more points or simulated system operation conditions of the field device or devices. For example, the point simulator poller 410 may create a point simulator server for each point identified by the data file referenced by the configuration file.
The point simulator poller 410 may receive data, such as data from configuration files and/or data files, from the database server 406 and send messages to one or more point simulator servers 412, 414, 416 based on the received data. The point simulator poller 410 may synchronize some or all point simulator servers 412, 414, 416 of the virtual node 402 to update their values, so that each point is represented at a synchronized, predetermined time. In particular, the point simulator poller 410 may include a clock or timing circuit, and the configuration file may indicate a point polling period to define a time interval for delivering simulated operation data to a data consumer 106 via the network server 408. For one embodiment, the point simulator poller 410 may send messages to the servers 412, 414, 416, based on the point polling period or time interval in seconds or other basis for time measurement. For another embodiment, the point simulator poller 410 may send messages to the servers 412, 414, 416, specifying the point polling period or time interval for receiving return messages from the servers. For yet another embodiment, the point simulator poller 410 may receive messages to the servers 412, 414, 416, and send messages to the network server 408 and/or data consumers 106 based on the point polling period or time interval.
The configuration file 214, 320 includes device properties of a field device simulated by the point simulator service. The device properties of the field device may include various information about the field device, such as a device name and a network location of the field device. The configuration file 214, 320 may reference a data file 216, 322 that includes multiple time intervals and one or more simulated system operation conditions of one or more points associated with the field device or devices for the multiple time intervals. The configuration file 214, 320 may further include a polling interval, so that the simulated point data may be generated by polling the simulated point data from the multiple point simulator servers based on the polling interval.
For some embodiments, a first version of the data file 216, 322 may be generated from non-simulated data received from the field device associated with the virtual node, and a second version of the data file may be generated from the first version of the data file, in which the second version is different from the first version. Non-simulated data refers to any type of data that is not simulated, such as actual data collected from one or more field devices of the building automation system. For this embodiment, the second version of the data file 216, 322 is referenced by the configuration file 214, 320 and used to generate the simulated operational data. The second version of the data file may be generated from the first version of the data file in various ways. For one example, the first version of the data file 216, 322 may be modified via a user interface of the building automation system to include one or more particular system operation conditions not represented by the non-simulated data received from the field device. For another example, the first version of the data file 216, 322 may be modified based on a supplemental data file that includes one or more particular system operation conditions not represented by the non-simulated data received from the field device.
The virtual node hosting environment 302 may be generated at the management device 104 by the processor 208 or other component of the management device 104 at step 504. For some embodiments, the building simulation system may include an application or device to provide licensing verification for one or more components of the building simulation system at step 506. The building simulation system provides several options for configuration, such as management and control over the desired output, data source, installation, and configuration. Another option for configuration is management and control over the type of license needed for each of these other options, such as a license for accessing, installing, and/or configuring the output, data source, or components of the building automation system associated with the output or data source. For example, the building simulation system may need a license to manage a predetermined quantity of points. For other examples, licensing may be based on a number of nodes supported, number of BASs supported, amount of data to be collected, and the like. The licensing information may be in the form of code or instructions provided in the system and/or entered by an administrator of the system. In other implementations, a physical device such as a fob may be employed. In yet other implementations, other operational parameters or number of elements (e.g., devices or points in the BAS to be accessed) may be licensed.
Once licensing has been verified at step 506, or where licensing is not required or implemented, one or more virtual nodes 304, 402 may be created in the virtual node hosting environment 302 at step 508. The virtual node hosting environment 302 allocates memory and processor resources to each virtual node 304, 402 via the memory components 210 and the processor 208 respectively. The virtual node 304, 402 may communicate with one or more data consumers 106 by a communication component, such as communication components 204. For example, the virtual node 304, 402 may communicate with the data consumer 106 by a network server 408, such as the BACnet server 318.
Subsequent to creating a virtual node 304, 402 at step 508, the building simulation system may detect an initiation of a request for the point simulation service at step 510. The point simulation service is generated in response to the request, if the point simulation service does not already exist. For some embodiments, the building simulation system and/or point simulator service may be initiated by an activation from the user interface 220 of the I/O interfaces 218 of the management device 104. For other embodiments, the building simulation system and/or point simulator service may be initiated by the processor 208 based on a determination that one or more conditions, stored in the memory components 210, have been met or exceeded. For yet other embodiments, the building simulation system and/or point simulator service may be initiated by a signal or message received by the communication components 204 of the management device 104. For still other embodiments, the building simulation system and/or point simulator service many be initiated automatically in response to creation of the corresponding virtual node 304, 402.
Regardless of when the configuration file 214, 320 and the data file 216, 322 are generated, the building simulation system executing the point simulator service may be configured at step 512, subsequent to generations of these files and the creation of the virtual node 304, 402. For example, the processor 208 may configure a building simulation system executing the point simulator service in the virtual node 304, 402 based on a configuration file 214, 320 associated with the virtual node. When configuring the building simulation system and/or point simulator service, multiple point simulator servers may be created based on system operation conditions identified by the data file.
Thereafter, the simulated operation data of a field device may be generated from the building simulation system executing the point simulator service, at step 514, in response to configuring the building simulation system. For example, the processor may generate the simulated operation data of one or more points from the point simulator service based on the data file 216, 322 as described in further detail herein. The point simulator service may include multiple point simulator servers 412, 414, 416, in which each point simulator server of the multiple point simulator servers corresponds to one or more system operation conditions identified by the data file 216, 322. For some embodiments, the simulated point data associated with the point or points from the multiple point simulator servers of the point simulator service may be received at a point simulator poller, and the point simulator poller may generate the simulated operation data of the point or points from the simulated point data of the multiple point simulator servers. As stated above, the configuration file 214, 320 may further include a polling interval. Thus, the simulated point data may be generated by polling the simulated point data from the multiple point simulator servers based on the polling interval. For example, the simulated operation data may be generated by polling the simulated point data at a rate different from that represented by the time intervals of the data file. For this example, the simulated point data may be polled at a rate faster or slower than the rate represented by the sequence of dates and/or times indicated by the data file. In the manner, the timing of the point simulation service may be controlled to accelerate product development by simulating events of interest within a shorter period of time or enhance analyses by focusing on events of interest at optimal time intervals.
The building simulation system executing the point simulator service may provide the simulated operation data to the data consumer 106. For example, the processor 208 of the management device 104 may determine whether to provide the simulated operation data via the communication components 204 at step 516. As stated above, the configuration file 214, 320 may further include a polling interval. Thus, similar to generating the simulated operation data, the simulated point data may be provided by providing the simulated operation data to the data consumer based on a timing interval associated with the polling interval. For example, the simulated operation data may be provided by providing the simulated point data at a rate different from that represented by the time intervals of the data file. For this example, the simulated point data may be provided at a rate faster or slower than the rate represented by the sequence of dates and/or times indicated by the data file.
If the point simulator service determines that the simulated operation data should be provided, either by an activation from the user interface 220 of the I/O interfaces 218 or a determination by the processor 208 based on one or more conditions, then the communication components 204 may provide the simulated operation data to the data consumer 106 at step 518. If the point simulator service determines that the simulated operation data should not be provided, either by an activation from the user interface 220 of the I/O interfaces 218 or a determination by the processor 208 based on one or more conditions, then the communication components 204 may not provide the simulated operation data to the data consumer 106 at step 520. For other embodiments, the point simulator service may also provide the simulated operation data automatically to the data consumer 106 in response to generation of the simulated operation data. For still other embodiments, other steps may be associated with various simulations options. For example, if the user requests a different condition for a point under simulation by the point simulator service, the corresponding virtual node may change the point in the data file of database or cause the point simulator to pause and accept the different condition based on the device or object name of the simulated device.
As stated above, the point simulator properties may include a point instance start 618. It should be noted that, in a general sense, the configuration file may further include a data subset. For some embodiments, the simulated operation data may be generated by the processor 208 by polling a particular subset of the simulated point data from the point simulator servers based on the data subset. For other embodiments, the simulated operation data may be provided by the communication component 204 by providing a particular subset of the simulated operation data to the data consumer based on the data subset. The data subset may specify a beginning of a subset, an ending of a subset, multiple groups of subsets, or a combination of these specifications.
Those skilled in the art will recognize that, for simplicity and clarity, the full structure and operation of all data processing systems suitable for use with the present disclosure are not being depicted or described herein. Also, none of the various features or processes described herein should be considered essential to any or all embodiments, except as described herein. Various features may be omitted or duplicated in various embodiments. Various processes described may be omitted, repeated, performed sequentially, concurrently, or in a different order. Various features and processes described herein can be combined in still other embodiments as may be described in the claims.
It is important to note that while the disclosure includes a description in the context of a fully functional system, those skilled in the art will appreciate that at least portions of the mechanism of the present disclosure are capable of being distributed in the form of instructions contained within a machine-usable, computer-usable, or computer-readable medium in any of a variety of forms, and that the present disclosure applies equally regardless of the particular type of instruction or signal bearing medium or storage medium utilized to actually carry out the distribution. Examples of machine usable/readable or computer usable/readable mediums include: nonvolatile, hard-coded type mediums such as read only memories (ROMs) or erasable, electrically programmable read only memories (EEPROMs), and user-recordable type mediums such as floppy disks, hard disk drives and compact disk read only memories (CD-ROMs) or digital versatile disks (DVDs).
Although an example embodiment of the present disclosure has been described in detail, those skilled in the art will understand that various changes, substitutions, variations, and improvements disclosed herein may be made without departing from the spirit and scope of the disclosure in its broadest form.