# Modbus / TCP selber programmieren



## augenstern (5 August 2010)

Hallo,

ich muss für eine embedded Hardware das Modbus/TCP-Protokoll realisieren um aus einer Spritzgiessmaschine (Babyplast) Daten zu holen.

Auf http://www.modbus.org  gibt es jede Menge Infos und auch Beispielcode. Allerdings habe ich bisher nirgends etwas gefunden bzgl. z.B. Antworttimeouts o.ä.

Ein Modbus-Simulator auf der Website macht die Verbindung zum Master nach ca. 30 Sekunden zu, schließt also den Socket, falls kein Traffic stattfindet.

Ist das normal, muss auf Modbus/TCP permanent kommuniziert werden?

Zu meinem Hintergrund: ich bin durchaus programmiererfahren in C/C++ (15 Jahre), also kein "blutiger" Anfänger.

Viele Grüße!!


----------



## pvbrowser (5 August 2010)

augenstern schrieb:


> Ist das normal, muss auf Modbus/TCP permanent kommuniziert werden?



Davon ist in der Modbus Spezifikation keine Rede.
Zwischen 2 Telegrammen muss allerdings eine gewisse Pause eingelegt werden.
Sonst gibt es aber keine weiteren Timing Vorschriften.

Du brauchst die Modbus Kommunikation nicht selber zu schreiben.
Es gibt da schon fertige Bibliotheken, die auch open source sind.

Z.B. unsere rlModbus Klasse
http://pvbrowser.org/pvbrowser/sf/manual/rllib/html/classrlModbus.html
Bestandteil von http://pvbrowser.org

Es gibt da aber auch noch andere Bibliotheken, die in ANSI C sind, wenn C++ auf Deinem System nicht vorhanden ist. Ansonsten kannst Du unsere Bibliothek natürlich auch nach ANSI C portieren.

Hier findest Du die Modbus Spezifikation:
http://modbus.org/specs.php


----------



## augenstern (9 August 2010)

*Danke!*

Hallo pvbrowser!

Danke für Deine Antwort! Ich hatte den Abschnitt bzgl. Timeout managment wohl überlesen .

Nun, da muss ich wohl tatsächlich "empirisch" am Objekt der Modbus Begierde (Maschine) testen.

Danke für das Code-Angebot, aber ich habe in diesem Fall darauf verzichtet, da:

a) die Embedded-CPU nur ANSI-C spricht (also der Compiler)
b) Modbus ja nicht unbedingt schwierig zu implementieren ist

Danke! :TOOL:


----------

