Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

AVEVA Enterprise SCADA

Create the naming rules plugin

  • Last UpdatedApr 24, 2025
  • 2 minute read

To create a new naming rules plugin

  1. Create a RealTime Developer Environment (refer to the AVEVA Enterprise SCADA Shared Components Developer documentation).

  2. Open <path to environment>\Tools\source\VirtualRTU.Examples.sln.

  3. Rename or copy any projects or solutions as desired.

  4. Create classes implementing rules interfaces for analog inputs, setpoints, digital inputs, commands, flow rates and volumes, as required. For each rule, provide implementation of filter (method AppliesTo) and derivation (method DerivesFrom). An example of the analog input rule implementation is shown below.

    using OASySDNA.VirtualRtu.Configuration.NamingContract;

    namespace OASySDNA.VirtualRTU

    {

    public class AnalogInputNamingRule : IAnalogNamingRule

    {

    public bool AppliesTo(IAnalogId analogId)

    {

    return analogId.Name != null && analogId.Name.StartsWith("ANA");

    }

    public string DeriveFrom(IAnalogId analogId)

    {

    return analogId.Name.Substring(3);

    }

    }

    }

    In the above example the derivation rule (trim first three characters) will be applied to an analog input, if its point name starts with "ANA".

You can provide multiple derivation rules for the same telemetry item type (for example, it is common to have different rules for deriving command texts corresponding to digital commands targeting valves and pumps).

Note: The filters implemented through AppliesTo method in rules classes should be mutually exclusive, that is, there should not be a point for which multiple different rules could apply.

The table below details telemetry types on which rules are applied and an explanation of input parameters of the AppliesTo and DeriveFrom methods, as well as derivation results.

Telemetry Type

Interface To Be Implemented

Input Parameter

Output of Derivation

Analog input

IAnalogNamingRule

IAnalogInputid, which is initialized by the point name.

Model tag name

Setpoint text

ISetpointNamingRule

ISetpointId, which is initialized by the point name.

Setpoint command text

Digital input

IDigitalInputNamingRule

IDigitalInputI, which is initialized by the point name, base message of a status/multistate point, and number of bits for the point as defined in RealTime database (RTDB).

Array of model tag names (multiple values apply if the point value is synchronized from multiple model values)

Digital command

ICommandNamingRule

ICommandId, which is initialized by the command name (e.g., "START" or "STOP" for pumps), the point name, and the base message set name (e.g., "Unit" for pumps).

Model command text

Flow rate

IFlowRateNamingRule

IFlowRateId, which is initialized by the point name.

Model tag name

Accumulator (Volume)

IAccumulatorNamingRule

IAccumulatorId, which is initialized by the point name.

Model tag name