# Modbus Adressen Probelm



## zvende (17 Juli 2011)

Hallo Leute
habe ein Verständnis Problem mit Modbus Variabeln
muss aus einer Parameterliste Adressen auslesen und Sie dann 
in Dezimalzahl eingeben

z.B. Aus Liste die Adresse 20 Spannung L1-L2 Modbus code 04h

Wie sieht jetzt die Adresse aus 30020 ?

und wie würde sie bei einem Eingangsbit aussehen das Adresse 25 hat mit Bit 10? auch mit Code 04h

Danke an euch


----------



## Markus Rupp (18 Juli 2011)

Device address  MODBUS address  Description  Function  R/W
1...10000*  address - 1  Coils (outputs)  0  Read/Write
10001...20000*  address - 10001  Discrete Inputs  01  Read
40001...50000*  address - 40001  Holding Registers  03  Read/Write
30001...40000*  address - 30001  Input Registers  04  Read

hierzu gilt noch zu beachten ob der adress-offset gem. modicon oder gem PLC stattzufinden hat (hängt vom gegnerischen teilnehmer ab)



> und wie würde sie bei einem Eingangsbit aussehen das Adresse 25 hat mit Bit 10? auch mit Code 04h


 diese frage verstehe ich noch noch nicht so ganz


----------



## zvende (18 Juli 2011)

Hallo

hab eine Adressliste da steht code 04h
und adresse 20, bit 15 Motor läuft dieses Bit würde ich gerne
Als Modbus Adresse in ein EWON-Gerät das Modbus fähig ist als Tag 
einlesen.
Aber wie sieht die Adresse aus.

UND was kann ich unter OFF-SET verstehen?

Vielleicht hat aber auch einer ne PDF für mich?

Danke


----------



## Markus Rupp (19 Juli 2011)

das läßt sich nun garnicht mehr beantworten, lad doch mal deine adressliste hier hoch, dann kann ich sie mir ansehen, zu den howtos hab ich hier zwei, allerdings bin ich mir nicht sicher ob du damit klarkommen wirst, das es zum teil sehr protokollnah oder probritär gehalten ist.

http://www.gossenmetrawatt.com/resources/me/sineax_cam/modbus_basics_d.pdf

http://www.lammertbies.nl/comm/info/modbus.html#addr

[EDIT]

Und was den mystischen Adressoffset angeht siehe hier

"Adressoffset"
Gemäss Modbus RTU Spezifikation wird die Startadresse eines Datenpaketes minus 1
(Adressoffset) übertragen (PLC-Adresse 5 = Protokoll Adresse 4). Wählen Sie für diesen


Hier gilt es ebend zu beachten ob dein ModBus-Kommunikationssystem diesen "Offset" selbst erstellt oder du deine ModBus-Adressen schon im PRG um jeweils 1 inkrementieren mußt


----------



## Markus Rupp (19 Juli 2011)

weiterführende informationen und spezifikationen siehe hier:

http://www.modbus.org/tech.php


----------



## zvende (20 Juli 2011)

Hallo Rupp

anbei die PDF mit den Adressen
z.B auf 27 bei den Digi Alarms wie würde die Modbus Adresse aussehen
wenn ich von Adresse 52 das 0 Bit in meine Steueurung einlesen möchte

Übertragen wird von einer Deif Steuerung zu einem EWON-Gerät

Danke für deine Mühe


----------



## Lars Weiß (20 Juli 2011)

zvende schrieb:


> Hallo Leute
> habe ein Verständnis Problem mit Modbus Variabeln
> muss aus einer Parameterliste Adressen auslesen und Sie dann
> in Dezimalzahl eingeben
> ...



Register 20 ist Register 20. Also lautet die Adresse auch 20. Es hängt von der Parametrierung des Masters ab ob dieser die erste Zahl als Funktionscode interpretiert.

Also wenn, dann lautet die Adresse in Deinem Fall 40020.


----------



## Oberchefe (20 Juli 2011)

Laut dem Handbuch Seite 11 ganz oben werden die Werte als Eingangsregister gelesen (function code 04) > Read Input Registers.

Vereinfacht gesagt Adresse 30052

Hat gar nichts mit der Konfiguration des Masters zu tun. Eine Anfrage des Masters an das Teil sieht dann beispielsweise so aus:


```
05 04 00 33 00 01 C0 41
```

die erste 05 wäre im Beispiel die Slave-Adresse 5 (keine Ahnung was Dein Teil eingestellt hat)

die 04 wäre der fc-> Read Input register

die 00 33 wäre die Startadresse (Dezimal 52)

die 00 01 die Länge -> 1 Byte lesen

und dann noch die CRC drangehängt(sollte Dein Baustein aber selbst machen).


Vom empfangenen Byte das erste Bit auslesen, fertig.



Wenn das funktioniert kannst Du noch probieren, ob Du ein einzelnes Bit auslesen kannst. Wäre dann fc01 (Read Input Status). Steht zwar nicht so in Deiner Doku, würde aber für die einzelnen Bits eigentlich Sinn machen.


----------

