Hilfe bei Modbus TCP Kommunikation gesucht

Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn Du in Holding Register schreiben willst (FC16), dann 40001.
In 30001 kannst Du nicht schreiben. Die Input Register können nur gelesen werden.

Insgesamt ist es aber Client und Server überlassen, welche Datenbereiche sie verwenden. Sie müssen sich nur untereinander einigen und die Modbus-Spec beachten (z.B. dass Inputs und Input Register nur gelesen werden können).
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ach, die S7-Seite war gemeint...
Die Adresse 40001 ist in der S7 die Adresse 0, 40002 ist die Adresse 1 etc. In der S7 wird die Adresse verwendet, die tatsächlich über den Bus geschickt wird - ohne Offset.
 
Über den Bus wurden immer nur die absoluten Adressen (also 0, 1, 2 etc. geschickt). Früher hatten die Geräte aber noch eine "interne Tabelle", wo die einzelnen Bereiche für Holding Register, Input Register etc. abgelegt wurden, und das waren 40001 für Holding Register, 30001 für Input Register etc.
Jetzt gibt es immer mehr Geräte, die die Modbus-Adressen ohne diesen Offset angeben. Aber egal welche Geräte man nimmt, über den Bus gingen und gehen immer nur die absoluten Adressen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja, das ganze hat einen Nährwert.
Nur das der Kunde keine Ahnung hat, was er will. Folglich gab's nur die Vorgabe:
Modbus Kommunikation mit einem Server über Modbus TCP aufbauen. Dazu bekam ich noch ne IP-Adresse. Somit ist abgesprochen: Ich stell eine funktionsfähige Lösung her und wenn die dann mit dem System vom Kunden nicht übereinstimmt, dann wird auf seine Kosten umgebastelt.
Deshalb möchte ich ja das Ganze als "Standardkommunikation" aufbauen und dann nicht irgendwelche Register beschreiben, die eigentlich nur gelesen werden oder so.

mfg mephisto
 
Zurück
Oben