DeltaV/Modbus .CSV string Server to Client data upload

My company has developed a Win-IoT based instrument for use in the bio-process market to measure process output.  Each measurement result and supporting information is written to a line in a .csv file.  We are working on creating a background app that will upload the latest data segment to a DeltaV network.  We are considering using the Modbus protocol via TCP.  Our goal is to create the most "universal" data transfer style possible that can transmit a line of up to 82 ASCII characters. As this is our first foray into this market, we have a limited understanding of data types and conversion functions that exist and might be considered "standard". For reference, a new line of data would be available no sooner than 4 minutes after the last line of data.

One option we are looking at would be to convert the ASCII characters to their HEX values, and use the first 41 Input Registers to transmit the HEX encoded ASCII data.  Is there a function on the Client side that can be used to convert the HEX values back to ASCII characters for data storage?  Is there a better way?

Thank you for your time and consideration.

John Barnacle

  • DeltaV can receive strings through Modbus-TCP, no issue, there is a string data type for modbus signals. However, once it's a string in DeltaV, you are pretty much stuck. DeltaV can only compare 2 strings and concatenate one string with another, there is no way to extract useful data from your string.
  • In reply to István Orbán:

    The intent of the string transmission from our instrument is to export the data, in the form of a line of CSV (comma separated values) ASCII characters, from the most recent instrument measurement for storage at the Client level. The communication to the Modbus Client will be via a TCP connection. As we develop the application that would reside on the instrument to facilitate said transmission, we are looking for the optimal format for the transmission and the typical way to provide "decoding" instructions for the Client side. Any advice would be appreciated.
  • Hi John,

    it is possible to convert Hex values to ASCII values in DeltaV.

    I configured this for a data connection with Siemens S7 PLC.

    This can be accomplished with dynamic references.
  • In reply to Ralf Baginski:

    Hello Ralf,
    Thank you for your response, it is encouraging to know there may be a relatively easy solution. As we are new to developing for a DeltaV environment, and don't currently have access to a Client network, if you could please provide a little more detail on how that works it would be appreciated.
  • In reply to John Barnacle:

    Hi John,

    here are some details how t configure it on DeltaV.

    First you have to set up a dataset with lets say holding register in I/O layer.
    Then create a module with an external parameter referencing a register.

    Like see here it is register R42595 with an actual value of'52' which is the decimal value of ASCII character.

    You need a table with string parameters which have the decimal code in its name and the ASCII character as value.

    To get the ASCII Value create a dynamic reference parameter. The reference can be changed on runtime of the module.

    In this example, the reference is set to the parameter 'ASCII_TABELLE/ASCII_52' which have the ASCII character of '4'.

    To change the reference put the code into a 'CALC' block in the module.

    CODE: '^/DYN_ABFL_STRASSE.$REF' := "ASCII_TABELLE/ASCII_" + '^/ABFL_STRASSE.CV';

    I hope that helps.

    Cheers