M-Bus SerialPort - socket error 10054

Hallo,

bin heute zufälliger Weise auf ein M-Bus Problem gestoßen.
Wenn man im M-Bus Gateway die Konfiguration für den seriellen Port anwählt wird der IPS Dienst mit „socket error 10054“
beendet. Man kann also die Konfiguration nicht ändern.
Nach Neustart des Dienstes läßt sich der Bus normal auslesen; erneutes „Konfigurieren“ läßt IPS wieder abstürzen.
Der Treiber scheint also prinzipiell io zu sein - Daten lesen geht.
Das Problem ist unabhängig vom BS: Win7/Win10
IPS: aktuelle Version: 4 vom 07.01.2016 (Bei der 3.4 ging es)

Gruß, Thomas

Hallo zusammen,

habe heute das gleiche Problem beim Enocean Gateway festgestellt.

Wenn man im Enocean Gateway die Konfiguration für den seriellen Port anwählt, wird der IPS Dienst mit „socket error 10054“ beendet.
Das gleiche passiert auch, wenn ich den seriellen Port direkt öffne.
Nach einem Neustart des Dienstes kann ich die Enocean Komponenten wieder ganz normal ansteuern.

Betriebssystem: Win10 mit der IPS Version: 4 vom 07.01.2016 (Bei der 3.4 mit Win 7 ging es noch).

Das kann ich ebenfalls bestätigen.

Tritt aber nicht nur bei M-Bus und Enocean auf auch bei anderen Instanzen

Die Probleme sollten im aktuellen Update gelöst sein.

paresy

Wahnsinn - funktioniert. Vielen Dank.

Thomas

Jetzt habe ich den gleichen Fehler, ob in der 3.4 oder in der 4.0 Version von IPS. Der Dienst wird gestoppt.
Ich verbinde einen ESP8266 Modul über einen Server Socket und Cutter zu einem Script.
Läuft soweit alles in Ordnung. Nur wenn ich folgende Zeilen einfüge, dann knallt es, obwohl die auszuführenden Zeilen inaktiv sind (aber auch wenn diese aktiv sind :D):
case 1:
If (substr($data,43,2) = „On“ {
// SetValueBoolean(20395 /[ESP8266\Bool00]/, true);
}
else
{
// SetValueBoolean(20395 /[ESP8266\Bool00]/, false);
}

Der Auszug aus dem Code mit diesen Zeilen sieht so aus:
if ($_IPS[‚SENDER‘] == „RegisterVariable“)
{
// bereits im Puffer der Instanz vorhandene Daten in $data kopieren
$data = RegVar_GetBuffer($_IPS[‚INSTANCE‘]);
// neu empfangene Daten an $data anhängen
$data .= $_IPS[‚VALUE‘];

//Zuordnung der empfangenen Daten gemäss idx=x
switch (substr($_IPS['VALUE'],31,1)) {
case 1:
	 If (substr($data,43,2) = "On" {

// SetValueBoolean(20395 /[ESP8266\Bool00]/, true);
}
else
{
// SetValueBoolean(20395 /[ESP8266\Bool00]/, false);
}
break;
case 3:
SetValueFloat(20896 /[ESP8266\Float05]/, substr($data,41));
break;

Kann mir jemand sagen, wo das Problem liegt, wenn ich den „case 1“ einfüge?

gruss gokart