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!
18.09.2006, 13:07 (Dieser Beitrag wurde zuletzt bearbeitet: 18.09.2006 13:10 von blubb0r.)
soo... mit hilfe von wiggis VI hab ich mich mal ein bisschen weiter hineingearbeitet !
starten kann ich das folgende VI, jedoch schmiert dann LV immer souverän ab !
ich weiß nicht woran es liegt und folglich auch nicht, was ich machen soll !
die Funktion, die du in deinem Beispiel aufrufst, hat eine völlig andere Schnittstelle, als wie du sie versuchst aufzurufen. Kein Wunder das LV abschmiert.
Rückgabewert ist eine Bool-Variable, die wahrscheinlich intern als I16 oder I32-Variable dargestellt wird. Übergabewert (schreibend, CALL BY VALUE) ist eine Integer-Variable, vom Typ her wahrscheinlich auch I16.
Probier's doch mal mit folgendem VI (zumindest als neuer Ansatz):
die Funktion, die du in deinem Beispiel aufrufst, hat eine völlig andere Schnittstelle, als wie du sie versuchst aufzurufen. Kein Wunder das LV abschmiert.
[attachment=29338:attachment]
Rückgabewert ist eine Bool-Variable, die wahrscheinlich intern als I16 oder I32-Variable dargestellt wird. Übergabewert (schreibend, CALL BY VALUE) ist eine Integer-Variable, vom Typ her wahrscheinlich auch I16.
Probier's doch mal mit folgendem VI (zumindest als neuer Ansatz):
[attachment=29339:attachment]
MfG, Jens</div>
Hallo leute,
vielleicht kannst du auf meinen Versuch auch noch einmal draufschaun..
Ich habe erfolgreich den Speicher im Regler vollgeschrieben (gleiche DLL wie bei blub0r) und will sie nun auslesen. Leider stüzt mein LabVIEW in der Regel komplett ab. (Meist nach 4-20 Werten)
Vielleicht kannst du auch hier noch einmal einen kurzen blick drauf werfen:
(Habe es als Bild und Datei hochgeladen für die bessere übersicht)
Leider konnte ich mit dienem letzten Beispiel nichts anfangen da ich nur mit LabVIEW7.1 arbeite. Vielleicht kannst du dein VI noch einmal in einer alten version abspeichern.
@Blubb0r: Du hattest mir mal in einer PN geschrieben das dein Regler kein Display hat. Versuch mal einen anderen Befehl.
also...
@ wiggi:
habe eben mal dein programm angeschmissen, aber ich habe folgendes problem:
ich wähle n messungen, wähle RUN, doch dann arbeitet LV ca. 30s lang vor sich hin und es sieht fast so aus, als würde es wieder abstürzen, sobald dann aber der 10. durchgang erreicht ist, zeigt LV das Front Panel wieder problemlos an, aber bei Ausgabe Parameter findet sich immernoch nichts !
ich habe mal eine frage an dich: du nutzt ja die "LKIF_DataStorageGetData" Funktion ! storage steht ja bekanntlich für speicher, aber bei der Keyence Software musste man doch erst dateien in den speicher laden, bevor man sie daraus abrufen kann ! aber du lädst ja in dem LV VI nichts in den speicher, oder ?
@ Jens G:
dein VI verstehe ich leider nicht ganz ! Du verwendest, wie man ja am dateinamen erkennt, die funktion SetPanel, doch die bringt mir erstmal nichts ! ich brauche eine Funktion wie GetCurrentValue, oder sowas in der Art !
Sorry, hatte ich nicht dran gedacht.. ich verwende vorher immernoch ein anderes VI und die Daten einzulesen. Dies funktioniert wie ich oben glaube ich irgendwo mal erwähnt habe auch Fehlerfrei. Ich habe es einmal mit der von Keyence mitgelieferten Software gecheckt.
Hier 2 Datein....
Mit der ersten (datastorage.vI) schreibst du eine belibige Anzahl Werte in den speicher (max 56xxx mein ich)
Mit der zweiten (keyence.vi) kannst du sie direkt ausgeben. (auch sehr sehr langsam)
Wie lange brauchst du um zB 10 Werte auszugeben ?
19.09.2006, 14:12 (Dieser Beitrag wurde zuletzt bearbeitet: 19.09.2006 14:24 von blubb0r.)
hmm... also irgendwie funzt das bei mir net so richtig
also:
- ich starte Datastorage.vi
- klicke auf evaluieren *grins*
- bejahe diesen fehler
Zitat:C:Dokumente und Einstellungenmessen1Desktopdatastorage.vi
- The shared library expected to be at "C:Dokumente und Einstellungenmessen1DesktopUSLkIF.dll" was loaded from "C:Dokumente und EinstellungenpoDesktopdateienUSLkIF.dll".
- wähle als zeit 10 ms und zu messende werte 1 (erstmal klein anfangen)
- run --> ca. eine minute später isser fertig (gitter erscheint wieder, pfeil wird wieder weiß, etc.)
- ich öffne keyence.vi , bejahe den fehler
- klicke auf run und warte... und warte... und sehe nichts... und warte weiter...
während ich dies schreibe, steht numerisch auf sage und schreibe (zwischenzeitlich 12) nichts mehr, da lv den abflug gemacht hat...
ich bin hier leicht am verzweifeln !
mfg und danke
blubb0r
edIT:
achso, was ich noch fragen wollte...
Zitat:Sorry, hatte ich nicht dran gedacht.. ich verwende vorher immernoch ein anderes VI und die Daten einzulesen. Dies funktioniert wie ich oben glaube ich irgendwo mal erwähnt habe auch Fehlerfrei. Ich habe es einmal mit der von Keyence mitgelieferten Software gecheckt.
hast du die nebeneinadner am laufen, oder ist das keyence gerät an 2 PCs angeschlossen ?
' schrieb:@ Jens G:
dein VI verstehe ich leider nicht ganz ! Du verwendest, wie man ja am dateinamen erkennt, die funktion SetPanel, doch die bringt mir erstmal nichts ! ich brauche eine Funktion wie GetCurrentValue, oder sowas in der Art !
danke an beide für eure hilfe !
mfg
blubb0r
Hallo,
@blubb0r:
ich habe mich nur an dein Beispiel-VI "18_09_2006_14_03_46_LV8.vi" gehalten, da rufst du die Funktion LFIK_SetPanel (wenn auch mit falschen Parametern) auf.
@wiggi: Vielleicht komme ich mal heute abend dazu, einen Screenshot zu speichern. Speichern für Version 7.1 wird schwierig, habe dann nur Version 8.2 zur Verfügung.
MfG, Jens.</div>
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!
Ich habe so meine Zweifel, ob ihr bei euren Aufrufen von z.B. LKIF_DataStorageGetData oder LKIF_GetCalcData korrekte Werte zurückbekommt. Rückgabewerte sind hier ja Pointer zu Daten vom Typ LKIF_FLOATVALUE. Wenn ich die Dokumentation richtig verstehe, ist dies aber keine FLOAT-Variable, so wie ihr es anwendet, sondern ein Struktur, die aus 2 Werten besteht:
typedef struct {
LKIF_FLOATRESULT FloatResult; // valid or invalid data.
float Value; // measurement value during LKIF_FLOATRESULT_VALID.
Any other times will return an invalid value.
} LKIF_FLOATVALUE;
Teil 1 ist eine Enum-Definition (also wahrscheinlich I16 oder I32):
typedef enum {
LKIF_FLOATRESULT_VALID, // valid data
LKIF_FLOATRESULT_RANGEOVER_N, // over range at negative (-) side
LKIF_FLOATRESULT_WAITING, // comparator result
} LKIF_FLOATRESULT;
Erst Teil 2 ist eine Float-Variable.
Wie jetzt genau diese Struktur byte-weise wirklich aussieht, da kann ich euch leider auch nicht weiterhelfen. Übergabe und Auslesen von zusammengesetzten Variablentypen mit LabVIEW ist ein schwieriges Thema.
MfG, Jens</div>
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!
Ich habe so meine Zweifel, ob ihr bei euren Aufrufen von z.B. LKIF_DataStorageGetData oder LKIF_GetCalcData korrekte Werte zurückbekommt. Rückgabewerte sind hier ja Pointer zu Daten vom Typ LKIF_FLOATVALUE. Wenn ich die Dokumentation richtig verstehe, ist dies aber keine FLOAT-Variable, so wie ihr es anwendet, sondern ein Struktur, die aus 2 Werten besteht:
typedef struct {
LKIF_FLOATRESULT FloatResult; // valid or invalid data.
float Value; // measurement value during LKIF_FLOATRESULT_VALID.
Any other times will return an invalid value.
} LKIF_FLOATVALUE;
Teil 1 ist eine Enum-Definition (also wahrscheinlich I16 oder I32):
typedef enum {
LKIF_FLOATRESULT_VALID, // valid data
LKIF_FLOATRESULT_RANGEOVER_N, // over range at negative (-) side
LKIF_FLOATRESULT_WAITING, // comparator result
} LKIF_FLOATRESULT;
Erst Teil 2 ist eine Float-Variable.
Wie jetzt genau diese Struktur byte-weise wirklich aussieht, da kann ich euch leider auch nicht weiterhelfen. Übergabe und Auslesen von zusammengesetzten Variablentypen mit LabVIEW ist ein schwieriges Thema.
MfG, Jens</div>
Also was die korrektheit der Werte angeht hast du schonmal recht...
Die Werte stimmen nicht. Bisher bin ich davon ausgegangen das die Werte nurnoch Skaliert werden müssen, da es keinen Offset gibt. Soll heissen, wenn mein Messignal negativ wird geschieht dieses auch im LabVIEW Fenster.