Creating a structured view (DPAD)

A DPAD (Data Point Addressing Description) is used to navigate to BACnet objects using the facility view, not the technical view. A facility manager knows in which facility, building, floor, room, etc. a BACnet object is located.

It is good practice to place a shortcut for the DPAD into the object name property of the BACnet objects and a (most likely larger) information into the description property. In addition the object type Structured View (FB_BACnet_View) may be used to provide the user-view to the facility hierarchy.

The following code illustrates how to create a navigation using the operator ‘\/’ (Backslash and Slash). This operator can be placed to the following properties (type Character String):

Object Name

Description

Event Message Text

At runtime the separator is replaced by the characters specified in the Global / BACnet_Param section.

Code example for creating a DPAD structure

PROGRAM MAIN
VAR
    fbDPADFirstLevel : FB_BACnet_View := (
        eNodeType := E_BACnet_NodeType.eArea,
        sObjectName := '\/A',
        sDescription := '\/Facilities');

    fbDPADSecondLevel : FB_BACnet_View := (
        iParent := fbDPADFirstLevel,
        eNodeType := E_BACnet_NodeType.eOrganizational,
        sObjectName := '\/B',
        sDescription := '\/Building');

    fbDPADThirdLevel : FB_BACnet_View := (
        iParent := fbDPADSecondLevel,
        eNodeType := E_BACnet_NodeType.eNetwork,
        sObjectName := '\/C',
        sDescription := '\/Floor');

    fbAi : FB_BACnet_AI := (
        iParent := fbDPADThirdLevel,
        sObjectName := '\/ObjectName',
        sDescription := '\/Description',
        sDeviceType := 'TemperatureSensor',
        eUnit := E_BA_Unit.eTemperature_DegreesCelsius,
        fMinPresValue := -50.0,
        fMaxPresValue := 150.0,
        fHighLimit := 100,
        fLowLimit := -25,
        bHighLimitEnable := TRUE,
        bLowLimitEnable := TRUE,
        nNotificationClass := 10,
        aEventEnable := [ TRUE, TRUE, FALSE ],
        aEventMessageTextsConfig := [ '\/Alarm', '\/Fault', '\/Normal' ]);
END_VAR
------------------------------------------------------------------
fbDPADFirstLevel();
fbDPADSecondLevel();
fbDPADThirdLevel();
fbAi();

This code generates three Structured View objects and one Analog Input object and connects the DPAD through the iParent elements referring to the calling function block.

The selection how the tree items are displayed in the system manager can be specified in the Global Params of the library instance:

Creating a structured view (DPAD) 1:

eSymbolName: The symbol name from the PLC is used as tree item name.

eObjectName: The BACnet object name is used as tree item name.

eDescription: The BACnet description is used as tree item name.

The system manager tree looks like this (in the example below, the object name was used):

Creating a structured view (DPAD) 2:

Creating a structured view (DPAD) 3:

The separators used for the three properties possibly containing a DPAD (Object Name, Description and Event Message Texts) can be individually specified in the Global Params setting of the library.

Creating a structured view (DPAD) 4: