Daten vom Stromzähler am Seriellen-Port, Client-Socket

Hallo an alle,

ich habe schon vor Wochen den Versuch gewagt ein update zu machen. Alles wunderbar bis auf ein einziges Problem, das sich bis heute leider hartnäckig hält.

Ich hatte 2 Stromzähler (ein Hager für die Photovoltaik und ein eMH für „normalen“ Strom) mit RS232 auf USB Adapter angeschlossen. Läuft alles prima. Nach dem update kommen plötzlich keine Daten mehr. Also ran an die Kiste und nachschauen. Den Hager bekomme ich zum „laufen“, der eMH bringt aber absolut nix. Mit hterm werden an der seriellen Schnittstelle Daten empfangen. Habe es dann auf den Adapter geschoben und mir 2 Exsys EX-6031 RS-232-Datagateways besorgt. Voller Hoffnung … gleiches Ergebnis.
Dann habe ich die Software für den virtual Port entfernt und die Gateways per Client-Socket eingebunden … gleiches Ergebnis

Mir ist völlig unklar wo ich noch was wie machen kann. Natürlich habe ich auch mal die Gateways getauscht um zu testen ob es daran liegt.

Mein IP-Symcon läuft auf einem hp microserver mit Windows Server 2012

Würde mich wahnsinnig freuen wenn irgendwer in diesem grandiosen Forum ne Lösung oder wenigstens nen Ansatz hätte.

Danke und viele Grüße

Michael

Hi du,

du machst mir Hoffnung, ich habe genau das gleiche Problem. Ebenfalls seit dem Update kann ich meinen Zähler nicht mehr auslesen. Ich habe noch einen älteren Denon mit Serieller Schnittstelle dran. Bisher hatte ich auch 2 seriell to USB Adapter. Ok, die haben schon öfters Probleme gemacht deshalb wollte ich diese eh schon loswerden. Der Denon läuft inzwischen da habe ich ein USR-TCP232-T24 Schnittstelle und spreche diese über einen Client Socket an.

Für den Zähler habe ich so einen Infrarot Empfänger, dieser braucht ein DTR Signal. Das hat das USR Modul nicht und deshalb habe ich ein EXSYS EX-6030 bestellt (lt. Beschreibung steht da jedenfalls was von DTR). Und ich dachte, da es das dreifache kostet, das geht dann bestimmt. Das kommt morgen oder übermorgen mit der Post. Ich dachte mit dem werde ich das bestimmt schaffen. Bin gespannt ob wir das hinbekommen…

Was hast du denn für einen Auslesekopf für den Zähler?

Bin gespannt ob wir das schaffen. Ich melde mich die Tage wieder.

Da bin ich auch gespannt. Wäre froh wenn das endlich wieder laufen würde.

Am Hager (PV) habe ich die rückseitige BKE-Schnittstelle, am eMH ein Voltcraft RS232C „passend“ gemacht.

Hallo Michael,

heute habe ich meinen EX-6030 Adapter erhalten. Voller Freude alles angeschlossen, habe auch den Voltcraft Infrarot Empfänger aber nix geht. Nach langem hin und her, habe ich dann ein Kabel gelötet und die beiden Adern RXD und TXD (PIN 3 und 2) vertauscht und siehe da es kommen immerhin mal Daten. Ggf. ist das auch bei dir das Problem.

Leider ist das bei mir noch nicht die Lösung.

Jetzt kommen da aber zu kleine Datenpakete an, diese haben eine unterschiedliche länge zwischen 8 und 27 Zeichen. Siehe mein Anhang mit dem Debug Log. Mein Zähler liefert aber jede Sekunde genau 400 Zeichen. (das kann von Zähler zu Zähler mehr oder weniger sein). Man erkennt die Anfangszeichen 1B 1B 1B 1B 01 01 01 01 noch, die kommen wohl jede Sekunde noch an, dann hörts aber unterschiedlich auf… Es scheint als ob das Gerät nicht schnell genug die vom Zähler gesendeten 400 Zeichen verarbeiten kann… so ein Ärger.

Jetzt hast du ja das EX-6031… Was ist den der Unterschied? Deins scheint ja ein Gateway zu sein und meins nicht. Jetzt hoffe ich, dass du das auch mal testen kannst, ob mit dem entsprechenden Kabel dann Daten bei Dir vollständig ankommen.

Ich habe im Anhang auch mal meine Einstellungen und Firmware des Adapters mit angehängt.

Die Einstellung „Interface of serial I/O“ ist ja eigentlich auch wichtig. Wenn ich da „RS 232“ auswähle. Liegt an PIN 4 Plus 5 Volt an. Das dürfte ja dann das DTR Signal zur Stromversorgung des Infrarot Adapters sein. Dann kommen Daten. Wenn ich da aber „RS 232 (RTS/CTS, DTR/DSR)“ auswähle, liegen an PIN 4 Minus 5 Volt an und es kommen dementsprechend gar keine Daten mehr an!! Das hätte ich eher anders herum erwartet??

OK Ich hoffe du kannst das auch mal testen und wieder bescheid geben.
Vielleicht fällt ja sonst noch jemandem etwas ein…

Vielen Dank schon mal
Grüße Helmut

PS: auch wenn ich das mit einem Virtuellen COM Port Teste kommen genau so wenig Daten an wie mit Client Verbindung.

EX-6030 Firmware.JPG

Hallo Helmut,

danke für Deine Antwort.
Ich bekomme auf meinem Win 10 PC (da teste ich IPS 4.x) als Virtual-Com mit hterm Daten, wie es sein soll. „Interface of serial I/O“ muss dabei bei mir auf RS232 stehen, sonst kommt nichts.
Am Serial Port unter IP-Symcon kommen aber keine an. An der Kabelbelegung kann es somit nicht liegen.
Wenn ich debugging einschalte und dann den Serial Port öffne, kommt „immerhin“ FF FF und 83 00.
Über „Befehl testen“ habe ich natürlich auch schon DTR auf true gesetzt.
Gaaanz viele ??? in meinem Kopf. Werde aber weiter testen …

Gruß

Michael

Hallo Michael,

soweit ich das verstanden habe, hat IPS V4 Probleme mit den seriellen Schnittstellen. Deshalb nehmen wir ja ein LAN Modul, welches wir direkt per TCP Verbindung ansprechen können. Der Umweg über einen Virtuellen Treiber der COM Ports simuliert sollte dann entfallen können.

Deshalb solltest du mal versuchen den Virtuellen Treiber zu deaktivieren. Im EX Webinterface stellst du dann bei „Socket port of Serial I/O“ den Port z.B. 100 ein und wählst „TCP Server“ aus. Der Rest sollte gleich bleiben können.

In IPS V4 legst du jetzt ein Client Socket an (ggf. den alten ComPort deaktivieren), trägst dort die IP Adresse des EX ein und der Port (wie oben 100). Wenn du diesen jetzt aktivierst, sollte IPS direkt zum EX eine Verbindung aufbauen, ohne Umweg. Dann Debug aktivieren und hoffentlich siehst du jetzt die Datenpakete in IPS ankommen.

Kannst du mir wenn das klappt mein ein Screenshot von dem Debug anhängen. Wie du bei mir im letzten screenshot siehst, kommen eben die Datenpakete nur unregelmäßig und nicht vollständig an.

Der Rest mit Cutter und Registervariable kann dann identisch wie beim Comport auch an den Client angehängt werden.

Grüße Helmut

Habe ich natürlich auch schon versucht. Beim Hager geht das, beim eMH nicht. Ich vermute das hat tatsächlich was mit dem Lesekopf zu tun … Habe gestern festgestellt dass in meinem live System (3.x) das ganze mit Client Socket auch nur am Hager Zähler geht. :frowning:

Hast Du bei Dir mal den „Packet Mode…“ auf disable gestellt? Vielleicht werden die Daten dann laufend geschickt.

Hi,

das ist für mich sehr unlogisch. Ich habe bei mir auch schon den Packet Mode umgestellt, das hilft nichts, gleiches Bild mit unvollständigen Daten.

Ich habe auch mal den Virtuellen Comport Treiber eingerichtet und mit Hterm die Daten angeschaut. Da kommen bei mir die gleichen unvollständigen Datenpakete an, wie wenn ich das über den Client Socket mit IPS mache.

Deshalb wundert es mich, dass bei dir Hterm funktioniert und IPS nicht.

Mögliches Problem, könnte noch eine Firewall sein, hast du die mal am lokalen Rechner deaktiviert? Sind die IP Adressen/Ports richtig und Gateway eingetragen?

Kennst du den unterschied zwischen dem EX-6030 und deinem EX-6031 der ja ein Gateway in der Bezeichnung hat?

Gruß Helmut

Hallo Michael,

ich habe eine gute Nachricht. Bei mir läuft der Zähler jetzt rund, die Daten kommen an wie es soll.

Was war das Problem? Der Lesekopf den ich verwende RS232C (siehe Anhang) benötigt tatsächlich noch ein zusätzliches Kabel. Der PIN7 welcher vom Lesekopf kommt habe ich an GND bzw. an die Abschirmung des Kabels angelötet, schon laufen die Daten sauber durch den EX-6030 zum IPS Client Socket. (siehe Bild leider nicht ganz scharf, aber es war schon spät :wink:

Damit ergibt sich folgende komplette Belegung:
Pin 2: RXD am EX-6030 und TXD am RS232C
Pin 3: TXD am EX-6030 und RXD am RS232C
Pin 4: DTR
Pin 5: GND
Pin 7: von RS232C zur Abschirmung am EX-6030

Frag mich jetzt nicht ob man das so machen darf, keine Ahnung warum das so funktioniert, aber es funktioniert bei mir, deshalb alle aussagen ohne Gewähr!!! Vielleicht kann ja jemand erklären warum das so funktioniert…
Ich bin da durch Zufall drauf gekommen, weil sich beim rumlöten, der pin7 an der Abschirmung berührt hat… und dann plötzlich die vollständigen Daten im Debug Fenster waren.

Jetzt die schlechte Nachricht… eventuell hilft das ganze dir gar nichts, da du ja sagst, die Daten kommen bei dir in hterm an aber nicht in IPS… prüfe einfach noch mal alles… bei mir hat sich die Geduld jedenfalls ausgezahlt…

Bin gespannt auf deine Rückmeldung.

Grüße Helmut

Hallo Helmut,

danke für die Infos und die Bilder. Die sind für mich sehr hilfreich, denn ich habe gerade keinen Plan mehr welche Leitung am Lesekopf tatsächlich am EXSYS ankommt. Die Leitung läuft bei mir vom EG (da ist der Zähler) ins UG (mein Büro). So wie es aussieht war ich clever und habe die Adern 1:1 runtergelegt. Werde das aber nochmal prüfen. Vielleicht heute Abend, wenn es nicht zu spät wird.
TX und RX vertauschen war mir bekannt. Das mit der weißen Leitung hat sicherlich was mit DTR zu tun. Am Serial Port kann ja DTR auf true gesetzt werden, was bei Client Socket nicht geht.

Du hast Recht: Geduld zahlt sich aus … :slight_smile:

Ich berichte wieder wenn es was neues gibt.

Gruß

Michael

Hi,

ich noch mal. Ja bei der Client Verbindung kann DTR nicht abgeschalten werden. Am EX-6030 ist damit DTR immer aktiv.

Damit ich dann bestimmen kann wann Daten kommen, deaktiviere bzw. aktiviere ich mit folgendem Skript die Clientverbindung per Ereignis z.B. jede Minute. (damit hat man dann ähnliches Ergebnis wie DTR ein und ausschalten)

IPS_SetProperty(42941 /*[Client Socket EX-6030 TCP Zähler]*/,"Open",true);
IPS_ApplyChanges(42941 /*[Client Socket EX-6030 TCP Zähler]*/);
ips_sleep(2000);
IPS_SetProperty(42941 /*[Client Socket EX-6030 TCP Zähler]*/,"Open",false);
IPS_ApplyChanges(42941 /*[Client Socket EX-6030 TCP Zähler]*/);

Mit den 2 Sekunden Pause ggf. testen ob mehr oder weniger notwendig ist…

Viel Erfolg

Läuft … gähn … morgen dazu mehr

:loveips:

Oder auch nicht, zumindest nicht so richtig.

Daten kommen an, auch in der Registervariablen. Das ist schon mal ein Fortschritt.
Es wird aber nichts verarbeitet.
Habe mir die Daten angeschaut und schnell mal „auseinandergenommen“ (ist ja nicht das erste Mal). Dabei ist mir aufgefallen dass statt „FF“ immer „7F“ übermittelt wird. Also z.B. bei den „objName“ kommt statt 07 01 00 01 08 00 FF bei mir 07 01 00 01 08 00 7F. Beim „scaler“ das gleiche, statt 52 FF kommt 52 7F.
Bin ja nicht doof, dachte ich mir, und habe das Auswertescript umgebastelt. Schon läufts … aber was ist das: Der Zählerstand stimmt nicht. Er steigt zwar (wegen Stromverbrauch) an, der Stromzähler zeigt aber einen anderen Wert. Keine große Differenz (839 kWh), aber einfach falsch. Ob die aktuelle Leistung stimmt kann ich leider nicht sagen. Dieser Wert „springt“ einfach viel zu schnell hin und her (lfd. Stromverbrauch und Photovoltaik). Da werde ich vermutlich noch ganz schön tüfteln müssen.

Gelöst oder erlöst ???

Man kann für sich selbst nur ein Held werden, wenn man zuvor ziemlich dumm war :slight_smile:

Die Lösung:
Beim testen und verändern so mancher Einstellungen habe ich aus Versehen im EXSYS 6031 die Einstellungen auf 9600/7E1 gelassen. Schnell auf den richtigen Wert (9600/8N1) geändert, schon stimmen die Daten. Natürlich musste ich jetzt auch das Script wieder anpassen …

Hi Michael,

schön, dass es auch nun bei dir läuft. Schönes Zitat… :slight_smile:

Interessant wäre noch woran es jetzt letztendlich gelegen hat…?

Ich hätte da noch eine Info für alle zukünftigen Bastler, die einen Zähler auslesen wollen. Ich hatte ja am Anfang ein Billiges Modul USR-TCP232-24 siehe Bild vorderseite gekauft (Direkt aus China…) dachte ja dann OK mit dem Billigen kanns ja nicht gehen und habe zusätzlich Exsys gekauft… das war umsonst, denn mit dem jetzigen Wissen der richtigen PIN-Belegung funktioniert natürlich auch dieses Modul Problemlos!

Zu beachten ist, dieses Modul unterstützt zwar von Haus aus kein DTR aber mit einer kleinen Kabelbrücke vom Netzteil +5Volt zu Pin 4 hat man ja dann auch sozusagen das DTR Signal. Siehe angehängtes Bild von der Rückseite mit dem angelöteten Kabel.

Am Stecker dann noch der Pin7 (blaues Kabel) an GND (Grünes Kabel)
Das RXD und TXD Signal entsprechend über Kreuz verbunden (Rot und Orange)

Die Konfiguration des Moduls mit dem zugehörigen Programm wie im Anhang gezeigt einrichten, wichtig unter den erweiterten Einstellungen alle Hacken entfernen!!

Schon laufen die Daten in den Client Socket bei IPS… damit habt ihr dann für ca. 30 EUR ein Zählerauslesemodul fürs Netzwerk. (USR modul ca. 20 EUR und Voltcraft Infrarot RS232C ca. 10 EUR + ggf. 2 Stecker zum löten…)

Viel Spaß damit beim Basteln und danach beim Strom Sparen :slight_smile:

Grüße Helmut

Hallo Zusammen,

ich möchte euch meine Erkenntnisse nicht vorenthalten.

Habe mir den aktuellen „VOLTCRAFT® RS-232 Schnittstellenadapter für VOLTCRAFT® Multimeter, Passend für (Details) VC820, VC830, VC840, VC850, VC8“ bei Conrad bestellt:
Bestell-Nr.: 125640 - 62 Hst.-Teile-Nr.: RS-232 | EAN: 4016138605686

Ich habe mit zwei Schlitzschraubendreher den COM-Stecker geöffnet. Dieser ist nur gesteckt.

Danach war lediglich folgende Modifikation an PIN5 und 7 nötig:

Ich lese meinen Zähler per Moxa in IPS ein:


Die Daten verarbeite ich per Cutter und Register Variable.
:loveips:

Edit: Ich habe festgestellt, dass die Kommunikation mit der IR-Schnittstelle wesentlich zuverlässiger funktioniert, wenn man das Plastikgehäuse des Voltcraft Schnittstellenadapters entfernt.