Meilhaus A/D-Wandlerkarte

  • VB.NET

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von peterfido.

    Meilhaus A/D-Wandlerkarte

    Hallo,

    ich habe ein Programm geschrieben, das einen Sensor über eine A/D-Wandlerkarte von Meilhaus abfragt. Die Bindings für VB werden von Meilhaus mitgeliefert, genau wie die Treiber-DLL.

    Das Programm hat folgende Struktur

    ---- snip ----
    Definitionen (Funktionen/Variablen)

    Background-Worker
    - ruft Funktion auf, die die Hardware abfragt

    Abfragefunktion
    - fragt die Hardware über die von Meilhaus definierten
    Funktionen ab


    Der Background-Worker läuft, bis auf dem Hauptformular ein Stop-Knopf gedrückt wird bzw. bis eine bestimmte Zahl von Messungen gelaufen ist.

    Problem: das Programm läuft ohne die Meilhaus-Funktionen völlig problemlos. Sobald ich die Funktionen aufrufe, friert das Programm nach einiger Zeit ein. Das kann nach wenigen Minuten, aber auch erst nach einer Stunde passieren.

    Ich habe schon mal mit dem Task-Manager den Speicherverbrauch und die CPU-Auslastung überprüft - keine Auffälligkeiten vor dem Einfrieren.

    Ich habe keine Ahnung, wie ich dem Problem auf die Spur kommen kann. Vielleicht ist es das dauernde Aufrufen der Abfragefunktionen? Oder ein Programmierfehler im Treiber? Keine Ahnung...

    Mfg

    Dirk
    Hier kann ich nur spekulieren. Machst du evtl eine neue Anfrage an die Karte, bevor eine vorherige beatnwortet wurde? Hat die Karte ein "Busyflag", welches du Abfragen kannst?

    Evtl ein paar Warteschleifen drehen (DoEvents, keine Sleeps, denn diese halten das Programm an).

    Evtl die Abfragen auslagern (z.b. Benutzersteuerelement), so kannst du Watchdogs einbauen.

    Ich habe für solche Zwecke immer ein Logdatei. Dast heisst ich schreibe jede für mich relevanten Programmschritte und Variableninhalte in eine Textdatei, welche ich mir hinterher ansehe. Das hat mir schon oft geholfen.

    Der Taskmanager zeigt unter Tasks nur den belegten Hauptspeicher eines Programmes an, nicht den ausgelagerten, den kannst du z.B. unter Systemleistung beim Taskmanager beobachten.
    Gruß
    Peterfido

    Keine Unterstützung per PN!