Internal data points of the BACnet driver

The BACnet driver possess two internal data point types: _Bacnet and _BacnetDevice.

In the internal data point type _Bacnet an instance with data point elements will be created for every running WinCC OA BACnet driver. The name of every data point is composed in the following way: "_Bacnet_<driver number>".

In the internal data point type _BacnetDevice an instance with data point elements will be created for every configured BACnet device.

The structures of the both data point types are described in the following table.

_Bacnet

Data point element Type Description
Browse.Devices.Range string

With this data point element browsing for connected devices can be startedin the BACnet network. Thereby a range for the device ID can be entered. If the string is left empty, the whole ID range will be browsed. A range of the device IDs, which shall be browsed, can be input in the following format:

"<device low limit>-<device high limit>"

Example: "100-200"

Browse.Devices.Timeout uint Defines the timeout in seconds how long the network is browsed for a device. If this value is set to 0, the default value of 10 seconds is used.
Browse.Devices.DeviceId dyn_uint Contains the device IDs of the devices, which have been found in the BACnet net.
Browse.Devices.VendorId dyn_uint Contains the vendor IDs of the devices, which have been found in the BACnet net.
Browse.Devices.NetworkType dyn_uint Actually not used. Contains the network IDs of the devices, which have been found in the BACnet net.
Browse.Devices.Segmentation dyn_uint Contains the supported segmentation mode of the devices, which have been found in the BACnet net.
Browse.Objects.DeviceId uint With this data point element a device can be browsed for BACnet objects. Therefore the device ID must be written on this data point element.
Browse.Objects.DeviceIdReturn uint To this data point element the deviceId of the result is written. With it the result can be simply assigned when processing the hotlink.
Browse.Objects.ObjectType dyn_uint Contains the object types of these objects, which have been found in the BACnet device.
Browse.Objects.Instance dyn_uint Contains the object instances of these objects, which have been found in the BACnet device.
Browse.Objects.PropertyId dyn_string

Contains the supported properties of these objects, which have been found in the BACnet device.

This contains all supported properties only then, if the browsed device supports segmentation and ReadPropertyMultiple.

Browse.Objects.Name dyn_string Contains the object names of these objects, which have been found in the BACnet device.
Config.AlarmPrioMapping dyn_string

Defines the mapping of BACnet alarm priorities to WinCC OA alarm classes.

A mapping has the following format:

<BACnet startPrio1> <WinCC OA alarmClass1>

<BACnet startPrio2> <WinCC OA alarmCclass2>

...

An example for such a mapping is:

0 BACnet_danger
50 BACnet_alarm
100 BACnet_warning
200 BACnet_info

I.e.: The BACnet priorities 0-49 belong to the alarm class "BACnet_danger", 50-99 to "BACnet_alarm", 100-199 to "BACnet_warning" and 200-255 (highest BACnet priority) to "BACnet_info".

For further information see Intrinsic and Algorithmic Alarming.

Config.Devices dyn_string At this data point element devices can be inserted, which should be connected at the startup of the driver while having no periphery address configured at this point. If a periphery address for the device exist, the registration is accomplished automatically. The DPE is only used in special cases.
Command.SyncTime time With this data point element a time synchronization as broadcast can be triggered. In case of zero time, the driver takes the current time. Otherwise the explicitly specified time for the synchronization is used.
Command.AddDevice string This entry is used to add a BACnet device to the driver at runtime. To add the device, the name of the DP (from type _BacnetDevice) must be set to Command.AddDevice.
State.HomelessAlarm string

To this data point element all alarms/events are mapped, which can not be assigned to an address. This takes place only if the corresponding config entry reportHomelessAlarms is set.

The information of the alarm/event are coded in a string with the following syntax:

<deviceName>.<deviceId>.<objectType>.<instance>.<eventType>.

<eventState>.<alertType>.<priority>

_BacnetDevice

Data point element Type Description
Command.Password string Contains the password, which is used for BACnet services (if required).
Command.CmdPriority int Priority of the writing commands in the priority array of the BACnet object. If the value of this data point element is 0, the default value (=8) will be used.
Command.CommControl bool

De-/re-activation of the communication.

0 → The communication of the device is activated

1 → The communication of the device is deactivated (The device will neither respond to services nor initiate any service. It will only respond to the next CommunicationControl service.)

2 → Disable the initiation of messages by the device (The device will respond to services but not initiate any service except IAm service.)

FALSE (0) - the communication of the device on the bus will be deactivated (DM-DCC-A service).

TRUE (1) - the communication of the device on the bus will be re-activated.

Command.GQ uint

Triggers a general query (GQ) for the corresponding device.

The passed value defined the type of data for query:

0 → GQ for values and events

1 → GQ for values only

2 → GQ for events only

3 → Reset UNKNOWN_PROPERTY addresses (this command is triggered, for example, by clicking the "Reset Properties" button in the device faceplate)

10 → GQ for descriptions

11 → GQ for units

Command.Reinitialize uint

Triggers a reinitialization of the device (DM-RD-A service), if a corresponding value is written to the data point element.

Following values can be used:

  • 0 → Cold start

  • 1 → Warm start

Command.SyncTime time

Synchronizes the time in the device with the time of this data point element.

If on the data point element is set to zero-time, the driver takes the current time and sends it with the telegram (DM-TS-A service).

Command.Service dyn_string

Via this data point elements special services can be set down to the device. The first element of the dyn_string contains the command and parameters. These are the commands with possible parameters:

  • CreateObject

    <object type>

    <object instance> (optional)

    <object name> (optional)

  • DeleteObject

    <object type>

    <object instance>

  • GetProperties

    <object type>

    <object instance>

  • LifeSafetyOperation

    <requesting source>

    <BACnet LifeSafetyOperation Code>

    <object type> (optional)

    <object instance> (optional)

  • SendTxtMsg

    <message to be sent>

The object type must be passed as string (as stated in the peripheral address) to the commands. The response is returned via the data point element State.Service.

A file transfer using this datapoint is possible, for details see File Transfer.

Example:

CreateObject
 Schedule
 10
 SCH1
 SendTxtMessage
 This is a text for sending
State.Online bool Information about the connection state of the BACnet device (TRUE = Online; FALSE = Offline).
State.SentTelegrams uint Number of the sent telegrams since driver start.
State.RcvTelegrams uint Number of the received telegrams since driver start.
State.FailedCOVReg uint Counter for failed COV registrations for the device.
State.Service dyn_string To this data point element the response of a Service Request via Command.Service is returned. The first line gives information about the command execution and in the other lines the Property IDs are listed.
State.TextMsg string If the driver receives a UnconfirmedTextMessage from the device, the text of the message is mapped to this data point element.
DeviceId int Identifier of the BACnet device. The number equates to the instance number of the device object.
ConnInfo string

On this data point element the information on static Address Binding of a device is written.

The format is:

<network number>:<IP address>:<port number>

For example: "1:192.168.152.20:47808"

If this data point element is empty, dynamic Address binding is used (the address information is updated automatically).

Active bool You can switch the device either to active (TRUE) or to inactive (FALSE). If you deactivate the device, the driver does not start a communication with the device. The device can be reactivated anytime. See also active check box in the chapter Configuration of the BACnet Driver.
AliveInterval uint Time in seconds after whose expiration an alive check is performed for this device in the network. The default value is 0, whereby the interval is adopted from the deviceStatusPollTimeout config entry (if this config entry is not set, the general default value is 30 seconds). If the alive interval is set to greater than 0 seconds, then the interval is used (only) for this device (per BACnet device configurable).
TimeSyncInterval uint Time in seconds after which expiration a time synchronization of this device in the network should take place. The default value is 0, whereby no directed time synchronization is triggered.
Flags bit32

This data point element is used for different device settings, see also Advanced Configuration.

Following bits are currently used:

B0:

  • 0 - Object browsing with property “All”

  • 1 - Object browsing without property “All“ (properties are not available)

B1:

  • 0 - Use device time for alert time

  • 1 - Use reception time for alert time

B2:

  • 0 - Interpret device timestamp at local time

  • 1 - Interpret device timestamp as UTC

B3:

  • 0 - Alarm texts are not retrieved during a general query.

  • 1 - The driver reads the Event_Message_Texts property (if supported by the device) during a general query. This property contains the last alarm texts issued by the device i.e. alarm texts are updated by general queries.

B4:

  • 0 - Do UTF-8 conversion for strings with ANSI X3.4 (UTF-8) encoding

  • 1 - No UTF-8 conversion for strings with ANSI X3.4 (UTF-8) encoding

B5: See TrendLogs time based init

  • 0 - TrendLogs were initialized without time-based reading
  • 1 - TrendLogs are initialized with time-based reading

B8:

  • 0 - No restart detection is used.

  • 1 - Use restart detection by evaluation the COV notification

B9:

  • Currently not in use but reserved for future extension

B10:

  • 0 - Do not add driver to Restart_Notification_Recipients

  • 1 - Do add driver to Restart_Notification_Recipients

B11:

  • 0 - No COV registration renewal

  • 1 - Do COV registration renewal

B12:

  • 0 - Do no event general query

  • 1 - Do event general query

B13:

  • 0 - Do no data general query

  • 1 - Do data general query

B15:

B16:

  • 0 - The driver registers with BACnet address to the Notification Class

  • 1 - The driver registers with Device Identifier to the Notification Class

B17: See Wait for System_Status

  • 0 - Connection is initialized even if the state "Operational" is not yet reached
  • 1 - Wait for the state "Operational" before the connection is initialized

The bits 8-13 define the driver behavior if it detects a device restart.

AlarmPrioMapping dyn_string

Defines the mapping of BACnet alarm priorities to WinCC OA alarm classes for a BACnet device.

A mapping has the following format:

<BACnet startPrio1> <WinCC OA alarmClass1>

<BACnet startPrio2> <WinCC OA alarmCclass2>

...

An example for such a mapping is:

0 BACnet_danger
50 BACnet_alarm
100 BACnet_warning
200 BACnet_info

I.e.: The BACnet priorities 0-49 belong to the alarm class "BACnet_danger", 50-99 to "BACnet_alarm", 100-199 to "BACnet_warning" and 200-255 (highest BACnet priority) to "BACnet_info".

For further information see Intrinsic and Algorithmic Alarming.

NotificationClasses dyn_int Defines the Notification Classes to which the driver shall be added as a recipient (see Intrinsic and Algorithmic Alarming - Notification Class).