DDS6619 adres wijzigen naar ID 010?Het Modbus-adres wordt opgeslagen als een 4-byte float en niet als een gewone integer. Schrijven van slechts één register resulteerde in ID 000. Door twee registers te schrijven met de IEEE754-floatwaarde 10.0 (0x41200000) werd het adres correct gewijzigd naar ID 010. Daarna werkte de meter normaal via Modbus RTU op slave-adres 10.DDS6619 adres wijzigen naar ID 010?Het Modbus-adres wordt opgeslagen als een 4-byte float en niet als een gewone integer. Schrijven van slechts één register resulteerde in ID 000. Door twee registers te schrijven met de IEEE754-floatwaarde 10.0 (0x41200000) werd het adres correct gewijzigd naar ID 010. Daarna werkte de meter normaal via Modbus RTU op slave-adres 10.
Spread the love

DDS6619 adres wijzigen naar ID 010?Het Modbus-adres wordt opgeslagen als een 4-byte float en niet als een gewone integer. Schrijven van slechts één register resulteerde in ID 000. Door twee registers te schrijven met de IEEE754-floatwaarde 10.0 (0x41200000) werd het adres correct gewijzigd naar ID 010. Daarna werkte de meter normaal via Modbus RTU op slave-adres 10.

DDS6619 Modbus-adres wijzigen via QModMaster: waarom ID 010 eerst niet lukte

class="wp-block-heading">Situatie

Tijdens de configuratie van een Sinotimer DDS6619 energiemeter moest het Modbus-adres gewijzigd worden van ID 001 naar ID 010 voor opname in een bestaande RS485-bus.

De communicatie werkte uiteindelijk correct met:

Plain Text

1

9600 baud

2

8 databits

3

Even parity

4

1 stopbit

5

Function Code 04

6

“Show more lines

De meter reageerde op Modbus en gaf correcte spanningsmetingen terug. De uitdaging bleek uiteindelijk het wijzigen van het slave-adres te zijn. [Modbus_RS4…cident (1) | PDF]


Oorzaak

De handleiding vermeldt dat het adresregister zich bevindt op:

Plain Text

1

Adres 0x0008

2

Mail address (ID 1-247)

3

Lengte = 4 bytes

4

Format = float

5

“Show more lines

Veel gebruikers gaan ervan uit dat een Modbus-adres als een integer in één register wordt opgeslagen.

Bij de DDS6619 is dat niet zo.

Het adres wordt opgeslagen als een 32-bit IEEE754 float over twee Modbus-registers. [Modbus_RS4…cident (1) | PDF]


class="wp-block-heading">Wat ging fout?

Eerste poging:

Plain Text

1

Start Address = 8

2

Registers = 1

3

Waarde = 10Show more lines

Resultaat:

Plain Text

1

Display = ID 000

2

“Show more lines

De meter accepteerde de schrijfactie, maar omdat slechts één register werd geschreven ontstond geen geldige floatwaarde. Het toestel kwam daardoor op ID 000 terecht.


Correcte oplossing

De waarde moet als float worden geschreven.

Voor:

Plain Text

1

ID 10Show more lines

moet de IEEE754-floatwaarde:

Plain Text

1

10.0Show more lines

worden opgeslagen.

Dat komt overeen met:

Plain Text

1

0x41200000Show more lines

of binair:

Plain Text

1

0100000100100000

2

0000000000000000Show more lines


Werkende configuratie in QModMaster

Plain Text

1

Slave Address = 0

2

Function Code = Write Multiple Registers (0x10)

3

Start Address = 8

4

Number of Registers = 2

5

Data Format = BinShow more lines

Registerwaarden:

Plain Text

1

Register 1:

2

0100000100100000

3

4

Register 2:

5

0000000000000000Show more lines

Na verzenden:

Plain Text

1

Packets > 0

2

Errors = 0Show more lines

en het display van de DDS6619 toonde:

Plain Text

1

ID 010Show more lines

Succesvol gewijzigd. [Modbus_RS4…cident (1) | PDF]


Controle

Na wijzigen van het adres:

Plain Text

1

Slave Address = 10

2

Function Code = 04

3

Start Address = 0

4

Registers = 2

5Show more lines

moet de meter opnieuw antwoord geven met geldige meetwaarden.


Conclusie

De DDS6619 bewaart het Modbus-adres niet als een integer maar als een 4-byte float.

Om het adres correct te wijzigen:

  • gebruik Function Code 10;
  • schrijf 2 registers;
  • gebruik de IEEE754-floatwaarde van het gewenste adres.

Voor ID 010 betekent dit:

Plain Text

1

41 20 00 00Show more lines

of:

Plain Text

1

0100000100100000

2

0000000000000000Show more lines

Na toepassing hiervan werd het adres succesvol gewijzigd van ID 000 naar ID 010.

Door alfons

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *