Hosting mehrerer Clients mit Freemodbus

9

Ich arbeite an einem Projekt, bei dem ein Mikrocontroller über Modbus über TCP mit einem PC kommuniziert. Meine Plattform ist ein STM32F4-Chip, der in C ohne RTOS programmiert. Ich schaute mich um und fand LwIP und Freemodbus und hatte ziemlich gute Erfolge beide zur Arbeit zu bringen. Leider stoße ich jetzt auf einige Probleme, bei denen ich nicht sicher bin, wie ich damit umgehen soll.

Ich habe festgestellt, dass ich keine Verbindung herstellen kann, wenn ich eine Verbindung herstelle und dann die Verbindung abbringe (indem ich das Ethernetkabel abziehe) (nachdem ich natürlich wieder eingesteckt habe). Freemodbus erlaubt nur einen Client und hat immer noch den ersten Client registriert. Alle neuen Clients, die versuchen, eine Verbindung herzustellen, werden ignoriert. Es wird den ersten Client erst nach einer bestimmten Zeitüberschreitung fallen lassen, die, soweit ich das beurteilen kann, ein TCP / IP-Standard ist.

Meine Gedanken sind ...

  1. Ich brauche ein Modbus-Modul, das mehrere Clients unterstützt. Die neue Clientanforderung nach Kommunikationsverlust wird akzeptiert und der erste Client wird aufgrund der Zeitüberschreitung möglicherweise gelöscht.

    • Wie ändere ich Freemodbus, um damit umzugehen? Gibt es da draußen Beispiele? Ich habe es selbst gemacht und es scheint ein anständiges Projekt zu sein.
    • Gibt es irgendwelche guten Modbus-Pakete, die mehrere Clients verwalten, nicht zu teuer und einfach zu benutzen sind? Ich habe mehrere Threads über verschiedene Optionen gesehen, aber ich bin mir nicht sicher, ob einige von ihnen genau das treffen, was ich brauche. Ich hatte es schwer, alleine etwas zu finden. Die meisten unterstützen TCP nicht und diejenigen, die nur einen Client unterstützen. Ist es generell eine schlechte Idee, mehrere Clients zu unterstützen?
  2. Stimmt etwas nicht damit, wie ich von meinem PC aus eine Verbindung zum Mikrocontroller herstelle?

    • Warum wechselt der PC bei jedem Verbindungsversuch die Ports? Wenn es den gleichen Port beibehalten würde, den es vorher benutzt hat, wäre das kein Problem
  3. Soll ich den Client von Freemodbus trennen, sobald ich mit der Kommunikation aufhöre?

    • Dies scheint gegen Standards zu gehen, könnte aber funktionieren.

Ich lehne mich in Richtung 1. Besonders, da ich irgendwann mehrere Verbindungen unterstützen muss. Jede Hilfe wäre willkommen.

Danke.

    
JNMarch 03.10.2013, 23:52
quelle

0 Antworten

Tags und Links