DLMS/COSEM
DLMS COSEM communication protocol
Supported device types and versions
This protocol implements serial communication with the devices (energy & water metering) according to the DLMS/COSEM standard. It can use binary HDLC protocol, the TCP/UDP Wrapper (used for communication via TCP/IP), or the Gateway protocol. Gateway protocol is used if there is a so-called Gateway device between the SCADA system and the device. The Gateway is a device connected to a network with a SCADA system and to one/more networks with energy meters (it does not have to be an Ethernet network, but e.g. RS-485 or power lines).
Two modes of addressing I/O tags are supported:
"Short Name (SN) referencing" using 16-bit object addresses
"Logical Name (LN) referencing" using 6-byte OBIS codes
Communication with encryption is not supported.
Communication was tested with the following devices:
EMH LZQJ (SN referencing)
Landis ZMD400 (SN referencing)
Iskraemeco Iskra MT880-M (LN referencing)
ADDAX NP73E.2-18-1 (LN referencing)
Iskraemeco AC750-G3C2 gateway + Iskraemeco AM550-ED1.11, AM550-TD2.12 electrometers (LN referencing, Gateway mode)
Iskraemeco AC750-G3C2 gateway + Iskraemeco AM550-ED1.11, AM550-TD2.12 electrometers (LN referencing, Wrapper mode, IPv6 communication)
Kaifa MA309M (LN referencing, via RS485 or GSM network [TCP port 4059, TCP/UDP Wrapper, Wrapper Source/Destination Port=1], Client MAC Address=1, xDLMS Conformance=3F1F00, Password=00000001)
Sanxing P34S02-100/5-400-P (LN Referencing, Upper MAC Address=1, Lower MAC Address=16, ClientAddress=32, parameter Password specified)
The protocol supports time synchronization, the period is configured in the station configuration dialog.
Communication line configuration
Supported line categories: Serial, SerialOverUDP Device Redundant, TCP/IP-TCP, TCP/IP-TCP Redundant, MOXA IP Serial Library, RFC2217 Client, MODEM.
For TCP/UDP communication using TCP/UDP Wrapper, TCP/UDP ports 4059 are reserved.
Station configuration
Communication protocol "DLMS/COSEM".
The station address (DLMS Server HDLC/MAC Address) consists of two parts: Upper MAC Address and Lower MAC Address. Each of them is in the range from 0 to 16383 (3FFFH).
As per a specification, DLMS UA 1000-2 Ed. 7.0 (Green Book) represents:
Upper MAC Address is used for Logical Device addressing, i.e. separately addressable entity within the physical device.
Lower MAC Address is used for Physical Device addressing, i.e. multi-drop address on the line.
Upper MAC Address is required. An implicit value, which is set when the station address is missing, is a reserved address Upper MAC Address = 1 (Management Logical Device).
In ordinary situations, when the physical device is identical to the logical one (one physical device = one logical device), this address does not need to be changed. If the physical device integrates more logical devices, you should monitor content or "0-0:41.0.0" register of "SAP assignment" class (class_id=17, attribute 2 "SAP_assignment_list") in the "DLMS SN Object List" dialog box. This dialog box shows the list of logical devices that are integrated into a physical one.
This is the example of a value representation of the "SAP_assignment_list" attribute of the "SAP assignment" class in the device which contains one logical device with Upper MAC Address 16.
See also the protocol parameter "Client MAC address" and a document "DLMS UA 1000-2 Ed. 7.0", chapter 8.4.2.3 "Reserved special HDLC addresses".
Note: for Iskraemec Iskra MT880, Upper MAC Address = 1, Lower MAC Address = 16 + last two digits of the serial number (if, for example, the serial number is 72211943, then Lower MAC Address = 16 + 43 = 59).
Note: since the station address is DLMS Server HDLC/MAC Address, it is only used when the protocol parameter "Opening mode" is set to "Direct HDLC" or "IEC Mode E" .
Station parameters
Communication station configuration dialog box - Protocol parameters tab.
They influence some optional protocol parameters. The following station protocol parameters can be set:
Table 1
Mode | Opening mode of connection with the device and a used link protocol. If the device is configured so that it directly uses DLMS/COSEM protocol on the given interface, set this parameter to "Direct HDLC". Mostly (e.g. when reading through IR optical interface by an optical reading head) you must open the connection in IEC protocol in so-called "mode E" and then transfer to HDLC binary protocol (i.e. DLMS/COSEM). "IEC mode E", according to the specification of the IEC protocol, uses the following settings of the transmission parameters:
If "Opening Mode" is set to "IEC mode E", the above-mentioned transmission parameters must be set. As for the Serial communication line, the parameters must be set in the line parameters "Mode 1". See the protocol parameter "Software 7E1". The setting of the baud rate to 300 Baud is usually not required when using the line of the MODEM category. A so-called DTE speed is used between a PC and a modem. If this speed is higher than 300 Baud, you have to activate the "handshaking" parameter on RTS/CTS in proper line mode. If the parameter value is set to "Direct HDLC", a dynamic change of transmission parameters is not expected. You can use any Serial line mode and set it by the "Line mode" parameter on the station. More information is mentioned in IEC 62056-21, Electricity metering - Data exchange for meter reading, tariff and load control - Part 21: Direct local data exchange, Annex E: "METERING HDLC protocol using protocol mode E for direct local data exchange". See also the chapter "Setting of transmission parameters". The "UDP Pure" mode is used by some devices when communicating over UDP. Each DLMS/COSEM data packet (challenge/response) is in a separate UDP packet. In the case of TCP, this is problematic (without parsing it is not possible to determine what the size of the DLMS/COSEM data packet is) so the DLMS/COSEM standard defines the use of an envelope - called a Wrapper - for TCP/UDP mode (see next paragraph). The "TCP/UDP Wrapper" mode is used when communicating over TCP or UDP. An 8-byte header (Version, Wrapper Source Port, Wrapper Destination Port, and Length fields) is added to the DLMS/COSEM data.
The "Consereth" mode is used when communicating via TCP/IP by Iskraemeco devices (e.g. Iskra MT880). A 3-byte header is added. | Direct HDLC | Direct HDLC |
--- DLMS/HDLC parameters --- | |||
Application Context | The setting of the "Application Context" parameter of the DLMS/COSEM protocol. | Logical_Name_Referencing_No_Ciphering | Short_Name_Referencing_No_Ciphering |
Client MAC Address | HDLC MAC address of a client (i.e. D2000 KOM process). The default value is 10H which is the reserved value "Public client". See "DLMS UA 1000-2 Ed. 7.0" document, chapter 8.4.2.3 "Reserved special HDLC addresses". For the ADDAX NP73E.2-18-1 electricity meter, a different value than 10H had to be configured (1 or 2). For the ISKRA MT880 electricity meter, it was possible to read only a limited set of data (e.g. serial number) with a value of 10H. Active and reactive power could be read as 01H (Client Management Process) or 02H. | 0 .. 7FH | 10H |
HDLC Max_info_field_length-receive parameter | The maximum length of one HDLC frame packet on the receiver's side. When communication problems occur (e.g. checksum error etc.), we recommend decreasing the value of this parameter. |
| 250 |
HDLC Max_info_field_length-transmit parameter | The maximum length of one HDLC frame packet on the transmitter's side. When communication problems occur (e.g. checksum error etc.), we recommend decreasing the value of this parameter. |
| 250 |
Client Max Receive PDU Size | The maximum length of PDU (data packet). One PDU can be divided into more HDLC frame packets according to settings of protocol parameters HDLC Max_info_field_length-receive and HDLC Max_info_field_length-transmit. | 0 .. 65535 | 1200 |
No Disconnect | A Disconnect request will not be used after the readout of values from a device is finished. During the next readout, a connection establishment phase is omitted (HDLC mode-setting request and AARQ negotiation request). | YES/NO | NO |
Before Read Delay | Waiting before reading from the station. Waiting makes sense if there are multiple meters on the line to detect the end of the previous communication and start listening for the request. | ss.mss | 00.000 |
Before HDLC Send Delay | Waiting before sending an HDLC message. | ss.mss | 00.000 |
HDLC Retry | Number of HDLC messages sent in case of error (received incorrect/no response). The parameter is active only for Mode:
| 1-100 | 1 |
Password | Device password. If entered, the "Low Level Security" authentication with the entered password is used within the AARQ Association Request. |
|
|
No Browsing | Online address selection from the list of objects, directly on the device, through the DLMS Object List dialog box in the configuration of the I/O tag address will be disabled. | YES/NO | NO |
Profile Data Optimization | Several electrometers implement optimization of time data when reading from profiles (class_id=7). The optimization means that only the first row of data contains a timestamp, others contain null. The timestamp of each row is equal to the previous row's timestamp plus the value of the capture_period (4) attribute. If the value of this parameter is YES, the value of the capture_period attribute is read prior to reading the profile data. If the value of this parameter is NO, the content of the capture_period attribute is not read, but the KOM process relies on all profile rows to contain timestamps. If this is not the case, the profile data is not read, and the line logs contain the error messages "turn on station parameter 'Profile Data Optimization". | YES/NO | YES |
xDLMS Conformance | Bit settings in the "xDLMS Conformance" field in the AARQ initial message. The default settings are:
| 0 | 0 |
Visible Strings | If the value of this parameter is YES, octet-string values will be interpreted as text strings (e.g. "abc") for text I/O tags, otherwise, in binary format, individual octets are separated by a dot (e.g. "97.98.99"). | YES/NO | NO |
--- IEC Parameters --- | |||
IEC Device Address | It is an address of a station (device) and is used only if the Opening mode is set to "IEC Mode E". "IEC Device Address" is the serial number of the device. In OBIS addressing, this register has an address "0-0:C.1.0" - Device ID 1, manufacturing number. The picture below shows the front panel of the EMH LZQJ device. There is a serial number, i.e. IEC address (563911). If the device contains a display, this value may be usually displayed as you can see in the picture. |
| - |
Baudrate Changeover (Z) | This parameter is used only if the Opening mode is set to "IEC Mode E". It defines the baud rate for the communication through HDLC protocol DLMS/COSEM after the changeover from IEC mode E to the HDLC binary communication. As for the Serial line, this parameter must set the baud rate to "Mode 2" of the line. AUTO option sets the baud rate according to the value offered by a device. If this baud rate can not be identified, you should check the diagnostic communication logs, where the following message can be found: 10:46:05.809 30-05-2011|D|DLMS> Z Detected: '4' = 4800 Bdand set the baud rate according to it. HDLC binary communication through DLMS/COSEM protocol, unlike the opening IEC step, is realized by different parameters that have to be set in "Mode 2" of the Serial line category:
See also the "Software 7E1" parameter and the chapter Settings of transmission parameters. | 300 | AUTO |
Software 7E1 | This parameter is used if "Opening mode" is set to "IEC Mode E". Setting it to YES activates an SW emulation of transmission parameters of 7 data bits and even parity when the transmission parameters of 8 data bits and none parity are set (i.e. emulation of 7E1 when 8N1 is set). It enables the use of the "IEC mode E" option for SerialOverUDP lines that do not support dynamic changes of transmission parameters. See the chapter Settings of transmission parameters. | YES/NO | NO |
Wake-up Message Length | This parameter is used if "Opening mode" is set to "IEC Mode E". Nonzero value activates the sending of a so-called "wake-up message" which activates the communication interface of battery-powered devices. The null characters (0x00) are sent according to the quantity that is defined by the parameter value. The baud rate must be 300 Baud (configured in "Mode 1" for Serial lines). More information is available in IEC 62056-21, Electricity metering - Data exchange for meter reading, tariff and load control - Part 21: Direct local data exchange, Annex B: "Wake-up methods for battery-operated tariff devices". | 0 .. 120 | 0 |
Delay After Wake-up Message | This parameter is used if "Opening mode" is set to "IEC Mode E". If a so-called "wake-up" message is activated, this parameter defines a delay after sending a "wake-up" message, before the beginning of communication. In the case of a Serial line, we recommend setting the "WaitTxEMPTY" parameter in a specific line mode. According to document IEC 62056-21, you should set this parameter between 1,5 and 1,7 seconds. | ss.ms | 0 |
--- TCP/UDP Wrapper parameters --- | |||
Wrapper Source Port | This parameter is used if the "Opening mode" protocol parameter is set to "TCP/UDP Wrapper" or "TCP/UDP Wrapper + Gateway protocol". It specifies the value of the Source Port field (2-byte number) in the wrapper header. Reserved ports are according to the standard:
| - | 0 |
Wrapper Destination Port | This parameter is used if the "Opening mode" protocol parameter is set to "TCP/UDP Wrapper" or "TCP/UDP Wrapper + Gateway protocol". It specifies the value of the Destination Port field (2-byte number) in the wrapper header. Reserved ports are according to the standard:
| - | 0 |
--- Gateway parameters --- | |||
Device Network ID | This parameter is used if the "Opening mode" protocol parameter is set to "Gateway protocol" or "TCP/UDP Wrapper + Gateway protocol". It specifies the value of the Device Network ID field in the prefix in the sent request. | - | 0 |
Device Address (hex) | This parameter is used if the "Opening mode" protocol parameter is set to "Gateway protocol" or "TCP/UDP Wrapper + Gateway protocol". It specifies the value of the Device Address field in the prefix in the sent request. | - | - |
--- Send/receive parameters --- | |||
Wait First Timeout | The delay after sending the request but before reading the response. | ms | 100 ms |
Wait Timeout | The delay between readings of the response until its completion. | ms | 200 ms |
Max. Wait Retry | A retry count of reading response until its completion. | 1 .. 100 | 20 |
Retry Timeout | The delay between the request retries if a communication error occurs. | ms | 500 ms |
Retry Count | A retry count of a request if a communication error occurs. | 1 .. 20 | 3 |
--- Modem parameters --- | |||
Modem Telephone Number | The phone number for modem connection with a device (only for MODEM lines). |
|
|
Dial Timeout | Maximum waiting time for dial-up modem connection (only for MODEM lines). | 1 .. 600 s | 60 s |
Dial Retry Count | A maximum retry count of dial-up modem connection (only for MODEM lines). | 1 .. 20 | 1 |
Dial Retry Timeout | Delay before attempting to dial after an unsuccessful connection attempt (only for MODEM lines). | 1 .. 600 s | 30 s |
After Connect Delay | Time delay after the dial-up connection has been established (only for MODEM lines) but before the beginning of communication. | 0 .. 30 s | 5 s |
AT Command 1 | |||