Modbus TCP geht nur bei SlaveID =1

  • Hallo,

    ich habe nun einige Modbus TCP- Kommunikationen zum laufen gebracht. d.h. ich kann z.B. einen Janitza UMG 604 auslesen.

    Probleme ergenben sich, wenn die ID nicht "1"ist.

    Ich nutze: TCPConnect(192.168.1.1, 502) zum ersten Janitza (ID 1)

    Ich nutze: TCPConnect(192.168.1.2, 502) zum zweiten Janitza (ID 2)

    Der zweite Janitza hat aber die ID 2

    hier geht dann gar nichts mehr - Skript bleibt hängen.

    Gibt es eine Möglichekeit die Mosbus-ID mit einzustellen?


    Danke schon mal!

  • Die ID hat nichts mit der IP zu tun. Die ID ist im Protokoll verankert. Allerdings wenn beide Geräte eine unterschiedliche IP haben, dann würde ich die ID bei beiden Geräten auf dem Standard-Wert von ! belassen und dann müsste auch das Skript funktionieren. Unterschiedliche IDs braucht man z.B. wenn man ein Modbus-TCP Gateway hat, welches sekundärseitig mehrere Geräte über Modbus-RTU ansprechen soll.

  • danke für die Antwort.

    Aber die Geräte kann ich nicht ändern - sind extern und dürfen nur ausgelesen werden. Auf die Vorgaben habe ich als keinen Einfluß.


    Z.B. sind bei manchen Geräten (Parkregler) angeschlossenen Sensoren auf der geleichen IP aber mit einer anderen ID zu finden.

    Grüße!

  • Musashi 16. September 2021 um 08:28

    Hat den Titel des Themas von „Modbus TCP ghet nur bei SlaveID =1“ zu „Modbus TCP geht nur bei SlaveID =1“ geändert.
  • Hallo,

    habe es inzwischen anders lösen müssen. Habe eine SPS - diese fragt die Geräte mit unterscheidleicher ID ab. Die SPS lese ich dann aus. Funktioniert - gefällt mir aber nicht.

    Den Original-Code habe ich schon gelöscht - sah aber so ungefähr aus:

    Für einen Tip bzg. der SlaveID bin ich aber sehr dankbar.

    Grüße!!