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 

Dateneinlesung trotz Sub VI



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!

07.08.2006, 15:29
Beitrag #1

Isabelle Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Jul 2006

7.1
2006
kA


Schweiz
Dateneinlesung trotz Sub VI
Hallo

Mein Problem:

Ich programiere die automatisierung eines Systems, dies würde soweit gehen, aber ich sollte während der ganzen Zeit den Druck einlesen können.
Die einzelnen automatisierte Funktionen habe ich in SubVis gesteckt, wie kriege ich es nun hin, dass mein Druck ausgelesen wird, auch wenn gerade ein SubVi läuft?

Angehängt ein Screenshot der Schleife mit den SubVis. So wie es jetzt ist wird der Druck nur ausgelesen wenn kein Sub VI läuft.

Für jede Anregung Dankbar!

PS: LW Version 7.1


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

Mr.T Offline
LVF-SeniorMod


Beiträge: 1.007
Registriert seit: Jun 2005

2009
2005
kA

88400
Deutschland
Dateneinlesung trotz Sub VI
' schrieb:Die einzelnen automatisierte Funktionen habe ich in SubVis gesteckt, wie kriege ich es nun hin, dass mein Druck ausgelesen wird, auch wenn gerade ein SubVi läuft?

Der Standard - Tipp:

Lege eine zweite While-Schleife parallel und lese dort kontinuierlich den Druck ein.
Via Shared Variables, FGVs etc. und Semaphores kannst Du dann den Datenaustausch zw. den zwei Schleifen realisieren.

Gruß

Mit einem freundlichen Wort und etwas Gewalt erreicht man viel mehr als nur mit einem freundlichen Wort. [...Marcus zu Lennier, B5]
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.08.2006, 07:31
Beitrag #3

Isabelle Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Jul 2006

7.1
2006
kA


Schweiz
Dateneinlesung trotz Sub VI
' schrieb:Der Standard - Tipp:

Lege eine zweite While-Schleife parallel und lese dort kontinuierlich den Druck ein.
Via Shared Variables, FGVs etc. und Semaphores kannst Du dann den Datenaustausch zw. den zwei Schleifen realisieren.

Gruß


Das habe ich schon Probiert. Auch dann wird die Schleife nur ausgeführt, wenn die andere Schleife fertig ist. Oder gibt es eine Möglichkeit, sie nicht parallel laufen zu lassen? Sprich, das die eine trotzdem immer wieder durchläuft auch wenn die andere noch nicht fertig ist?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.08.2006, 08:18
Beitrag #4

FranzDA Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 90
Registriert seit: Oct 2004

7.00
2004
kA


Deutschland
Dateneinlesung trotz Sub VI
Hallo Isabelle,

Mr.T hat schon recht, vielleicht ist es noch nicht klar genug formuliert.

Aaalso, lege einfach parallel zu Deiner ersten While-Schleife eine zweite While-Schleife an, in der Du Dein Sub-VI aufrufst, das den Druck ausliest.

Dann klappt's auch mit den Daten.

Wäre noch die letzte Frage, ob Du die Daten synchronisieren mußt oder z.B. einfach das Auslesen des Drucks 4 mal schneller ausgeführt wird als die zweite While-Schleife.

Ich empfehle Dir auf jeden Fall noch eine Zeitverzögerung mit einzubauen, und wenn sie nur 1 oder 10ms ist.
Das entlastet Deine CPU ungemein.

Beste Grüße aus Darmstadt,
Franz
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.08.2006, 09:07
Beitrag #5

Isabelle Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Jul 2006

7.1
2006
kA


Schweiz
Dateneinlesung trotz Sub VI
' schrieb:Hallo Isabelle,

Mr.T hat schon recht, vielleicht ist es noch nicht klar genug formuliert.

Aaalso, lege einfach parallel zu Deiner ersten While-Schleife eine zweite While-Schleife an, in der Du Dein Sub-VI aufrufst, das den Druck ausliest.

Dann klappt's auch mit den Daten.

Wäre noch die letzte Frage, ob Du die Daten synchronisieren mußt oder z.B. einfach das Auslesen des Drucks 4 mal schneller ausgeführt wird als die zweite While-Schleife.

Ich empfehle Dir auf jeden Fall noch eine Zeitverzögerung mit einzubauen, und wenn sie nur 1 oder 10ms ist.
Das entlastet Deine CPU ungemein.

Ich werde es nochmals versuchen. Das mit der Zeitverzögerung ist klar, da ich den Druck nur all Sekunde auslese. Das ken ich (die Probleme hat ich schon). Werd mich nochmals melden falls es noch Probleme gibt. Vielen Dank!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.08.2006, 12:14
Beitrag #6

Isabelle Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Jul 2006

7.1
2006
kA


Schweiz
Dateneinlesung trotz Sub VI
Nochmals Danke, nun hat es funktioniert....

