Archive for October, 2007

BACnet: Priority Array

The BACnet Priority Array is a specific property type described by the standard as one of the command prioritization mechanisms.

The developer should be aware of the manner in which this property type functions concerning priorities within building control systems.

The Priority Array is further defined by the standard as a read-only property that consists of commands that categorized by priority levels of decreasing order. NULLs may also exist in this property type as well. The highest priority will reside with the lowest array index and a non-NULL value will represent the active command.

Prioritized commands are essentially those commands that are specific towards commandable properties. The following is a parameter example from the BACnet standard:

  • Property Identifier: Commandable_Property
  • Property Value: Desired Value
  • Priority: Priority

The following table from the BACnet standard will examine the common command priorities of the priority array:

Priority Level Application
1 Manual-Life Safety
2 Automatic-Life Safety
3 Available
4 Available
5 Critical Equipment Control
6 Minimum On/Off
7 Available
8 Manual Operator
9 Available
10 Available
11 Available
12 Available
13 Available
14 Available
15 Available
16 Available

Command entities are assigned one of the sixteen priority levels. These assignments are usually a matter for the developer.

The table may include other commands such as the following building automation related applications mentioned in the BACnet standard:

  • Temperature Override
  • Demand Limiting
  • Duty Cycling
  • Scheduling

The following priority array structure example from an actual building automation application was obtained from the Synergy lighting control system developed by Lithonia
Lighting. The following are the local priorities used for the Synergy system:

#define PRIO_PRIORITY_ON 3 /* Synergy Unique */
#define PRIO_PRIORITY_OFF 4 /* Synergy Unique */
#define PRIO_MANUAL_OPERATION 8 /* only used with flash to find */
#define PRIO_NORMAL_OPERATION 10 /* Synergy Unique */
#define PRIO_PRIORITY_LOW 13 /* Synergy Unique */

Because the BACnet standard does not specifically indicate the automation application of lighting controls. The developers at Lithonia Lighting essentially made their own priority decisions when they implemented the BACnet protocol in the Synergy design.

The following paragraph was obtained from a PDF source that describes the priority assignment for effective operation of the lighting control system by Lithonia Lighting:

“It is strongly suggested that writes intending to turn lighting ON be made at command priority 10 and writes intending to turn lighting OFF write a NULL unless the intention is to forcibly override the normal functioning of the lighting controls.”

Written by: Scott Cosby
© Chipkin Automation Systems 2007

Did you like this post?

Subscribe To The RSS Feed!
To catch many more articles like this in the future, make it easy on yourself and subscribe to me via RSS. You will not regret it!

Do you have a question?
We will do our best to try and solve any building automation, protocol, integration problem you may have

Wireless Sensor And Web Applications Product

The Arch Rock Corporation has developed an effective wireless sensor and web services system in their Primer Pack/IP product.

This product has unique qualities that would be beneficial to the following areas of building automation:

  • Data Management
  • Building Safety
  • Security Applications
  • Environmental Controls

The Primer Pack/IP will offer the end-user the option to move from a static, wired system to a dynamic wireless network able to share valuable data and information to all areas of operation through Ethernet, WiFi, and other connections. The wireless network allows the user a more effective and simple integration process as well.

The Primer Pack/IP is described as a complete standards-based, wireless sensor network (WSN) application development and deployment platform. Composed of a service-oriented architecture (SOA), Internet Protocol (IP)-based networking, and a secure, reliable, responsive, low-power mesh networking.

Primer Pack/IP Set-up

The process requires the separation of the logical communication of data in such functions as naming, routing and security from the physical links that carry the data.

Recently, developers of communication networks have adopted the Internet Protocol (IP) as their common routing protocol, along with transport protocols that enable data bits to be delivered properly to their destination.
The Primer Pack/IP product should work well within BACnet due to the protocol’s communication through RS232, RS485, Ethernet, and others that conform to BACnet.

Another advantage for the BACnet protocol would be through the various services included in the protocol. Such as the following services:

  • Data Sharing
  • Alarms
  • Scheduling
  • Remote Device Management

Primer Pack/IP users can actually develop custom applications to monitor physical conditions without special programming that’s usually required to build sensor network applications. Sensor data becomes immediately available to the plant manager or field worker on the desired mobile IP device, or to the office worker in a web browser environment.

This technology removes the limitations of wired sensors, and develops networks to make that information readily accessible. In addition, the leading internet and web technology provides a platform for the networks and to further the development of varying information sources.

The San Francisco-based Arch Rock Corporation is a developer that concentrates on products and technology for wireless sensor networks. The corporation’s goal is to connect the physical and digital world through wireless sensor networks, where the data can be simply viewed, analyzed, and managed by the user.

For more information about the Arch Rock Corporation and its products, visit the following link: http://www.archrock.com/
Written by: Scott Cosby
© Chipkin Automation Systems 2007

Did you like this post?

Subscribe To The RSS Feed!
To catch many more articles like this in the future, make it easy on yourself and subscribe to me via RSS. You will not regret it!

Do you have a question?
We will do our best to try and solve any building automation, protocol, integration problem you may have

BACnet: Life Safety Objects

The BACnet standard describes two types of Life Safety objects. The two types of these objects include:

  • Life Safety Point Object Type
  • Life Safety Zone Object Type

The Life Safety Point object type is defined by the standard as those objects related to fire, safety, and security applications. The condition of this object type is determined by the following two factors:

  • Mode
  • State

The object mode is usually under the control of the device operator. The object state indicates the controller condition depending on the internal logic of the device.

Life Safety Point object applications can include the following automation related devices:

  • Automatic Fire Detectors
  • Sirens
  • Pull Stations

The following table will present the properties and related datatypes of the Life Safety Point object from the BACnet standard:

Property Datatype
Object_Identifier BACnet Object Identifier
Object_Name Character String
Object_Type BACnet Object Type
Present_Value BACnet Life Safety State
Tracking_Value_ BACnet Life Safety State
Description Character String
Device_Type Character String
Status_Flags BACnet Status Flags
Event_State BACnet Event State
Reliability BACnet Reliability
Out_of_Service Boolean
Mode BACnet Life Safety Mode
Accepted_Modes List of BACnet Life Safety Mode
Time_Delay Unsigned
Notification_Class Unsigned
Life_Safety_Alarm_Values List of BACnet Life Safety State
Alarm_Values List of BACnet Life Safety State
Fault_Values List of BACnet Life Safety State
Event_Enable BACnet Event Transition Bits
Acked_Transitions BACnet Event Transition Bits
Notify_Type BACnet Notify Type
Event_Time_Stamps BACnet Array (3) of BACnet Time Stamp
Silenced BACnet Silenced State
Operation_Expected BACnet Life Safety Operation
Maintenance_Required BACnet Maintenance
Setting Unsigned
Direct_Reading Real
Units BACnet Engineering Units
Member_Of List of BACnet Device Object Reference
Profile_Name Character String

The Life Safety Zone object type has similar conditional and property qualities as the Life Safety Point object type, but the focus is concentrated on a group of Life Safety Point and Zone objects.

The following table will present the properties and related datatypes of the Life Safety Zone object from the BACnet standard:

Property Datatype
Object_Identifier BACnet Object Identifier
Object_Name Character String
Object_Type BACnet Object Type
Present_Value BACnet Life Safety State
Tracking_Value BACnet Life Safety State
Description Character String
Device_Type Character String
Status_Flags BACnet Status Flags
Event_State BACnet Event State
Reliability BACnet Reliability
Out_of_Service Boolean
Mode BACnet Life Safety Mode
Accepted_Modes List of BACnet Life Safety Mode
Time_Delay Unsigned
Notification_Class Unsigned
Life_Safety_Alarm_Values List of BACnet Life Safety State
Alarm_Values List of BACnet Life Safety State
Fault_Values List of BACnet Life Safety State
Event_Enable BACnet Event Transition Bits
Acked_Transitions BACnet Event Transition Bits
Notify_Type BACnet Notify Type
Event_Time_Stamps BACnet Array (3) of BACnet Time Stamp
Silenced BACnet Silenced State
Operation_Expected BACnet Life Safety Operation
Maintenance_Required Boolean
Zone_Members List of BACnet Device Object Reference
Member_Of List of BACnet Device Object Reference
Profile_Name Character String

The developer should pay attention to the Mode and State qualities of both Life Safety object types.

The following structure example from the standard will examine both Life Safety object types from actual automation applications. Specifically, the Point object will focus on a building smoke detector. The Zone object will examine the fire zone within a building.

Life Safety Point Object Example:
Property: Object_Identifier = (Life Safety Point, Instance 2)
Property: Object_Name = “SMK3W”
Property: Object_Type = LIFE_SAFETY_POINT
Property: Present_Value = PREALARM
Property: Tracking_Value = PREALARM
Property: Description = “Floor 3, West Zone Smoke Detector”
Property: Device_Type = “Old Smokey model 123″
Property: Status_Flags = {TRUE, FALSE, FALSE, FALSE}
Property: Event_State = LIFE_SAFETY_ALARM
Property: Reliability = NO_FAULT_DETECTED
Property: Out_Of_Service = FALSE
Property: Mode = ON
Property: Accepted_Modes = {ENABLED, DISABLED, TEST}
Property: Time_Delay = 10
Property: Notification_Class = 39
Property: Life_Safety_Alarm_Values = (ALARM)
Property: Alarm_Values = (PREALARM)
Property: Fault_Values = (FAULT)
Property: Event_Enable = {TRUE, TRUE, TRUE}
Property: Acked_Transitions = {TRUE, TRUE, TRUE}
Property: Notify_Type = ALARM
Property: Event_Time_Stamps = ((23-MAR-95, 18:50:21.2), (*-*-*, *:*:*.*),(23-MAR-95, 19:01:34.0))
Property: Silenced = SILENCE_AUDIBLE
Property: Operation_Expected = RESET_ALARM
Property: Maintenance_Required = NONE
Property: Setting = 50
Property: Direct_Reading = 84.3
Property: Units = PERCENT-OBSCURATION-PER-METER
Property: Member_Of = ((Life Safety Zone, Instance 5))

Life Safety Zone Object Example:
Property: Object_Identifier = (Life Safety Zone, Instance 2)
Property: Object_Name = “SMK3″
Property: Object_Type = LIFE_SAFETY_ZONE
Property: Present_Value = PREALARM
Property: Tracking_Value = PREALARM
Property: Description = “Floor 3 Smoke”
Property: Status_Flags = {TRUE FALSE, FALSE, FALSE}
Property: Event_State = LIFE_SAFETY_ALARM
Property: Reliability = NO_FAULT_DETECTED
Property: Out_Of_Service = FALSE
Property: Mode = ON
Property: Accepted_Modes = {ENABLED, DISABLED, TEST}
Property: Time_Delay = 10
Property: Notification_Class = 39
Property: Life_Safety_Alarm_Values = (ALARM)
Property: Alarm_Values = (PREALARM)
Property: Fault_Values = (FAULT)
Property: Event_Enable = {TRUE, TRUE, TRUE}
Property: Acked_Transitions = {TRUE, TRUE, TRUE}
Property: Notify_Type = ALARM
Property: Event_Time_Stamps = ((23-MAR-95, 18:50:21.2), (*-*-*, *:*:*.*),(23-MAR-95,19:01:34.0))
Property: Silenced = UNSILENCED
Property: Operation_Expected = SILENCE_AUDIBLE
Property: Maintenance_Required = NONE
Property: Zone_Members = ((Life Safety Point, Instance 22),(Life Safety Point, Instance 23))
Property: Member_Of = ((Life Safety Zone, Instance 5))

Written by: Scott Cosby

© Chipkin Automation Systems 2007

Did you like this post?

Subscribe To The RSS Feed!
To catch many more articles like this in the future, make it easy on yourself and subscribe to me via RSS. You will not regret it!

Do you have a question?
We will do our best to try and solve any building automation, protocol, integration problem you may have

BACnet: Averaging Object

The Averaging object is described by the BACnet standard as a recording medium of visible value characteristics over a specific time interval.These specific sampled values may take the following forms in the object:

  • Boolean
  • Integer
  • Unsigned
  • Enumerated
  • Real

The following table will present the actual properties and associated datatypes of the Averaging object from the BACnet standard:

Property Datatype
Object_Identifier BACnet Object Identifier
Object_Name Character String
Object_Type BACnet Object Type
Minimum_Value Real
Minimum_Value_Timestamp BACnet Date Time
Average_Value Real
Variance_Value Real
Maximum_Value Real
Maximum_Value_Timestamp BACnet Date Time
Description Character String
Attempted_Samples Unsigned
Valid_Samples Unsigned
Object_Property_Reference BACnet Device Object Property Reference
Window_Interval Unsigned
Window_Samples Unsigned
Profile_Name Character String

The developer should pay particular attention to the following properties of this object:

  • Window_Interval property
  • Window_Samples property
  • Object_Property_Reference property

The Window_Interval property indicates the period of time, usually in seconds which the minimum, maximum, and average values are calculated.

The Window_Samples property represents the number of samples to be taken during the timeperiod within the Window_Interval property. In addition, the Window_Samples must be greater than zero and all implementations should support at least 15 samples. The sample may represent an instant or continuously calculated sample, which will be considered a matter for the developer.

The Object_Property_Reference property identifies the object and property whose value will be sample during the Window_Interval. The referenced object may reside in the device that contains the Averaging object or within other supported devices.

The Averaging object uses a specialized technique referred by the standard as a “sliding window” that maintains a buffer of samples distributed over the specified time interval. At every time interval a new sample is replaces the oldest sample from the buffer.

The buffer maintains an indication for each sample that permits the average calculation and minimum/maximum algorithm to determine the number of valid samples in the buffer.

The following example from the BACnet standard will present the Averaging object structure from an actual automation application. Specifically, this example focuses on the average and maximum electrical usage in kilowatts (KW) on a specific floor of a building:

Property: Object_Identifier = (Averaging, Instance 1)
Property: Object_Name = “FLR 12 DEMAND”
Property: Object_Type = AVERAGING
Property: Minimum_Value = 2.4
Property: Minimum_Value_Timestamp = (16-DEC-1999,13:15:07.32)
Property: Average_Value = 12.7
Property: Maximum_Value = 18.8
Property: Maximum_Value_Timestamp = (16-DEC-1999,13:06:12.19)
Property: Description = “Floor 12 Electrical Demand”
Property: Attempted_Samples = 15
Property: Valid_Samples = 14
Property: Object_Property_Reference = (Analog Input, Instance 12)
Property: Window_Interval = 900
Property: Window_Samples = 15

Written by: Scott Cosby

© Chipkin Automation Systems 2007

Did you like this post?

Subscribe To The RSS Feed!
To catch many more articles like this in the future, make it easy on yourself and subscribe to me via RSS. You will not regret it!

Do you have a question?
We will do our best to try and solve any building automation, protocol, integration problem you may have

BACnet: Pulse Converter Object

The Pulse Converter object is described by the BACnet standard as a process monitor represented by counts or pulses.

The type of processes monitored can include those tasks in maintaining a building. Such as the following examples:

  • Power Usage
  • Water Usage
  • Natural Gas Usage

The Pulse Converter object might represent a physical input. As an alternative, it might acquire the data from the Present_Value of an Accumulator object, representing an input in the same device as the Pulse Converter object.

The following table will present the actual properties and associated datatypes of the Group object from the BACnet standard:

Property Datatype
Object_Identifier BACnet Object Identifier
Object_Name Character String
Object_Type BACnet Object Type
Description Character String
Present_Value Real
Input_Reference BACnet Object Property Reference
Status_Flags BACnet Status Flags
Event_State BACnet Event State
Reliability BACnet Reliability
Out_of_Service Boolean
Units BACnet Engineering Units
Scale_Factor Real
Adjust_Value Real
Count Unsigned
Update_Time BACnet Date Time
Count_Change_Time BACnet Date Time
Count_Before_Change Unsigned
COV_Increment Real
COV_Period Unsigned
Notification_Class Unsigned
Time_Delay Unsigned
High_Limit Real
Low_ Limit Real
Deadband Real
Limit_Enable BACnet Limit Enable
Event_Enable BACnet Event Transition Bits
Acked_Transitions BACnet Event Transition Bits
Notify_Type BACnet Notify Type
Event_Time_Stamps BACnet Array (3) of BACnet Time Stamp
Profile_Name Character String

The developer should pay close attention to a specific property in the preceding table. The specific property is the Adjust_Value property. This property allows the developer to adjust the Present_Value property by writing to the Adjust_Value property, which also causes an adjustment to the Count property as well.

The following example from the BACnet standard will present the Pulse Converter object structure from an actual automation application. This example will specifically focus on the utility usage in a building:

Property: Object_Identifier = (Pulse Converter, Instance 1)
Property: Object_Name = “Meter 5″
Property: Object_Type = PULSE_CONVERTER
Property: Description = “”
Property: Present_Value = 125.0
Property: Input_Reference = ((Accumulator, Instance 1), Present_Value)
Property: Status_Flags = {FALSE, FALSE, FALSE, FALSE}
Property: Event_State = NORMAL
Property: Out_Of_Service = FALSE
Property: Units = LITERS_PER_HOUR
Property: Scale_Factor = 0.5
Property: Adjust_Value = 500.0
Property: Count = 250
Property: Update_Time = (10-JUL-01,11:40:21.0),
Property: Count_Change_Time = (10-JUL-01,11:30:01.0),
Property: Count_Before_Change = 523
Property: COV_Increment = 10.0
Property: COV_Period = 3600
Property: Notification_Class = 5
Property: Time_Delay = 0
Property: High_Limit = 1000.0
Property: Low_Limit = 0.0
Property: Deadband = 0.0
Property: Limit_Enable = {FALSE, TRUE}
Property: Event_Enable = {TRUE, FALSE, TRUE}
Property: Acked_Transitions = {TRUE, TRUE, TRUE}
Property: Notify_Type = ALARM
Property: Event_Time_Stamps = ((12-JUL-01,18:50:21.2), (*-*-*,*:*:*.*), (12-JUL-01,19:01:34.0))

Written by: Scott Cosby

© Chipkin Automation Systems 2007

Did you like this post?

Subscribe To The RSS Feed!
To catch many more articles like this in the future, make it easy on yourself and subscribe to me via RSS. You will not regret it!

Do you have a question?
We will do our best to try and solve any building automation, protocol, integration problem you may have