Protocollo DLMS, o IEC 62056-21

Con il nuovo protocollo standard DLMS (Device Language Message Specification), la comunicazione con i sistemi di metering viene immensamente semplificata. Questo protocollo ha una struttura orientata agli Oggetti che rende possibile leggere con la stessa identica modalità dati applicativi provenienti da contatori di diversi costruttori.

Lo standard IEC 61107 o IEC 62056-21 è uno standard internazionale che descrive il protocollo DLMS per la lettura da parte di un computer dei dati da contatori tariffari di energia elettrica, acqua e gas.

Il protocollo prevede una fase di Sign-On con il contatore durante la quale occorre fornire un codice di accesso (Solitamente il numero di serie del contatore), ed il contatore fornisce una password in uscita che può essere utilizzata per criptare i dati.

Terminata questa fase è possibile richiedere al contatore il valore dei suoi registri utilizzando i codici di identificazione OBIS a 5 caratteri (IEC 62056-61).

Per la famiglia SlimLine abbiamo sviluppato un apposito blocco funzione che automatizza tutte le operazioni, occorre passare il numero di serie del contatore ed il codice OBIS del registro da leggere. Il blocco funzione esegue il Sign-On sul contatore e ritorna il valore del registro indicato.

image0

Interfaccia con il contatore

Per interfacciarsi con il contatore è possibile utilizzare un apposito accoppiatore ottico che si appoggia alla finestra di lettura del contatore e si connette ad una delle porte seriali dello SlimLine (Nella foto l’accoppiatore ISKRA).

Oppure nel caso di contatori predisposti con l’uscita RS485 è possibile connettersi direttamente alla porta RS485 dello SlimLine.

IEC62056_21Rd, IEC62056-21 protocol read

Type FB, Library eLLabUtyLib_C030

Type FB Library eLLabUtyLib_C030

image1

Type Library
FB eLLabUtyLib_C030

Questo blocco funzione esegue la gestione della lettura di registri da sistemi di metering utilizzando il protocollo IEC62056-21.Questo è un blocco funzione protetto per utilizzarlo occorre richiedere il codice di protezione, vedi protezione funzioni e blocchi funzione. E” comunque possibile utilizzarlo liberamente in modo test per 30 Min.

Occorre in SerialNr definire il numero seriale del contatore (Utilizzato come chiave di accesso alla lettura) e in Register l’indirizzo del registro da leggere secondo la normativa OBIS. Se la lettura ha esito positivo viene attivata l’uscita Done e le variabili MeterCode, Password e Value sono valorizzate con i dati letti dal contatore.

Enable (BOOL) Attivando l’ingresso viene gestita la lettura del contatore.
File (FILEP) Pointer al file della risorsa così come ritornato dalla funzione Sysfopen.
SerialNr (STRING[16]) Numero di serie del contatore, viene utilizzato come chiave di accesso.
Register (STRING[16]) Indirizzo registro da leggere secondo la codifica OBIS.
Done (BOOL) Viene attivato per un loop al termine della acquisizione.
Fault (BOOL) Viene attivato per un loop in caso di errore nella sequenza di acquisizione.
TxString (STRING[32]) Contiene la stringa di comando inviata al contatore, può essere utilizzato in debug per verificare i comandi inviati.
RxString (STRING[32]) Contiene la stringa di risposta ritornata dal contatore, può essere utilizzato in debug per verificare le risposte ricevute.
MeterCode (STRING[32]) Contiene stringa con il codice del contatore acquisita durante fase di acceso (Sign-on).
Password (UDINT) Contiene valore password acquisita dal contatore durante fase di acceso (Sign-on).
Value (STRING[32]) Contiene stringa con valore registro richiesto acquisita dal contatore.

Codici di errore

In caso di errore si attiva l’uscita Fault, con SysGetLastError è possibile rilevare il codice di errore.

10016010 Valore di File non definito.
10016020 FB protetta, terminato tempo funzionamento in modo demo.
10016050 Timeout esecuzione.
10016070 Errore case gestione.
10016100~1 Errore ricezione tipo da contatore.
10016110~2 Errore ricezione password da contatore.
10016120~2 Errore ricezione valore parametro da contatore.
10016200 Overflow ricezione stringa da contatore.

Esempi

E” disponibile un programma di esempio Ptp122*000 che esegue la lettura da un contatore di energia di 3 registri. A titolo indicativo diamo un esempio di massima per la lettura di un registro.

Su attivazione dell’ingresso digitale Di00M00 viene eseguita la lettura del registro 1.8.0 (Potenza in Kw). Se la lettura ha esito positivo si attiva per un loop l’uscita digitale Di00M00. Le variabili MeterCode, Password e Value, saranno valorizzate con i valori letti dal contatore.

Definizione variabili
image2

Esempio LD (PTP114A000, LD_IEC62056_21Rd)

image3