Allerdings steh ich nun beim nächsten Problem. Hat jemand eine Idee, wie ich die SubVi abbrechen kann? Da es eine Messanlage ist, muss ich die Möglichkeit haben die autoatisierten Vorgänge abzubrechen. Die verschiedenen Vorgänge habe ich in den SubVis. Nun habe ich viel über Property Nodes gelesen, allerdings nur im Zusamenhang mit While Schleifen. Funktioniert das auch bei Sequenzstrukturen? Oder gibt es eine andere Möglichkeit eine Sequenz zu stoppen wenn im Hauptprogramm ein Button gedrückt wird?

Kleine Bitte... Bin kein Coputercrack... also möglichst Anfängertauglich... Unsure

Danke
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.08.2006, 12:54
Beitrag #7

SchwindelInside Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 77
Registriert seit: Dec 2005

2012 pro
2005
EN


Deutschland
Dateneinlesung trotz Sub VI
<div align="left">
' schrieb:Allerdings steh ich nun beim nächsten Problem. Hat jemand eine Idee, wie ich die SubVi abbrechen kann? Da es eine Messanlage ist, muss ich die Möglichkeit haben die autoatisierten Vorgänge abzubrechen. Die verschiedenen Vorgänge habe ich in den SubVis. Nun habe ich viel über Property Nodes gelesen, allerdings nur im Zusamenhang mit While Schleifen. Funktioniert das auch bei Sequenzstrukturen? Oder gibt es eine andere Möglichkeit eine Sequenz zu stoppen wenn im Hauptprogramm ein Button gedrückt wird?

Kleine Bitte... Bin kein Coputercrack... also möglichst Anfängertauglich... Unsure

Danke

Hallo Isabelle,

Hier sind 2 VIs, die mir Lucki mal auf eine Frage von mir reingestellt hat.:

Sonstige .vi  Haupt.vi (Größe: 10,89 KB / Downloads: 229)


Sonstige .vi  Sub.vi (Größe: 14,45 KB / Downloads: 189)

Das ist wirklich nicht schwer finde ich. Selbst ich hab das begriffen.Big Grin
Sowohl im HauptVI als auch SubVI forderst Du einen Melder mit exakt dem gleichen Namen an. Das HauptVI sendet die Meldung. Das SubVI fragt den Melder solange in einer Schleife ab bis der Melder die Abbruchbedingung der Schleife sendet. Wenn Das SubVI die Meldung erhalten hat und die entsprechende Aktion ausgeführt hat wird der Melder feigegeben.
Eine andere Möglichkeit wäre es von einem Stop-Knopf im HauptVI eine Referenz in Frontpanel zu erstellen. Das Schaltverhalten dieses Stop-Knopfs darf nicht gelacht sein, da man sonst keine boolsche Eigenschaft übergeben kann!! Zu der Referenz erstellst Du ein Anzeigeelement und kopierst das in ein globales VI als globale Variable. Die Referenz verbindest Du mit einem Eigenschaftsknoten und deren Referenz-Ausgang mit der globalen Referenzvariable. Bei diesem wählst Du die Eigenschaft "Wert aus" und änderst dies in Schreiben. Dazu erstellst Du eine Konstante mit dem Wert False. In die Ereignisstruktur zu dem Stop-Knopf oder eine Case-Strruktur für eine andere Abbruchbedingung setzt Du die globale Variable. Die verbindest Du mit dem Referenz-Eingang des Eigenschaftsknoten. Diesmal setzt du Wert aber auf True. Im SubVI muss in der Hauptschleife wieder ein Eigenschaftsknoten mit der Eigenschaft Wert auf lesen stehen. Den Referenz-Eingang verbindest Du mit der globalen Variable, die Du außerhalb der Schleife platzierst. Den Wert verbindest Du mit dem Schleifenabbruch.
Hier die Beispiele:

Sonstige .vi  Sub_mitGV.vi (Größe: 6,65 KB / Downloads: 201)


Sonstige .vi  Haupt_mitGV.vi (Größe: 8,46 KB / Downloads: 189)


Sonstige .vi  Globale_Variable_1.vi (Größe: 4,29 KB / Downloads: 211)


viel Erfolg
Grüße
SchwindelInside</div>
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Doppelaufruf trotz Ablaufvarianz D_Sev 1 3.029 04.05.2014 17:42
Letzter Beitrag: GerdW
  Fehlermeldung trotz korrektem Fit myth 5 4.380 18.03.2013 11:46
Letzter Beitrag: jg
  Parallel Abläufe trotz SubVI mit serieller Kommunikation zur HW anja210 3 3.821 01.08.2012 21:43
Letzter Beitrag: Lucki
  Programm beenden trotz Verzögerungszeiten? Destiny 5 4.918 21.07.2009 11:29
Letzter Beitrag: Destiny
  Wie trotz laufender Schleife user-responsiv? SteffenSI 7 5.120 30.01.2009 10:34
Letzter Beitrag: SteffenSI
  VI stoppt trotz Stoppbutton nicht DrHoas 2 3.589 19.10.2007 17:57
Letzter Beitrag: Lucki

Gehe zu: