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:
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:
... An example for such a mapping is:
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:
|
_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:
|
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:
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:
|
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:
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:
B1:
B2:
B3:
B4:
B5: See TrendLogs time based init
B8:
B9:
B10:
B11:
B12:
B13:
B15:
B16:
B17: See Wait for System_Status
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:
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). |