# Modus Adressen aus Wago zu Generic Device



## julianpe (24 August 2015)

Hallo,

ich nutze einen Wago 750-8203 für die Kommunikation mit unterschiedlichen Modbus TCP Geräten.
Dabei habe ich in der Steuerungskonfiguration diverse Modbus Variablen hinterlegt.

Bsp.:

Name:Adresse:Datentyp:EA-TypFeldbusadresse:analogOut1%QW1000WORDOutputRegister: 1000 (0x3e8), Lesen: FC4; Schreiben: --analogIn1%IW1000WORDInputRegister: 0 (0), Lesen: FC3; Schreiben: FC16digitalIn1%IX1006.0BOOLInputBit: 96 (0x60), Lesen: FC1; Schreiben: FC15digitalOut1%QW1006.0BOOLOutputBit: 6246(0x1860), Lesen: FC2; Schreiben: --


Was mich jetzt wundert, ist dass ich mir vorgegeben wird, dass u.a. ein analoger Ausgangswert nur gelesen wird und nicht geschrieben (FC4)
Jetzt bin ich ein wenig verwirrt über die Tatsache, dass eigentlich nach Modbus TCP Standard, die einzelnen Register und Funktionen in folgenden Adressbereichen liegen:


Coil/Register Numbers​Data Addresses​TypeTable Name1-9999​0000 to                  270E​Read-WriteDiscrete Output Coils10001-19999​0000 to                  270E​Read-OnlyDiscrete Input Contacts30001-39999​0000 to                  270ERead-OnlyAnalog Input                  Registers40001-49999​0000 to                  270ERead-WriteAnalog Output                  Holding Registers

Kann ich nun davon ausgehen, dass meine Variablen nach Modbus Anordnung auf folgenden Adressen liegen?

analoger Ausgang 1 (Register: 1000), FC4 -> Adresse: 40001
analoger Eingang 1 (Register: 0), FC3, FC16 -> Adresse: 30001
digitaler Ausgang 1 (Bit: 6246), FC2 -> Adresse: 1.0
digitaler Eingang 1 (Bit: 96), FC1, FC15 -> Adresse: 10001.0

Klärt mich bitte auf 


Danke und Gruß


//EDIT:

Habe diese Tabelle im Internet gefunden. Ist die korrekt so?

Function Code                              Register-Adresse                    Beschreibung
01 (01 hex)                                  1-9999                                  Lesen von digitalen Ausgängen
05 (05 hex)                                  1-9999                                  Setzen eines digitalen Ausgangs
15 (0F hex)                                  1-9999                                  Setzen mehrerer digitalen Ausgänge
02 (02 hex)                                  10001-19999                         Lesen von digitalen Eingängen
04 (04 hex)                                  30001-39999                         Lesen von analogen Eingangswerten
03 (03 hex)                                  40001-49999                         Lesen von analogen Ausgangswerten
06 (06 hex)                                  40001-49999                         Setzen eines analogen Ausgangs
16 (10 hex)                                  40001-49999                         Setzen mehrerer analogen Ausgänge


----------



## .:WAGO::015844:. (24 August 2015)

Hallo julianpe,

ich gehe anhand deiner Beschreibung davon aus, dass der 750-8203 als Slave arbeiten soll?!

Zu den Registern:


> Coil/Register Numbers​Data Addresses​TypeTable Name1-9999​0000 to                  270E​Read-WriteDiscrete Output Coils10001-19999​0000 to                  270E​Read-OnlyDiscrete Input Contacts30001-39999​0000 to                  270ERead-OnlyAnalog Input                  Registers40001-49999​0000 to                  270ERead-WriteAnalog Output                  Holding Registers


Hier hast du im Endeffekt immer die Register 1-9999.
Anhand der Prefixe (hier: 0 (1-9999); 1 (10001-19999); 3 (30001-39999) und 4 (40001-49999) wird nur der zu nutzende Funktionscode ausgewählt.
Bei Wago Geräten wird nicht mit dem Prefix, sondern dem Funktionscode gearbeitet.

Das Modbus Register Mapping des 750-8203, sowie die Funktionscodes findest du im Handbuch ab Kapitel 10.5.3:
http://www.wago.de/download.esm?fil...dium=forum&utm_content=sps-forum&utm_term=MAN

Wie im Handbuch beschrieben sind die Modbus Register auf Merkerbereiche, oder auf den PFC Ein-/Ausgangsbereich gemappt.
Ein Direktzugriff auf das EA Abbild ist nicht möglich.





> Bsp.:
> 
> Name:Adresse:Datentyp:EA-TypFeldbusadresse:analogOut1%QW1000WORDOutputRegister: 1000 (0x3e, Lesen: FC4; Schreiben: --analogIn1%IW1000WORDInputRegister: 0 (0), Lesen: FC3; Schreiben: FC16digitalIn1%IX1006.0BOOLInputBit: 96 (0x60), Lesen: FC1; Schreiben: FC15digitalOut1%QW1006.0BOOLOutputBit: 6246(0x1860), Lesen: FC2; Schreiben: --


Der PFC-Ausgangsbereich kann per Modbus nur gelesen werden, da der Controller (PFC) dort seine ausgehenden Daten bereitstellt.
Somit kann der PFC-Eingangsbereich beschrieben werden, um dem Controller Daten zu übergeben.





> Habe diese Tabelle im Internet gefunden. Ist die korrekt so?
> 
> Function Code                              Register-Adresse                    Beschreibung
> 01 (01 hex)                                  1-9999                                  Lesen von digitalen Ausgängen
> ...


Eine verlässliche Zuordnung der Prefix/Zugriff - Funktionscode Kombination der spezifischen Partnergeräte kann ich so leider nicht liefern.
Grundsätzlich könnte diese aber durchaus passen.

Evtl. ist zudem noch mit einem Offset von 1 zu rechnen, da die Wago Register bei 0 beginnen.


----------

