Messhardware bzw. IO-Karte

Oct 18, 2007 14 Replies

Hallo zusammen,



ich bräuchte eine Messkarte die ich aus einer Windows Applikation bedienen kann, mit folgenden Eigenschaften:


- 2 Analog-Eingänge



- 1 Analog-Ausgang



- 1000 echte Lese und Schreibvorgänge pro Sekunde



- USB, PCMCIA oder zur Not PCI



Es muss wirklich 1000x pro Sekunde ein Wert gemessen werden und eine passender Ausgabewert ausgegeben werden. Also kein blockweises Einlesen.



Bei USB bin ich skeptisch wegen der Latenzzeit. Aber schön wärs. PCMCIA wäre fast genau so schön. PCI wäre OK.



Habt ihr Vorschläge?



Danke im Voraus,



Gruß, Gerhardt


Nee, außer dass man 1ms Latenz mit dem PC ziemlich vergessen kann. Ohne Realtime-OS wird das gar nichts. Und mit hätte ich immernoch Bedenken, wegen gemeinsamer Resourcen, wie PCI-Bus.

Ich würde mich lieber mal nach einem einfachen DSP-Board umsehen, oder vmtl. tut es auch ein Microcontroller. Das Zeugs kann ja dann vom PC gesteuert werden, aber die die eigentliche Regelschleife läuft in der dedizierten CPU.

Marcel

Wenn du "PC" durch "Windows XP" ersetzt, dann stimmt deine Aussage. Unter Linux kannst du garantierte Reaktionszeiten, also harte Realtime, realisieren:

formatting link

und gibt natürlich auch kommerzielle Systeme, die das können:

formatting link

Ja, das wäre wahrscheinlich eine bessere Lösung. Z.B. mit dem LPC2148, der neben dem seriellen Port, auch eine Anbindung per USB ohne Probleme erlaubt und der 2 ADCs mit 10 Bit Auflösung bei maximal 400 kHz Samplerate integriert hat, sowie einen 10 Bit DAC.

Frank Buss, fb@frank-buss.de http://www.frank-buss.de, http://www.it4-systems.de

"Frank Buss" schrieb:

Morgen zusammen,

ich hatte es ursprünglich schon geschrieben aber dann vor dem posten wieder entfernt: Bitte Windows nicht zum Thema machen. Die Windows Lösung soll eine teure Autoboxlösung ersetzen. Die Windows Applikation benutzt dabei ein Simulink Modell (DLL) und kümmert sich im Wesentlichen um die Ein und Ausgaben. Ich habe selbst in einer Offline-Simulation getestet was für Latenzzeiten die Windows Taskswitches verursachen. Dabei konnte ich mich eigentlich darauf verlassen, dass niemals mehr als 1,5 (statt 1) Millisekunde zwischen den Samples verging (und die konnte ich immer aufholen, da ca. 100-fache Performance-Reserve). Für meine Zwecke reicht also bisher das Best-Effort Scheduling von Windows.

Jetzt will ich nur noch wissen, ob es eine IO Hardware gibt, die die bisherige Performance nicht allzusehr versaut.

Gruß,

Gerhardt Hohn

PCI-Einsteckkarte mit Echtzeit-System hat zB Jäger. Eine USB oder Ethernet Box (allerdings im 5kEUR-Bereich) mit Echtzeit bis Microsekunden haben die auch.

formatting link

Ansonsten kenne ich keine PCI-Karte, die so langsam auszulesen ist, da3 ein moderner PC nicht mitkommen sollte. (Au3er den Einwänden zum Betriebssystem ;-)

Gru3, Uli

Achtung, bitte *nicht* an diese unsinnige Email-Adresse antworten. Der Grund: zu viel Spam. Ich lese die NG, in die ich schreibe.

Hallo,

Marcel Müller schrieb:

nunja, man muss ja nicht alles dem PC überlassen. Vor >10 Jahren hatte ich Ähnliches (2000 Messungen/sec) mít einer AD-Karte von Keithley (DAS1802HC) realisiert. Die Samplerate gab ein Timer auf der Karte vor, die Daten liefen dort in einen FIFO-Speicher, die Anwendung mußte also "nur" rechtzeitig die Daten abholen. Das auf einem 486er PC mit ISA-Bus, Windows95... Solange man den Rechner nicht mit weiteren Anwendungen wirklich strapazierte, lief das wochenlang und für den Zweck ausreichend ohne Ausfälle durch. Ein Flugzeug würde ich auf diese Weise nicht steuern wollen, es kommt halt darauf an, wie kritisch fehlende Werte sind.

Btw, mittlerweile gibt es doch einige Meßboxen mit USB-Anschluß... wenn die genügend FIFO haben, sollten 1000 Werte pro Sekunde kein Problem sein?

Gruß, Bernhard

Bernhard Deny schrieb:

Hallo,

er wollte doch keine Lösungen die nur mit Puffer funktionieren, also auch nicht mit FIFO. Wert vom AD einlesen, daraus Ausgabewert für DA berechnen, zum DA ausgegeben und das 1000 mal pro Sekunde.

Bye

Deine Anforderung "1000 echte Lese und Schreibvorgänge pro Sekunde" beisst sich irgendwie mit diesen 1.5 Millisekunden. Wenn das nichts ausmacht, koenntest Du Dir den LabJack ansehen:

formatting link

Software und Treiber sind dabei. Das Manual ist online, kannst Du Dir vor einem Kauf reinziehen.

1.5msec Latenz, Performance, nun ja ...

Mit dem Labjack hatten wir bei einem Kunden ein Streaming hinbekommen, wo es beim Lesen und Schreiben keine Unterbrechungen geben durfte. Dazu haben wir ihn als SPI Interface "zweckentfremdet". Fluppt ueber Windows XP wunderbar, allerdings in C geschrieben. Ob das mit Vista geht, weiss ich nicht, da ich das OS bisher stets ablehne.

Gruesse, Joerg http://www.analogconsultants.com/

"Uwe Hercksen" schrieb:

jain, ein Zwischenspeicher ist schon OK, sofern ich ihn nicht (komplett) nutzen muss. Von Keithley gibt es zum Beispiel eine USB Box die selbst (autonom) abtastet. Man kann dabei die Abtastrate einstellen und auch die Puffergröße. In meinem Fall also 1 kHz (oder mehr) und 1 Sample. Der Vorteil: Der USB Treiber kehrt schneller zurück, da die A/D Wandler-Zeit beim Polling nicht mehr mit eingeht. Ob der Treiber allerdings in deutlich weniger als 0.5 ms zurückkehrt geht aus dem Datenblatt nicht hervor :-/ Da wären Praxiserfahrungen hilfreich.

genau!

Gruß, Gerhardt

"Joerg" schrieb:

danke für den Tip, ich werde es mir mal näher ansehen.

Gruß, Gerhardt Hohn

hab vor einiger Zeit eine digitale Karte von Meilhaus verwendet, iirc haben die auch verschiedenstes für analog im Programm

Grüße, Heinz

Joerg schrieb:

Kann der auf ein Hardware-Triggersignal hin direkt eine Interruptroutine auslösen?

mfg Rolf Bombach

Ja, aber ob das fuer Deine Anwendung reicht, muesstest Du im Manual nachlesen. Ab 2.9.13 wird es in dieser Hinsicht interessant:

formatting link

Gruesse, Joerg http://www.analogconsultants.com/

The mystery of the missing chapter. Meinst du 2.9.1.3? Dort ist IMHO eher die Rede von einem Interrupt des eingebauten Prozessors, nicht vom Host. Meine Frage war auch eher rhetorischer Natur, ich hab mich schon tagelang mit der Kiste abgeplagt, und das was ich wollte, kann sie nicht.

mfg Rolf Bombach

Ja, verzeihe den Tippfehler. Das Ding kann mehr als man denkt. Wir mussten einmal schnelle SPI Kommunikation machen und da hat eine gezielte Anfrage geholfen. Es gibt dort einige Foren, wo auch andere Benutzer mitmischen.

Generell ist ein Interrupt ueber USB direkt in den PC immer haarig. USB Ports haben fuer viele Dinge zu lange und unvorhersehbare Latenz.

Gruesse, Joerg http://www.analogconsultants.com/

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required