Dear all,

I am having some devices on Profibus communication.  

I want to know what are cyclic and acyclic data, what are default data used?

And i have to access acyclic data from device, how can i access that data?

Any responses will be helpful.

5 Replies

  • DeltaV supports only Profibus DPV0, no access to acyclic data.
  • In reply to István Orbán:

    DeltaV does allow some access to field device diagnostic data, as outlined in BOL.

    The syntax for a Profibus diagnostic messages is: /&DEVICE_NAME/DIAGMSG

    This returns a byte array. The first 6 bytes are the standard data, which you can see in DeltaV Diagnostics. The rest of the bytes are device-dependent.

    I've worked briefly with this, and the array size may change based on the what is happening in the device. You would use a CALC block to read the array and extract meaningful data in to parameters. you also need to get information from the manufacturer as to what the device will return and how the data would layout in the up to 220 bytes of data.

    there are several examples in the DeltaV Module Templates library, with one being the Commander SK Profibus device. You can see there how data is extracted from the array with a CALC block. Following are a couple of examples Bytes are combined to form an integer, or a specific byte is read and output.

    'OUT2.CV' := SHL('^/DEVDIAGDATA[13].CV', 8) + ('^/DEVDIAGDATA[14].CV');
    'OUT3.CV' := '^/DEVDIAGDATA[15].CV';

    BOL tells you to read the size of the array using the .ROW field. If the Array size changes, and you attempt to read bytes beyond the current size, the Expression will throw an error. Once you understand the size of the array, and its behavior at run time, be sure to check the size and process only the number of bytes provided.

    I think with the device I used, if there was no additional diagnostic data, the array was 6 bytes. When additional data was available, the array changed to accommodate the set mapping. If the Array size was 6, I skipped the extra processing. Note that you can observe the content of the diagnostic array using DeltaV diagnostic and right click on device. In this dialog, you can see the number of diagnostic bytes.

    If you set up your CALC block to use a variable that you can set for the number of bytes to read, you can work with the array and learn how it behaves, what it looks like when you read beyond the array size etc.

    These diagnostic calls are metered out on the profibus segment to mitigate any impact to the DVP0 cyclic communication. Data may be no faster than 5 sec updates. It maybe slower as you add more devices with this call. You can consider running the logic for the diagnostic at a slower rate as well using the scan multiplier in DeltaV, to save controller CPU. The Module may run at 1 sec, but the diagnostic extraction logic need only run every 5 scans of the module.

    Would be interesting to hear what device you used and what the diagnostic mapping information is from the manufacturer, and hopefully, how you implement your solution.

    good luck

    Andre Dicaire

  • In reply to Andre Dicaire:

    Hi Andre,

    Not 100% sure, but I think the diagnostic data you are referring to is also part of the cyclic data exchange for Profibus. To get acyclic data, the master would need to "poll" it. See section 3.3 and 3.4 here:

    I have used these diagnostic parameters for Foundation Fieldbus, there it's different, their transmission is not part of the macrocycle. But for Profibus I think it is and I do think DeltaV has no means to access acyclic data over Profibus. Do correct me if I'm wrong.
  • In reply to István Orbán:

    Istvan, I'm not 100% sure either. reviewing the reference you provided above, I have to agree with you that the diagnostic call is part of the DP-V0, which includes the extension for Diagnostics.

    The DP-V1 communications was part of the AMS Device manager support for DD files on Profibus devices. The AMS Device Manager was able to pass through the DP-V1 commands through the Profibus card to retrieve data from the device and perform configuration tasks.

    So it remains that with DetlaV, you configure cyclic data exchange through the device signal configuration, and you can retrieve the diagnostic byte array. I don't think the diagnostic call is part of the normal cyclic data, but is retrieved at a slower frequency, so as not to impact the normal input/output traffic.

    It is not possible to configure DeltaV to access other data outside the data map with DeltaV, other than through AMS device manager, or by using a Class 2 master to configure devices and such.

    Thanks for setting me straight.

    Andre Dicaire

  • In reply to Andre Dicaire:

    Just for completeness about these diagnostic signals, see an older discussion we had:

    I have successfully made use of the "Use diagnostic channel" option with Siemens ET200S to get BAD DeltaV status in case of a fault between remote I/O and transmitter.