Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
ByRef tempValue As Single??
18.07.2008, 08:33
Beitrag: #1
ByRef tempValue As Single??
Hi,

ich habe hier eine .Net-Funktion:

TIn(ByVal chan As Integer, ByVal scale As MccDaq.TempScale, ByRef tempValue As Single, ByVal options As Mccdaq.ThermocoupleOptions)

Mit dieser kann ich Temperaturem vom ME-Modul RedLab TC auslesen. Jeder Input-Pin sollte hier belegt werden. Mir ist nicht klar, was "ByRef tempValue As Single" für eine Eingabe fordert. Weiß das jmd?

MfG
newe
Diese Nachricht in einer Antwort zitieren
18.07.2008, 09:32
Beitrag: #2
 
Hi,

by REF XX, heißt nix anderes, als das eine Variable nur vom Wert her geändert wird. Der Variablentyp bleibt gleich bzw. ist festgelegt und wird der Funktion übergeben und dann wieder neu ausgelesen.

Dazu kannst du einen beliebigen Wert (z.B. 0) Single (Int32?) asVariant(x) oder VarriantNull(x) mal probieren.
Menü->Device-> Object Browser ->BuildIn-Functions-> ...

Gruߟ Bratbaecker
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.07.2008, 11:38
Beitrag: #3
 
Hi,

du scheinst dich ziemlich gut auszukennen. Wärst du in der Lage anhand des Bildes im Anhang das abgebildete Programm nachzubilden? Vielleicht hast du ja Lust da drauf und bei dir dauert es sicher nicht lange :-)
Ich versuche es gerade selbst, aber es gelingt nicht, kommen ständig Fehlermeldungen...
Ich muss mit dem RedLab - Modul Temperaturen auslesen. Das ist der erste Schritt.....
Es soll danach noch einiges mehr folgen, aber immer klein anfangen und ich fange sehr klein an.... :-(

MfG

newe


Angehängte Datei(en) Thumbnail(s)
   
Diese Nachricht in einer Antwort zitieren
18.07.2008, 14:17
Beitrag: #4
RedLab Modul mit .NET einbinden
Das ist doch schon ein VEE-Programm !

Ich habe weder die 8.5 Version, noch das RedLab-Modul.
Daher kann ich nicht die .NET Komponenten laden, geschweige denn ausprobieren. :cry:

Versuche die Fehler Step by Step auszumerzen oder wende dich an Meilhaus. Die schicken dir bestimmt ein Beispielprogramm. :wink:
Wo hast du denn dieses Beispiel her ?

Gruߟ Bratbaecker
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.07.2008, 14:38
Beitrag: #5
 
hallihallo,
Ja, das ist ein VEE-Programm, aber mein Problem liegt in der Fkt. mccDaq.MccBoard.TIn(), welche eigentlich 5 Inputs hat, hier nur drei und, ich weiß nicht, welche drei der fünf Inputs derjenige verwendet hat. Sad

Habe mich bereits an Meilhaus gewandt, aber die haben kein geeignetes Beispielprogramm. :?

Dieses Bild habe ich von dem jenigen, der mir die Messtechnik verkauft hat (ein Partner von Meilhaus), aber er rückt nicht so richtig mit dem eigentlichen Programm raus. er ist da etwas, sagen wir, eigen.... :cry:

Ja, da muss ich ma schauen, ob ich das packe :cry:

mfg
newe

PS: Mir ist aufgefallen, dass du hier sehr aktiv bist in dem Forum und ziemlich viele Fragen beantwortest. Finde ich gut! :wink:
Da ich in dieser Woche das erste mal überhaupt in nem Forum war, würde es mich ernsthaft interessieren, wieso du das machst. Ich meine, du hast ja nix davon, oder?
Diese Nachricht in einer Antwort zitieren
18.07.2008, 15:03
Beitrag: #6
 
Zitat:Da ich in dieser Woche das erste mal überhaupt in nem Forum war, würde es mich ernsthaft interessieren, wieso du das machst. Ich meine, du hast ja nix davon, oder?
Wieso hilft man der alten Oma über die Straße ?
Damit man auf seiner Gehweg-Seite genug Platz hat :wink:

Nein im Ernst, es bringt doch Spass und ich lerne so auch dazu.
*************

Gibt es diese Funktion denn nochmals im .NET Gewimmel ?
Evtl. ist dort eine mit 3 Inputs. Ansonsten belege die Inputs mit default Werten und den Ref-Wert mit einer Wandlung davor asVariant als Input.

Der Zähler 0 to 7 wählt wahrscheinlich nacheinander die 8 Input-Channels an.
Zur Funktion :
MccDaq.MccBoard.TIn(chan, MccDaq.TempScale, ByRef tempValue, MccDaq.ThermocoupleOptions)
Die 3 Inputs müssen vorhanden sein -> chan, tempValue, MccDaq

Wobei MccDaq selbst nicht als Instance vorliegt, evtl. gibt es eine Ableitung davon oder eine neue (siehe wie im Bild oben) anlegen und nach dort verbinden.

Gruߟ Bratbaecker
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
21.07.2008, 11:39
Beitrag: #7
 
Hi Bratbaeker,

habe es jetzt endlich hinbekommen, dass die Funktion TIn() funktioniert. Die Vorlage musste ich etwas abändern, aber nun kann ich zumindest schon mal die Temperaturen auslesen....Hab irgendwie rumprobiert und mit deiner Hilfestellung ging es dann irgendwie...
Nun kann ich Temperaturen von 4 Kanälen auslesen und mir die Verläufe auch in nem Diagramm anzeigen lassen. Nächster Schritt wäre, dass ich die Temperaturverläufe in Abhängigkeit von der Zeit speichern kann. Am besten gleich in Excel. Ich habe die Übungen, die es dazu gibt bereits gesehen, allerdings speichere ich da immer nur Werte und niemals die Werte in Abhängigkeit von der Zeit, zu der diese aufgenommen werden. Wie kann ich an diese Sache am Besten rangehen?

Grüße newe!

PS: Habe ich schon erwähnt, dass ich das gut finde, dass du mir hilfst :-) DANKE!
Diese Nachricht in einer Antwort zitieren
21.07.2008, 16:13
Beitrag: #8
 
Wichtig ist immer die Größe !
Bei nur 2 Werten (zeit, temp) könnte man komplexe Zahlen benutzen .

Dabei sollte das Array immer bis zum letzten Wert pro Datenreihe beschrieben werden.

x= Anzahl der Datensätze
zeit,temp0 zeit,temp1 zeit,temp2 zeit,temp3 -> Daten[x,4]

Wenn die alle Channels zur gleichen Zeit gemessen werden sollen, dann könnte man das auch vereinfachen.
Wie soll die Messung erfolgen ?

Hier ein Beispiel wie man es grundsätzlich machen könnte.


Angehängte Datei(en) Thumbnail(s)
   

Gruߟ Bratbaecker
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.07.2008, 07:55
Beitrag: #9
 
Hi,

ja die Kanäle sollen alle zur gleichen Zeit ausgelesen werden.
Dabei erfolgt die zeitliche Abfolge der ausgelesenen Daten bisher von selbst, also ich weiß nicht, wann ein neuer Wert erscheint...Ich habe dir einmal angehägt, was ich bisher erreicht habe.
Dabei kann ich immer nur alle Temperaturen sehen, wenn ich mir "Logging Alpha Numeric" anzeigen lasse. Sobald ich einzelne Kanäle vom Ausgang vom Collector, der die Temperaturwerte sammelt, nach Excel sende, ändert sich dieser eine Temperaturwert immer, dabei möchte ich jeden einzelnen Wert festhelten.
Gut, ich denke, du weißt was ich will. :-)

Es ist nur so, ich weiß nicht, wo ich mit deinem Vorschlag ansetzen soll. Also, was ist Call Aufnahme und was Call Auswertung, wo muss ich meinen Datenausgang vom Collector anschließen?
Weiterhin, woher nimmst du "Set Daten"? ist das einfach eine Variable, die du setzt und dann wieder holst?
(Sorry, ich weiß, dass ich blöde Fragen stelle, aber ich bin einfach kein Programmierer :cry: )
Danach möchte ich noch wissen, wie ich den ganzen Spaß dann in eine Exceltabelle bekomme, alle Werte permanent aufgenommen und gespeichert werden usw...

Ein letzter Hinweis: Ich möchte über ca. 6 Tage die 4 Temperaturen auslesen und aufnehmen. Das werden also verdammt viele Werte, eventuell kann man auch vorgeben, die Temperaturen nur alle 30 sek oder so auszulesen, da wäre es nicht ganz so viel? (Bisher scheinen alle 1 sek neue Werte zu kommen, da sammelt sich was an in 6 Tagen)

Vielen lieben Dank, dass du einer blinden, stummen und tauben, gebrechlichen Oma über eine sechsspurige Hauptverkehrsstraße hilfst :wink: !!!

MfG newe


Angehängte Datei(en) Thumbnail(s)
   
Diese Nachricht in einer Antwort zitieren
22.07.2008, 20:13
Beitrag: #10
 
Hi newe,

das Prinzip deiner Schaltung stimmt schon. Big Grin
Wenn alle 4 Messfühler zur gleichen Zeit ausgelesen werden, dann brauchst du nur einmal die Zeit pro Messreihe mitploten.
z.B. A[0] bis A[3] für die Tempwerte und A[4] als Zeitstempel
Wenn du ein weiteres Collector-Object einfügst, sammelst du die Daten bis zum Messabbruch oder vordefiniertem Maxwert (If Bedingung einfügen).

Dabei ist es wichtig immer die gleiche Anzahl von Datensätzen zu haben (im Beispiel 10).

Wie im neuen jetzigen Beispiel, solltest du dir auch so eine Aufnahme-Funktion machen (mit deinem Tin drin ).

Evtl. bist du durch die Buttons und Flags verwirrt, aber das ist für den Ablauf erforderlich, wenn du deine Schaltung starten und stoppen willst.

Wie schon gesagt, müssen die Arrays immer eine identische Anzahl von Daten enthalten, das wird so erreicht. :!:

