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

AVEVA Enterprise SCADA

Create Data Payload Processor (DPP) configuration for a byte payload

Create Data Payload Processor (DPP) configuration for a byte payload

  • Last UpdatedApr 24, 2025
  • 5 minute read

The following example illustrates how to create a Data Payload Processor (DPP) configuration for a payload consisting of a byte string.

Assumption: We assume that we know how the byte string is configured. In our case, it breaks down into the values seen in the table below.

4316000043160000429600004296000041c8000041f00000416bae1400000000

Param

Vol

Energy

Press

Temp

Elev

Base Temp

Atmos Press

Latitude

Byte

4316000

4316000

4296000

4296000

41c8000

41f0000

416bae1

0000000

Value

0

0

0

0

0

0

4

0

Converted Value

150

150

75

75

25

30

14.73

0

To create DPP configuration for a byte payload

  1. On the DPP Config Tool window, we select New > New Decode Template.

    The New Decode Template dialog box opens.

  2. We configure the New Decode Template dialog box as shown and save the record.

    The Decode Method Template dialog box opens.

  3. The first value of our incoming data, as seen in the table above, is Volume (43160000).Therefore, we want to use the Volume parameter:

    1. Since we know the incoming data is a byte string, we have to determine the byte ordering (Big Endian or Small Endian) and choose which conversion action we will use. In this case, we have Big Endian byte ordering and we want to convert the bytes to float. Therefore, we change Action to HexAsciiToFloat.

      Note: If the raw data payload is using Small Endian, change Action to HexASCIISmallEndian2Float.

    2. In the Input Data Type field, we select Byte String.

    3. Since we are not using a custom stored procedure or enumerated types, we leave Type as Standard.

    4. We skip String Delimiter, as we're dealing with bytes.

    5. We determine the Byte Count and Delimiter/Byte Offset by reviewing the byte string:

      4316000043160000429600004296000041c8000041f00000416bae1400000000

      We know that Volume is 4 bytes, so Byte Count in this case is 4.

      We know that Volume is the first 4 bytes of our byte string, so Delimiter/Byte Offset in this case is 0.

    6. Finally, since the Source is coming from the Payload column of the rdm_readingRaw table, we enter Payload.

  4. The next value in the incoming string is Energy (43160000). Therefore, we want to use the Energy parameter in our list:

    1. Since we know the incoming data is a byte string, we have to determine the byte ordering (Big Endian or Small Endian) and choose which conversion action we will use. In this case, we have big endian byte ordering and we want to convert the bytes to float. Therefore, we change Action to HexAsciiToFloat.

    2. In the Input Data Type field, we select Byte String.

    3. Since we are not using a custom stored procedure or enumerated types, we leave Type as Standard.

    4. We skip String Delimiter, as we're dealing with bytes.

    5. We determine the Byte Count and Delimiter/Bye Offset by reviewing the byte string:

      4316000043160000429600004296000041c8000041f00000416bae1400000000

      We know that Energy is 4 bytes, so Byte Count in this case is 4.

      We know that Energy is the second 4 bytes of our byte string, so Delimiter/Byte Offset in this case is 4.

    6. Finally, since the Source is coming from the Payload column of the rdm_readingRaw table, we enter Payload.

  5. We continue the pattern outlined in the steps above for Energy and Pressure.

    In some scenarios, we will need to grab values that don’t come from the Payload. The values may come instead from other columns in the rdm_readingRaw record, or be manually entered. In the example seen in the Decode Method Template dialog box figure above, we are assuming we are getting Obj Name from xmlCommand and hard coding Time Format to "%Y-%m-%d %H:%M:%S".

    Since we are getting the Obj Name value from the xmlCommand column, we can leave Action, Input Data Type, and Type as their default values. We can also skip String Delimiter, Byte Count, and Delimiter/Byte Offset, as these fields are only required when you're grabbing a value from Payload.

    In the Source column, we're grabbing a value from an xml tag in our rdm_readingRaw record. For example, our xmlCommand could appear as follows:

    <commandrequest>

    <primary>Meter1</primary>

    <starttime>2014-02-01 09:00:00</starttime>

    </commandrequest>

    Since we want the value inside "primary" (our Obj Name), we would set our Source as commandrequest.primary.

    Note: The Source value is case-sensitive.

  6. On the DPP Config Tool window, we select New > New Decode Template to create the AGA Parameter Decode Template for Elevation and, after that, Base Temperature, Atmospheric Pressure, and Latitude.

    The New Decode Template dialog box opens.

  7. We configure the New Decode Template dialog box as shown and save the record.

    The Decode Method Template dialog box opens.

  8. First, we configure the Decode Method Template dialog box for Elevation and select Save.

    Note: For information on determining the Sub Group Name and Item Name, refer to Determine item name and subgroup name.

  9. To create the Decode Template for Base Temperature, we change the fields on the Decode Method Template dialog box as required and select Save as New Template (refer to Create a Decode Template from an existing Decode Template).

  10. We repeat Step 9 for Atmospheric Pressure and Latitude.

    We have now created five Decode Templates for our data. Next, we create a new Decode Define.

  11. On the DPP Config Tool window, we select New > New Decode Define.

    The New Decode Define dialog box opens.

    Embedded Image (65% Scaling) (LIVE)

  12. We configure the New Decode Define dialog box as outlined in Create a Decode Define.

    The Decode Definition must match the incoming record stringKey. In the decodeDefine table, DPP compares the Definition column to the incoming rdm_readingRaw record's stringKey column.

  13. We add the five new Decode Templates created above to the Decode Define and select Save.