Stromzähler Voltcraft VSM-102

Hallo.

Nach einer gefühlten Ewigkeit habe ich nun endlich Antwort vom Hersteller erhalten. Entgegen dem Handbuch steht der Zähler standardmäßig im Betriebsmodus Mode A IEC1107 und sendet daher nicht selbstständig Telegramme über die RS-485 raus. Man muss ihn erst über die Schnittstelle in den Mode C umschalten. Erst dann sendet er Telegramme selbstständig ab.
Befehle wie folgt:

Senden : „/?!“ + CR + LF
Antwort: „/EFR7\EFR-M4-…“
Senden : „ACK+“
Pause
Senden : „050“+CR+LF

Dabei entsprechen ACK = 0x06, LF = 0x0A und CR = 0x0D.

Erst dann gibt er die Daten wie in der Anleitung beschrieben aus. Diese Abweichung von Soll und Ist hat mich zwei Abende gekostet :rolleyes:.

Wenn man Hersteller für die Summe der Zeit einsperren würde, die Sie mit solchen Aktionen bei den Anwendern verplempern könnte man die Zellenschlüssel glatt wegwerfen…

Nachdem ich darauf angesprochen worden bin wie das mit dem Zähler funktionieren kann mache ich mal meine Lösung öffentlich.

  1. RS-485 Schnittstelle kaufen und in Windows und IPS unter COMx mit Parametern 9600/7E1 einbinden.

  2. Cutter einrichten mit obiger Schnittstelle als übergeordnete Instanz.
    Schnitte benutzerdefiniert

Linke Trennzeichen HEX
31 2D 30 3A 30 2E 30 2E 30 2A 32 35 35 28 47 45 54 54 4F 4E 45 29 0D 0A

Rechte Trennzeichen HEX
31 2D 30 3A 39 36 2E 35 2E 35 2A 32 35 35

  1. Variablen anlegen wie abgebildet.

  2. Textparser mit übergeordneter Instanz obiger Cutter anlegen.

  3. Regeln im Textparser wie abgebildet anlegen und den Variablen zuordnen.

  4. Skript anlegen und alle z.b. alle 30 Sekunden ausführen:

<?
// Auslesen anstossen
$sequenz = "/?!".chr(13).chr(10);
COMPORT_SendText(39893 /*[RS-485 VSM102]*/ , $sequenz); //COMPORT INSTANZ VSM-102
IPS_Sleep(1000);
$sequenz = chr(6)."050".chr(13).chr(10);
COMPORT_SendText(39893 /*[RS-485 VSM102]*/ , $sequenz); //COMPORT INSTANZ VSM-102
?>

Läuft bei mir zuverlässig seit Mitte November und für das was der Zähler kann ist er richtig günstig. Wenn mir irgendwann mal langweilig ist werde ich mich noch hinsetzten und den Cutter+Parser durch ein Skript ersetzen.

Grüsse.

Bilder vergessen:

Hallo kronos,

was gibts neues an der VSM102 Front. Klingt sehr interessant was Du da vollbracht hast.

Hallo.

Es läuft und läuft und läuft… :slight_smile:

Neuigkeiten also keine da kein Anlass bestand etwas daran zu ändern.

Hallo,
wenn ich nur den VSM-102 an der RS485 Schnittstelle habe, muß ich da einen Abschlusswiderstand dran setzen?

War bei mir nicht notwendig.

Gut. Dann werd ich heut Abend mal meinen Sicherungskasten umbauen. Außer den Parametern 9600/7E1 brauche ich an der RS485 nichts weiter einstellen?

Im Prinzip nicht. Ich will aber auch nicht verschweigen, dass ich von drei verschiedenen RS-485-Interfaces nur bei zweien Erfolg hatte. Das erste (Delock) lief bei mir nicht. Ein zweiter anderer USB/RS-485 Wandler anderer Bauart lief auf Anhieb. Jetzt habe ich einen Device Server der auch sehr gut funktioniert.

Hallo nochmal,

Jetzt hab ich alles eingebaut. Nur Leider kommen keine Werte an. Hab mal ein Debug von SerialPort und Cutter gemacht. Die bringen was. Im Text Parser Debug geht nichts los. Was kann da los sein? Kann das u.U. an Wandler liegen? Sorry, bin leider kein Programmierer. Versuche aber, mich langsam ran zu tasten.

Hallo kronos,

Bin jetzt vielleicht etwas weiter. Beim senden von „/?!“+CR+LF kommt jedesmal nach /EFR5… etwas anderes. Könnte es sein das der USB->RS485 nicht so recht dafür funzt?

Danke

Hi.

So weit weg bist Du anscheinend gar nicht mal vom Ziel. Bei mir sieht der Debug so aus:

Würde auf Fehler in der Verkabelung oder den Schnittstellenparametern tippen. Sieht ganz offensichtlich so aus als wenn Teile der Daten korrekt, andere Teile verstümmelt ankommen.

Hallo,
was soll man bei zwei Adern falsch machen, ausser zu verpolen :slight_smile:
Und bei Schnittstelle 9600/7,1E?
Morgen bekomme ich einen anderen Wandler. Da mal schaun.
Kann Dein Debug Bild im Zoom leider nicht richtig erkennen. Ist nur die markierte Zeile zu sehn. Vielleicht kannst es nochmal aktualisieren.
Danke

Poste doch mal deine Einstellungen vom Cutter. Da stimmt doch irgendwas mit den Trennzeichen nicht. Er sammelt ja nur Daten und schickt keine weiter(Sendchunk).

Eigentlich wie kronos es beschrieben hat:

  1. Cutter einrichten mit obiger Schnittstelle als übergeordnete Instanz.
    Schnitte benutzerdefiniert

Linke Trennzeichen HEX
31 2D 30 3A 30 2E 30 2E 30 2A 32 35 35 28 47 45 54 54 4F 4E 45 29 0D 0A

Rechte Trennzeichen HEX
31 2D 30 3A 39 36 2E 35 2E 35 2A 32 35 35

Was hat Dein RS-485-Wandler denn für einen Chipsatz?

einen FTDI: (siehe Anhang)

ScreenShot006.png

FTDI ist schon einmal sehr gut. Sind die Settings im Geätemanager von Windows auch entsprechend eingestellt?

Ja, genau so wie im IPS

ScreenShot007.pngScreenShot008.png

Ist das besser leserlich?