I meters di energia come SDM120 e SDM630 sono accessibili tramite protocollo Modbus, se guardi nella pagina del prodotto troverai il link per il download elenco registri Modbus. Ti riporto per comodità i link, SDM120, SDM630.
Il protocollo Modbus è standard e ben documentato quindi utilizzando un qualsiasi programma di comunicazione Modbus puoi interrogare i registri del meters. Il problema è nel formato dati, come vedi dalla documentazione tutti i dati sono di tipo float a 32 bits (IEE754) quindi per poterli interpretare devi convertire i dati letti da Modbus. Ulteriore complicazione è nell’endianness, il protocollo Modbus non specifica l’endianness dei dati di grandezza superiore ai 16 bits, quindi acquisendo un valore a 32 bits occorre sapere chi dei due registri a 16 bit rappresenta l’MSW e chi l’LSW.
Se vedi l’esempio di questo articolo, dove utilizzando l’utility Modbus Master di Toolly vedi le operazioni da effettuare. Nell’esempio si imposta il Baud rate, che come vedi dalla tabella dei registri è indicato con indirizzo 40029. Tralascia il 4 iniziale che confonde, l’indirizzo del parametro baud rate è quindi 0029. Ma se vedi nel’indirizzo Hex da inviare è indicato 0x001C (Cioè 28). Questo perchè normalmente il Modbus ha offset 1 quindi và sottratto dall’indirizzo indicato.
Per accedere a questa serie di registri devi utilizzare i codici Modbus 0x03 e 0x10, Nell’esempio con Toolly, infatti vedi che per leggere il valore di baud rate ho utilizzato il comando 0x03. Il valore è indicato in float 32 bits e come vedi ho eseguito lo swap tra MSW e LSW.
Tutti i registri con i valori di energia invece sono accessibili solo in lettura anche qui tralascia il 3 iniziale, ma come vedi devi utilizzare il comando Modbus 0x04.
Tutto il lavoro sopra descritto viene realizzato utilizzando i nostri prodotti SlimLine dai FB EastronSDM120 e EastronSDM630.