INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Serial RS232 IR Diode- Stromzähler Kommunikationsproblem



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

12.04.2016, 12:47
Beitrag #1

grantiger Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Mar 2016

2014
-
DE



Serial RS232 IR Diode- Stromzähler Kommunikationsproblem
Hallöchen,

ich bastel gerade in Labview 2014 an einer Kommunikation über die Serielle Schnittstelle.

Es funktioniert ansich auch gut.

Ich möchte einen Easymeter Stromzähler per D0 Schnittstelle auslesen.

Dieser hat folgendes Datenprotokoll:
/ESY5Q3DA1004 V3.04

1-0:0.0.0*255 - Eigentummsnummer
1-0:1.8.0*255 - Zählerstand mit Rücklaufsperre
1-0:21.7.0*255 - L1 - active Power
1-0:41.7.0*255 - L2 - active Power
1-0:61.7.0*255 - L3 - active Power
1-0:1.7.0*255 - Summe L1-3
1-0:96.5.5*255(80) - Statuswort
0-0:96.1.255*255(1ESY1160006857) - Fabriknummer
!

Das Klappt soweit auch meistens. Allerdings sendet der Stromzähler etwa alle 2 Sekunden ein Signal. Problem ist das ganze stabil über lange Zeit laufen zu lassen. Ich bekomme ab und an Paritätsfehler bzw. Rahmenfehler. Diese versuche ich auch abzufangen, es wird dann immer wieder abgefragt bis er sozusagen "trifft". Und dann weiter alle 2 Sekunden abzufragen. Aber ab und an bekomm ich ich halt Fehler..

Meine Frage ist ob es noch eine eleganteren Weg gibt dauerhaft zu lauschen .. Anbei mein VI

Im Prinzip will ich etwas das prüft ob die Bits passen... naja


Angehängte Datei(en)
14.0 .vi  IR_Leistung.vi (Größe: 22,44 KB / Downloads: 259)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.04.2016, 12:53 (Dieser Beitrag wurde zuletzt bearbeitet: 12.04.2016 12:58 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Serial RS232 IR Diode- Stromzähler Kommunikationsproblem
Hallo grantiger,

wenn du dauerhaft lesen willst, dann ist es eine schlechte Idee, den Port andauern zu öffnen und zu schließen!
Und eine Schleife fehlt auch in deinem VI, bisher läuft es nur einmal durch!

Die Beispieldaten sehen aus, als wenn es ein definiertes Zeilenende-Zeichen gibt (LF oder CR), warum also nicht dieses nutzen, indem das TermChar entsprechend im SerialPortInit aktiviert wird (und man auf BytesAtPort verzichtet)?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.04.2016, 13:38
Beitrag #3

grantiger Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Mar 2016

2014
-
DE



RE: Serial RS232 IR Diode- Stromzähler Kommunikationsproblem
Da hast du natürlich recht mit dem Öffnen und Schließen im Moment ist das ganze ein SUB-VI in einer State Queue Machine.
Daher auch keine Schleife.

Das mit dem TermChar habe ich bisher noch nicht ganz hinbekommen. Ich bekomme damit immer nur die erste Zeile ausgelesen.
Was wohl am default Termchar liegt.

Laut Protokoll endet das ganze mit !CR LF .. habe ich so noch nicht hinbekommen als Termchar zu definieren?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.04.2016, 13:38 (Dieser Beitrag wurde zuletzt bearbeitet: 12.04.2016 14:31 von Lucki.)
Beitrag #4

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Serial RS232 IR Diode- Stromzähler Kommunikationsproblem
Der Fehler ist normal: Das Gerät sendet ständig, und dein Programm beginngt irgendwann mit dem Lesen. In den meisten Fälle wird das in einer Sendepause sein, und dann hat man Glück. Es kann aber auch aber auch mitten in einem Datensatz oder sogar mitten in einem gesendetem Byte sein. Dann hat man Fehler. Man könnte die vermeiden, indem man erst das Programm einschaltet und dann das Gerät. Besser aber löst man das Problem in der Software, und zwar so:

1.) Das Lesen muß in einer Schleife erfolgen, die Schnittstelle darf nicht ständig neu konfiguriert werden.
2.) Wenn es beim Lesen anfänglich Daten- oder Rahmenfehler gibt, so sind diese Fehler abzufangen und die Daten zu verwerfen.
3.) Wenn das nicht mehr der Fall ist, ist die Datenverbindung "synchronisiert" und die Daten können benutzt werden.

Tip:
Einlesen entweder so:
Zeilenweise einlesen, Abschlußzeichen "Zeilenende" aktivieren. In einer inneren Schleife alle Zeilen eines Datensatzes lesen. Die Letzte Zeile erkennt man am Ausrufezeichen. Man hatte dann ein Zeilen-Array.
Oder so:
Als Abschlußzeichen "!" aktivieren. Dann wird der vollständige Text eines Datensatztes auf einmal gelesen. Man muß dann den Text analysieren, was etwas umständlicher ist als wenn es bereits ein Zeilen-Array wäre.

Hier noch ein Entwurf (ungeprüft) zur Methode 1:

14.0 .vi  IR_Leistung.vi (Größe: 19,3 KB / Downloads: 281)

(Falls der Stringvergleich mit "!" nicht funktioniert, dann die Stringfunktion "Nicht ausführbare Zeichen entfernen" noch einfügen.)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.04.2016, 14:25 (Dieser Beitrag wurde zuletzt bearbeitet: 12.04.2016 15:02 von Freddy.)
Beitrag #5

Freddy Offline
Oldtimer
****


Beiträge: 729
Registriert seit: Aug 2008

2019, 2020, 2021
1996
DE

76275
Deutschland
RE: Serial RS232 IR Diode- Stromzähler Kommunikationsproblem
Ich würde in den While Schleife Zeichen für Zeichen auslesen und bei der zweiten While Schleife das gelesenen in ein Schieberegister schreiben. Dann sollten Dir keine Daten verloren gehen.


Angehängte Datei(en) Thumbnail(s)
   

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.04.2016, 16:16
Beitrag #6

grantiger Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Mar 2016

2014
-
DE



RE: Serial RS232 IR Diode- Stromzähler Kommunikationsproblem
Besten Dank an alle! Luckis Lösung mit noch einfügen der Funktion "Nicht ausführbare Zeichen entfernen" brachte Erfolg!

Bisher habe ich keinen Fehler mehr nach langer Laufzeit feststellen können.

Jetzt muss ich mir nur noch etwas basteln dass es gut in mein gesamtes Programm reinpasst.

Dankeschön!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
Antwort schreiben 


Gehe zu: