Already a subscriber? 

MADCAD.com Free Trial
Sign up for a 3 day free trial to explore the MADCAD.com interface, PLUS access the
2009 International Building Code to see how it all works.
If you like to setup a quick demo, let us know at support@madcad.com
or +1 800.798.9296 and we will be happy to schedule a webinar for you.
Security check
Please login to your personal account to use this feature.
Please login to your authorized staff account to use this feature.
Are you sure you want to empty the cart?
ASHRAE Standard 231-2026 -- A Control Description Language for Building Environmental Control Sequences (ANSI Approved), 2026
- ASHRAE Online Bookstore
- Addenda
- Errata
- data.ashrae.org/231
- Return to Previous Page
- ANSI/ASHRAE Standard 231-2026 [Go to Page]
- Contents
- 1. Purpose
- 2. Scope
- 3. Definitions [Go to Page]
- 3.1 Definitions
- 4. How to Use this Document
- 5. Control Description Language [Go to Page]
- 5.1 Basic Elements of CDL. CDL consists of the following elements:
- 5.2 Syntax
- 5.3 Units. CDL shall use a specific set of SI units as designated in Table 5-1. If necessary, tools shall convert these units to display user-selected units.
- 5.4 Permissible Data Types
- 5.5 Encapsulation of Functionality. All computations shall be encapsulated in a block. Blocks expose parameters for configuring the block, and they expose inputs and outputs using connectors.
- 5.6 Elementary Blocks. Section 7 defines a set of elementary blocks. Elementary blocks must be used as defined and cannot be modified.
- 5.7 Connectors. Elementary blocks, composite blocks, and extension blocks expose their inputs and outputs through input and output connectors.
- 5.8 Composite Blocks. CDL defines composition rules that instantiate parameters, inputs, outputs, and other blocks and saves them as a composite block.
- 5.9 Extension Blocks. Extension blocks support functionalities that cannot be implemented, or are hard to implement, with a composite block. They allow implementation of blocks that contain statistical functions, such as those for regression, fault d...
- 5.10 Replaceable Blocks. CDL allows the use of the Modelica replaceable, constrainedby, and redeclare keywords.
- 5.11 Extension of a Composite Block. A composite block can have a single extends statement. The extends statement must reference another composite block, but it cannot extend an elementary block or an extension block. The extends statement can have a...
- 5.12 Model of Computation. CDL uses the synchronous data flow principle and the single assignment rule, which are defined as follows:
- 5.13 Metadata
- 6. Control Exchange Format [Go to Page]
- 6.1 Introduction. Control Exchange Format (CXF) is a representation of CDL in a format that is intended to be readily imported and exported into commercial building automation systems. For example, a commercial control provider might utilize CXF to i...
- 6.2 Classes and Properties. A valid CXF file contains blocks (ElementaryBlocks, CompositeBlocks, ExtensionBlocks or a combination of these) and each instance of a block uses the set of InputConnectors, OutputConnectors, Parameters, and Constants as d...
- 6.3 Generating CXF from an Instance of a CDL Class. If the instantiation of a CDL block (within a Modelica or another CDL class) contains the annotation __cdl(export=true), the CDL class of the instantiated block shall be translated to CXF. Specifyin...
- 6.4 Source of a CXF Translation. The CXF representation of a control logic shall optionally include the name and the version of the software that generated it using the properties translationSoftware and translationSoftwareVersion respectively.
- 6.5 Representing Instances in CXF. In the CXF representation of a CDL control logic, the instances of the CDL class shall contain the entire package path of the CDL class, the octothorpe character (#), followed by the name of the instance. A (“chil...
- 6.6 Handling Arrays and Expressions. Arrays and expressions in a CDL class shall be represented in CXF as specified below:
- 6.7 ExtensionBlocks. Instances of ExtensionBlocks within a CDL class shall contain the annotation __cdl(extenstion=true). The location of the Functional Mockup Unit implementation of the ExtensionBlock shall be included in the CXF representation usin...
- 7. Elementary Blocks [Go to Page]
- 7.1 Introduction. This standard includes a set of definitions for elementary blocks. The definition of an elementary block starts with the encoding (CDL or CXF), followed by the package name, which is used to structurally organize the blocks. See Fig...
- 7.2 Specifying Elementary Blocks. Elementary blocks have the same naming pattern as composite blocks and extension blocks (e.g., their long class name starts with a list of package names, separated by a dot, and ends with the short class name of the ...
- 7.3 Symbols. Each block is defined with a graphical representation (a symbol) that illustrates the function of that block. The use of these symbols is recommended but not required for compliance with the standard.
- 7.4 Elementary Blocks. The following tables list the elementary blocks by type as well as which section of this standard provides more information about each block:
- 7.5 Elementary Block Descriptions. The following section includes a description of each elementary block, including its functionality, symbol, parameters, inputs, and outputs. Compliance with this standard requires implementation of elementary blocks...
- 7.6 Predefined Constants. The standard also defines the following immutable constants in the CDL.Constants package:
- 7.7 Predefined Enumerations. CDL also contains the following types in the package CDL.Types.
- 8. Normative References
- Informative Appendix A: Overview of Standard [Go to Page]
- A1. Document Structure [Go to Page]
- A1.1 CDL. The CDL format is intended to be used during the process of designing a control system that includes defining the control logic and then testing performance in whole building simulation.
- A1.2 CXF. The CXF format is intended to be used primarily in the deployment of control logic as part of the delivery of a control system. The CXF file is defined using an internet standard (ECMA-404) called Java Script Object Notation (JSON).B8 The i...
- A1.3 Elementary Blocks. To define a control description language, several elements are needed. The most basic element is called an “elementary block.” Elementary blocks range from basic math (add, equal, absolute value) to logic (if then, else), ...
- A1.4 System Functions Outside of CDL. Commercially available control systems often include support for various system functions. Examples of this include scheduling, alarm processing, trending, communications processing, and processing to support-con...
- A1.5 Extension Blocks. While this standard defines a specific set of elementary blocks, there will be cases in which a new block is required that cannot be specified using a composite block (for example, because it requires execution of advanced math...
- A1.6 Proprietary Control Logic. The purpose of this standard is to encourage the open sharing of control logic. This sharing can readily be done with the use of elementary, composite, and extension blocks. However, it is also recognized that there ar...
- A1.7 Control Sequence Libraries and Instances. When a designer selects HVAC equipment for a project, they will typically select the options that are needed for the project from a list of potential options available from suppliers. As an example, cons...
- A1.8 Conformance Classes
- A2. Associated Work [Go to Page]
- A2.1 Sample CDL Sequences. A library of sample sequences in CDL is available from LBL. These sample sequences include many of the sequences from ASHRAE Guideline 36 B1 as well as other content. This library is available at the following URL: https://...
- A2.2 Translating from CDL to CXF: Evaluation of Assignment of Values to Parameters. The assignments of values to parameters can optionally be evaluated by a CDL translator. While such an evaluation is not preferred, it is allowed in CDL to accommodat...
- A2.3 Digital Documentation of CDL. The definition of CDL found in this standard is also available in a digital code repository available at data.ashrae.org.
- Informative Appendix B: Informative References [Go to Page]