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 

Vermeiden von Globalenvariablen aber wie?



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.01.2009, 17:25
Beitrag #31

Cardinal1664 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 147
Registriert seit: Aug 2006

2014 SP1
2006
EN


Schweiz
Vermeiden von Globalenvariablen aber wie?
Ja das Übertragungsprotokoll kenne ich der MCU gibt in Programmier-Modus entweder ACK oder NAK zurück!
Ich benutze Bytes On Port weil dies die Einzige Funktion ist die ich bis jetzt kenn um eine gewisse Anzahl bytes zu lesen!
OK ich werde mal Probieren das VI umzuschreiben!
Hat da vieleicht noch jemand ein kleines beispiel dazu?

Danke für eure hilfe!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.01.2009, 17:26
Beitrag #32

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Vermeiden von Globalenvariablen aber wie?
' schrieb:@ Jens:

2. Ich habe schon mit 16 Ports (2X8Port Karten) unter Windows gearbeitet, kein Problem
3. Serielle Übertragung ist viel langsamer als ein PC-Core rechnen kann, somit auch bei mehreren quazi-parallelen VIs, die serielle Schnittstelle auslesen, sollte es kein Problem machen.
Da stimme ich dir zu. Aber diese Leseschleife mit Bytes at Port, die so auf den ersten Blick solange mit "höchster" Geschwindigkeit läuft, bis ein Byte ausgelesen wurde... Deswegen auch das Edit 2 mit den VISA-Event-VIs, im Prinzip ja ähnlich wie du es vorschlägst.
' schrieb:@Cardinal, ich denke du solltest deine Kommunikation auf eventgesteuert umschreiben. Bytes On Port ist keine besonders gute Wahl. Du kennst doch das Übertragungsprotokoll, somit weisst du auch wie viele Zeichen du lesen willst, warum benutzt du denn noch Bytes On Port?

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.01.2009, 17:30
Beitrag #33

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Vermeiden von Globalenvariablen aber wie?
' schrieb:Ja das Übertragungsprotokoll kenne ich der MCU gibt in Programmier-Modus entweder ACK oder NAK zurück!
Ich benutze Bytes On Port weil dies die Einzige Funktion ist die ich bis jetzt kenn um eine gewisse Anzahl bytes zu lesen!
OK ich werde mal Probieren das VI umzuschreiben!
Hat da vieleicht noch jemand ein kleines beispiel dazu?

Danke für eure hilfe!
1. (in diesem Fall wahrscheinlich kompliziertere) Möglichkeit: Hast du mal geschaut, ob du die "VISA-Event-VIs" in LV6.1 hast?
2. Möglichkeit: Da du nur ein Zeichen zurückerwartest, direkt eine 1 am Read-Eingang anschließen. Das VI wartet dann, bis ein Zeichen anliegt.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.01.2009, 17:31
Beitrag #34

Cardinal1664 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 147
Registriert seit: Aug 2006

2014 SP1
2006
EN


Schweiz
Vermeiden von Globalenvariablen aber wie?
Ja VISA Events gibts in LV6.1!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.01.2009, 17:34
Beitrag #35

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Vermeiden von Globalenvariablen aber wie?
Ganz einfach. So wie ich es verstehe ist es einfaches ASCII Übertragungsprotokoll und sehrwarscheinlich kommt nach ACK oder NACK noch ein Zeilenende. Somit kannst du bei der Konfiguration der Schnittstelle Termination Character auf Zeilenende setzen (wird auch defaultmäßig gemacht). Dann beim Lesen kannst du eine große Zahl (muss unbedingt größergleich der erwarteten Antwort sein) z.B. 10 Bytes einstellen. Das Lesen wird automatisch abgebrochen sobald ein Zeilenende empfangen wird oder die angegebene Anzahl Zeichen ausgelesen wird. Beim Lesen werden keine CPU Ressourcen gebraucht, es können also in dieser "Wartezeit" andere von deinen 8 Tasks bedient werden.

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.01.2009, 17:39
Beitrag #36

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Vermeiden von Globalenvariablen aber wie?
' schrieb:Ja VISA Events gibts in LV6.1!
Für sowas braucht man folgende VIs:

   

Das 1. VI definiert das Event "Serial Character", das 2. VI wartet dann auf das Event "Serial Character" (wird ausgelöst, wenn ein Zeichen am Serial Port anliegt), und das 3. zerstört das Event wieder.
VI1 & VI3 brauchst du natürlich nur am Anfang und am Ende der gesamten Kommunikation, VI2 kannst du quasi anstelle von "Bytes at Port" verwenden, es wartet halt so lange, bis mind. ein Byte am Port anliegt.

Aber wie schon oben gesagt, da du nur einen Buchstaben zurückbekommst, ist das nicht unbedingt nötig.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.01.2009, 17:42
Beitrag #37

Cardinal1664 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 147
Registriert seit: Aug 2006

2014 SP1
2006
EN


Schweiz
Vermeiden von Globalenvariablen aber wie?
Nach dem ACK oder NACK kommt kein Zeilenende ist nur HEX 06 oder 15!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.01.2009, 17:43 (Dieser Beitrag wurde zuletzt bearbeitet: 22.01.2009 17:46 von eg.)
Beitrag #38

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Vermeiden von Globalenvariablen aber wie?
Umso besser, dann musst du Termination Char abschalten und beim VISA Read 1 Byte einstellen.

Hier siehst du ein Beispiel für einen komplexeren binären Parser. Wie du sehen kannst wird überall eine konkrete Zahl für Bytes To Read eingestellt.


Angehängte Datei(en) Thumbnail(s)
   

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.01.2009, 17:44 (Dieser Beitrag wurde zuletzt bearbeitet: 22.01.2009 17:46 von eg.)
Beitrag #39

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Vermeiden von Globalenvariablen aber wie?
' schrieb:Umso besser, dann musst du Termination Char abschalten und beim VISA Read 1 Byte einstellen.
@eg: Schön, dass wir uns einig sind. s. Beitrag #33

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.01.2009, 17:47 (Dieser Beitrag wurde zuletzt bearbeitet: 22.01.2009 18:16 von eg.)
Beitrag #40

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Vermeiden von Globalenvariablen aber wie?
' schrieb:@eg: Schön, dass wir uns einig sind. s. Beitrag #33

:Dsorry hab's verpasst. Habe in dieser Zeit meine Antwort geschrieben.

Übrigens, wir sind schon weit vom Thema, besser ein neues Thema aufmachen.

Webseite des Benutzers besuchen 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
  EOF Fehler vermeiden chrissy 6 5.329 13.12.2016 08:26
Letzter Beitrag: chrissy
  Polling von Curser-Position in Waveform Graph vermeiden UFPhC 11 8.106 16.10.2014 12:00
Letzter Beitrag: Trinitatis
  Wie sehr großen Cluster vermeiden? Matze 10 8.635 31.10.2013 17:21
Letzter Beitrag: macmarvin
  val(sgnl) vermeiden Puma 7 6.585 05.08.2011 08:18
Letzter Beitrag: Kiesch
  Wert von numer. Bedienelement kontinuierlich erhöhen (Sprung vermeiden) lemmo 3 5.515 28.04.2011 18:14
Letzter Beitrag: Lucki
  Express-VIS - Warum sollte man sie vermeiden? Matze 8 7.449 28.04.2010 12:00
Letzter Beitrag: Matze

Gehe zu: