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 

Dieses Thema hat akzeptierte Lösungen:

Doppeltermination Char



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!

14.06.2016, 13:54
Beitrag #1

hulk Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 95
Registriert seit: Dec 2015

LV 2021
2016
DE


Deutschland
Doppeltermination Char
Ich möchte eine Waage von A&D ansteuern bzw auslesen
In den meisten Büchern/Tutorials wird nur die Methode mit dem Buffer erklärt. Hier im Forum wurde ich auf die TermChar Methode aufmerksam.
Das Manual der Waage sagt dazu
Zitat:"A command has a terminator added, that is specified using the "Terminator (CrLf)"
parameter of “Serial interface ( Sif )” in the function table, and is sent to the balance."
Es sind also 2 chars nötig.
Wie wende ich das bei der VISA Konfiguration an? Diese akzeptiert nur einen Parameter.

Dazu habe ich noch eine Waagenverständnisfrage. Im ersten upload wird das Gewicht permanent ausgelesen. Die Waage steht im Dauersendemodus.
Zusätzlich gibt es aber noch Befehle, zum Beispiel:
Zitat:S ....Requests the weight data when stabilized.
Muss man das so anwenden oder reicht permanent? Ich hoffe, jemand versteht was ich meine. Blink

Im Anhang sind 2Versionen.
Serial1 ist permanentes lesen und funktioniert
Serial 2 erzeugt Fehler.(Framing)


Angehängte Datei(en) Thumbnail(s)
       
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
14.06.2016, 16:10
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.399
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Doppeltermination Char
Hallo hulk,

nimm doch einfach das LF als TermChar. Das dann am gelesenen String ein CR anhängt, stört üblicherweise nicht!
Und passenderweise ist das LF beim SerialPortInit schon voreingestellt…

Beim serial1 stört mich, dass du in der Schleife andauernd den Port erneut initialisierst. Warum muss das so sein?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.06.2016, 09:55
Beitrag #3

hulk Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 95
Registriert seit: Dec 2015

LV 2021
2016
DE


Deutschland
RE: Doppeltermination Char
Guten Morgen Gerd,

das Stichwort mit dem initialisieren in der Whileschleife war gut. Das bringt das System wohl aus dem Tritt.
Ich habe es angepaßt.
Nun noch einmal zu meinem Verständnisproblem:
Die Waage schickt permanent das Gewicht raus. Wenn ich nur VISA-Read verwende ist alles gut.
Aber wenn Sie permanent sendet, warum hat sie dann noch Befehle? Ich erkenne nur den Unterschied, ob es stabilisierte oder direkte Werte sind.
Leider funktioniert die Anwendung so dann aber nicht mehr. Ich bekomme damit "Frame errors"
Im Snippet sende ich nur den Befehl. Ich habe es auch als string mit CR und LF getestet, obwohl es ja gemäß Initialisierung(Termination char) nicht nötig wäre. Das Ergebnis ist aber das gleiche. Ebenso, wenn ich statt dem Schalter zur Messung einen Button nehme.
MfG
Steffen


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.06.2016, 10:28
Beitrag #4

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
RE: Doppeltermination Char

Akzeptierte Lösung

(15.06.2016 09:55 )hulk schrieb:  Ich habe es auch als string mit CR und LF getestet, obwohl es ja gemäß Initialisierung(Termination char) nicht nötig wäre.
Leider ist es nicht genau so.

Die Terminierung gilt nur für das Lesen von Strings - nicht für das Senden. Gesendet wird nur genau das, was als String in das Schreib-Element hineingeht. Die Terminierung wird nicht angehängt.

Die Terminierung gilt für das Lesen. Man kann verschiedene Lese-Modi einstellen - unter anderen auch "Warten bis das Terminierungszeichen empfangen wurde". Der Aufruf des Lese-Elementes wird nur dann einen Wert (Read-String) zurückgeben, wenn das Terminierungszeichen erkannt wurde. Vorteil: Du musst den Empfangs-Stream nicht selbst parsen. Aber Vorsicht: was nach dem Terminierungszeichen kommt, gehört per Definition zum nächsten Datenstream.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.06.2016, 11:35
Beitrag #5

Freddy Offline
Oldtimer
****


Beiträge: 729
Registriert seit: Aug 2008

2019, 2020, 2021
1996
DE

76275
Deutschland
RE: Doppeltermination Char
Zitat:Concerning the RS-232C, the balance has two functions: "Data output (dout)" and "Serial interface
(5if)". Set each function as necessary
Wenn ich das richtig verstanden habe, kannst Du die Waage für RS-232 umstellen.

