A module can use external reference expressions to gain access to a diagnostic parameter. DeltaV provides no browser support or wizards with which to create the path required to reference bus device diagnostic data directly from an external reference parameter. Instead, you must manually enter a path with the following syntax, including the special prefix, /&:
/&device_specifier/parameter_specifier/data_type
A reference to diagnostic data in an internal write parameter or in an input or output parameter results in a database error.
The following fields can be used in an expression to specify an external reference parameter:
The following sections illustrate specific examples of the path required to reference bus device diagnostic data directly from an external reference parameter.
The parameter_specifier component (leading zeroes are not required) consists of the object index of the parameter and an optional subindex. The subindex is not required if the path is to a parameter that has status.
object_index/subindex/data_type
where:
object_index is the object index in the form OInnnnn, with nnnnn representing the UINT16 object index number, 0 through 65535
sub_index is the optional subindex in the form SUnnn, with nnn representing the UINT8 subindex number, 0 through 255
The Object Index and Sub-Index can be obtained from the device’s manual or in the Device Descriptor (If it is not indicated on the manual, we recommend contacting the manufacturer directly regarding this information).
An exported .fhx file for the device opened in a text editor is used to find the data type for the parameter.
The following format should be followed when referencing the read-only parameters in a parameter module:
/& Device Tag/Object Index/Sub Index/ Data Type
For example, for a device named PDT1 at an address within the valid range of 20-35, a module can use the following path to read the parameter at object index 1200 as float:
/&PDT1/OI1200/FS
To read the third field of a float array at object index 1400, a module can use the following path:
/&PDT1/OI1400/SU3/FP
Modules can read a read-only parameter for a DeviceNet device. The parameter_specifier component (leading zeroes are not required) consists of the class code, instance, and attribute ID.
In order to determine the values of the parameter_specifier, the exported EDS or fhx file of the DeviceNet device should be accessed using a text editor. The components can be found under the Parameter field in the .fhx file. The class, instance, attribute and data type are shown.
Cnnnnn/Innnnn/Annn
where:
Cnnnnn represents the UINT16 class code, 0 to 65535
Innnnn represents the UINT16 instance, 0 to 65535
Annn represents the UINT8 attribute ID, 0 to 255
For example, for a device named PDT1 at address 16, a module can use the following path to read the parameter at class code 1, instance2, and attribute ID 33 as float:
/&PDT1/C1/I2/A33/FP
By default, DeltaV assumes that DeviceNet devices represent diagnostic parameters in little-endian format, as defined by the DeviceNet protocol.
The format to reference the read-only parameters is /& Device Tag/Class/Instance/Attribute/Data Type.
DeltaV reads raw values stored by a DeviceNet device. For a parameter stored as an integer, but which needs to be displayed as a floating point value, you may need to add either a Divide (DIV) function block or other expression to appropriately scale the value. For example, if a value is stored as the unsigned integer 47, and the meaning of the value is hundredths of amps, you can specify that the value be divided by 100 to force it to display as 0.47.
LINK_PATH_CLASS_ID=3
LINK_PATH_INSTANCE_ID=1
LINK_PATH_ATTRIBUTE_ID= 100
TYPE=DEVICENET_INT16
Every Profibus DP device is given a byte array, including status, named DIAGMSG that contains the diagnostics message appearing in DeltaV Diagnostics. The first 6 bytes of the array have fixed meaning; the remaining bytes, if any, are device-dependent. The size of the array can be determined by reading the ROWS field of the parameter. You can read individual bytes from the array using the same [index] syntax supported by floating point arrays. The maximum size of the array is 220 bytes; if necessary, the diagnostic message is truncated and bytes beyond the limit are not accessible.
Because access to Profibus DP diagnostic information is through a well-known parameter name, the parameter_specifier component of the path is always DIAGMSG and the data_type component is not used.
The format to reference the diagnostic information is /& Device Tag/DIAGMSG.
For example, a module can use the following path to read a Profibus DP diagnostics parameter (assuming the device tag is PDT1):
/&PDT1/DIAGMSG