BACnet SC Configuration
BACnet SC Configuration Using the Workbench
Network Discovery
Note: The following describes how to configure BACnet settings via the Workbench for Desktop projects. The starting point is the Network Discovery tool.
From the Workbench, you need to expand your project and then browse for the device template and find the BACnet configuration provider.
BACnet Provider in the Workbench's Project Explorer
It is possible to discover the devices on each Channel level. So, for example, to browse for the Default Channel, right-click on it and select ‘Network Discovery’.
Starting Network Discovery
A dialog will appear. In this dialog, you can set some filters and start the discovery of the network.
Network Discovery dialog
This is the list of filters that can be set before starting Network Discovery:
-
Discovery Scope: Choose between Broadcast, Global Broadcast, Local Network Broadcast and Remote Network Broadcast
- A global broadcast will send whols using an IP global broadcast address of 255.255.255.255 and a BACnet broadcast address.
- A broadcast will send whols messages using an IP subnet broadcast address which is Bitwise OR of the IP address and Bit Complement of the Subnet Mask and a BACnet broadcast address.
- A remote broadcast contains the network number in the BACnet destination address.
- A local network broadcast contains no BACnet network number, only the devices on the local network will respond.
-
Network - If using Remote Network Broadcast as Discovery Scope, you can enter a network number in the text entry field.
-
I-Am Delay [seconds]: Enter a delay (in seconds) in the text entry field. Valid range is between 1 and 30. This is a maximum delay time between two I-Am messages. Network discovery will stop if there is no I-Am message in the specified time.
-
From ID - Enter a starting range for the network discovery.
-
To Id - Enter and ending range for the network discovery.
-
Resolve Device Names - If true, the names of the devices will be resolved, otherwise they will look like {Device: [DeviceInstance]}.
-
Get Supported Protocol Services - If true, the discovery will return the list of services supported by the devices. The information will be stored in the configuration database.
-
Merge Discovery Results - If true, the results of the discovery is merged with the current set of discovered devices.
When you click on the Start Discovery button, a request to the BACnet point manager is sent. The result of the call will populate the grid on the bottom of the dialog.
Network Discovery Dialog (with Discovered Devices)
For each discovered device, the grid shows:
-
Instance -Specifies the instance of the device
-
Name - Specifies the name of the device
-
Network # - Specifies the network number of the device
-
In Address Space - True, if the device is already in the address space
-
Static Binding - If true, static binding information will be stored in the configuration database
-
Get Properties - If true, when scanning the devices, we will ask for the list of supported properties for each object of the device
-
New Items - True, if the device is coming from the latest network discovery (when merging the results)
You can easily filter/sort the results in the grid.
You can also select multiple devices (and set Get Properties/Static Binding flag) in one shot through the available context menu.
Network Discovery Dialog (Context Menu)
At this point, you can select all the devices or a subset of them and proceed with the scanning process. You have basically two options:
-
Finish - Clicking on Finish button, the selected device will be scanned and all the available objects will be stored in the configuration database
-
Next - Clicking on Next button, we will go in the next page of the dialog filter the scanning of the selected devices
This is what you can see when clicking on the Next button:
Network Discovery Dialog (Scan Devices)
From this section, you can scan the previously selected devices. You can specify several scan options:
-
Resolve Object Names - If true, the device scan should resolve the name of the objects.
-
Use Object Names Filter - If you set it to true, you can use the field to filter by object name. It can contain wildcards and regular expressions. (e.g. ‘Device*’ or ‘^[a-zA-Z]+$’).
-
Max Object Per Update - Defines a maximum number of objects sent to client within one callback/message. In case there is more objects discovered per the device, more than 1 callback/message is sent for the same device .
-
Merge Scan Results - If true, the results of the scan is merged with the current set of scanned objects
-
Use Object Types Filter - If true, you can specify which object types you want to get from the object types filter section
Network Discovery Dialog (Scan Devices) – Object Types Filters
The collection of available Object Types to be filtered comes from the Object Library.
When you click on the Start Scan button, a request to the BACnet point manager is sent. The result of the call will populate the grid on the bottom of the dialog.
Network Discovery Dialog (Scan Devices) – Scan Results
For each scanned object you can see:
-
Device Name - The name of the device containing the object
-
Object Type - The type of the object
-
Object Name - The name of the object
-
Object Instance - The instance of the object
-
Properties IDs - The list of reported properties of the object as a string representation separated by a comma. You can click on the ellipsis button to see the list of the properties:
Properties List
-
New Item - True, if the object is coming from the latest device scan (when merging the results)
You can easily filter/sort the results in the grid.
You can also select multiple objects in one shot through the available context menu.
Device Scan Dialog (Context Menu)
At this point, you can select all the objects or a subset of them and proceed with import operation. You have basically three options:
-
Finish - By clicking on the Finish button, the selected objects will be imported into the configuration database.
-
Back - Clicking on the Back button returns to the network discovery page.
-
Close - Clicking on the Close button closes the dialog without importing.
If you click on the Finish button, the selected options will be sent to the server and a Task will be generated. The task will process the data and will execute the import operation.
BACnet Devices Import Task
Once the task is completed, all the entities will be now browsable in the project tree.
Project Tree After the Import
From the task explorer, you can see the log generated during the import process (right-click on the task and select View Log).
Task Log
Note: The import operation will insert the new discovered entities and update the existing. It also provide a mechanism of collision detection in case of colliding names (for Devices and Objects). Since the operation is executed on a separate task, Workbench is fully available and responsive during the execution.
Channel Root
The Channel Root entity is the top most element in BACnet hierarchy. It contains the available Channels.
Channel Root Level in the Project Tree
If you double-click on it, a dialog will be opened.
Channel Root Dialog
In this dialog, it’s possible to configure some settings that are global for all the available channels. This is the list of the settings:
Browsing
• Show Networks - If true, the Network level will be shown in the runtime tree in the Data Browser.
• Show Object Types - If true, the Object Type level will be shown in the runtime tree in the Data Browser
• Additional Browsing Info - Choose between:
-
None: no additional info will be added to devices/objects/properties in the runtime tree
-
Ids: the id of the device/object/ property will be appended to the name in the runtime tree
-
Instances: the instance of the device/object/property will be appended to the name in the runtime tree
Logging
• Log Level - Specifies the level of logging for the BACnet stack log file. You can choose between None, Error, Info, Warning, Network, Debug levels.
• Log File Max Size [kilobytes] - Specifies the maximum size of the log file. Range can be between 0 and 4194303.
• Log File - Specifies the path of the BACnet stack log file.
Statistics
• Show Statistics - If true, the statistics using API diagnostics will be shown at Channel level.
• Allow Subscribe Statistics - If true, the statistics tags can be subscribed.
• Statistics Polling Rate [seconds] - Specifies the refresh rate of the counters. Range can be between 0 and 4194303. Default is 10.
Global Counters
• Show Counters - If true, the counters will be shown in the Channel Root level.
• Allow Subscribe Counters - If true, the counters tags can be subscribed.
• Counters Polling Rate [seconds] - Specifies the refresh rate of the counters. The range can be between 0 and 4194303. Default is 10.
Click on the Apply button to apply the changes.
Channels
Under the Channel Root level, we can have multiple Channel entities. Each Channel can contain multiple Networks. There should be always a Channel marked as default. It’s possible to identify it easily since the icon contains a red flag.
Channel Level in the Project Tree
To create a BACnet Channel
To create a new BACnet Channel, right-click on the Channel Root (Channels) and click on Add Channels as shown below:
Add Channel to Database from Project Explorer
- OR -
Select the Channels branch, then click on the ‘Add Channel’ button, shown below, in the Edit section of the Home ribbon in Workbench.
The BACnet Channel properties window will appear in the right pane of the Workbench.
To edit a BACnet Channel
If you double-click on it, a dialog will open. The dialog contains four tabs to set up different sets of settings:
-
General Settings
-
Communication Settings
-
Port Settings
-
Time Synchronization Settings
-
Foreign Devices Settings
-
BBMD Devices Settings
General Tab
This tab contains the "General" Channel settings.
Channel dialog (General / Runtime Settings)
This is the list of the configurable settings:
• Local Device ID - specifies the local device identifier for the BACnet API. Each BACnet device on the network requires a unique device identifier.
• ReadService Type - specifies the service type to read the data. The possible options are Automatic, Read Property, Read Property Multiple, Confirmed COV or Unconfirmed COV. Default is Automatic.
• Re-Subscribe COV Period [seconds] - specifies the re-subscribe period for the change of value (COV) subscriptions in seconds. Default is 3600.
• Default Polling Rate - sets the frequency of communication between BACnet devices and the BACnet connector. Range can be between 0 and 4194303. Default is 30.
• Default Priority - sets a number between 1 and 16 as to the criticality of a device, in comparison with others. Assigning a priority level marks the importance of messages and which will override others. Some numbers are pre-assigned (1, 2, 5, 6, 8), with life safety naturally having highest priority. Other numbers (3, 4, 7 and 9 through 16) are not
assigned and therefore are available for users to set their own priorities. Default is 8.
Priority Level Application
1 Manual Life Safety
2 Automatic Life Safety
3 Available
4 Available
5 Critical Equipment Control
6 Minimum On/Off
7 Available
8 Manual Operator
9 Available
10 Available
11 Available
12 Available
13 Available
14 Available
15 Available
16 Available
• Default Decimal Places - specifies the default number of decimal places of real values. -1 means automatic (calculated from the device’s properties). Default is 1.
• This is the Default Channels - True, if the Channel is the ‘default’ Channel.
Communication Tab
Channel dialog (Communication / Communication Settings)
This is the list of the configurable settings:
-
APDU Timeout [milliseconds] - sets the time the Application Protocol Data Unit driver will wait for response from a connected device before trying again or proceeding to the next request. Range can be between 500 and 300000. Default is 6000.
-
APDU Segment Timeout [milliseconds] - indicates the amount of time in milliseconds between retransmissions of a data frame segment requiring acknowledgement for which no acknowledgement has been received. Range can be between 500 and 30000. Default is 6000.
-
APDU Retries - indicates the maximum number of times that an APDU shall be retransmitted. If the device does not perform retries, then this property shall be set to 0. Range can be between 0 and 10. Default is 3.
-
Expiry Time [seconds] - specifies the time when the unused values are removed from the watch service. Range can be between 0 and 1000000. Default is 300.
-
Consecutive Errors - specifies the upper limit of the consecutive errors to be raised before a device is placed in the offline state. Range can be between 0 and 1000000. Default is 0.
-
Offline Device Polling[seconds] - once the IO server detects a device is offline, it stops all attempts to communicate with this device or any other object in the device. Periodically based on this setting the IO server will re-attempt to establish communications with this device. If successful, the device will be placed online and all required communications to objects in that device will attempt to re-establish. Range can be between 0 and 1000000. Default is 60.
-
Subscribe Timeout[milliseconds] - this is actually the Subscribe Cycle time. The BACnet engine will only process requests, any request including COV subscriptions and Read Property requests, based on a cycle as determined by this setting. For example if this is set at 5000 (5 seconds), all requests will be accumulated for 5 seconds. At the end of this period all requests will be sent to protocol stack for processing. Range can be between 0 and 4194303. Default is 1000.
-
Max Properties Per Requests: specifies the maximum number of properties per request. Range can be between 1 and 50. Default is 20.
-
Who-Is Period [seconds] - specifies the delay between consecutive whoIs requests to the same device. Range can be between 0 and 4194303. Default is 300.
-
Max Parallel Requests - specifies the maximum number of parallel requests made to watch the values of the properties of each device. Range can be between 1 and 128. Default is 5.
-
Time Between Who-Is Send[milliseconds] - specifies the time between whoIs send. Range can be between 0 and 4194303. Default is 100.
-
Max TSM Per Device - the maximum number of BACnet transactions (ReadProperty, COV Subscribe, WriteProperty) that can simultaneously be in active (in a non null state) to a device. When this number is reached, no further transactions will be processed to the device, until one or more transactions are closed. This can be used to throttle activity to a device. Range can be between 1 and 16. Default is 8.
-
Max TSM Per Router - The maximum number of BACnet Transactions (ReadProperty, COV Subscribe, WritePropery), that can simultaneously be in active (in a non null state), and sent through a specific BACnet router. When this number is reached, no further transactions will be sent through that router, until one or more transactions are closed. This can be used to throttle activity through a router. Please note that some devices, such as Automated Logic LGR’s, are acting simply as BACnet routers, so that all requests are going directly to the underlying MSTP serial bus. This feature can be used to control the amount of activity being imposed on these busses. Range can be between 1 and 16. Default is 16.
-
Segmentation - specifies the segmentation supported by the devices; sending, receiving, both or no segmentation supported. Default is Both.
Channel dialog (Communication /Trend Settings)
This is the list of the configurable settings:
-
Read Range Type: specifies the type of read range. It can be Buffer Position + Time, Time + Sequence Number or Time. Default is Buffer Position + Time
-
Trend Read Type: specifies the type of trend read. It can be Automatic, Event Notifications or Polling. Default is Automatic
-
Trend Read Polling Period [milliseconds]: specifies the polling rate to be used when the trend read type is set to Polling. Range can be between 0 and 4194303. Default is 3600.
Channel dialog (Communication / Notification Class Settings)
This is the list of the configurable settings:
-
Manage Recipients’ Lists: true, if we want to manage the recipients’ lists
-
Notification Type: specifies if confirmed notification flag for the subscriptions to the notification classes is enabled. By default is enabled
-
Transitions: specifies the desired notification type for the subscription to the notification classes (to normal, to off normal, to fault)
-
Notify From: specifies the start time for the subscriptions to the notification classes
-
Notify To: specifies the end time for the subscriptions to the notification classes
-
Valid Days: specifies the days when the subscriptions to the notification classes are enabled
-
Runtime Process Identifier: specifies the process identifier value used by the runtime when subscribing to event notification classes
-
Event Notifications: specifies if the runtime will only accept event notifications where the runtime process identifier is in the recipient list or all the event notifications ignoring the process identifier
-
Max Subscribe Time [seconds]: specifies the maximum time for the subscribe to the recipient list in the notification class. Range can be between 30 and 300. Default is 30.
-
Max Unsubscribe Time [seconds]: specifies the maximum time for the unsubscribe from the recipient list of the notification class. Range can be between 30 and 300. Default is 30.
-
Connection Check Period [seconds]: specifies the period in which the connection with the notification class is checked. Range can be between 0 and 86400. Default is 3600.
-
Subscribe Retry Period [seconds]: specifies the retry period for subscribing to the recipient list in the notification class. Range can be between 1 and 3600. Default is 60.
-
Unsubscribe Retry Period [seconds]: specifies the retry period for unsubscribing from the recipient list in the notification class. Range can be between 1 and 3600. Default is 60.
Channel dialog (Communication / Alarm Settings)
This is the list of the configurable settings:
-
AE Summary Type: specifies the type for the initial reading of the alarms. Possible values are Automatic, Get Alarm Summary, Get Enrolment Summary, Get Event Information. Default is Automatic
-
Use timestamp from the ACK notification: if true, device timestamp for alarm ACK will be logged instead of server time. It’s disable by default
Port Tab
Channel dialog (Port / Port Settings)
This is the list of the configurable settings:
• Channel Type - specifies the port type. We support BACnetIP, Ethernet, MSTP, PTP and BACnetSC port types. Default is BACnetIP.
• Channel Network Number - specifies the network number of the port. Default is 0.
• UDP Port -specifies the UDP port number. Default is 47808.
Channel dialog (Port / Ethernet Settings)
• Type - specifies the type of ethernet settings. Possible values are Adapter or IP Address.
• Adapter - enabled if the selected type is Adapter. It specifies the adapter.
• IP Address -enabled if the selected type is IP Address. It specifies the IP Address.
Channel dialog (Port / BACnet SC Settings)
These properties are configurable when the selected Channel Type is BACnet/SC. This is the list of the configurable settings:
-
Primary Hub URI: provides the URI for the primary hub function. The value shall be a UTF-8 string containing a WebSocket URI as of RFC 6455, formatted as of RFC 3986. If no URI is configured, this property shall contain an empty UTF-8 string.
-
Failover Hub URI: provides the URI for the failover hub function. The value shall be a UTF-8 string containing a WebSocket URI as of RFC 6455, formatted as of RFC 3986. If no URI is configured, this property shall contain an empty UTF-8 string.
-
Minimum Reconnect Time [seconds]: specifies the minimum time in seconds between each attempt to establish a BACnet/SC connection. Reconnection strategies and delay between attempts to connect to other BACnet/SC nodes are generally a local matter. Range can be between 2 and 300. Default is 10.
-
Maximum Reconnect Time [seconds]: specifies the maximum time in seconds between each attempt to establish a BACnet/SC connection. Reconnection strategies and delay between attempts to connect to other BACnet/SC nodes are generally a local matter. Range can be between 2 and 300. Max is 600. Default is 300.
-
Connection Wait Timeout [seconds]: identifies the time in seconds that a node waits for a response BVLC message while connecting a BACnet/SC connection. Range can be between 5 and 300. Default is 10.
-
Disconnect Wait Timeout [seconds]: identifies the time in seconds that a node waits for a response BVLC message while disconnecting from a BACnet/SC connection. Range can be between. Range can be between 5 and 300. Default is 10.
-
Initiating Heartbeat Timeout [seconds]: identifies the time in seconds of BVLC message inactivity on a BACnet/SC connection before a Heartbeat-Request message is sent by an initiating BACnet/SC node. Range can be between 3 and 300. Default is 300.
-
Accepting Heartbeat Timeout [seconds]: identifies the time in seconds of BVLC message inactivity on a BACnet/SC connection before an accepting BACnet/SC node will drop the connection. Note that proper operation requires that this be configured to be sufficiently greater than the SC_Initiating_Heartbeat_Timeout of all the nodes that initiate connections to this node. Range can be between 3 and 500. Default is 500.
-
Enable Hub Function: indicates and determines whether (TRUE) or not (FALSE) this port is performing the BACnet/SC hub function.
-
Hub Function Accept URIs: contains an array of WebSocket URIs that represents the possible URIs a BACnet/SC hub connector device could use to connect to the hub function. This property provides a BACnet visible way to store and present the possible BACnet/SC hub function WebSocket URIs. Each WebSocket URI entry shall be a UTF-8 string containing a WebSocket URI as of RFC 6455, formatted as of RFC 3986.
-
Direct Connect Accept URIs: contains an array of WebSocket URIs that are included in the Address-Resolution-Ack response. This array represents the possible URIs an initiating BACnet/SC direct connection device could use to directly connect to this device. Each WebSocket URI entry shall be a UTF-8 string containing a WebSocket URI as of RFC 6455, formatted as of RFC 3986.
-
Operational Certificate: represents the X.509 certificate used to identify the IP host of the port. The value of this property shall be an X.509 certificate in binary DER format. If no operational certificate is configured, this property, if present, shall be a zero length OCTET STRING.
-
CA Certificates: represents the certificate authorities for X.509 certificates the device accepts when it is establishing a secure connection. Each OCTET STRING shall be an X.509 certificate in binary DER format. If no CA certificate is present in an array element, the OCTET STRING shall be of zero length. This property shall support certificates up to 2048 octets in size in each element and shall support at least one entry. Support of larger certificates as well as multiple CA certificates is optional.
Time Synchronization tab
Channel dialog (Time Synchronization / Time Synchronization)
This is the list of the configurable settings:
-
Enabled: true, if the Time Synchronization is enabled
-
Time Interval [minutes]: specifies the period for the automatic time synchronization. Range can be between 1 and 65535. Default is 60.
-
Use UTC Time: if true, we will use UTC time synchronization service for the automatic time synchronization.
Channel dialog (Time Synchronization / Recipients)
This is the list of the configurable settings:
-
Name: the string representation of the recipient
-
Type: specifies the type of the recipient. The possible options are Address or Device.
-
Device Id: specifies the identifier of the device. It’s enabled if the type is Device.
-
MAC: specifies the MAC address. It’s enabled if the type is Address.
-
Network Number: specifies the network number. It’s enable if the type is Address.
Foreign Devices Tab
Channel Dialog (Foreign Devices Settings)
This is the list of the configurable settings:
-
Enabled: true, if the Foreign Devices are enabled.
-
Time-To-Live [seconds]: specifies the number of seconds within which a foreign device must re-register with a BBMD or risk having its entry purged from the BBMD.
Channel dialog (Foreign Devices / Foreign Devices)
This is the list of the configurable settings:
-
Name: automatically generated combining the IP and the Port
-
IP Address: specifies the IP address of the foreign device. Default is 127.0.0.1.
-
Port: specifies the port of the foreign device. Default is 47808.
BBMD Device Tab
Channel dialog (BBMD Devices / BBMD Devices Options)
This is the list of the configurable settings:
- Enabled: true if the BBMD Devices are enabled
Channel dialog (BBMD Devices / BBMD Devices)
This is the list of the configurable settings:
-
BDT Address: specifies the BDT (Broadcast Distribution Table) Address of the BBMD device
-
IP Address: specifies the IP Address of the BBMD device
-
Subnet Mask: specifies the subnet mask of the BBMD device
-
Port: specifies the port of the BBMD device
Send Who-Has
The Who-Has service is used by a sending BACnet-user to identify the Device object identifiers and network addresses of other BACnet devices whose local databases contain an object with a given Object_Name or a given Object_Identifier.
It’s possible to send a Who-Has right-clicking on a Channel and selecting ‘Send Who-Has’ from the context menu as shown below:
Send Who-Has action from Channel level
- OR -
Select the Channel for which you want to call the action, then click on the Send Who-Has button, shown below, in the Tools section of the Home ribbon in Workbench
Send Who-Has button
The Send Who-Has dialog appears as shown below:
Send Who-Has dialog
The parameters of the action are:
Use Device IDs Range: true, if we want to use the Device IDs range
Low Limit: together with High Limit, it defines the devices that are qualified to respond with an I-Have service request if the ‘Object Identifier’ or ‘Object Name’ criteria are satisfied. Range can be between 0 and 4194302. Default is 0.
High Limit: together with Low Limit, it defines the devices that are qualified to respond with an I-Have service request if the ‘Object Identifier’ or ‘Object Name’ criteria are satisfied. Range can be between 0 and 4194302. Default is 4194302.
Find Object Type: specifies if we want to filter the devices using the Identifier or the Name of the objects
Name: specifies the ‘Object Name’ criteria to be used to identify the devices that are qualified to respond with an I-Have service request when Find Object Type is set to Name
Object Type: specifies the object type of the ‘Object Identifier’ criteria to be used to identify the devices that are qualified to respond with an I-Have service request when Find Object Type is set to Identifier
Instance: specifies the instance of the ‘Object Identifier’ criteria to be used to identify the devices that are qualified to respond with an I-Have service request when Find Object Type is set to Identifier
Wait Time [seconds]: specifies the wait time to perform the action
Click on the Send Who-Has button to start the action.
The result of the action will be shown in the Result section. For each object it will show:
Device ID: the identifier of the device
Object Type: the type of the object
Object Instance: the instance of the object
Object Name: the name of the object
Send Who-Is
The Who-Is service is used by a sending BACnet-user to determine the Device object identifier, the network address, or both, of other BACnet devices that share the same internetwork. The Who-Is service is an unconfirmed service. The Who-Is service may be used to determine the Device object identifier and network addresses of all devices on the network, or to determine the network address of a specific device whose Device object identifier is known, but whose address is not.
It’s possible to send a Who-Is right-clicking on a Channel and selecting ‘Send Who-Is from the context menu as shown below:
Send Who-Is action from Channel level
- OR -
Select the Channel for which you want to call the action, then click on the Send Who-Is button, shown below, in the Tools section of the Home ribbon in Workbench.
Send Who-Is Button
The Send Who-Is dialog appears as shown below:
Send Who-Is dialog
The parameters of the action are:
Low Limit: together with High Limit, it defines the devices that are qualified to respond with an I-Am service request
High Limit: together with Low Limit, it defines the devices that are qualified to respond with an I-Am service request
Wait Time [seconds]: specifies the wait time to perform the action
Click on the Send Who-Is button to start the action.
The result of the action will be shown in the Result section. For each device it will show:
Device ID: the identifier of the device
Vendor ID: the identifier of the vendor
Segmentation Supported: the type of supported segmentation
Max APDU Length: the max APDU length, which means the maximum number of octets that may be contained in a single, indivisible APDU.
Send Who-Is Result
Time Synchronization
Time synchronization action can be used to synchronize the Device’s time.
It’s possible to execute a Time Synchronization right-clicking on a Channel and selecting ‘Time Synchronization’ from the context menu as shown below:
Time Synchronization action from Channel level
- OR -
Select the Channel for which you want to call the action, then click on the Time Synchronization button, shown below, in the Tools section of the Home ribbon in Workbench.
Time Synchronization button
The Time Synchronization dialog appears as shown below:
Time Synchronization dialog
The parameters of the action are:
Synchronization Time - specifies if we want to use Local Time or UTC Time
Click on the OK button to start the action.
The result of the action will be shown in a message box as shown below:
Time Synchronization result
Import EDE File
BACnet SC provider allows you to import and Engineering Data Exchange (.ede) file.
It’s possible to execute an EDE import right-clicking on a Channel and selecting ‘Import EDE File’ from the context menu as shown below:
Import EDE File action from Channel level
- OR -
Select the Channel for which you want to call the action, then click on the Import EDE File button, shown below, in the Tools section of the Home ribbon in Workbench.
Import EDE File button
The Import EDE File dialog appears as shown below:
Import EDE File dialog (Settings)
The settings are:
EDE File Type: it specifies the type of EDE file to be imported. We support CSV Files and Excel Files.
EDE File: it specifies the path of the EDE file we want to import
Separator: in case of CSV file, it specifies the separator used in the file. Default is comma.
Network Attribute: it specifies which attribute in the EDE file should be used to retrieve the network number.
By clicking on the "Next" button, the system will parse the EDE file and will show all the available devices in it.
Import EDE File dialog (Available Devices)
For each device we could see:
Name: the name of the device
Instance: the instance of the device (identifier)
In Address Space: true, if the device is already in the address space
Network: the network where the device is
It’s possible to filter the devices by all the properties.
You can manually select the devices you want to import or you can use the context menu to select all, unselect all, invert current selection.
Import EDE File dialog (Available Devices) - Context Menu
Clicking on the Import EDE button, the Import operation will be performed and all the selected devices will be imported in the configuration database.
The operation is executed on a separate task on the server.
Import EDE File Task
We can see the log of the operation right-clicking on the task and selecting ‘View Log’ from the context menu. The log will appear as shown below.
Import EDE Log
If the action has been executed successfully the address space will be updated with the data contained in the EDE file:
Import EDE Address Space
Export EDE File
BACnet SC provider allows you to export the configuration data in an Engineering Data Exchange (.ede) file.
It’s possible to execute an EDE export right-clicking on a Channel and selecting ‘Export EDE File’ from the context menu as shown below:
Export EDE File action from Channel level
- OR -
Select the Channel for which you want to call the action, then click on the Export EDE File button, shown below, in the Tools section of the Home ribbon in Workbench.
Export EDE File button
The Export EDE File dialog appears as shown below:
Export EDE File dialog (Available Devices)
In the dialog we can see the list of available devices in the selected Channel.
For each device we can see:
Device ID: the identifier of the device
Name: the name of the device
Network: the network where the device is
It’s possible to filter the devices by all the properties.
You can manually select the devices you want to import or you can use the context menu to select all, unselect all, invert current selection.
Export EDE File dialog (Available Devices) - Context Menu
By clicking on the "Next" button we can do some settings before performing the export operation:
Export EDE File dialog (Settings)
It’s possible to specify:
Included Properties: the properties to be included (Description, Unit…)
Concurrency Level: the concurrency level used by the task to retrieve the value of the properties of the object selected above (it’s enabled if there’s at least one included property)
Continue On Error: true, if we want the operation to continue in case of errors when reading the value of properties (it’s enabled if there’s at least one included property)
Exportable Objects: the collection of exportable objects retrieved by the devices selected in the previous page of the wizard. For each object we can see:
o Name: the name of the object
o Instance: the instance of the object
o Object Type: the type of the object
o Device Name: the name of the device containing the object
o Device ID: the identifier of the device containing the object
It’s possible to filter the objects using all the properties
You can manually select the objects you want to export or you can use the context menu to select all, unselect all, invert current selection.
Export EDE File dialog (Exportable Objects) - Context Menu
Clicking on the Export button, the Export operation will be performed and all the selected objects will be exported in the EDE file.
The operation is executed on a separate task on the server.
Export EDE File Task
We can see the log of the operation right-clicking on the task and selecting ‘View Log’ from the context menu. The log will appear as shown below.
Export EDE Log
To download the generated EDE file, you need to right click on the task and select download generated file. Then you just need to specify the location where to download the generated file.
Networks
Under a Channel, there can be multiple Network entities. Each Network can contain multiple Devices.
Network Level in the Project Tree
To create a BACnet Network
To create a new BACnet Network, right click on a Channel and click on Add Network as shown below:
Add Network to Database from Project Explorer
-
- OR -
Select the Channel branch, then click on the Add Network button, shown below, in the Edit section of the Home ribbon in Workbench.
Add Network button
The BACnet Network properties window will appear in the right pane of Workbench.
To edit a BACnet Network
If you double click on it, a dialog will open.
Network Dialog
The dialog contains some settings that you can configure. This is the list of the settings:
Name - The name of the Network
Description - The description of the Network
Network Number - the number of the Network
Click on the Apply button to apply the changes.
Import EDE File from Network level
It’s possible to execute an Import EDE File action in a Network. The only difference with the same action in the Channel level described above is that we don’t need to specify an attribute to retrieve the network number, since the network number is retrieved by the network itself.
Import EDE File action from Network level
Select the Network for which you want to call the action, then click on the Import EDE File button shown below in the Tools section of the Home ribbon in Workbench.
Import EDE File button
Export EDE File from Network level
It’s possible to execute an Export EDE File action in a Network. The only difference with the same action in the Channel level described above is that the collection of available devices in retrieved from the selected network and not from all the networks in a channel.
Export EDE File action from Network level
Select the Network for which you want to call the action, then click on the Export EDE File button, shown below, in the Tools section of the Home ribbon in Workbench.
Export EDE File button
Devices
Under a Network, there can be multiple Device entities. Each Device can contain multiple Object Types.
Device Level in the Project Tree
To create a BACnet Device
To create a new BACnet Device, right click on a Network and click on Add Device as shown below:
Add Device to Database from Project Explorer
- OR -
Select the Network branch, then click on the Add Device button shown below in the Edit section of the Home ribbon in Workbench.
Add Device button
The BACnet Device properties window will appear in the right pane of Workbench.
To edit a BACnet Device
If you double-click on it, a dialog will open
The dialog contains some settings that you can configure. This is the list of the settings:
Generic Properties
Device dialog (Generic Properties)
Name - the name of the Device
Description -the description of the Device
DeviceID - specifies the BACnet identifier of the device
VendorID - specifies the identifier of the vendor
Model Name - specifies the model name. It is assigned by the vendor to represent the model of the device
Firmware Revision - specifies the firmware revision. It is assigned by the vendor to represent the level of firmware installed in the device
Static Binding
Device dialog (Static Binding)
Enable Static Binding - true, to enable the Static Binding settings
Network - the number of the network where the device is
MAC [hexadecimal] - specifies the BACnet MAC Address of the device used for the static binding
Router Static Binding
Device dialog (Router Static Binding)
Enable Router Static Binding - true, to enable the Router Static Binding settings
Router to Networks - specifies the network numbers for the routers
First Router MAC [hexadecimal] - specifies the MAC Address when the device is a router
Override Settings
Device dialog (Override Settings)
Read Service Type - overrides the Read Service Type value defined at Channel level
Re-Subscribe COV Period[seconds]: overrides the Re-Subscribe COV Period value defined at Channel level
Polling Rate[seconds]: overrides the Polling Rate value defined at Channel level
Priority - overrides the Priority value defined at Channel level
Max Parallel Requests - overrides the Max Parallel Requests value defined at Channel level
Max Properties Per Request - overrides the Max Properties Per Request value defined at Channel level
Override Time Zone Information - overrides the Time Zone Information value defined at Channel level
Override Trend Settings
Device dialog (Override Trend Settings)
Enable Trends - if true, the trends are enabled for the device
Trend Read Type - overrides the Trend Read Type value defined at Channel level
Read Range Type - overrides the Read Range Type value defined at Channel level
Trend Read Polling Period - overrides the Trend Read Polling Period defined at Channel level
Override Notification Class Settings
Device dialog (Override Notification Class Settings)
Manage Recipients’ Lists - overrides the Manage Recipients’ Lists value defined at Channel level
Override Alarm Settings
Device dialog (Override Alarm Settings)
Enable Alarms - if true, the alarms are enabled for the device
AE Summary Type - overrides the AE Summary Type defined at Channel level
Use Timestamp from ACK Notification - overrides the Use Timestamp from ACK notification value defined at Channel level
Device Counters
Device dialog (Device Counters)
Show Counters - specifies if the counters are visible or not at Device level
Allow Subscribe Counters - specifies if the counters at Device level can be subscribed
Counters Polling Rate - specifies the polling rate of the counters at Device level. Range can be between 0 and 4194303. Default is 10.
Click on the Apply button to apply the changes.
Re-Scan Device
Workbench provider let the user to execute again a scan operation on a BACnet Device.
It is possible to execute a Re-Scan right-clicking on a Device and selecting ‘Re-Scan Device’ from the context menu as shown below:
Re-Scan Device action from Device level
Select the Device for which you want to call the action, then click on the Re-Scan Device button, shown below, in the Tools section of the Home ribbon in Workbench.
Re-Scan Device button
The Re-Scan Device dialog appears as shown below:
Re-Scan Device dialog
The dialog is the same dialog already described in the Network Discovery section.
It works in the same way and at the end of the operation, it will execute a separate task on the server to update the configuration of the device in the database.
Backup Device
Workbench provider let the user execute a backup operation on a BACnet Device.
It’s possible to execute a Backup right-clicking on a Device and selecting ‘Backup Device’ from the context menu as shown below:
Backup Device action from Device level
Select the Device for which you want to call the action, then click on the Backup Device button shown below in the Tools section of the Home ribbon in Workbench.
Backup Device button
The parameters of the action are:
File: specifies the directory where the backup of the device will be stored
Password: the password to be used to execute the operation
Click on the OK button to start the action.
The result of the action will be shown in a message box.
Restore Device
Workbench provider lets the user execute a restore operation on a BACnet Device.
It is possible to execute a Restore right clicking on a Device and selecting ‘Restore Device’ from the context menu as shown below:
Restore Device action from Device level
Select the Device for which you want to call the action, then click on the Restore Device button, shown below, in the Tools section of the Home ribbon in Workbench.
Restore Device button
The Restore Device dialog appears as shown below:
Restore Device dialog
The parameters of the actions are:
- File - specifies the path of the BACnet device file to be restored
- Password - the password to be used to execute the operation
Click on the OK button to start the action.
The result of the action will be shown in a message box.
Reinitialize Device
Workbench provider lets the user execute a Reinitialize operation on a BACnet Device.
It is possible to execute a Reinitialize right clicking on a Device and selecting ‘Reinitialize Device’ from the context menu as shown below:
Reinitialize Device action from Device level
- OR -
Select the Device for which you want to call the action, then click on the Reinitialize Device button, shown below, in the Tools section of the Home ribbon in Workbench.
Reinitialize Device button
The Reinitialize Device dialog appears as shown below:
Reinitialize Device dialog
The parameters of the action are:
State of Device - specifies the desired state of the device after its reinitialization. The value of the parameter may be one of:
o Coldstart
o Warmstart
o Activate Changes
o Start Backup
o End Backup
o Start Restore
o End Restore
o Abort Restore
Password - the password to be used to execute the operation
Click on the OK button to start the action.
The result of the action will be shown in a message box.
Device Communication Control
Workbench provider lets the user execute a Device Communication Control operation on a BACnet Device.
It is possible to execute a Device Communication Control by right clicking on a Device and selecting ‘Device Communication Control’ from the context menu as shown below:
Device Communication Control action from Device level
Select the Device for which you want to call the action, then click on the Device Communication Control button shown below in the Tools section of the Home ribbon in Workbench.
Device Communication Control button
The Device Communication Control dialog appears as shown below:
Device Communication Control dialog
The parameters of the action are:
Device Communication Control - it’s used to specify whether the responding BACnet-user is to enable all, disable initiation or disable all the communication on the network interface.
Time Duration [minutes] - specifies the number of minutes that the remote device shall ignore all APDUs except DeviceCommicationControl and, if supported, ReinitializeDevice APDUs.
Password - the password to be used to execute the operation
Click on the OK button to start the action.
The result of the action will be shown in a message box.
Time Synchronization from Device level
Workbench provider let the user execute a Time Synchronization operation on a BACnet Device.
It’s possible to execute a Time Synchronization right-clicking on a Device and selecting ‘Time Synchronization’ from the context menu as shown below:
Time Synchronization action from Device level
Select the Device for which you want to call the action, then click on the Time Synchronization button, shown below, in the Tools section of the Home ribbon in Workbench.
Time Synchronization button
The Time Synchronization dialog appears as shown below:
Time Synchronization dialog
The parameters of the action are:
Synchronization Time - specifies if we want to use Local Time or UTC Time
Click on the OK button to start the action.
The result of the action will be shown in a message box as shown below:
Time Synchronization result
Export EDE File from Device level
BACnet SC provider allows you to export the configuration data in an Engineering Data Exchange (.ede) file.
It is possible to execute an EDE export right-clicking on a Device and selecting ‘Export EDE File’ from the context menu as shown below:
Export EDE File action from Device level
Select the Device for which you want to call the action, then click on the Export EDE File button, shown below, in the Tools section of the Home ribbon in Workbench.
Export EDE File button
The Export EDE File dialog appears.
The behavior is the same as it is at Channel Device. The only difference is that in this case, we will have just one device in the list of Available Devices (the selected one).
Add Object to Runtime Device
Workbench provider lets the user add object on a runtime BACnet Device.
It is possible to execute the action by right clicking on a Device and selecting ‘Add Object To Runtime Device’ from the context menu as shown below:
Add Object to Runtime Device action from Device level
Select the Device for which you want to call the action, then click on the Add Object to Runtime Device button, shown below, in the Edit section of the Home ribbon in Workbench.
Add Object to Runtime Device button
The Add Object to Runtime Device dialog appears as shown below:
Add Object to Runtime Device dialog
The parameters of the action are:
Create Empty Object - true, if we want to create an object without setting any value of the properties of the object. It’s true and disabled by default for ‘simple’ object types, while it’s enabled for ‘special’ object types, such as Event Log, Event Enrollment, Notification Class, Trend Log and Trend Log Multiple.
Object Type - the type of the object we are going to create. It can enable/disable ‘Create Empty Object’ parameter, in case it’s selected a ‘simple’ or a ‘special’ object type.
Specify Instance - true, if we want to explicitly assign an instance to the object. Otherwise it’s automatically retrieved by the application.
Instance - specifies the instance of the object (set manually or automatically)
Specify Name - true, if we want to explicitly assign a name to the object. Otherwise it’s automatically set by the application (as ‘[ObjectTypeName] [Instance]’)
Name - specifies the name of the object (set manually or automatically)
If the selected object type is a ‘simple’ object type, then click on the OK button to start the action.
Otherwise you need to click on ‘Next’ button to set the properties of the ‘special’ object type.
In this case, depending on the select object type, another dialog is shown to the user.
Add Object to Runtime - Event Log dialog
The properties in case of Event Log are:
Description
Notification Class
Event Enable (To Off Normal, To Fault, To Normal)
Buffer Size
Log Enable
Notification Threshold
Stop When Full
Add Object to Runtime - Event Enrollment dialog
The properties in case of Event Enrollment are:
Description
Notification Class
Event Enable (To Off Normal, To Fault, To Normal)
Event Parameters
Event Type
Time Delay
List of Values
Referenced Property
Add Object to Runtime - Notification Class dialog
The properties in case of Notification Class are:
Description
Priority - To Off Normal + Ack Required
Priority - To Fault + Ack Required
Priority - To Normal + Ack Required
Recipients
Add Object to Runtime - Trend Log dialog
The properties in case of Trend Log object are:
Description
Notification Class
Event Enable (To Off Normal, To Fault, To Normal)
Buffer Size
Log Enable
Notification Treshold
Stop When Full
Log Interval
Device Object Property Reference
Add Object to Runtime - Trend Log Multiple dialog
The properties in case of Trend Log object are:
Description
Notification Class
Event Enable (To Off Normal, To Fault, To Normal)
Buffer Size
Log Enable
Notification Treshold
Stop When Full
Log Interval
Referenced Properties
Object Types
Under a Device, we can have multiple Object Types entities. Each Object Type can contain multiple Objects.
Object Type Level in the Project Tree
To create a BACnet Object Type
To create a new BACnet Object Type, right click on the Device and click on Add Channels as shown below:
Add Object Type from Project Explorer
Select the Device branch, then click on the ‘Add Object Type’ button shown below in the Edit section of the Home ribbon in Workbench.
The BACnet Object Type properties window will appear in the right pane of Workbench.
To edit a BACnet Object Type
Object Type Dialog
The dialog contains some settings that you can configure. This is the list of the settings:
Name -The name of the Object Type (automatically generated)
Description - The description of the Object Type
Object Type - The associated object type (the list of available object types comes from the Object Library)
Click on the Apply button to apply the changes.
Add Object to Runtime Device action
Workbench provider lets the user add object on a runtime BACnet Device. It is possible to create it in the Object Type level too.
It is possible to execute the action by right clicking on "Object Type" and selecting ‘Add Object To Runtime Device’ from the context menu as shown below:
Add Object to Runtime Device action from Object Type level
Select the Object Type for which you want to call the action, then click on the Add Object Runtime Device button shown below in the Edit section of the Home ribbon in Workbench.
Add Object to Runtime Device button
The Add Object to Runtime Device dialog appears, and the behavior is the same as described for the same action at Device level.
Objects
Under an Object Type, there can be multiple Objects entities. Each Object can contain multiple Properties.
Object Level in the Project Tree
To create a BACnet Object
To create a new BACnet Object, right click on the Object Type and click on Add Object as shown below:
Add Object from Project Explorer
Select the Object Type branch, then click on the Add Object button shown below in the Edit section of the Home ribbon in Workbench.
The BACnet Object properties window will appear in the right pane of Workbench.
To edit a BACnet Object Type
If you double-click on it, a dialog will open.
The dialog contains some settings that you can configure. This is the list of the settings:
Generic Properties
Object dialog (Generic Properties)
Generic Properties
Name - The name of the Object
Description - The description of the Object
Object Type - specifies the type of the object. The list of available object types is defined in the Library.
Instance - specifies the instance of the object.
Object ID - specifies the identifier of the object which is a combination of the object type and the object instance
Use default object type properties - if true, the collection of exposed properties of the object is retrieved from the Library instead from the properties children of the object in the configuration database
Override Settings
Object dialog (Override Settings)
Override Settings
Read Service Type - overrides the Read Service Type value defined in the Channel/Device levels
Re-Subscribe COV Period[seconds]:overrides the Re-Subscribe COV Period value defined in the Channel/Device levels
Polling Rate - overrides the Polling Rate value defined in the Channel/Device levels
Priority - overrides the Priority value defined in the Channel/Device levels
Click on the Apply button to apply the changes.
View Property Sheet
Workbench provider let the user get/set the values of the properties of an object in a BACnet Device.
It’s possible to execute a View Property Sheet action right-clicking on an Object and selecting ‘View Property Sheet’ from the context menu as shown below:
View Property Sheet action from Object level
Select the Object which you want to call the action for, then click on the View Property Sheet button shown below in the Tools section of the Home ribbon in Workbench.
The View Property Sheet dialog appears as shown below:
View Property Sheet dialog
The Property Sheet dialog will show all the available properties of the selected object with their values.
The user can start/stop the monitoring clicking on the link button in the right upper corner.
When the monitoring is disabled, the property grid is enabled and the user can modify the existing values and eventually apply the changes to send the new values to the BACnet device.
There are several controls to properly read/modify the values of the properties depending on their type.
Here is a list of the controls supported in the current version:
BACnet Date Time
These are the properties:
Value - the JSON representation of the BACnet Date Time value
Date Type - the type of date. The possible values are: Single Date, Wildcard Date, Any Date
Date - the date value
Time Type - the type of time. The possible values are: Single Time, Wildcard Time, Any Time
Time - the time value
BACnet Collection
It shows:
- Collection Items: the items in the collection
- Selected Items: the properties of the selected item
It is possible to add new items, remove existing items, update existing items.
BACnet Event TimeStamps
These are the properties:
To Fault: the JSON representation of the BACnet Date Time value linked to the To Fault
To Normal: the JSON representation of the BACnet Date Time value linked to the To Normal
To Off Normal: the JSON representation of the BACnet Date Time value linked to the To Off Normal
BACnet Priority Array
It shows the array of the BACnet priorities.
BACnet Octects
These are the properties:
- Value - the JSON representation of the BACnet Octects value
- Octects - the inner octets value
BACnet TimeStamp
These are the properties:
Value - the JSON representation of the BACnet TimeStamp value
TimeStamp Type - the type of timestamp. The possible values are: Date Time, Time, Sequence Number
Time - in case of Time type, it specifies the time value
DateTime - in case of Date Time type, it specifies the date time value
Sequence Number - in case of Sequence Number type, it specifies the sequence number
BACnet Limit Enable
These are the properties:
Value - the JSON representation of the BACnet Limit Enable value
Low Limit - true, if low limit is enabled
High Limit - true, if the high limit is enabled
BACnet Engineering Units
The available units are grouped by type (Acceleration, Area, Currency, Electrical, Energy…).
It’s possible to filter them, using the search filter.
BACnet Present Value
There are some parameters that can be set to write the present value of an object:
Type of Write: Write Value, Clear Value, Clear All Priorities
Value: the present value to be written
Priority: the priority of the write (between 1 and 16)
Click on the ‘Write Value’ button, to send a write command to set the new present value.
BACnet Calendar Entry
These are the properties:
Value: the JSON representation of the BACnet Calendar Entry value
Calendar Entry Type: it specifies the type of calendar entry. The possible values are: Date, Date Range, Week N Day.
Date: when the calendar entry type is ‘Date’, it specifies the date
Start Date: when the calendar entry type is ‘Date Range’, it specifies the start date
End Date: when the calendar entry type is ‘Date Range’, it specifies the end date
Month: when the calendar entry type is ‘Week N Day’, it specifies the month
Week of Month: when the calendar entry type is ‘Week N Day’, it specifies the week of the month
Day of Week: when the calendar entry type is ‘Week N Day’, it specifies the day of the week
BACnet Name Value
These are the properties:
Value: the JSON representation of the BACnet Name Value value
Name: it specifies the name
Data Type: it specifies the data type of the value. The possible values are: Bits, Bool, Date, Date Time, Double, Enumerated, Integer, Null, Object Identifier, Octets, Real, String, Time, Unsigned
Bits: when the data type is ‘Bits’, it specifies the bits value
Bool: when the data type is ‘Bool’, it specifies the bool value
Date: when the data type is ‘Date’, it specifies the date value
Date Time: when the data type is ‘Date Time’, it specifies the date time value
Double: when the data type is ‘Double’, it specifies the double value
Enumerated: when the data type is ‘Enumerated’, it specifies the enumerated value
Integer: when the data type is ‘Integer’, it specifies the integer value
Object Type: when the data type is ‘Object Identifier’, it specifies the object type of the object identifier value
Instance: when the data type is ‘Instance’, it specifies the instance of the object identifier value
Octets: when the data type is ‘Octets’, it specifies the octets value
Real: when the data type is ‘Real’, it specifies the real value
String: when the data type is ‘String’, it specifies the string value
Time: when the data type is ‘Time’, it specifies the time value
Unsigned: when the data type is ‘Unsigned’, it specifies the unsigned value
BACnet Channel Value
These are the properties:
Value: the JSON representation of the BACnet Channel Value value
Channel Value Type: it specifies the data type of the Channel Value. The possible values are: Bits, Bool, Date, Date Time, Double, Enumerated, Integer, Lighting Command, Null, Object Identifier, Octets, Real, String, Time, Unsigned
Bits: when the data type is ‘Bits’, it specifies the bits value
Bool: when the data type is ‘Bool’, it specifies the bool value
Date: when the data type is ‘Date’, it specifies the date value
Date Time: when the data type is ‘Date Time’, it specifies the date time value
Double: when the data type is ‘Double’, it specifies the double value
Enumerated: when the data type is ‘Enumerated’, it specifies the enumerated value
Integer: when the data type is ‘Integer’, it specifies the integer value
Lighting Command: when the data type is ‘Lighting Command’, it specifies the JSON representation of the lighting command value
Object Type: when the data type is ‘Object Identifier’, it specifies the object type of the object identifier value
Instance: when the data type is ‘Instance’, it specifies the instance of the object identifier value
Octets: when the data type is ‘Octets’, it specifies the octets value
Real: when the data type is ‘Real’, it specifies the real value
String: when the data type is ‘String’, it specifies the string value
Time: when the data type is ‘Time’, it specifies the time value
Unsigned: when the data type is ‘Unsigned’, it specifies the unsigned value
BACnet Lighting Command
These are the properties:
Value: the JSON representation of the BACnet Lighting Command value
Lighting Operation: it specifies the lighting operation. The possible values are: None, Fade To, Ramp To, Step Up, Step Down, Step On, Step Off, Warn, Warn Off, Warn Relinquish, Stop.
Target Level: if enabled, it specifies the target level
Ramp Rate: if enabled, it specifies the ramp rate
Step Increment: if enabled, it specifies the step increment
Fade Time: if enabled, it specifies the fade time
Priority: if enabled, it specifies the priority
BACnet Optional Unsigned
These are the properties:
Value: the JSON representation of the BACnet Optional Unsigned value
Optional Unsigned Type: it specifies the optional unsigned type. The possible values are Null and Not Null.
Unsigned: if the optional unsigned type is Not Null, then it specifies the unsigned value
BACnet Date
These are the properties:
Value: the JSON representation of the BACnet Date value
Date Type: it specified the type of date. The possible values are Single Date, Wildcard Date, Any Date.
Date: if the date type is Single Date, then it specifies the date value
Month: if the date type is Wildcard Date, then it specified the month of the date value
Day: if the date type is Wildcard Date, then it specified the day of the date value
Year: if the date type is Wildcard Date, then it specified the year of the date value
Day of Week: if the date type is Wildcard Date, then it specified the day of the week of the date value
BACnet Time
These are the properties:
Value: the JSON representation of the BACnet Time value
Time Type: it specifies the type of time. The possible values are Single Time, Wildcard Time, Any Time.
Time: if the time type is Time, it specifies the time value
BACnet Object Types Supported
These are the properties:
- Value: the JSON representation of the BACnet Object Types Supported value
For each object types, if true, then the object type is supported.
BACnet Services Supported
These are the properties:
Value: the JSON representation of the BACnet Services Supported value
For each service, if true, then the service is supported.
BACnet Fault Parameter
These are the properties:
Value: the JSON representation of the BACnet Fault Parameter value
Fault Parameter Type: it specified the type of fault parameter. The possible values are: None, Fault Characterstring, Fault Extended, Fault Life Safety, Fault Listed, Fault Out of Range, Fault State, Fault Status Flags.
List of Fault Values (strings): if the fault parameter type is Fault Characterstring, it specifies the collection of character strings of the fault parameter value
Vendor ID: if the fault parameter type is Fault Extended, it specifies the identifier of the Vendor of the fault parameter value
Extended Fault Type: if the fault parameter type is Fault Extended, it specifies the extended fault type of the fault parameter value
Policy: if the fault parameter type is Fault Extended, it specifies the policy of the fault parameter value
Model Property Reference: if the fault parameter type is Fault Life Safety, it specifies the model property reference of the fault parameter value
List of Fault Values (enums): if the fault parameter type is Fault Life Safety, it specifies the collection of life safety values of the fault parameter value
Fault Listed: if the fault parameter type is Fault Listed, it specifies the JSON representation of the device object property reference of the fault parameter value
Min Normal Value: if the fault parameter type is Fault Out of Range, it specifies the JSON representation of the minimum event parameter out of range value of the fault parameter value
Max Normal Value: if the fault parameter type is Fault Out of Range, it specifies the JSON representation of the maximum event parameter out of range value of the fault parameter value
Fault State: if the fault parameter type is Fault State, it specifies the JSON representation of the collection of property states of the fault parameter value
Fault Status Flags: if the fault parameter type is Fault Status Flags, it specifies the JSON representation of the object identifier of the fault parameter value
BACnet Device Object Property Reference
These are the properties:
Value: the JSON representation of the BACnet Device Object Property Reference value
Device Type: it specifies the type of the referenced device
Device Instance: it specifies the instance of the referenced device
Object Type: it specifies the object type of the referenced object
Object Instance: it specifies the instance of the referenced object
Property: it specifies the property type of the referenced property
Property Array Index: it specifies the array index of the referenced property
BACnet Event Parameter Out Of Range Value
These are the properties:
Value: the JSON representation of the BACnet Event Parameter Out Of Range Value value
Type: it specifies the type of the values of the event parameter out of range value. The possible values are Double, Integer, Real, Unsigned
Unsigned: if the type of the event parameter out of range is Unsigned, it specifies its unsigned value
Double: if the type of the event parameter out of range is Double, it specifies its double value
Integer: if the type of the event parameter out of range is Integer, it specifies its integer value
Real: if the type of the event parameter out of range is Real, it specifies its real value
BACnet Property State
These are the properties:
Value: the JSON representation of the BACnet Property State value
Type: it specifies the type of the property state value. The possible values are: Integer, Unsigned, various Enumerations
Integer: if the type of the property state is Integer, it specifies its integer value
Unsigned: if the type of the property state is unsigned, it specifies its unsigned value
Enum Value: if the type of the property state is one of available enumerations, it specifies its enumeration value
BACnet Shed Level
These are the properties:
Value: the JSON representation of the BACnet Shed Level value
Shed Level Type: it specifies the type of shed level. The possible values are: Percent, Amount, Level
Percent: if the shed level is Percent, it specifies the Percent value of the shed level
Amount: if the shed level is Amount, it specifies the Amount value of the shed level
Level: if the shed level is Level, it specifies the Level value of the shed level
BACnet Date Range
These are the properties:
Value: the JSON representation of the BACnet Date Range value
Start Date: the JSON representation of the start date of the date range value
End Date: the JSON representation of the end date of the date range value
BACnet Special Event
These are the properties:
Value: the JSON representation of the BACnet Special Event value
Special Event Period Type: it specifies the type of special event period. The possible values are: Calendar Entry or Calendar Reference
Calendar Entry: if the special event period type is Calendar Entry, it specifies the JSON representation of the calendar entry of the special event period
List of Time Values: if the special event period type is Calendar Entry or Calendar Reference, it specifies the JSON representation of the collection of time values of the special event period
Priority: if the special event period type is Calendar Entry or Calendar Reference, it specified the priority of the special event period
Object Type: if the special event period type is Calendar Reference, it specifies the object type of the referenced calendar of the special event period
Instance: if the special event period type is Calendar Reference, it specifies the instance of the referenced calendar of the special event period
BACnet Time Value
These are the properties:
Value: the JSON representation of the BACnet Time Value value
Time: it specifies the JSON representation of the time of the time value
Value Type: it specifies the type of the time value. The possible values are: Bits, Bool, Date, Double, Enumerated, Integer, Null, Object Identifier, Octets, Real, String, Time, Unsigned
Bits: when the data type is ‘Bits’, it specifies the bits value
Bool: when the data type is ‘Bool’, it specifies the bool value
Date: when the data type is ‘Date’, it specifies the date value
Double: when the data type is ‘Double’, it specifies the double value
Enumerated: when the data type is ‘Enumerated’, it specifies the enumerated value
Integer: when the data type is ‘Integer’, it specifies the integer value
Object Type: when the data type is ‘Object Identifier’, it specifies the object type of the object identifier value
Instance: when the data type is ‘Instance’, it specifies the instance of the object identifier value
Octets: when the data type is ‘Octets’, it specifies the octets value
Real: when the data type is ‘Real’, it specifies the real value
String: when the data type is ‘String’, it specifies the string value
Time: when the data type is ‘Time’, it specifies the time value
Unsigned: when the data type is ‘Unsigned’, it specifies the unsigned value
BACnet Timer State Change Value
These are the properties:
Value: the JSON representation of the BACnet Timer State Change Value value
Type: it specifies the type of timer state change value. The possible values are: Bits, Bool, Constructed, Date, Date Time, Double, Enumerated, Integer, Lighting Command, No Value, Null, Object Identifier, Octets, Real, String, Time, Unsigned
Bits: when the data type is ‘Bits’, it specifies the bits value
Bool: when the data type is ‘Bool’, it specifies the bool value
Date: when the data type is ‘Date’, it specifies the date value
Date Time: when the data type is ‘Date Time’, it specifies the date time value
Double: when the data type is ‘Double’, it specifies the double value
Enumerated: when the data type is ‘Enumerated’, it specifies the enumerated value
Integer: when the data type is ‘Integer’, it specifies the integer value
Lighting Command: when the data type is ‘Lighting Command’, it specifies the JSON representation of the lighting command value
Object Type: when the data type is ‘Object Identifier’, it specifies the object type of the object identifier value
Instance: when the data type is ‘Instance’, it specifies the instance of the object identifier value
Octets: when the data type is ‘Octets’, it specifies the octets value
Real: when the data type is ‘Real’, it specifies the real value
String: when the data type is ‘String’, it specifies the string value
Time: when the data type is ‘Time’, it specifies the time value
Unsigned: when the data type is ‘Unsigned’, it specifies the unsigned value
Application Tag: when the data type is ‘Constructed’, it specifies the application tag of the constructed value
Constructed Value: when the data type is ‘Constructed’, it specifies the JSON representation of the constructed value
BACnet Constructed Value
These are the properties:
Value: the JSON representation of the BACnet Timer State Change Value value
Type: it specifies the type of the constructed value. The possible values are: Bits, Bool, Constructed, Date, Double, Enumerated, Integer, Null, Object Identifier, Octects, Real, String, Time, Unsigned
Bits: when the data type is ‘Bits’, it specifies the bits value
Bool: when the data type is ‘Bool’, it specifies the bool value
Date: when the data type is ‘Date’, it specifies the date value
Date Time: when the data type is ‘Date Time’, it specifies the date time value
Double: when the data type is ‘Double’, it specifies the double value
Enumerated: when the data type is ‘Enumerated’, it specifies the enumerated value
Integer: when the data type is ‘Integer’, it specifies the integer value
Object Type: when the data type is ‘Object Identifier’, it specifies the object type of the object identifier value
Instance: when the data type is ‘Instance’, it specifies the instance of the object identifier value
Octets: when the data type is ‘Octets’, it specifies the octets value
Real: when the data type is ‘Real’, it specifies the real value
String: when the data type is ‘String’, it specifies the string value
Time: when the data type is ‘Time’, it specifies the time value
Unsigned: when the data type is ‘Unsigned’, it specifies the unsigned value
Delete Object from Runtime Device
Workbench provider lets the user delete an object from a runtime BACnet Device.
It is possible to execute a Delete Object from Runtime Device right-clicking on an Object and selecting ‘Delete Object from Runtime Device’ from the context menu as shown below:
Delete Object from Runtime Device action from Object level
- OR -
Select the Object for which you want to call the action, then click on the Delete Object from Runtime Device button shown below in the Edit section of the Home ribbon in Workbench.
Delete Object from Runtime Device button
You will be asked if you want to continue with the deletion of the object:
If you click on OK button, then the object will be deleted from the runtime BACnet device.
Properties
Under an Object, there can be multiple Property entities.
If you double-click on it, a dialog will open.
The dialog contains some settings that you can configure. This is the list of the settings:
Generic Properties
Name - The name of the Property
Description - The description of the Property
Property ID - the identifier of the associated property from the Library. It’s even possible to edit/add properties from this dialog clicking on the icons. A dialog will be shown to the user
Array Index - specifies the array index of the property. Range can be between -1 and 4194303. Default is -1.
Add a BACnet Vendor Property
o Name: specifies the name of the property
o Property ID: specifies the identifier of the property. Range can be between 512 and 4194303
o Vendor ID: specifies the vendor identifier
o Custom Name: specifies the custom name of the property (to be used as display name)
o Data Type: specifies the data type of the property
o Read Only: if true, the property will be set as read-only
Override Settings
Property dialog (Override Settings)
Read Service Type - overrides the Read Service Type value defined in the Channel/Device/Object levels
Re-Subscribe COV Period[seconds]:overrides the Re-Subscribe COV Period value defined in the Channel/Device/Object levels
Polling Rate[seconds]: overrides the Polling Rate value defined in the Channel/Device/Object levels
Priority: overrides the Priority value defined in the Channel/Device/Object levels
Click on the Apply button to apply the changes.
Libraries
Under the root level, there’s another section available called ‘Libraries’.
Libraries in the Project Tree
The Libraries level contains two sub-levels:
Property Library - Here, you can configure the available properties
Device Templates - Here, you can configure a set of templates for the devices (currently, only the standard device template is available)
Property Library
The Property Library is available under the Libraries root level.
Property Library in the Project Tree
If you double-click on it, a dialog will open.
Property Library Dialog
In this dialog, we can configure the available properties (modify the existings or add / remove new ones). We can have two different kinds of properties: Standard and Custom. The standard properties cannot be added/remove. You cannot even modify them except the Custom Name. The Custom properties are otherwise fully supported (you can add/remove/edit them).
In this dialog, we can configure the available properties (modify the existings or add / remove new ones). We can have two different kinds of properties: Standard and Custom. The standard properties cannot be added/remove. You cannot even modify them except the Custom Name. The Custom properties are otherwise fully supported (you can add/remove/edit them).
For each property, we have these properties:
Name - The name of the property.
PropertyID - The identifier of the property.
VendorID - The identifier of the vendor.
Custom Name - The custom name of the property.
Data Type - The data type of the property
Read Only - True if the property is read-only
Standard - True if the property is a standard property.
Click on the Apply button to apply the changes.
The properties with PropertyID in the range [0..511] are automatically marked as ‘Standard’ and cannot be removed/modified by the users.
Device Templates
The Device Templates level is the virtual root level of the Device templates. It could contain multiple Device Templates. In current version we have only the Default Device Template (we cannot add new templates).
Device Templates in the Project Tree
Device Template
The Device Template entity is under the virtual root level Device Templates. Currently, we can have only one Device Template (the default one) and there are no configurable properties. It contains multiple Object Type Templates.
Device Template in the Project Tree
To create an Object Type Template
To create a new Object Type, right-click on the Default Device and click on Add Object Type as shown below:
Add Object Type from Project Explorer
- OR -
Select the Default Device branch, then click on the ‘Add Object Type’ button shown below in the Edit section of the Home ribbon in Workbench.
Add Object Type button
The Object Type properties window will appear in the right pane of Workbench.
To edit an Object Type Template
If you double-click on it, a dialog will open.
Object Type Template
The Object Type Template entity is under a Device Template entity.
Object Type Template in the Project Tree
If you double-click on it, a dialog will open.
Object Type Template dialog
The dialog contains some settings that you can configure. This is the list of the settings:
Object Type
Object Type ID - The identifier of the object type
Icon - The icon to be shown in the provider
Vendor Properties
The grid contains the list of supported properties for the object type.
For each property we can see:
Property Name: the name of the property
Property ID: the identifier of the property
Vendor ID: the identifier of the vendor
Override Read Only: it specifies if the property should override the read-only setting of the linked property. The possible values are:
o Inherit from Property: to inherit the value from the referenced property
o ReadOnly: to overwrite the value of the referenced property and set it to read-only
o Writable: to overrider the value of the referenced property and set it to writable
Override Data Type: true if we want to override the data type specified in the referenced property
Data Type: if Override Data Type is set to true, it specifies the data type that overrides the data type specified in the referenced property
Click on the Apply button to apply the changes.
Logger System Settings
The Logger System Settings level is one of the top most element in BACnet hierarchy.
If you double-click on it, a dialog will open.
Logger System Settings dialog
It contains the logger system settings.
The properties are grouped by:
- Cache
- Logger
- Master Logger
- Logger Data Store
- Master Logger Data Store
Here are the settable properties listed for each group:
Cache
- Flush Time - Specifies the time interval (in seconds) after which the cache is cleared. Enter the time interval in the text entry field or use the up/down arrow buttons.
- Maximum Unused Data Blocks LifeTime - Specifies the maximum lifetime (in seconds) of unused data blocks. Enter the maximum lifetime in the text entry field or use the up/down arrow buttons.
- Maximum Unused Index Blocks LifeTime - Specifies the maximum lifetime (in seconds) of unused index blocks. Enter the maximum lifetime in the text entry field or use the up/down arrow buttons.
Logger
- Operation Retry Interval - Specifies the time interval (in seconds) after which the logger attempts to re-execute a failed operation. Enter the time interval in the text entry field or use the up/down arrow buttons.
Master Logger
- Data File Extension - Specifies the extension for logged data files. Enter a data file extension in the text entry field.
- Index File Extension - Specifies the extension for index files. Enter an index file extension in the text entry field.
- Maximum Inactivity Period - Specifies the maximum inactivity period (in minutes) allowed for the master logger. Enter the maximum inactivity period in the text entry field or use the up/down arrow buttons.
- Operation Retry Interval - Specifies the time interval (in seconds) after which the master logger attempts to re-execute a failed operation. Enter the operation retry interval in the text entry field or use the up/down arrow buttons.
- Enable Auto Attach Archives - Specifies if automatic attach/detach feature is on.
Logger Data Store
- Data File Buffer Size - Specifies the size (in kilobytes) of the data file buffer. Enter the size in the text entry field or click on the up/down buttons.
- Data Slot Size - Specifies the size (in kilobytes) of the data slot. Enter the size in the text entry field or click on the up/down buttons.
- Index File Buffer Size - Specifies the size (in kilobytes) of the index file buffer. Enter the size in the text entry field or click on the up/down buttons.
- Index Slot Size - Specifies the size (in kilobytes) of the index slot. Enter the size in the text entry field or click on the up/down buttons.
- Value Reservation - Specifies values reservation as a percentage. Enter the percentage in the text entry field or click on the up/down buttons.
- Value Split Size - Specifies values split size as a percentage. Enter the percentage in the text entry field or click on the up/down buttons.
Master Logger Data Store
- Data File Buffer Size - Specifies the size (in kilobytes) of the data file buffer. Enter the size in the text entry field or click on the up/down buttons.
- Data Slot Size - Specifies the size (in kilobytes) of the data slot. Enter the size in the text entry field or click on the up/down buttons.
- Index File Buffer Size - Specifies the size (in kilobytes) of the index file buffer. Enter the size in the text entry field or click on the up/down buttons.
- Index Slot Size - Specifies the size (in kilobytes) of the index slot. Enter the size in the text entry field or click on the up/down buttons.
- Value Reservation - Specifies values reservation as a percentage. Enter the percentage in the text entry field or click on the up/down buttons.
- Value Split Size - Specifies values split size as a percentage. Enter the percentage in the text entry field or click on the up/down buttons.
Once you have completed making updates to the Logger System Settings, click on the Apply button then on the Close button to return to the Workbench.
Logger
The Logger level is one of the top most element in BACnet hierarchy.
It contains the logger settings.
The properties are grouped by:
- Storage
- Storage Limit
- Advanced Settings
Here the settable properties for each group:
Storage
- Search values in max - Enter a maximum (in logger files) in the text entry field or use the up/down arrow buttons.
- Time Zone - Select either 'Use local server time' or 'Use UTC'.
- Recurrence type - Use the pulldown menu to select from One time only, Time interval, or Specific dates and times. Click the Preview button to open the Recurrence Preview window to see your set recurrences.
- Starting at - Enter a date and time in the text entry field or click on the button to open the date and time control to select your preferred date and time.
- Recur every - Enter a value in the text entry field and then use the nearby pulldown menu to select units [Second(s), Minute(s), Hour(s), Day(s), Week(s), Month(s), or Year(s)].
If 'Specific dates and times' is selected for Recurrence type:
- Pick specific times - Click this checkbox in order to set specific times. This activates the Seconds field below.
- Seconds - Enter a value in the text entry field or click on the button, which allows you to make a multi selection of units.
Storage Limit
- Condition - Use the pulldown menu to select from 'Minimum Time Extent and Maximum Total Size', 'Minimum Time Extent', or 'None'.
- Min. Time Extent - Enter a value in the text entry field (or use the up/down arrow buttons) then use the pulldown menu to select units from Minute(s), Hour(s), or Day(s).
- Max. Total Size - Enter a value in the text entry field in megabytes (or use the up/down arrow buttons).
- Check condition every - Enter a value in the text entry field (or use the up/down arrow buttons) then use the pulldown menu to select units from Second(s), Minutes(s), Hour(s), or Day(s).
Advanced Settings
- Package Processing Rate:Enter a value in the text entry field in seconds (or use the up/down arrow buttons).
- Package Retry Delay: Enter a value in the text entry field (or use the up/down arrow buttons) then use the pulldown menu to select units from Second(s), Minutes(s), Hour(s), or Day(s).
- Package Max. Retry Count: Enter a value in the text entry field (or use the up/down arrow buttons).
- Shutdown Timeout: Enter a value in the text entry field in seconds (or use the up/down arrow buttons).
Click Apply to save your changes then Close to return to the Workbench.
Alarms
Displaying BACnet Alarms can be done via the AlarmWorX64 Viewer within GraphWorX64. The control has the capability to view and manipulate OPC and BACnet alarms.
Each Event State thrown by a given BACnet object received by AlarmWorX64 Viewer is displayed in a separate row in order to notify the operator that there were several changes of state. If a row has a red background (this is by default, look & feel can be completely overridden in AlarmWorX64 Viewer configuration) then the given Alarm or Event is in Alarm State and has not been acknowledged yet.
If a row has a white background but the text is written in red then it is still in an Alarm State, but it has been already acknowledged.
If a row has a white background but the text is written in red then it is still in an Alarm State, but it has been already acknowledged.
Alarms or Events in Alarm State can’t be cleared from the list.
If a row has a white background and the text is black, it means that the given Alarm or Event state is not actual, but occurred in the past. This information can be cleared from the list.
AlarmWorX64 Viewer does not visually differentiate between Alarms or Events. The graphical representation is same for both.
Configuring BACnet and Other UA Alarms in the Alarm Logger
When logging extra attributes from BACnet and other UA alarms into the ICONICS Alarm Logger, users should make certain to configure the same attribute list for ALL Event Categories.
Use {null} if an individual attribute is missing from the list.
Skip Event Category if no required attributes exist in the list.
Logging Extra Attributes for Event Category "BACnetAlarmType"
BACnet Event Category ‘OutOfRange’ contains the same extra attributes so they should be configured.
BACnet Event Category "OutOfRange"
BACnet Event Category ‘BaseConditionType’ does not contain the needed extra attributes, so this does not need to be configured.
BACnet Event Category BaseConditionType
Displaying Alarms
To Display BACnet Alarms, Do the Following:
1. Launch GraphWorX64.
2. Insert the AlarmWorX64 Viewer control by choosing it in the ‘Controls’ tab and draw a rectangle in the canvas to place an AlarmWorX64 Viewer.
3. Double-click the displayed viewer control in order to open its properties and settings.
4. In the opened dialog, select the ‘Grid’ tree item.
5. Now, click the button with the ‘+’ sign in the ‘Create/Remove Subscriptions’ section and choose ‘Real Time Subscription’ from the opened context menu.
6. Select the ‘Local Alarm Server’ listbox item in the ‘Add/Remove Event Points’ section and click the ‘-‘ sign in the same section to remove an existing subscription.
7. Now, press the ‘+’ button in the ‘Add/Remove Event Points’ section. This will open the Data Browser.
8. In Data Browser’s tree view (under “Data Points tab)”, expand “My Computer”.
9. Under “My Computer” further expand “Data Connectivity”.
10. Under “Data Connectivity” further select the “BACnet with SC” to subscribe for all the alarms from the whole BACnet/SC point manager. If so, click OK to confirm the dialog. Or you can continue to select individual channels, devices, or objects from which you want to obtain /filter the alarms. If so, …
11. Expand the “BACnet with SC” and browse for the desired channel, device, or object. Double click the desired channel/device/object or click OK to confirm the dialog.
Acknowledging Alarms
There are several ways how to acknowledge alarms in AlarmWorX64 Viewer:
a. Simply double-click your desired row with unacknowledged notification.
b. Right-click your desired row with unacknowledged notification and choose ‘Acknowledge’ from the context menu, then confirm the displayed dialog or change conditions within the displayed dialog in order to acknowledge more alarms or events at the same time.
c. In GraphWorX64’s ribbon, switch to the ‘AlarmWorX64 Runtime’ tab, select the desired row and click ‘Acknowledge’ button in the ribbon bar.
Trends
Displaying BACnet Trends can be done by the TrendWorX64 Viewer within GraphWorX64. The control has the capability to view real time or historical OPC data as well as to visualize BACnet Trends. Alternatively, you can also display any historical data exposed by the IoT Subscriber Point Manager.
An important thing to know here is that all data are initially requested from the Trend Log object buffer when BACnetSC Point Manager is started. When the Notification Threshold hits, then new buffer data are requested. TrendWorX64 Viewer provides an interface for moving this data across to the user so he or she can seek and zoom to a specific portion of any loaded data (described in 'Displaying a specific portion of the data').
It is also important to know that Trends are by default switched off in the Point Manager configuration. They can be switched on in WBD on device level. If the checkbox is checked, then all TrendLog and TrendLogMultiple objects are subscribed to the device. That means there should only be the required TL and TLM objects in the configuration.
In the picture below, the trends are enabled on device level which cause subscribing to one TrendLog object and one TrendLogMultiple object (as highlighted in the picture).
Displaying Trends from Trend Log Objects
To display BACnet trends, do the following:
1. Launch GraphWorX64.
2. Insert the TrendWorX64 Viewer control by choosing it in the ‘Controls’ tab and draw a rectangle in the canvas to place a TrendWorX64 Viewer.
3. Double-click the displayed viewer in order to open its properties and settings.
4. In the opened dialog window, right-click the ‘Chart’ tree item and choose ‘Add’ -> ’Plot’.
5. Now, right-click the newly created ‘Plot’ item in the tree and choose ‘Add’ -> ‘Pen’.
6. Select the newly created ‘Pen’ in the tree and in General Tab on the right-side insert ‘Data Source’ or click the ‘…’ button next to the ‘Data Source’. The Data Browser will open.
7. In the Data Browser expand ‘Data Connectivity’ and ‘BACnet with SC’.
8. Then expand BACnet address space to find your desired Trend Log object (or Trend Log Multiple object) providing trend data.
9. Tag that support history read has name “.history” for TrendLog.
10. Confirm the selection by clicking 'OK' in the Data Browser. This will add a Data Source path to the selected Trend Log object.
11. There is a “Connection” string under the Data Source that also have its ‘…’ button which opens allows us to specify connection details when you use “Configure…”.
12. There switch the radio buttons to ‘Use HDA connection’.
13. The content of the dialog window will slightly change and you can select a filter which depends on a purpose of the signal. If you select ‘(raw data)’ then you should get the same samples as in BACnet TrendLog object.
14. Now you can close the dialog window for TrendWorX64 Viewer’s configuration.
15. Switch GraphWorX64 to Runtime mode. You will see a line representing data stored in the Trend Log (maybe you will need to change vertical scale of graph. To do so, proceed with a left mouse click to the area of vertical axis ranges. A dialog window will appear where you can change it).
Displaying Trends from Trend Log Multiple Objects
These steps are the same as for 'Displaying Trends from Trend Log Objects' except:
You connect each pen (created in step 5) with the same Trend Log Multiple object (selected in steps 6 to 11) – one pen = one trend on the plot
There are tags with name “.history<n>” where the <n> is an index of a signal from TrendLogMultiple object.
In the “Connection” dialog (step 11 and 12), select the Use HDA connection as well.
Displaying Trend Log Data in IoTWorX
To display BACnet Trend Log data in IoTWorX, do the following steps:
In Workbench, expand your project, then expand the Internet of Things node and right-click on the Subscriber Connections node.
Choose the desiredIoT Hub / Event hub or MQTT connection, or create a new one.
Enable 'Collect the logged data retrieved with this subscription' option inGeneral Settings.
Configure a logger for the subscriber. Make sure you enable the option “The logger is used by all subscriber connections to retrieve the collected data”.
Configure the history pointsin the publish list under the Published Historical Points tab.
Published Historical Points TabBy default, raw data are read butif needed, you can specify a different aggregate for each history point.Then you will also need to configure the aggregate group.
History points are not available in the publisher. You need to publish them into the cloud and consume by the subscriber. You will find the history data under the device in the History Data folder.
You will find other useful settings in Advanced Settings under the General Settings of the publish list. Max. History Read Threads specifies the maximum read requests that can run at the same time. You need a request per point. History ReadTimeout specifies the timeout of the history read operation.