Skip to main content

BACnet Knowledgebase

Setting the command priority for a BACnet Signal in i4scada

Abstract

The scope of this tutorial is to guide you on how to give priority to controls where conflicting control situations may occur.

BACnet uses command priority to assign different levels of priorities to command entities throughout a system. The scope of this process is to give priority to controls where conflicting control situations may occur.

There are sixteen levels of priority in BACnet, known as the priority array, which consists of commands or NULLs. The active command is the one with the highest priority (lowest array priority level) with a non-Null value. If a priority level holds a value of NULL, then the next non-NULL object is assigned to the object.

The scope of the present tutorial is to describe the necessary settings enabling the command priority of a BACnet Signal, to level 8, which is the standard setting for Manual Operator. If a priority level has not been specified when attempting to command a property, the priority level will be by default set to level 16, which is the lowest priority.

Setting the command priority in i4scada Studio

In order to set the command priority in i4scada Studio, please follow the below-described steps:

  1. Start the i4scada Server and check that BACnet Server is also running.

    Servers_running.jpg
  2. Open the i4scada Studio application.

  3. Configure the BACnet Connector as described in the previous article.

  4. When reaching the Signals configuration step, import a present-value property of a BACnet Object.

    Note

    For the present tutorial, we shall also import a "priority-array" property of the BACnet Object, that will be used exclusively for testing the command priority settings.

    PresentValue_imported.jpg
  5. In the BACnet Connector Configuration area, update the Signal Priority of the "present-value property and set it to value 8.

  6. Make sure to preserve your changes, by clicking the Save button.

    Prio_set_to_8.jpg
  7. In order to bring the Server up to date, you can either restart the i4scada Server in Service Manager or click on the Take new configuration toolbar button.

    Take_new_Configuration.jpg
Testing the command priority setting

To visually check the command priority settings, please organize the below-described steps:

  1. Make sure that the i4scada and BACnet Servers are running, under the Service Manager application.

    Servers_running.jpg
  2. Open the i4scada Test Center.

  3. Add the present-value and priority-array Signals.

    Test_Center_current_values.jpg
  4. The properties are added to the list with their current values. The "priority-array" Signal value is commanded by the "present-value" Signal value.

    Inactive_value.jpg
  5. Enter value "1" in the Write value cell of the "present-value" Signal.

  6. The Current value of both "present-value" and "priority-array" Signals is updated.

    Active_value.jpg
  7. To reset the "priority-array" value, delete everything in the Write column of the "present-value" Signal and hit enter. You will recognize that the "priority-array" Signal value is set to NULL.

    Reset_with_NULL.jpg

Setting the command priority in i4scada SmartEditor

In order to set the command priority of a binary-value BACnet Signal, in the i4scada SmartEditor, we shall use the Studio Project created within the previous tutorial.

  1. Open the i4scada SmartEditor application. By default, an empty project page is opened.

  2. Drag the i4-core extension and drop it to your project page.

    i4-core.jpg
  3. Next, drag a wf-input extension and position it on your project page.

    wf-input.jpg
  4. Open the Object Properties panel, of the wf-input extension and organize the following changes:

    1. Set the Alphanumeric property to value True;

    2. Set the "present-value" BACnet Signal Name.

    ObjPR_of_wf-input.jpg
Testing the command priority setting

In order to check the previously organized settings, proceed with the following steps:

  1. Make sure that the i4scada and BACnet Servers are running, under the Service Manager.

    Servers_running.jpg
  2. Proceed, by publishing the i4scada SmartEditor project.

  3. Open the published project in your preferred browser.

  4. The wf-input extension displays the current value of the "present-value" Signal.

    wf-input_runtime.jpg
  5. Alternatively, you can open the i4scada Test Center application and follow up your run-time changes as follows:

    1. Change the value of the wf-input from 1 to 0 and confirm the change.

      Change_to_0.jpg
    2. The Current Value of both present-value and priority-array properties have been updated accordingly. The change can be seen in the i4scada Test Center application.

      Test_Center_changed_to_0.jpg
    3. Change the value of wf-input from 0 to 1 and confirm the change.

    4. Checking the Current Value field in i4scada Test Center will reflect the change.

      Teste_Center_changed_to_1.jpg
    5. As a final step, the command priority can be reset by clearing all the values in the wf-input and confirming the change.

      clear_all_text.jpg
    6. The changes are visible in the i4scada Test Center application. The Current Value of the priority-array property is reset to NULL.

      NULL_value_added.jpg

Resetting the command priority for a BACnet Signal in i4scada SmartEditor

In order to reset the command priority of a BACnet Signal, in i4scada SmartEditor, the following steps need to be organized:

  1. Open the i4scada SmartEditor application. By default, an empty project page is opened.

  2. Drag the i4-core extension and drop it to your project page.

    i4-core.jpg
  3. Next, drag a wf-button extension and position it on your project page.

    wf-button.jpg
  4. Open the Object Properties panel, of the wf-button extension and organize the following changes:

    1. Add the present-value BACnet Signal Name;

    2. Set the Value property to '' (two apostrophes without a space between them).

    double_apostrophe.jpg
Testing the command priority setting

Let's check how the previous settings work! In this regard, we will again use the i4scada Test Center application, to visually follow up the changes.

  1. Make sure that the i4scada and BACnet Servers are running, under the Service Manager.

    Servers_running.jpg
  2. Proceed, by publishing the wf-button i4scada SmartEditor project.

  3. Open the published project in your preferred browser.

  4. The wf-button extension is displayed.

  5. Open the i4scada Test Center application and follow up your run-time changes as follows:

    1. The present-value and priority-array Signals have a current value of 1 / Active.

      PRs_to_value_1.jpg
    2. Click the run-time wf-button extension.

      Click_on_button.jpg
    3. Check again the current value of the Signals, in the i4scada Test Center application. The current value was updated for both of the Signals, from 1 / Active to 0 / NULL.

      Current_value_null.jpg