-> Hier kostenlos registrieren
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.:
[TABLE="class: grid, width: 700"]
[TR]
[TD]Name:[/TD]
[TD]Adresse:[/TD]
[TD]Datentyp:[/TD]
[TD]EA-Typ[/TD]
[TD]Feldbusadresse:[/TD]
[/TR]
[TR]
[TD]analogOut1[/TD]
[TD]%QW1000[/TD]
[TD]WORD[/TD]
[TD]Output[/TD]
[TD]Register: 1000 (0x3e8), Lesen: FC4; Schreiben: --[/TD]
[/TR]
[TR]
[TD]analogIn1[/TD]
[TD]%IW1000[/TD]
[TD]WORD[/TD]
[TD]Input[/TD]
[TD]Register: 0 (0), Lesen: FC3; Schreiben: FC16[/TD]
[/TR]
[TR]
[TD]digitalIn1[/TD]
[TD]%IX1006.0[/TD]
[TD]BOOL[/TD]
[TD]Input[/TD]
[TD]Bit: 96 (0x60), Lesen: FC1; Schreiben: FC15[/TD]
[/TR]
[TR]
[TD]digitalOut1[/TD]
[TD]%QW1006.0[/TD]
[TD]BOOL[/TD]
[TD]Output[/TD]
[TD]Bit: 6246(0x1860), Lesen: FC2; Schreiben: --[/TD]
[/TR]
[TR]
[TD][/TD]
[/TR]
[/TABLE]
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:
[TD="align: center"]
[TD="align: center"]
[TD="align: center"] Type [/TD]
[TD="align: center"] Table Name [/TD]
[TD="align: center"]
[TD="align: center"]
[TD="align: center"] Read-Write [/TD]
[TD="align: center"] Discrete Output Coils [/TD]
[TD="align: center"]
[TD="align: center"]
[TD="align: center"] Read-Only [/TD]
[TD="align: center"] Discrete Input Contacts [/TD]
[TD="align: center"]
[TD="align: center"] 0000 to 270E [/TD]
[TD="align: center"] Read-Only [/TD]
[TD="align: center"] Analog Input Registers [/TD]
[TD="align: center"]
[TD="align: center"] 0000 to 270E [/TD]
[TD="align: center"] Read-Write [/TD]
[TD="align: center"] Analog Output Holding Registers [/TD]
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
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.:
[TABLE="class: grid, width: 700"]
[TR]
[TD]Name:[/TD]
[TD]Adresse:[/TD]
[TD]Datentyp:[/TD]
[TD]EA-Typ[/TD]
[TD]Feldbusadresse:[/TD]
[/TR]
[TR]
[TD]analogOut1[/TD]
[TD]%QW1000[/TD]
[TD]WORD[/TD]
[TD]Output[/TD]
[TD]Register: 1000 (0x3e8), Lesen: FC4; Schreiben: --[/TD]
[/TR]
[TR]
[TD]analogIn1[/TD]
[TD]%IW1000[/TD]
[TD]WORD[/TD]
[TD]Input[/TD]
[TD]Register: 0 (0), Lesen: FC3; Schreiben: FC16[/TD]
[/TR]
[TR]
[TD]digitalIn1[/TD]
[TD]%IX1006.0[/TD]
[TD]BOOL[/TD]
[TD]Input[/TD]
[TD]Bit: 96 (0x60), Lesen: FC1; Schreiben: FC15[/TD]
[/TR]
[TR]
[TD]digitalOut1[/TD]
[TD]%QW1006.0[/TD]
[TD]BOOL[/TD]
[TD]Output[/TD]
[TD]Bit: 6246(0x1860), Lesen: FC2; Schreiben: --[/TD]
[/TR]
[TR]
[TD][/TD]
[/TR]
[/TABLE]
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:
[TD="align: center"]
Coil/Register Numbers
[/TD][TD="align: center"]
Data Addresses
[/TD][TD="align: center"] Type [/TD]
[TD="align: center"] Table Name [/TD]
[TD="align: center"]
1-9999
[/TD][TD="align: center"]
0000 to 270E
[/TD][TD="align: center"] Read-Write [/TD]
[TD="align: center"] Discrete Output Coils [/TD]
[TD="align: center"]
10001-19999
[/TD][TD="align: center"]
0000 to 270E
[/TD][TD="align: center"] Read-Only [/TD]
[TD="align: center"] Discrete Input Contacts [/TD]
[TD="align: center"]
30001-39999
[/TD][TD="align: center"] 0000 to 270E [/TD]
[TD="align: center"] Read-Only [/TD]
[TD="align: center"] Analog Input Registers [/TD]
[TD="align: center"]
40001-49999
[/TD][TD="align: center"] 0000 to 270E [/TD]
[TD="align: center"] Read-Write [/TD]
[TD="align: center"] Analog Output Holding Registers [/TD]
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
Zuletzt bearbeitet: