Modbus TCP (libmodbus)-Fehler nach erneuter Verbindung aufgrund eines NetzwerkfehlersC++

Programme in C++. Entwicklerforum
Anonymous
 Modbus TCP (libmodbus)-Fehler nach erneuter Verbindung aufgrund eines Netzwerkfehlers

Post by Anonymous »

In einem Versuchsaufbau möchte ich einen Ventilblock mit meinem PC über Modbus TCP steuern.
Umgebung
  • libmodbus
  • Visual Studio
  • Direkte Verbindung zwischen PC und Ventilinsel (kein Umschalten dazwischen)
Was funktioniert

Der Verbindungsaufbau und die einfache Ansteuerung der Spulen funktioniert einwandfrei.
Woran liegt das Problem?

Kommt es jedoch zu einer Unterbrechung des Netzwerks während einer bestehenden Verbindung (z.B. durch Ziehen am Kommunikationskabel), kommt es nach erneutem Verbindungsaufbau in ca. 20 % der Fälle zu folgendem Phänomen:

Die Spule lässt sich nicht mehr dauerhaft einschalten. Man hört das kontinuierliche Ein- und Ausschalten.

Dauerhaftes Ausschalten stellt dagegen kein Problem dar.
In diesem Zustand hilft weder das Trennen noch das erneute Herstellen der Verbindung. Das Einzige, was funktioniert, ist, den gesamten Ventilblock aus- und wieder einzuschalten.
Meine Frage

Weiß jemand, ob es in libmodbus eine Art Reset-Befehl gibt?
Mein Code

Code: Select all

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
extern "C" {
#include 
}

//Tags
std::string input; //For Keyboard input

int main()
{
//Slave Parameter in Tags
const char* ip = "192.168.1.20";
int port = 502;
int slave_id = 1;

//If Disconnect, jump to this point
reconnect:

//Should be connected?
std::cout

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post