LabVIEWForum.de
Host -Interrupt einer ISA-Karte auswerten - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: Hardware (/Forum-Hardware)
+---- Forum: 3rd Party Hardware (/Forum-3rd-Party-Hardware)
+---- Thema: Host -Interrupt einer ISA-Karte auswerten (/Thread-Host-Interrupt-einer-ISA-Karte-auswerten)



Host -Interrupt einer ISA-Karte auswerten - Tobias79 - 13.05.2009 15:26

Hallo,

ich programmiere zur Zeit eine linearen Verschiebetisch von PI (M-415.CG). Das Gerät wird leider durch eine recht betagte ISA-Karte (Physik Instrumente C-842) angesteuert, die natürlich nicht im "Measurement & Automation Explorer" auftaucht. Die Ansteuerung des Verschiebetisches lässt sich trotzdem recht komfortabel in mein bestehendes LV-Programm einbinden, da der Hersteller eine DLL nebst passender VIs zur Verfügung stellt. Auf diesen Weg lassen sich auch Host-Interrupts programmieren, die eine bestimmte Verfahrposition signalisieren.

GIBT ES EINE MÖGLICHKEIT DIESE HOST-INTERRUPTS DER ISA-KARTE MIT LabVIEW AUSZUWERTEN?

Zur Zeit bin ich gezwungen über die DLL ein Statusregister zu pollen, welches mir einen entsprechenden Interrupt anzeigt. Wegen der entsprechenden Kommunikationsdauer lässt sich die gewünschte Auflösung der Verfahrposition bei einem fahrendem Verschiebetisch nicht erreichen.

Ich bin auch über recht grundlegende Infos zum Thema IRQ-Auswertung mit LV sehr dankbar.

Viele Grüße,
Tobias.


Host -Interrupt einer ISA-Karte auswerten - jg - 13.05.2009 18:04

' schrieb:Das Gerät wird leider durch eine recht betagte ISA-Karte (Physik Instrumente C-842) angesteuert, die natürlich nicht im "Measurement & Automation Explorer" auftaucht.
Offtopic2
Nur zur Klarstellung, die Karte taucht nicht im MAX auf, weil sie betagt ist, sondern weil sie nicht von National Instruments ist.
Gruß, Jens


Host -Interrupt einer ISA-Karte auswerten - rolfk - 15.05.2009 09:07

' schrieb:Hallo,

ich programmiere zur Zeit eine linearen Verschiebetisch von PI (M-415.CG). Das Gerät wird leider durch eine recht betagte ISA-Karte (Physik Instrumente C-842) angesteuert, die natürlich nicht im "Measurement & Automation Explorer" auftaucht. Die Ansteuerung des Verschiebetisches lässt sich trotzdem recht komfortabel in mein bestehendes LV-Programm einbinden, da der Hersteller eine DLL nebst passender VIs zur Verfügung stellt. Auf diesen Weg lassen sich auch Host-Interrupts programmieren, die eine bestimmte Verfahrposition signalisieren.

GIBT ES EINE MÖGLICHKEIT DIESE HOST-INTERRUPTS DER ISA-KARTE MIT LabVIEW AUSZUWERTEN?

Zur Zeit bin ich gezwungen über die DLL ein Statusregister zu pollen, welches mir einen entsprechenden Interrupt anzeigt. Wegen der entsprechenden Kommunikationsdauer lässt sich die gewünschte Auflösung der Verfahrposition bei einem fahrendem Verschiebetisch nicht erreichen.

Ich bin auch über recht grundlegende Infos zum Thema IRQ-Auswertung mit LV sehr dankbar.

Unter Protected Mode Betreibssystemen kann die Applikation selber mit Interrupts gar nichts tun da jeder Versuch von der Applikationsebene aus um Interruptroutinen zu verändern als protection fault error unnachsichtig geahndet wird.

Das muss der Kernel Treiber zu der Karte machen (also die Treiber die mit der Karte kommen). Ob dieser eine Möglichkeit bietet um vom Kernel aus im Falle eines Interrupts ein Event auszulösen dass dann von der User Space DLL an die Applikation weitergereicht werden kann hängt ganz einfach von diesem Treiber ab. Oftmals ist dies Möglichkeit gar nicht gegeben und selbst wenn der Kernel Treiber das unterstützt, unterstützt die User Space DLL das oft noch nicht.

Wenn die User Space DLL und der Kernel Treiber entsprechende Unterstützung bieten ist aber die ganze Chose noch nicht eine Pappenstiel um in LabVIEW zu bekommen. Du wirst dann nämlich dieses OS Event dass vom Treiber ausgelöst werden kann auch noch in ein LabVIEW Event umsetzen müssen. Dazu könntest Du entweder Occurrences oder User Events verwenden.

Beides geht eigentlich nur mit spezifischem externen Code in der Form einer DLL die man in C schreiben muss. Also es geht prinzipiel aber ob es mit Deiner Karte möglich ist steht bestenfalls in den Sternen. Und sollte es das sein wirst Du trotzdem noch einiges an C Kenntnissen aufwenden müssen um es wirklich funktionierend zu bekommen. (Oder jemanden dafür bezahlen der das macht oder (hüstel, hüstel) den Kartenhersteller dazu bringen Dir dieses LabVIEW spezifische Interface zur Verfügung zu stellen).

Rolf Kalbermatter


Host -Interrupt einer ISA-Karte auswerten - Tobias79 - 15.05.2009 12:06

Danke für die aussagekräftige Antwort. Jetzt kann ich die Idee mit ruhigem Gewissen zu Grabe tragen.

Viele Grüße,
Tobias


Host -Interrupt einer ISA-Karte auswerten - RoLe - 15.05.2009 13:46

ist etwasOfftopic2, aber trotzdem.
Da ich ich gerade mal wieder mit alten 16Bit DOS Applikationen mit Serieller Übertragung (unter VISTA und VM) rumärgere, hier noch ein Tool das in diese Kategorie passt.
ev. kann das als zwischenschicht Kernel/UserSpace verwendet werden.

http://www.kithara.de/de/produkte/dos_enabler.php


Host -Interrupt einer ISA-Karte auswerten - rolfk - 17.05.2009 18:54

' schrieb:ist etwasOfftopic2, aber trotzdem.
Da ich ich gerade mal wieder mit alten 16Bit DOS Applikationen mit Serieller Übertragung (unter VISTA und VM) rumärgere, hier noch ein Tool das in diese Kategorie passt.
ev. kann das als zwischenschicht Kernel/UserSpace verwendet werden.

http://www.kithara.de/de/produkte/dos_enabler.php

Das hilft zumindest für LabVIEW wahrscheinlich sehr wenig. Das virtualisiert für das 16 Bit DOS Subsystem diese Resourcen so dass 16 Bit DOS Applikationen glauben direkt die Hardware anzusprechen. Das funktioniert mit Ausnahme des Timings recht gut, kann also auch so noch Probleme bieten wenn die ganze Programmierung quo Timing sehr Hardwarenah programmiert war.

Eine 32 Bit Applikation hat aber davon im Normalfall gar nichts.

Rolf Kalbermatter