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:

Kommunikation LabVIEW <==> Temperaturkalibrator



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!

22.12.2014, 11:50
Beitrag #1

sk260790 Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Dec 2014

2014
2014
kA


Deutschland
Kommunikation LabVIEW <==> Temperaturkalibrator
Hallo zusammen,

ich absolviere im Moment mein Praxissemester und habe die Aufgabe bekommen ein LabVIEW-Programm zu erstellen, mit dem es möglich sein soll einen Temperaturkalibrator von SIKA (Typ TP38650) vom PC aus anzusteuern.

Mit der beiliegenden Software des Herstellers ist es lediglich möglich eine Solltemperatur des Heizblocks im Kalibrator einzustellen, anschließend zu warten bis angezeigt wird, dass die Temperatur stabil ist, um dann abzulesen was der Referenzfühler im Kalibrator für eine Temperatur anzeigt. Zusätzlich wird die Temperatur des Prüflings - insofern einer am Kalibrator angeschlossen ist - angezeigt. Diese beiden Temperaturen müssen bisher manuell in Excel eingetragen werden um die Temperaturdifferenz (Messfehler des Prüflings) zu ermitteln.

Das LabVIEW-Programm, das ich erstellen soll, muss folgendes können:
- Eingabe des Temperaturbereichs, in dem die Messungen erfolgen sollen (z.B. 100 - 300°C)
- Eingabe der Stufenhöhe (z.B. 10°C) => Es sollen von 100°C bis 300°C alle Temperaturen in 10°C-Abständen angefahren werden.
- Bei jeder anzufahrenden Temperatur soll gewartet werden bis der Kalibrator meldet, dass die Temperatur stabil ist.
- Anschließend soll die aktuelle Temperatur des Referenzfühlers und die des Prüflings abgefragt werden und in Excel abgelegt werden.

Nun zu meinem Problem:
Die Firma, in der ich das Praxissemester absolviere meinte, dass ein LabVIEW-Core1 für dieses Projekt völlig ausreichend wäre. Zu dem Zeitpunkt als ich den Kurs bei NI besuchte, wusste ich allerdings noch nicht, dass es in dem Projekt hauptsächlich um VISA und die Ansteuerung einer Hardware über eine serielle RS232 Schnittstelle geht. Genau diese Themen wurden in dem Kurs nur ganz kurz angeschnitten und es wurde uns geraten bei der Ansteuerung einer Hardware immer auf die NI-Treiber zurückzugreifen. Nun habe ich vor knapp einer Woche mein zu bearbeitendes Projekt erhalten. Als erstes habe ich nach NI-Treibern für den Kalibrator gesucht, die es aber leider nicht gibt, weshalb ich bei SIKA wegen eines Schnittstellenprotokolls angefragt habe. Dieses habe ich auch erhalten (Anhang1). Seitdem versuche ich seit ein paar Tagen mehr oder weniger vergeblich mit dem Kalibrator zu kommunizieren. Mir würde es vorerst einmal genügen, wenn ich dem Kalibrator über LabVIEW beispielsweise eine Solltemperatur vorgeben könnte, er diese einliest und anschließend auch anfährt, oder ich beispielsweise seinen Gerätetyp anfordern könnte und eine passende Antwort erhalten würde. Leider werde ich aus dem Schnittstellenprotokoll nicht schlau. Ich habe versucht mit Hilfe von den Beispielprogrammen "Basic_Serial_Write_and_Read" oder "Continuous_Serial_Write_and_Read" und dem Schnittstellenprotokoll Befehle zu Schreiben und anschließend auszulesen, aber der kalibrator hat auf nichts reagiert, was ich gesendet habe. Das einzige was funktioniert ist das Auslesen von Werten, die der Kalibrator dauerhaft sendet (aktuelle Blocktemperatur & aktuelle Temperatur am Referenzfühler). Diese beiden Werte sendet der Kalibrator ununterbrochen (Anhang2). Diese Werte will ich eigentlich aber nur dann abfragen, wenn der Kalibrator meldet, dass die angefahrene Temperatur stabil ist.

Ich verlange nicht, dass ich hier ein vollständiges VI zur Ansteuerung des Kalibrators erhalte, aber es wäre für mich als absoluten LV-Neuling schon einmal ein erster Erfolg, wenn ich dem Kalibrator Daten übergeben könnte, die er verarbeiten kann. Vielleicht kann mir jemand erklären, wie ich die Befehle aus dem Schnittstellenprotokoll senden muss, dass der Kalibrator was damit anfangen kann. Ich hoffe, ich habe mein Problem ausführlich genug beschrieben, sodass mir jemend auf die Sprünge helfen kann.

Vielen Dank schon mal und schöne Feiertage!

Gruß sk


Angehängte Datei(en) Thumbnail(s)
   

0.0 .pdf  SchnittstellenProtokoll RS232 V8 .pdf (Größe: 41,04 KB / Downloads: 404)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.12.2014, 12:14
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Kommunikation LabVIEW <==> Temperaturkalibrator

Akzeptierte Lösung

Hallo sk,

das Protokoll ist doch wunderschön im PDF erklärt: Botschaften, die von STX/ETX eingerahmt sind.
Beachten musst du nur, dass STX/ETX eben als Binärwert angegeben sind: einfach Stringkonstanten im Hex-Displaymodus verwenden!

Versuche doch mal, den gelesenen String im Bild anhand der Protokollbeschreibung zu entschlüsseln!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.12.2014, 13:34 (Dieser Beitrag wurde zuletzt bearbeitet: 22.12.2014 13:35 von sk260790.)
Beitrag #3

sk260790 Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Dec 2014

2014
2014
kA


Deutschland
RE: Kommunikation LabVIEW <==> Temperaturkalibrator
Vielen Dank für die schnelle und hilfreiche Antwort! Das Problem mit dem Übergeben von Sollwerten wurde gelöst!

Ich hatte STX/ETX nicht als Hex-Konstante angegeben. Nun da ich den Eingabestring mit den passenden Hex-Konstanten einrahme kann ich dem Kalibrator immerhin schon einmal Sollwerte zuweisen. Das nächste sich jetzt ergebende Problem ist, dass ich den zugewiesenen Sollwert im Anschluss gerne abfragen würde. Dies sollte eigentlich kein Problem sein, doch wenn ich den Wert abfrage, erhalte ich in der Ausgabe wieder nur die aktuelle Blocktemperatur und die Referenzfühlertemperatur. Kann es sein, dass mein einmalig angeforderter Sollwert ausgegeben wird, aber gleichzeitig wieder von den dauerhaft ausgegebenen Werten überschrieben wird, so dass ich ihn in der Ausgabe nicht sehen kann?

Kann ich die andauernde Ausgabe der Werte des Kalibrators irgendwie unterdrücken, sodass ich auch wirklich nur den Wert bekomme, den ich auch wirklich anfordere, oder muss ich hierzu den erhaltenen String irgendwie filtern?


Zitat:Versuche doch mal, den gelesenen String im Bild anhand der Protokollbeschreibung zu entschlüsseln!

Den gelesenen String verstehe ich soweit. Im Moment lese ich die Messwerte für die aktuelle Blocktemperatur und die Referenzfühlertemperatur aus. Diese Werte sendet mir der Kalibrator dauerhaft. Ich habe mal das FP und BD angehängt bei dem ich versucht habe mit "z" die aktuelle Temperatur anzufordern. Angezeigt bekomme ich aber wieder nur die dauerhaft gesendeten Werte.


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

sk260790 Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Dec 2014

2014
2014
kA


Deutschland
RE: Kommunikation LabVIEW <==> Temperaturkalibrator
Sorry für den Doppelpost, aber ich habe im Moment entdeckt, dass der angeforderte Wert wie vermutet irgendwo zwischen den dauerhaft gesendeten Werten erscheint. Das bedeutet, um diesen angeforderten Wert irgendwo angezeigt zu bekommen, muss ich den gelesenen Text filtern oder? Bräuchte eine Anregung wie ich das umsetzen könnte!?


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.12.2014, 18:36 (Dieser Beitrag wurde zuletzt bearbeitet: 22.12.2014 18:39 von GerdW.)
Beitrag #5

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Kommunikation LabVIEW <==> Temperaturkalibrator
Hallo sk,

wenn du deine Botschaften einliest, musst du sie doch sowieso schon filtern:
- STX suchen
- folgendes ETX suchen
- Botschaft zwischen STX und ETX auswerten

Wenn du das machst, ist es doch ein leichtes, die Botschaft, die als Kennung ein "s" enthält, auszufiltern…

Frage:
Wieso musst du einen Sollwert vom Gerät zurücklesen? Wenn du einen Sollwert vorgibst, ist er dir doch schon bekannt!
Oder funktioniert dein Gerät anders? Hmm

Zu deinem BD-Bild:
- Der "Run Continuous"-Modus ist nur zum Debuggen gedacht. Wenn dein Programm dauerhaft laufen soll, benötigst du eine Schleife…
- Es ist nicht sinnvoll, dauernd den seriellen Port zu initialisieren und wieder zu schließen…
- warum schaltest du den TermChar aus? Du hast doch ein sehr schön definiertes ETX-Zeichen!!!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.12.2014, 09:59
Beitrag #6

sk260790 Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Dec 2014

2014
2014
kA


Deutschland
RE: Kommunikation LabVIEW <==> Temperaturkalibrator
Hallo GerdW,

nochmal vielen Dank für deine schnelle Antwort!

Zitat:wenn du deine Botschaften einliest, musst du sie doch sowieso schon filtern:
- STX suchen
- folgendes ETX suchen
- Botschaft zwischen STX und ETX auswerten

Im Moment filtere ich noch gar nichts, ich weise dem Kalibrator nur manuell Werte zu indem ich die Befehle aus dem Schnittstellenprotokoll eingebe.
Der Kalibrator sendet mir ja andauernd Werte, wobei jeder einzelne Wert mit STX beginnt und ETX endet, wie muss mein Filter denn dann aussehen, dass ich aus diesen ganzen Daten die eine Botschaft finde, die ich benötige?

Zitat:Wenn du das machst, ist es doch ein leichtes, die Botschaft, die als Kennung ein "s" enthält, auszufiltern…
Im Moment ist es noch nicht so leicht für mich, da das mein erstes Programm ist, das ich selber erstelle. Blush

Zitat:Frage:
Wieso musst du einen Sollwert vom Gerät zurücklesen? Wenn du einen Sollwert vorgibst, ist er dir doch schon bekannt!
Oder funktioniert dein Gerät anders? Hmm
Das mit dem Sollwert war nur ein Beispiel um zu sehen, ob das Auslesen von zusätzlichen Werten neben den dauerhaft gesendeten Werten funktioniert, weil ich eben hier schon genau wusste nach welchem Wert ich in der Ausgabe suchen muss.

Zitat:Zu deinem BD-Bild:
- Der "Run Continuous"-Modus ist nur zum Debuggen gedacht. Wenn dein Programm dauerhaft laufen soll, benötigst du eine Schleife…
- Es ist nicht sinnvoll, dauernd den seriellen Port zu initialisieren und wieder zu schließen…
Ich mache ja im Moment nichts anderes als zu Debuggen. Ich versuche im Moment nur mit dem Kalibrator zu kommunizieren (Daten einlesen, Daten auslesen). Erst wenn es auch noch funktioniert, dass ich genau den einen gewünschten Wert auslesen kann, werde ich mit dem eigentlichen Programm anfangen, das dann eben auch Benutzerein- und Ausgaben, Schleifen usw. beinhaltet.

Zitat:- warum schaltest du den TermChar aus? Du hast doch ein sehr schön definiertes ETX-Zeichen!!!
Der TermChar war in meinem Programm schon vordefiniert False, das war keine Absicht. Ich muss auch zugeben, dass ich immer noch nicht genau verstehe was mein TermChar eigentlich macht. Ist der TermChar auf True erkennt das Gerät das Abschlusszeichen. Inwiefern hilft mir das weiter? Hmm
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.12.2014, 15:38
Beitrag #7

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Kommunikation LabVIEW <==> Temperaturkalibrator
Hallo sk,

Zitat:Der TermChar war in meinem Programm schon vordefiniert False, das war keine Absicht. Ich muss auch zugeben, dass ich immer noch nicht genau verstehe was mein TermChar eigentlich macht. Ist der TermChar auf True erkennt das Gerät das Abschlusszeichen. Inwiefern hilft mir das weiter?
VISARead liest Daten ein, bis:
- die gewünschte Anzahl Bytes gelesen wurde
- das eingestellte TermChar im Datenstrom auftaucht
- der Timeout erreicht wurde
- ein anderer Fehler auftritt

Wie hilft dir also das TermChar? Du stellst ETX ein, dann liest VISARead solange Daten ein, bis eben ein ETX im Datenstrom auftaucht. Dein Gewinn: du erhälst genau eine Botschaft vom VISARead geliefert, die du dann auswerten kannst (z.B. mit den String-Funktionen). Da dein Gerät dauernd Daten liefert, musst du natürlich auch dauernd Botschaften mit VISARead abholen, da sonst irgendwann der Lesepuffer deiner seriellen Schittstelle überläuft…

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
  Kommunikation CP 342-5 und labView sonne und mond 4 4.118 15.03.2021 11:12
Letzter Beitrag: Martin.Henz
  Kommunikation zwischen Labview und Bronhorst Massendurchflussregler durch VISA Atlaspremier 7 7.621 14.07.2016 15:51
Letzter Beitrag: Atlaspremier
  Labview-Kommunikation mit Jumo über RS232 redhand 35 35.028 28.10.2013 09:45
Letzter Beitrag: GerdW
  Kommunikation Mikrocontroller LabVIEW cRyo 4 6.241 29.06.2012 11:57
Letzter Beitrag: cRyo
  Kommunikation von Hardware ==> LabView Dinin 17 15.943 27.01.2012 14:37
Letzter Beitrag: Dinin
  Kommunikation zwischen LabVIEW und Monochromator Newcommer 4 6.397 24.03.2010 15:22
Letzter Beitrag: Newcommer

Gehe zu: