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 

Datenkommunikation zwischen .vis



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!

21.12.2011, 15:48
Beitrag #1

narrentanz Offline
LVF-Grünschnabel
*


Beiträge: 39
Registriert seit: May 2011

2009SP1
2011
DE_EN


Deutschland
Datenkommunikation zwischen .vis
Moin.

Ich versuche, einen Thermostaten (Lauda ProLine) anzusteuern. Einmal mit einem von der Zeit abhängigem Temperaturwert, aber auch einmal mit einem vom Benutzer selber anzugebendem Wert. Ersteres ist so realisiert wie hier beschrieben, zweiteres soll über eine Eingabe auf dem Frontpanel passieren.
Ich habe versucht, das folgendermaßen zu realisieren:
In der Temp_verlauf_init.vi werden die Steuerwerte ausgelesen und bereitgestellt. Der Thermostat wird initialisiert.
Das, was da jeweils bei rauskommt, geht in eine Case-Struktur, in der dann jeweils die sub.vis liegen für den Verlauf oder das manuelle Festlegen.

Jetzt meine Probleme:
1. Die Verlaufssteuerung funktioniert nur dann, wenn ich sie von Anfang an angestellt habe. Genau das, also dass die Automatik von Anfang an läuft, soll aber vermieden werden. Genauso funktioniert die manuelle Festlegung nur "ab Anfang", und dann auch nur mit genau einem Wert.

2. Die Ausgabe zeigt bestenfalls nur einen stationären Wert an, im Normalfall aber gar keinen. Ich habe den Verdacht, dass das daran hängt, dass ich die aus einer Schleife rausgebe, weiß aber nicht, wie ich das anders machen kann.

Wenn mir jemand helfen kann wäre das echt super.

Gruß,
Sjut


Angehängte Datei(en)
9.0 .vi  Thermostat only.vi (Größe: 19,5 KB / Downloads: 218)

9.0 .vi  Temp_verlauf_init.vi (Größe: 23,46 KB / Downloads: 202)

9.0 .vi  Temp_steuern.vi (Größe: 39,04 KB / Downloads: 189)

9.0 .vi  Temp_set.vi (Größe: 36,78 KB / Downloads: 215)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
21.12.2011, 16:16
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.412
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Datenkommunikation zwischen .vis
Hallo Narr,

Zitat:Die Verlaufssteuerung funktioniert nur dann, wenn ich sie von Anfang an angestellt habe
Das könnte daran liegen, dass diese Vorgabe sofort nach Start des VIs abgefragt wird, ohne dem Benutzer jemals die Möglichkeit zu geben, diesen Wert zu ändern. THINK DATFLOW!

Zitat:Die Ausgabe zeigt bestenfalls nur einen stationären Wert an, im Normalfall aber gar keinen
Welche "Ausgabe" meinst du? Welcher Indicator in welchem VI?

Da fehlen leider so viele subVIs, dass man schnell den Überblick verliert, wovon du da eigentlich redest...

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

narrentanz Offline
LVF-Grünschnabel
*


Beiträge: 39
Registriert seit: May 2011

2009SP1
2011
DE_EN


Deutschland
RE: Datenkommunikation zwischen .vis
ad 1:
Badusch. Jop. Der Wert wird vor allem genau einmal abgefragt, wenn ich mich grade nicht ganz irre..

ad 2:
Seh ich ein. Ich werde jetzt mal schauen, ob meine Idee von heute morgen funktioniert und wenn nicht reiche ich nochmal eine um die Lauda-.vis bereinigte Version nach, die das Prinzip abbildet..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.12.2011, 15:27 (Dieser Beitrag wurde zuletzt bearbeitet: 22.12.2011 15:34 von narrentanz.)
Beitrag #4

narrentanz Offline
LVF-Grünschnabel
*


Beiträge: 39
Registriert seit: May 2011

2009SP1
2011
DE_EN


Deutschland
RE: Datenkommunikation zwischen .vis
Ein paar meiner Probleme haben sich jetzt tatsächlich durch intensives Nachdenken über dataflow gelöst.
Dafür habe ich jetzt ein anderes Problem, nämlich Werteweitergabe zwischen Schleifen.

Ich habe mal alles, was Lauda-.vis umfasst rausgeworfen. Initialisierung und Schließen des Thermostats funktioniert, die Ansteuerung an sich auch.
In der Init-Verlauf-beschrifteten .vi werden die Steuerwerte eingelesen, in der Verlauf-aus-beschrifteten sollen die Werte aufbereitet werden um Laufzeitabhängig rauszugehen. Den Wert, der da raus geht, muss in die Konfig-.vi in der Mitte. Ich kriege aber so nichtmals irgendeinen Wert (außer null) rein..

[edit]
Temperaturverlauf3.txt als Input-Beispiel hinzugefügt.


Angehängte Datei(en)
9.0 .vi  Thermostat Fehlersuche Forum.vi (Größe: 22,5 KB / Downloads: 190)

9.0 .vi  Temp_verlauf_aus_FS.vi (Größe: 16,32 KB / Downloads: 704)

9.0 .vi  Temp_verlauf_init_FS.vi (Größe: 23,48 KB / Downloads: 174)

0.0 .txt  Temperaturverlauf3.txt (Größe: 58 Bytes / Downloads: 205)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.12.2011, 16:05
Beitrag #5

M Nussbaumer Offline
Zarathustra
****


Beiträge: 654
Registriert seit: Sep 2009

2009 SP1
2009
EN

6300
Schweiz
RE: Datenkommunikation zwischen .vis
(22.12.2011 15:27 )narrentanz schrieb:  Ich habe mal alles, was Lauda-.vis umfasst rausgeworfen. Initialisierung und Schließen des Thermostats funktioniert, die Ansteuerung an sich auch.
In der Init-Verlauf-beschrifteten .vi werden die Steuerwerte eingelesen, in der Verlauf-aus-beschrifteten sollen die Werte aufbereitet werden um Laufzeitabhängig rauszugehen. Den Wert, der da raus geht, muss in die Konfig-.vi in der Mitte. Ich kriege aber so nichtmals irgendeinen Wert (außer null) rein..

Du hast hier ein sehr schönes Beispiel einer Race-Condition! Deine lokale Variable "Wert" wird ausgelesen bevor sie einen Wert erhalten hat -> Defaultwert welcher 0 ist.

Das VI "Temp_Verlauf_aus_Fs.vi" verwendest du falsch! Das VI wartet nämlich jedes Mal die im Txt-File definierte Zeit bevor ein Wert in den Ausgang geschrieben wird... Dieser Wert wird erst beim letzten Durchlauf (wenn das VI beendet wird) übertragen! Wichtige Tatsache im DATAFLOW!

Die einfachste Lösung des ganzen wäre, wenn du deinen Code in das "Temp_Verlauf_aus_Fs.vi" verschiebst und dort bei jedem Schleifendurchlauf den Wert überträgst.

Gruss Marc


Angehängte Datei(en)
9.0 .vi  Temp_verlauf_aus_FS.vi (Größe: 18,46 KB / Downloads: 182)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.12.2011, 16:21
Beitrag #6

M Nussbaumer Offline
Zarathustra
****


Beiträge: 654
Registriert seit: Sep 2009

2009 SP1
2009
EN

6300
Schweiz
RE: Datenkommunikation zwischen .vis
Hier als grobes Beispiel wie ich das Problem lösen würde:


9.0 .vi  Temp_verlauf_aus_FS.vi (Größe: 18,46 KB / Downloads: 211)


Ansonsten könnte das Producer-Consumer Design-Pattern etwas für dich sein, ein gutes Beispiel findest du unter den Vorlagen.

Gruss Marc
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
22.12.2011, 17:54
Beitrag #7

narrentanz Offline
LVF-Grünschnabel
*


Beiträge: 39
Registriert seit: May 2011

2009SP1
2011
DE_EN


Deutschland
RE: Datenkommunikation zwischen .vis
Genau so hatte ich das auch schonmal gehabt, und so tats auch. Mir gehts aber speziell dadrum, dass ich zwischen "aus Verlauf" und "von Hand einstellen" umschalten kann.

Das Producer-Consumer Design-Pattern werde ich mir mal anschauen, Danke für den Tipp.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.12.2011, 08:11
Beitrag #8

M Nussbaumer Offline
Zarathustra
****


Beiträge: 654
Registriert seit: Sep 2009

2009 SP1
2009
EN

6300
Schweiz
RE: Datenkommunikation zwischen .vis
(22.12.2011 17:54 )narrentanz schrieb:  Genau so hatte ich das auch schonmal gehabt, und so tats auch. Mir gehts aber speziell dadrum, dass ich zwischen "aus Verlauf" und "von Hand einstellen" umschalten kann.

Das Producer-Consumer Design-Pattern werde ich mir mal anschauen, Danke für den Tipp.

Die Frage ist natürlich wie du das Umschalten handhaben willstBlink

Willst du:

a) Den Ablauf aus der Text-Datei durchlaufen lassen bis alle Anweisungen durch sind?
b) Den Ablauf aus der Text-Datei unterbrechen und beim Wechsel von neuem starten?
c) Den Ablauf aus der Text-Datei unterbrechen und beim Wechsel an der letzten Stelle fortsetzten?

Je nach dem wofür du dich entscheidest gibt es unterschiedliche LösungsansätzeSmile Aber das Producer-Consumer Pattern wird dir mit grosser Wahrscheindlichkeit viele Probleme automatisch lösenWink

Gruss Marc
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.01.2012, 15:17
Beitrag #9

narrentanz Offline
LVF-Grünschnabel
*


Beiträge: 39
Registriert seit: May 2011

2009SP1
2011
DE_EN


Deutschland
RE: Datenkommunikation zwischen .vis
Irgendwie bin ich zu doof, das Producer-Consumer Design-Pattern in den Beispielen zu finden? Hat das in der deutschen Version irgendeinen komplett un-intuitiv übersetzten Namen?

Ansonsten, was das Umschalten angeht: Das Ziel ist, Anfangs mit einem gegebenen Wert zu starten und dann auf den Verlauf umzuschalten. Aus dem Verlauf wieder rauszuschalten ist (zumindest aktuell noch) nicht nötig. Es soll halt möglich sein, erstmal "in Ruhe" alle Temperatursensoren zu checken etc., bevor die eigendliche Messung über dem Verlauf gestartet wird...

LG,
Sjut
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.01.2012, 07:28
Beitrag #10

NWOmason Offline
Simultator
*****


Beiträge: 1.078
Registriert seit: Dec 2010

2012.SP1
2008
EN

93047
Deutschland
RE: Datenkommunikation zwischen .vis
(09.01.2012 15:17 )narrentanz schrieb:  Irgendwie bin ich zu doof, das Producer-Consumer Design-Pattern in den Beispielen zu finden? Hat das in der deutschen Version irgendeinen komplett un-intuitiv übersetzten Namen?

Das Producer/Consumer-Template gibts unter Datei»Neu

   

Beste Grüße,
NWO

9 von 10 Stimmen in meinem Kopf sagen: Ich bin nicht verrückt,
die andere summt die Melodie von Tetris
.

NI schrieb:To use the abort button is like using a tree to stop a car!

(20.01.2012 11:02 )NWOmason schrieb:  Getting Started with NI LabVIEW Student Training
http://zone.ni.com/devzone/cda/tut/p/id/7466

Introduction to NI LabVIEW - Learn LabVIEW Basics
http://www.ni.com/gettingstarted/labviewbasics/

Top 5 der Empfehlungen für LabVIEW-Einsteiger
http://www.ni.com/newsletter/51735/de/
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Gehe zu: