Comparison of CAB, CAL, CEN and BACnet Binary Output Objects

advertisement
ISO / IEC JTC1/SC25 WG1
N786
WG1 (Tokyo-2, Bertsch) 3
Date: May 25, 1998
ISO / IEC JTC1 SC25 WG1
Interconnection of Information Technology Equipment
Home Electronic System
Title:
Comparison of CAB, CAL, CEN and BACnet Binary Output
Objects
Source:
Canada
Project:
Working Group 1
Requested Action: To be used in developing building automation standards
Update documents N664 Rev B and N616
Obsolete:
None
Reason:
Recommendation for Working Group
Thread:
2 (Objects and Messages for HES Building Control Systems)
5 (HES Applications Model and Services)
8 (Terminology)
Distribution:
All Working Group 1 members
COMPARISON OF CAB, CAL, CEN and BACnet BINARY OUTPUT OBJECTS
Introduction
Over the last several years, discussions within WG1 have revolved around several Home and
Building Automation systems. It is a monumental task indeed to produce a worldwide
standard with such a diverse range of needs and various market forces. WG1 has recognized
this through the development of interim steps (stepping stones) such as the UI, technical
reports and comparison reports; a number of which passed majority agreement. This
document provides another stepping stone, which may be a very useful end-goal on its own.
“Thread 2” (Objects and Messages for HES Building Control Systems) discussions have
typically revolved around listing the objects and methods of various systems and proposing
them. Although this does move us forward, perhaps another important task should be done.
If we look at just one object, even a simple object such as a Binary Output object, there is a
tremendous variation on various systems’ specifications.
Perhaps, even more important, the methods to compare them are very difficult. Each uses its
own terminology, and sometimes contradict other systems’ terminology. In some cases
information is missing, or unclear. There are cases where references must be made in many
places in the documents to reveal certain information.
At lot of progress around the world was made with the OSI model for layer communications
systems. The model is basically a specification on how to specify using common terms and
references.
Similiarly, there seems to be a need to do the same for the Home and Building Automation
Systems.
Therefore, we propose that standard terminology and requirements be established for
HBES systems. The Home and Building Automation systems that follow the rules would
then meet the “HBES Terminology Standard”.
For example, CAL, CAB, BACnet, CEN or any other system would produce their standards
as they have in the past, but in order to meet the international “HBES Terminology
Standard”, must include a section that is written as defined as in HBES standard. It would
not dictate the details of the standard, but how it is to be presented.
-1-
This accomplishes a number of things:
1) Users of the systems would have a common format to help them decide on which
system to use.
2) Developers of each system would have a good opportunity to see the differences
of the various other systems, and potentially move toward the “better system” or
incorporate the benefits of other systems (without the common standard; there
would too much exploratory work to investigate).
3) WG1 would be able to more readily more toward a common HBES system by
having the proponents described in common terminology; it is an appropriate
stepping stone to full standardization.
4) The deliverables are clear and obtainable for WG1 to achieve.
5) In the process of converting to the common terminology the systems may discover
mistakes or areas needing clarifications and therefore improve their own
specifications.
6) A higher profile, and potentially more participation, is given to WG1 by providing
much needed information to the industry.
7) Clarifies what each system means by certain terms, as example, “binary output
object” is a simple object in CAL without timers, whereas CAB includes timers.
8) Any new system being designed in the future can more readily build upon the
success and failures of systems in the past, without having to learn all the details
and particulars of each system'’ terminology. It helps to stop the divergent
directions of new systems.
9) It improves the specifications for gateways and communications across different
systems.
In section #1 below, the various systems are listed in tables with their existing Binary Output
Object (or equivalent) specifications. The original terminology will be listed. Where
possible the tables have been expanded to include additional relevant information.
Section #2 defines the specifications for complying to the “HBES Terminology Standard”.
Section #3 includes example tables that would meet the “HBES Terminology Standard” for
the Binary Output Object for BACnet, CAB, CAL and CEN.
Section #4 summarizes the recommendations.
-2-
SECTION 1 – ORIGINAL SYSTEM SPECIFICATIONS
BACNet Original Specification
Binary Output Object Type
Property Identifier
Property Datatype
Conformance Code
Object_Identifier
Object_Name
Object_Type
Present_Value
Description
Device_Type
Status_Flag
Event_State
Reliability
Out_Of_service
Polarity
Inactive_Text
Active_Text
Change_Of_State_Time
Change_Of_State_Count
Time_Of_State_Count_Reset
Elapsed_Active_Time
Time_Of_Active_Time_Reset
Minimum_Off_Time
Minimum_On_Time
Priority_Array
Relinquish_Default
Time_Delay
Notification_Class
Feedback_Value
Event_Enable
Acked_Transitions
Notify_Type
BACnetObjectIdentifier
CharacterString
BACnetObjectType
BACnetBinaryPV
CharacterString
CharacterString
BACnetStatusFlags
BACnetEventState
BACnetReliability
BOOLEAN
BACnetPolarity
CharacterString
CharacterString
BACnetDateTime
Unsigned
BACnetDateTime
Unsigned32
BACnetDateTime
Unsigned32
Unsigned32
BACnetPriorityArray
BACnetBinaryPV
Unsigned
Unsigned
BACnetBinaryPV
BACnetEventTransitionBits
BACnetEventTransitionBits
BACnetNotifyType
Read
Read
Read
Read/Write
Optional
Optional
Read
Read
Optional
Read
Read
Optional1
Optional1
Optional2
Optional2
Optional2
Optional3
Optional3
Optional
Optional
Read
Read
Optional4
Optional4
Optional4
Optional4
Optional4
Optional4
-3-
CAB Original Specification
Digital-Output
Property
Descriptor
CAB Data Type
Response Values
Read/Write
pv-discrete
state
alarm-state
alarm-category
contact-condition
condition-to-alarm
operating-mode
digital-feedback
pv-on-text
pv-off-text
schedule
runtime-enable
runtime-value
runtime-time
runtime-date
runtime-limit
runtime-alarm-cat
runtime-reset
cos-count-enable
cos-count
cos-count-limit
cos-count-window
cos-count-alarm-cat
point-text-1
point-text-2
point-alarm-text-1
point-alarm-text-2
point-mask
CAB-String-10
CAB-State
CAB-Event-Type
CAB-Alarm-Category
CAB-Contact-Condition
CAB-Condition-To-Alarm
CAB-Operating-Mode
CAB-On-Off
CAB-String-10
CAB-String-10
CAB-String-12
CAB-State
INTEGER(0..65535)
CAB-Time
CAB-Date
INTEGER(0..65535)
CAB-Alarm-Category
INTEGER(0..65535)
CAB-State
INTEGER(0..65535)
INTEGER(0..65535)
INTEGER(0..65535)
CAB-Alarm-Category
CAB-String-40
CAB-String-40
CAB-String-80
CAB-String-80
Printable Text
Enable/Disable
Event Type 1,2,3,4,11,15
Critical/Cautionary/Maintenance
On/Off
On/Off/Not-equal-To-Feedback
Auto/Manual
On/Off
Printable Text
Printable Text
Printable Text
Enabled/Disabled
Hours
Time
Date
Maximum Accumulated Value
Critical/Cautionary/Maintenance
Reset Accumulated Value
Enabled/Disabled
Accumulated Count
Maximum Accumulated Count
Count
Critical/Cautionary/Maintenance
Printable Text
Printable Text
Printable Text
Printable Text
Read/Write
Read/Write
Read
-4-
Read/Write
Read/Write
Read/Write
Read
Read/Write
Read/Write
Read/Write
Read/Write
Read/Write
Read
Read
Read/Write
Read/Write
Read/Write
Read/Write
Read/Write
Read/Write
Read/Write
Read/Write
Read/Write
Read/Write
Read/Write
Read/Write
CAL Original Specification
Binary Switch
Instance Variables
Name
Category
Type
Mandatory
current_position
default_position
function_of_position
persistence
reporting_condition
dest_address
previous_value
report_header
Read/Write
Read
Read
Read
Read/Write
Read/Write
Read
Read/Write
boolean
boolean
data(8)
boolean
data
data(2-16)
Mandatory
Optional
Optional
Optional
Optional
Optional
Optional
Optional
data
-5-
CEN Original Specification
Binary Output FLN
Property Identifier
Property
Datatype
Read/Write
Property
Kind
Object_Id_Number
Object_Type
Object_Name
Present_Value
Status
Statetext
Priority
Description
Commanded_Value
Total_Runtime
Intervall_Runtime
Intervall_Runtime_Limit
Maintenance/Out_Of_Service_Fla
g
Event_Disabled
Alarm_Disabled
Acknowledged_States
Alarm_Acknowledge
Default
Polarity
Minimum_Off_Time
Minimum_On_Time
Time_Delay
24 bits
8 bits
Character String
8 bits
8 bits
8 bits
8 bits
Character String
8 bits
32 bits
32 bits
32 bits
8 bits
Read
Read
Read
Read/Write
Read
Read
Read/Write
Read
Read
Read
Read/Write
Read/Write
Read
Mandatory
Mandatory
Mandatory
Mandatory
Mandatory
Optional
Optional
Optional
Optional
Optional
Optional
Optional
Optional
8 bits
8 bits
8 bits
8 bits
8 bits
8 bits
32 bits
32 bits
32 bits
Read/Write
Read/Write
Read/Write
Read
Read
Read
Read
Read
Read
Optional
Optional
Optional
Optional
Engineering
Engineering
Engineering
Engineering
Engineering
-6-
COMMENTS ON ORIGINAL SPECIFICATIONS
Some example issues with the existing terminology of the systems include:
1. The BACnet spec includes specific enumerated data types in the data type columns,
instead of only showing the basic data types and “normalizing” (data type only, not
dependant on specific usage). It would be useful to know what range of values can be
expected, without getting complicated by the specifics of the particular data member.
For example, in BACnet, “Event_State” and “Reliability” are the same data type and
same limits (65535), but are listed differently in the tables as “BACnetEventState” and
“BACnetReliability”. It would be useful to know that they are the same without further
investigations. A similar situation occurs for CAB.
2. The CAB spec does not include “Mandatory” descriptions for the data members. In the
main document (section 6.0) there is a mention that “mandatory” is described in the
Appendix E. However, Appendix E does not include such references.
3. At first glance, the CAL spec seems to include single bit data for some of its data
members. However, only upon further examination is it clarified that “boolean” (e.g.
“current_position”) is represented by using “00 Hex” and “01 Hex” 8-bit bytes.
4. The CAL spec for “function_of_position” indicates “data(8)” which one would assume
to allow any valid data, but upon further examination is actually intended to be a
character string.
5. Each system deals with dates, times and character strings differently, including the “Year
2000” issue. Again, this is not initially apparent.
6. The BACnet spec is inconsistent in its use of the data type; sometimes they are
“normalized” (such as “Unsigned32”) and other times they are not “normalized” (such as
“BACnetObjectEventState”).
The enumeration of even simple functions such as “binary” are not common through the
systems, and therefore, perhaps we also should include the actual enumerated actual values
(for binary?). For example, the CEN spec allows a third value, “invalid” while the others do
not. To further complicate matters, CAB uses “2” for false, while the others use “0” for false.
-7-
SECTION 2 – HBES SYSTEM SPECIFICATIONS
Our proposal is to insert into section 6 of document N664 Rev B the following text (or into a new
document) -------------------To be classified as an “HBES terminology standard”, the system must include the following
table for each object:
HBES-Object Identifier:
Object)
HBES-Data Member
Identifier
(Identifier given to the
HBES-Data Member
Data Type
HBES-Data HBES-Data
Member
Member
Read/Write Mandatory
Type
HBES DEFINITIONS
HBES-Object Identifier
Identifier or name given to the object
HBES-Data-Member Identifier
Identifier or name given to the data members within the
object
HBES-Data Member Data Type
Only HBES standardized terms for the type of data for
each data member should be used. The data type
defines:
a) size of the data member (maximum size
expected; e.g. “Unsigned-8” is 8 bits)
b) whether the size is fixed or variable (e.g.
“Unsigned-8” is fixed, while “UnsignedInteger” is variable length)
c) basic structure utilized (e.g. “Bit-Array(8)”
infers that individual bits contain
-8-
information, while “Unsigned-8” does not).
The standardized allowed “HBES-Data-Member Data Types” are:
Bit
This is to be used for data members restricted to only two choices and intended to be
carried in one bit of data.
Bit-Array(length)
This is to be used for data members containing a number of binary selections that are
grouped together or where there is meaning attached to individual bits within the array.
Appropriate usage includes “Status” for CEN Binary Object and “Status_Flags” for
BACnet Binary Output Object. The length must be either a range of values or more than
one.
Unsigned-8
Used for 8-bit information (00 Hex to FF Hex), where the individual bits do not have
meaning, but the overall value does have meaning. This is to be used for 8-bit data which
is not specified in any other type definition.
Signed-8
Used for 8 bit information (00 Hex to FF Hex), where the individual bits do not have
meaning, but the overall value does have meaning and is to be used only if the numbers
represented are in the range of –128 to 127.
Byte-Array(length)
This is to be used for items containing a number of bytes that are grouped together and
are not specified in any other type definition. The length must be either a range of values
more than one.
Character-String(length)[Variant Z]
This is to be used for items containing a number of bytes that are grouped together in
which the bytes are intended to be limited to printable ASCII values. This variant
contains the string of printable ASCII characters with no leading or trailing reference
bytes. The length can be single values or a range of values. This variant is used for the
CAB and CAL systems.
-9-
Character-String[Variant #]
This is to be used for items containing a number of bytes that are grouped together in
which the bytes are intended to be limited to printable ASCII values. This variant
includes the first byte as the length of the string. This variant is used for the CEN
protocol. Maximum length of string is 254.
Character-String[Variant Diff]
This is to be used for items containing a number of bytes that are grouped together in
which the bytes are intended to be limited to printable ASCII values. This variant allows
a number of different ASCII formats to be used. This variant is used for the BACnet
protocol.
Unsigned-16
2 bytes, 16 bits, 0 to 65535
Signed-16
2 bytes, 16 bits, -32768 to 32767
Unsigned-24
3 bytes, 24 bits, 0 to 16,777,215
Unsigned-32
4 bytes, 32 bits, 0 to 4,294,967,296
Signed-32
4 bytes, 32 bits, -2,147,483,648 to 2,147,483,647
Unsigned-Integer
1 and up(L) bytes, 0 to (2(8*L)-1)
Signed-Integer
1 and up(L) bytes, -2(8*L-1) to (2(8*L-1)-1)
-10-
Time[Variant 3I]
Three unsigned integers are used to hold the time value; the hour (first integer), the
minute (second integer) and the second (third integer). This variant is used in the CAB
system.
Time[Variant 3C]
Three character pairs are used to hold the time value; the hour (first character pair), the
minute (second character pair) and the second (third character pair). “Don’t care” fields
are done through the use of non-ASCII characteristics in its place (in order from last to
first). This variant is used in the CAL system.
Time[Variant 4I]
Four unsigned integers are used to hold the time value; the hour (first integer), the minute
(second integer), the second (third integer) and the hundredths of second (four integer).
“Don’t care” fields are done through the use of FF Hex. This variant is used in the
BACnet system.
Date[Variant 3I]
Three unsigned integers are used to hold the data value; day of month (first integer),
month (second integer) and year (third integer from 1980). This variant is used in the
CAB protocol.
Date[Variant 3C]
Three character pairs are used to hold the data value; year (first character pair), month
(second character pair) and day of month (third character pair). “Don’t care” fields are
done through the use of non-ASCII characteristics in its place (in order from last to first).
This variant is used in the CAL protocol.
Date[Variant 4I]
Four unsigned integers are used to hold the data value; year (first integer from 1900),
month (second integer), day of month (third integer) and day of week (fourth integer).
“Don’t care” fields are done through the use of FF Hex. This variant is used in the
BACnet protocol.
HBES-Data Member Read/Write Type Read and/or Write capacity for data member
There are three options allowed:
-11-
Read-only – information can be read only. It is also used for engineering
information (such as “Polarity” in CEN), and for data that cannot
be directly written to but might change due to other circumstances
(such as “Acked-Transistions” in BACnet)
Read/Write – information can be read from or written to over the network
Write-only – information such as passwords that can only be written to
HBES-Data Member Mandatory
Whether the data member is mandatory or not
There are three options allowed:
Mandatory – object must contain the data member
Optional – object may contain the data member
Engineering – data members of object which are not handled during
normal operation, but only during commissioning and maintenance
(such as “Polarity” in CEN)
We also propose that all of the above defined terms be inserted into the Terminology document
(N616).
-12-
SECTION 3 – HBES EXAMPLES
[In the document N664B it may or may not be appropriate to also include the following
examples.]
Using the Binary Output Object (or nearest equivalent) for BACnet, CAB, CAL and CEN, the
appropriate tables are written. Although the tables are intended to follow the specifications of
the various systems, they may contain errors, and should only be taken as examples. This is
because the appropriate committees have not reviewed this document, that misinterpretations
may have occurred, or plan errors may have been incorporated. It is suggested that each
committee review the appropriate tables and respond with corrections.
-13-
BACnet in HBES Terminology
HBES-Object Identifier:
Binary Output Object Type
HBES-Data Member
Identifier
HBES-Data Member
Data Type
Object_Identifier
Object_Name
Object_Type
Present_Value
Description
Device_Type
Status_Flag
Event_State
Reliability
Out_Of_service
Polarity
Inactive_Text
Active_Text
Change_Of_State_Time
Change_Of_State_Count
Time_Of_State_Count_Reset
Elapsed_Active_Time
Time_Of_Active_Time_Rese
t
Minimum_Off_Time
Minimum_On_Time
Priority_Array
Relinquish_Default
Time_Delay
Notification_Class
Feedback_Value
Event_Enable
Acked_Transistions
Notify_Type
Unsigned-32
CharacterString[Variant Diff]
Unsigned-16
Unsigned-8
CharacterString[Variant Diff]
CharacterString[Variant Diff]
Bit-Array(4)
Unsigned-16
Unsigned-16
Unsigned-8
Unsigned-8
CharacterString[Variant Diff]
CharacterString[Variant Diff]
Date[Variant 4I], Time[Variant 4I]
Unsigned-Integer
Date[Variant 4I], Time[Variant 4I]
Unsigned-32
Date[Variant4I], Time[Variant 4I]
Read-only
Read-only
Read-only
Read/Write
Read/Write
Read/Write
Read-only
Read-only
Read/Write
Read-only
Read-only
Read/Write
Read/Write
Read-only
Read/Write
Read-only
Read/Write
Read-only
Mandatory
Mandatory
Mandatory
Mandatory
Optional
Optional
Mandatory
Mandatory
Optional
Mandatory
Mandatory
Optional1
Optional1
Optional2
Optional2
Optional2
Optional3
Optional3
Unsigned-32
Unsigned-32
Read/Write
Read/Write
Read-only
Read/Write
Read/Write
Read/Write
Read-only
Read/Write
Read-only
Read/Write
Optional
Optional
Mandatory
Mandatory
Optional4
Optional4
Optional4
Optional4
Optional4
Optional4
Unsigned-8
Unsigned-Integer
Unsigned-Integer
Unsigned-8
Bit-Array(3)
Bit-Array(3)
Unsigned-8
-14-
HBES-Data HBES-Data
Member
Member
Read/Write Mandatory
Type
CAB in HBES Terminology
HBES-Object Identifier:
HBES-Data Member
Identifier
pv-discrete
State
alarm-state
alarm-category
contact-condition
Condition-to-alarm
Operating-mode
digital-feedback
pv-on-text
pv-off-text
Schedule
runtime-enable
runtime-value
runtime-time
runtime-date
runtime-limit
runtime-alarm-cat
runtime-reset
cos-count-enable
cos-count
cos-count-limit
cos-count-window
cos-count-alarm-cat
point-text-1
point-text-2
point-alarm-text-1
point-alarm-text-2
point-mask
Digital-Output
HBES-Data Member
Data Type
Character-String(0-10)[Variant Z]
Unsigned-8
Unsigned-8
Unsigned-8
Unsigned-8
Unsigned-8
Unsigned-8
Unsigned-8
Character-String(0-10)[Variant Z]
Character-String(0-10)[Variant Z]
Character-String(0-12)[Variant Z]
Unsigned-8
Unsigned-16
Time[Variant 3I]
Date[Variant 3I]
Unsigned-16
Unsigned-8
Unsigned-16
Unsigned-8
Unsigned-16
Unsigned-16
Unsigned-16
Unsigned-8
Character-String(0-40)[Variant Z]
Character-String(0-40)[Variant Z]
Character-String(0-80)[Variant Z]
Character-String(0-80)[Variant Z]
Bit-Array(16)
-15-
HBES-Data
Member
Read/Write
Type
HBES-Data
Member
Mandatory
Read/Write
Read/Write
Read-only
Read/Write
Read/Write
Read/Write
Read-only
Read/Write
Read/Write
Read/Write
Read/Write
Read/Write
Read-only
Read-only
Read/Write
Read/Write
Read/Write
Read/Write
Read/Write
Read/Write
Read/Write
Read/Write
Read/Write
Read/Write
Read/Write
Read/Write
Read-only
Engineering
CAL in HBES Terminology
HBES-Object Identifier:
HBES-Data Member
Identifier
current_position
default_position
function_of_position
persistence
reporting_condition
dest_address
previous_value
report_header
Binary Switch
HBES-Data Member
Data Type
Unsigned-8
Unsigned-8
Character-String(8)[Variant Z]
Unsigned-8
Byte-Array()
Byte-Array(2-16)
Unsigned-8
Byte-Array()
-16-
HBES-Data
Member
Read/Write
Type
HBES-Data
Member
Mandatory
Read/Write
Read-only
Read-only
Read-only
Read/Write
Read/Write
Read-only
Read/Write
Mandatory
Optional
Optional
Optional
Optional
Optional
Optional
Optional
CEN in HBES Terminology
HBES-Object Identifier:
HBES-Data Member
Identifier
Object_Id_Number
Object_Type
Object_Name
Present_Value
Status
Statetext
Priority
Description
Commanded_Value
Total_Runtime
Intervall_Runtime
Intervall_Runtime_Limit
Maintenance/Out_Of_Service
_Flag
Event_Disabled
Alarm_Disabled
Acknowledged_States
Alarm_Acknowledge
Default
Polarity
Minimum_Off_Time
Minimum_On_Time
Time_Delay
Binary Output FLN
HBES-Data Member
Data Type
HBES-Data
Member
Read/Write
Type
HBES-Data
Member
Mandatory
Unsigned-24
Unsigned-8
Character-String[Variant #]
Unsigned-8
Bit-Array(8)
Unsigned-8
Unsigned-8
Character-String[Variant #]
Unsigned-8
Unsigned-32
Unsigned-32
Unsigned-32
Unsigned-8
Read-only
Read-only
Read-only
Read/Write
Read-only
Read-only
Read/Write
Read-only
Read-only
Read-only
Read/Write
Read/Write
Read-only
Mandatory
Mandatory
Mandatory
Mandatory
Mandatory
Optional
Optional
Optional
Optional
Optional
Optional
Optional
Optional
Unsigned-8
Unsigned-8
Unsigned-8
Unsigned-8
Unsigned-8
Unsigned-8
Unsigned-32
Unsigned-32
Unsigned-32
Read/Write
Read/Write
Read/Write
Read-only
Read-only
Read-only
Read-only
Read-only
Read-only
Optional
Optional
Optional
Optional
Engineering
Engineering
Engineering
Engineering
Engineering
-17-
SECTION 4 – RECOMMENDATIONS
In summary, we recommend that document N664 Rev B (or new document) and Terminology
(N616) documents be updated to include the above tables. Also, it is recommended that the
various committees be tasked to check and accurately update the example tables submitted in this
document.
Further improvements on the wording throughout this document would also be useful.
Author information:
Ludo Bertsch
Horizon Technologies Inc.
1552 Fort St.
Victoria, B.C.
Canada V8S 5J2
Tel: +1 250 592-0487, Fax: +1 250 592-1366
Email: lbertsch@islandnet.com
-18-
Download