Morgen zeige ich dir wie man die Arrays zur Anzeige bringt.

Die Funktion Auswerten gibt es noch nicht, das kommt morgen
Zitat:Weiterhin, woher nimmst du "Set Daten"? ist das einfach eine Variable, die du setzt und dann wieder holst?
(Sorry, ich weiß, dass ich blöde Fragen stelle, aber ich bin einfach kein Programmierer )
Die Funktion Auswerten gibt es noch nicht, das kommt morgen.
Genau Daten ist eine Variable.


Angehängte Datei(en) Thumbnail(s)
   

Gruߟ Bratbaecker
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.07.2008, 08:17
Beitrag: #11
 
Guten Morgen Bratbaecker,

das ist wahr, ich bin tatsächlich verwirrt durch die vielen Buttons und komme damit nicht richtig zurecht. Ich verstehe nicht, was die "0" und "1" vor Set StopFlag sein soll und wie du diese erstellt hast (ist das ne Funktion?)

Habe jetzt die Aufnahme-Funktion auch extra angelegt und will das auch gleich alles mit `nem Collector sammeln, allerdings weiß ich nicht, was ich an den XEQ-PIN diesen "letzten" Kollektors anpinnen muss? Habe ja schließlich nicht nur 10 Werte, sondern so viele bis ich die Aktion stoppe... Also ich brauche nicht diese "If/Then/Else-Fkt", sondern...?

Was auch noch unklar ist, ich habe "for range" gewählt und du "for count", ist das egal, was man nimmt?

Und wieso kannst du bei "On Cycle" 0.1 eintragen? Muss da nicht ne 1 drin stehen?

Du siehst, du hast es nicht leicht mit mir...Kannst du noch mal alle Button erklären und auch , wie die zustande gekommen sind (besonders Start, Auswertung, Exit, Stop, die so grau hinterlegt sind...)

Bis dahin.....

sei gegrüßt! Big Grin

newe
Diese Nachricht in einer Antwort zitieren
23.07.2008, 08:45
Beitrag: #12
 
Da fällt mir noch was ein,

werde den Versuch ja über 6 Tage laufen lassen. Wenn ich jede Sekunde nen Wert aufnehme, da sammelt sich was an an Daten. Ist Vee dazu in der lage soviele Daten zu speichern? Nicht, dass nach der Hälfte der Zeit der Spaß wieder von vorn losgeht? Weißt du da Bescheid?

Und: zur Zeit wird mir die Spalte der Zeit ja noch nicht im Zeitformat angezeigt. Man könnte sich das ja ausrechnen, aber kann man diese einzelne Spalte zuvor im Zeitformat anzeigen lassen? oder gleich nur die Delta-Werte?

So, nun ist es aber gut...Sorry, kann mich einfach nicht beherrschen


MfG
Diese Nachricht in einer Antwort zitieren
23.07.2008, 13:41
Beitrag: #13
 
Zitat:werde den Versuch ja über 6 Tage laufen lassen. Wenn ich jede Sekunde nen Wert aufnehme, da sammelt sich was an an Daten. Ist Vee dazu in der lage soviele Daten zu speichern? Nicht, dass nach der Hälfte der Zeit der Spaß wieder von vorn losgeht? Weißt du da Bescheid?
Vorn der Datenmenge sollte sein keinProblem sein (ca. 2,5 Millionen Werte),
aber die Anzeige könnte ein Problem werden, da du ja über mehrere Tage auswerten willst, das habe ich noch nicht ausprobiert.
Das könnte man aber simulieren/probieren.

Du solltest auch unbedingt nur einmal eine Instance am Anfang des Programms erzeugen (mit der gobalen Variable MccBoard).
So wie das jetzt ist, wird alle Sekunde eine neue Instance erzeugt und das könnte ein Memory/Performance Problem werden.

Zitat:Und: zur Zeit wird mir die Spalte der Zeit ja noch nicht im Zeitformat angezeigt. Man könnte sich das ja ausrechnen, aber kann man diese einzelne Spalte zuvor im Zeitformat anzeigen lassen? oder gleich nur die Delta-Werte?
Ob man die Delta-Zeit oder Absolutzeit anzeigen will, kann man im Display einstellen.

Ich mach dir mal jetzt ein Beispiel Idea

Gruߟ Bratbaecker
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.07.2008, 13:59
Beitrag: #14
 
Big Grin
Diese Nachricht in einer Antwort zitieren
23.07.2008, 16:40
Beitrag: #15
Beispiel-Programm
So,

im Downloadbereich steht ein Beispiel-Programm "Temperatur-Messung"

Die Auswertung zeigt, was so möglich wäre.
Du kannst das natürlich vereinfachen /umändern.

Die maximale Zeit beträgt hier 1 Tag (wert Mod 86400)
86400= 60*60*24

Viel Spass beim Erforschen :lol:

Gruߟ Bratbaecker
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:




Partnerforen: LabVIEWForum.de| DIAdem-Forum.de| Machine-Vision-Forum.de| goMatlab.de| VEEforum.de