Paired ESL interfaces I.SGC_ImmediateReadMaster and Slave contain ReadArbitrary* calls and OnArbitrary*Read responses. The calls differ in the type of the resulting value. They can be used to read attribute values of individual COSEM objects in the meter and thus find out its current configuration. Calls are not yet supported for the IEC62056-21 protocol.
The call parameters are:

  • IN INT _logicalDeviceId – logical device ID from which the value will be read,
  • IN TEXT _obis – logical address of the COSEM object in the form of an OBIS code,
  • IN INT _classId – class ID of the relevant COSEM object,
  • IN INT _attributeId – class attribute ID of the relevant COSEM object whose value will be read.

Depending on the type of the desired value, the conversion will take place:

  • BOOL – converts a boolean value
  • INT, REAL - converts any numeric value or enumerated type and rounds as needed
  • TIME – converts the time stamp
  • TEXT – converts any value

If the value cannot be read or converted, the response is delivered by calling OnError with the code and description of the error in the parameters.


Reading unique meter identifier

The unique identifier of the meter is always stored in a COSEM object of type Data (class id 1) with the logical name "0.0.42.0.0.255" in the value attribute (attribute id 2). It is a text string whose first 3 characters identify the manufacturer (ADX - Addax, LGZ - Landis+Gyr, EMH - EMH), and the following digits contain the serial number of the meter (e.g. EMH05601204).
CALL I.SGC_ImmediateReadSlave^ReadArbitraryText(_ld, "0.0.42.0.0.255", 1, 2)

Reading the COSEM configuration of a ProfileGeneric object

Objects of the ProfileGeneric type (class id 7) represent an archive of values of selected COSEM objects. Meters typically use multiple such objects, each serving a different purpose and thus archiving specific readings at specific times. For example, a 15-minute LoadProfile or EvenLog responding to exceptional events.
Attributes of the ProfileGeneric class include:

  • buffer (id 2) - Data archive organized in the form of a table. Each row of the table represents one record of defined values at a certain point in time. Each column of the table contains historical values of one specific measured variable.
  • capture_objects (id 3) – Defines a list of columns. For each column it defines
    • class id of the object whose value is archived,
    • logical object name,
    • object attribute id
    • element_index – indicates the element of the structured value, usually not used – has a value of 0.
  • capture_period (id 4) - Archiving period in seconds.

The following example can be used to find the list of archived objects:
CALL I.SGC_ImmediateReadSlave^ReadArbitraryText(_ld, _obis, 7, 3)
The result will look like the following example, repeating the record multiple times. The example shows the archiving of the attribute time (id 2) of the object "0.0.1.0.0.255" of type Clock (id 8).
ARRAY Value:

  • STRUCTURE Value:
  • LONG_UNSIGNED Value: 8
  • OCTET_STRING Value: 00 00 01 00 00 FF (hex)
  • INTEGER Value: 2
  • LONG_UNSIGNED Value: 0



Napíšte komentár