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!
12.12.2008, 21:48 (Dieser Beitrag wurde zuletzt bearbeitet: 12.12.2008 22:22 von jg.)
habe die usbtc08.dll über oben genannte Funktion in LabVIEW 7.1 integriert.
Problem, nur bei dieser Funktion, LabVIEW absturtz mit Fehlermeldungsfenster: LabVIEW.exe hat Fehler verursacht und muß beendet werden. Weitere Meldungen: memory.cpp Fehler, Operation kann nicht beendet werden, Speicher überlauf. Sind keine Clusterfehlermeldungen aus LabVIEW sondern Windows Fehlermeldungen. Danach schließt sich mein Programm bzw. der Rechner hängt sich auf.
ist so wie es aussieht das selbe Problem wie bei mir.
Brauche aber unbedingt diese Funktion. Diese liest mir die Seriennummer vom Device aus. Habe mehrere, daher benötigt zur Festellung welches Gerät welche Messwerte sendet.
Ohne diese Funktion läuft alles prima, seither. Nur die Messwerte sind total unzuordenbar.
Das VI ist nicht von mir, konnte es auch hier am Rechner nicht anschauen, da kein LabVIEW installiert.
Könnte meines auch noch nachladen. Ist aber bestimmt gleich.
Sorry vorab für die harten Worte, aber bei der Frage geht mir jetzt der Hut hoch:
1. Du lädst auf gut Dünken das VI aus dem Picotech-Forum hoch (Version 8.5), kannst also gar nicht wissen, ob das wirklich exakt deinem Fehler entspricht. Lade wenn schon DEIN VI hoch.
2. Meinst du, ich mach mir jetzt die Mühe, und lade irgendwo den Treiber von Picotech runter. Minimum ist es, die Header-Datei zur DLL hochzuladen. Woher soll man sonst wissen, wie die Parameter beim Funktionsaufruf, der dir Probleme macht, sind. Und wenn du noch einen Link zur Doku der DLL selber hast (oder die Doku selber), dann her damit.
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!
sorry, da ich gerade keinen direkten Zugriff auf mein VI habe dachte ich dass dieses zumindest weiterhelfen könnte.
Hast du dir mal die Mühe gemacht die englischen Beiträge von dort zu lesen. Fehlerbeschreibung ist zumindest die selbe. :-)
Sorry deiner Verärgerung. ;-) Wieda guat??? :-)
So hier mal mehr Stoff, danke für den Hinweis, habe ich in dem Eifer des Gefechts leider vergessen.
Hier die usbtc08.dll, dann das Manual mit den functions und zwei VI's. Einmal zum einlesen im Streaming modus und einmal im Single Modus. Streaming ist der Bereich. In diesem VI sind Sub-VI's wo auch das besagte 'Problem VI' zu finden ist.
Desweiteren habe ich mal die C++ Dateien im *.txt Format zusätzlich hochgeladen.
ich habe mehrfach mit deiner Library rumgespielt, und ich glaube, jetzt habe ich was.
Import der Funktionen mit dem LV8.6-Dll-Assi geht hervorragend, sogar solche Aufrufe wie usb_tc08_get_unit_info werden importiert.
Jetzt aber zu deinem Aufruf usb_tc08_get_formatted_info, es hat gedauert, bis bei mir der Groschen gefallen ist. Zuerst habe ich nämlich die Funktions-Aufrufe mit Hilfe des DLL-Assi importiert und hatte gar keine Probleme. Dann habe ich es nochmal versucht und bekomme deine Fehlermeldung. Ebenso beim heruntergeladenen VI. Das was seltsam.
Am Schluß habe ich durch Zufall Folgendes ausprobiert, und zwar am Eingang "string_length" einen Wert, keine Fehlermeldung mehr!
Wieso jetzt was in der Einleitung von mind. 256 steht, frag mich nicht.
Und ob das jetzt wirklich endgültig die Lösung ist, kann ich auch nicht versprechen, da ich es natürlich ohne Hardware probiert habe. (Vielleicht kommt auch daher der Fehler? Vielleicht darf man die Funktion nur bei angeschlossener Hardware aufrufen. Aber das musst du mal ausprobieren).
Außerdem sollte bei LV<8.6 der String schon mir der richtigen Länge vorbelegt sein, also z.B. so:
oder so:
ansonsten gabs bei mir auch wieder Fehlermeldungen.
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!
Habe den String auch mit 255 Leerzeichen vorbelegt, kein positives Ergebnis.
Leider habe ich lediglich nur die LV Version 7.1!
Kann es möglich sein, das es auch vom Betriebssystem abhängig sein kann ob Fehler beim Funktionsaufruf auftreten können?
Das alles ist sehr seltsam und läßt mich auch rätseln. Die anderen Funktionen funktionieren ja auch, welche ja auch in der selben DLL aufgerufen werden.
Die andere Funktion (Info) auf die du ansprichst liefert zwar keinen Fehler beim Aufruf, es kommen aber keine Werte zurück.
Frage, meinst du es ist so möglich, daß du die Funktionen mit 8.6 lädst und sie wiederum unter 7.1 abspeicherst und hier hochlädst, so dass ich diese dann mit meiner Hardware testen kann?
Und noch eine Frage, (sorry das es wieder aus dem Pico Forum ist, aber ich würde es gerne testen ob dieses VI bei mir funktioniert) kannst du mir das VI in 7.1 konvertieren und hochladen?
Naja, probieren können wir es mal, allerdings kann im nur bis zur Version 8.0 runterspeichern. Vielleicht kann es noch jemand weiter konvertieren.
Ich lade auch mal den Screenshot der Funktion hoch, so wie sie der Assistent erstellt hat:
Vielleicht hilft das weiter. Ich denke, die ganzen I8 Werte kann man wahrscheinlich auch durch U8 Werte ersetzen. Und dann natürlich aus den Arrays wieder einen String machen. Alles ohne Gewähr, ich kanns nicht testen und hoffe, der Import-Assi hat alles richtig gemacht.
Gruß, Jens
P.S.:
Wer kann dies auf LV 7.1 runterkonvertieren?
danke für die schnelle Antwort. Da ich leider keinen Zugriff auf eine 8er Version habe, wäre es sehr hilfreich wenn du einen Screenshot.jpg (siehe *.jpg Beispiel unten) von der erstellten Funktionsdeklaration machen und einstellen würdest.