Das Zweite was mir bei Seriellen Schnittstellen einfällt. Du benötigst bei der Waage die RTS und CTS Verbindung. Hat Dein Kabel die Verbindung?

Gruß
Freddy

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
15.06.2016, 12:36
Beitrag #6

hulk Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 95
Registriert seit: Dec 2015

LV 2021
2016
DE


Deutschland
RE: Doppeltermination Char

Akzeptierte Lösung

Hi Freddy,

Laut meinem Verständnis bedeudet dies, dass ich in 2 Menüs relevante Einstellungen finde.
Data output--->Druckermodi oder Intervall oder kontinuierlich
SiF --->Einstellungen der seriellen Schnittstelle
Hier hatte ich tatsächlich etwas überlesen. Man kann den Terminator einstellen CrLF oder nur CR. Ich habe jetzt letzteres gewählt und bei Initialvisa eine 13 statt der 10 eingetragen.
Ich bekomme immer noch Overrun oder frame error. Ab und zu kommen auch komische Gewichtswerte, wenn ich mehrmals den Button betätige.
Bei RTS und CTS muss ich passen. Das Kabel hat die Verbindung enthalten, der Anschluß erfolgt aber über einen USB-seriell Wandler ohne Beschriftung und Einsicht der Kontakte. Der Hersteller ist Logilink.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
15.06.2016, 13:08
Beitrag #7

Freddy Offline
Oldtimer
****


Beiträge: 729
Registriert seit: Aug 2008

2019, 2020, 2021
1996
DE

76275
Deutschland
RE: Doppeltermination Char
RTS und CTS kannst Du vergessen, die wird nicht verwendet bzw. direkt zurück geschleift.

Der Q Befehl schickt soft Daten, was auch immer die Waage gerade gemessen hat.
Der S Befehl wartet bis die Daten stabil sind.

Vorab würde ich versuchen die ID zu lesen (?ID), wenn das funktioniert ist man sich sicher, dass die Kommunikation funktioniert.
Es gibt auch noch ?SN für Seriennummer oder ?TN für Typname.

Gruß Freddy

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
15.06.2016, 14:45 (Dieser Beitrag wurde zuletzt bearbeitet: 15.06.2016 14:48 von hulk.)
Beitrag #8

hulk Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 95
Registriert seit: Dec 2015

LV 2021
2016
DE


Deutschland
RE: Doppeltermination Char
edit: muss noch mal testen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.06.2016, 21:32 (Dieser Beitrag wurde zuletzt bearbeitet: 29.06.2016 22:58 von Lucki.)
Beitrag #9

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: Doppeltermination Char
Wenn CR/LF als Terminator dient, mache ich es so: LF als Terminatorzeichen benutzen, und auf den empfangenen String die Funktion "Nicht darstellbare Zeichen entfernen" anwenden, damit auch CR aus dem String verschwindet.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.06.2016, 14:19 (Dieser Beitrag wurde zuletzt bearbeitet: 29.06.2016 14:19 von hulk.)
Beitrag #10

hulk Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 95
Registriert seit: Dec 2015

LV 2021
2016
DE


Deutschland
RE: Doppeltermination Char
Moin...Der Test war efolgreich. Befehle senden und Gewicht empfangen funktioniert jetzt.
In der Zwischenzeit habe ich noch etwas weitergearbeitet.
Das ganze wird einmal ein Prüfablauf bei Dosierpumpen.....Gewichtserfassung, elektrische Messungen.
Nun hätte ich für den Anfang gern 2 Gewichtsmessungen. Die Werte sollen in einem Array gespeichert (erstmal) werden. Die 2 Messungen erfolgen im zeitlichen Abstand X.
Nun ergeben sich im Programm folgende Probleme:
1) Beim ersten Messdurchlauf fehlt mir Gewicht 1
2) Die Pause welche ich mit einer Sequenz und einer Wartezeit gebaut habe, ist wirkungslos.

Ich hoffe, es ist okay, wenn ich den selben Thread nehme.

MfG


Angehängte Datei(en)
14.0 .ctl  Element 1.ctl (Größe: 4,21 KB / Downloads: 173)

14.0 .vi  Messung Waage State Test.vi (Größe: 20,03 KB / Downloads: 163)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  VISA Termination Char mctommson 5 8.495 11.03.2008 15:26
Letzter Beitrag: mctommson
  Term.Char und ByteCount eg 2 3.517 14.06.2006 16:53
Letzter Beitrag: eg
  Senden eines char/bytes von AVR zum PC (LabVIEW7.1) über USB Viertelfons 1 6.532 28.10.2005 11:38
Letzter Beitrag: Oliver Listing

Gehe zu: