19.11.2008, 07:35
Beitrag #1
|
Shelin
LVF-Neueinsteiger
Beiträge: 3
Registriert seit: Oct 2008
8.5
2008
de
93128
Deutschland
|
Ansteuerung einer Wasco ADIODA Karte
Hallo erstmal,
Schade, das mein erster Beitrag hier mit einer Anfängerfrage beginnt....
Wir haben hier folgendes Problem:
im Rahmen einer Projektarbeit (Sortieranlage) verwenden wir LabVIEW zur Steuerung und Auswertung der zu sortierenden Objekte. Da wir bis vor kurzem noch keine Hardware hatten, haben wir die VI´s roh aufgesetzt und als simulierte Ausgänge a´la
Digitalausgang einfach LEDs im Panel hergenommen in der Vermutung, das es danach kein Problem sein sollte, mit dem Signal letztendlich die TTL-Ausgänge der Karte anzusteuern. Als Eingabeelemante haben wir Schalter oder For-Schleifen für Rechtecksignale verwendet.
Das Problem ist nun, wie wir die Karte dazu bringen, unsere Signale auszugeben oder einzulesen.
Die Treiber der Karte sind installiert, werden auch in der Systemsteuerung (Xp) angezeigt. Aber aus den (html-jpeg)-VI´s
als Beispiel werden wir nicht wirklich schlau.
Ich möchte keine komplettlösung, wäre aber dankbar für einen kleinen Stoß in die richtige Richtung.
Die Beispiel VI´s gehen irgendwie alle in die Richtung, komplette Bytes (also 8...?) Eingänge zu lesen oder entsprechend
Ausgänge zu schreiben. Muß ich meine Einzelsignale entsprechend Umrechnen ? Wäre etwas nachteilig, da wir nichts synchronisiert haben. Oder kann ich auch die Ein/Ausgänge einzeln ansprechen ? Wenn ja, wie implementieren wir das ?
Habe etwas über DAQmx gelesen, ist das schon die Richtung ?
Wie gesagt, Anfängerfrage
Bernd
|
|
|
19.11.2008, 07:49
Beitrag #2
|
chrissyPu
LVF-Stammgast
Beiträge: 467
Registriert seit: Jun 2006
2014 PDS
2006
DE_EN
64283
Deutschland
|
Ansteuerung einer Wasco ADIODA Karte
Hi,
ohne Anhänge und genauer Bezeichnung der Karte - wird eher schwierig hier sinnige Antworten zu bekommen...
Allerdings, wenn Du einzelne Bits in einem Byte Schreiben bzw. Löschen willst, kann man das so lösen, dass man das bestehende Ausgangsbyte mit einem Eingang verodert, der nur an der Stelle eine 1 hat, die man setzen will, zum löschen eines Bits verundet man mit einem Eingang, der nur an der STelle eine 0 hat, die rückgesetzt werden will...
Mit so einer KOnstruktion kannst Du Deine Ausgänge immer einzeln setzen, brauchst dann nur über ein Event, kontinuierlich o.ä. das Update auf die Karte zu realisieren. Brauchst also eine Zwischenvariable, auf die Du schreibst und die du dann auf die Karte überträgst..
Ich hoffe, man versteht das jetzt, ansonsten könnte man unter bitwise-AND und bitwise-OR im allgemeinen noch ein paar Infos dazu finden...
Grüße,
ch
|
|
|
19.11.2008, 15:04
Beitrag #3
|
Shelin
LVF-Neueinsteiger
Beiträge: 3
Registriert seit: Oct 2008
8.5
2008
de
93128
Deutschland
|
Ansteuerung einer Wasco ADIODA Karte
Hi,
LabVIEW: Campuslizenz, Version 8.5
Karte ist folgende:
Wasco ADIODA PCI16Extended ( http://www.messcomp.de/11.htm)
32 single (bzw. 16 Diff) Analog-Eingänge 12 Bit
2 Analoge Ausgänge 12Bit
16 TTL In / 16 TTL Out
...
Das Handbuch zur Karte gibt im großen und ganzen nicht viel mehr her als die Informationen auf der Seite (+Jumperungen für Versorgungsspannungen, Betriebsart usw.)
Es gibt Herstellerseitig einige Beispiel-VI´s (im Passwortgeschützen Bereich und auf CD, deswegen möchte ich diese nicht hier öffentlich machen). Diese VI´s sind aber scheinbar für alle Wasco-PCI-Karten universell verwendbar.
Eine speziell auf unser Programm zugeschnittene Lösung wäre leider nicht sinnvoll, da dann die Leute, die nach uns mit den Karten arbeiten, auf das selbe Problem stoßen werden.
Ich suche also etwas in der Richtung "Wie am Panel, so an der Karte"
Ich gehe jetzt mal theoretisch von folgendem Szenario aus:
1. LabVIEW stellt mir keine Schnittstelle für diesen Kartentyp zur Verfügung.
(zumindest habe ich nichts entsprechendes gefunden), also baue ich mir diese selbst.
2. Die Karte muss initialisiert werden (also brauche ich ein VI, welches dies macht und zum Programmstart ausgeführt wird)
3. Die Kanäle der Karte (unabhängig ob In/Out/Digital/Analog) sollen während der Programmausführung gelesen/geschrieben werden (evtl. auch nur Byte-weise)
Meiner Meinung nach brauche ich für jeden Kanal / jedes Byte ein VI, dem entsprechende Parameter übergeben werden (z.B. Kartenadresse, Kanaladresse, Typ...)
4. Nach Programmende sollte die Karte in einen definierten Zustand gefahren werden.
Also müsste ich mir nach dieser Überlegung 3 VI´s bauen, eines zum starten, ein universelles zum schreiben/lesen und eines zum beenden. Sollte das soweit noch irgend etwas mit der Wirklichkeit zu tun haben, stellt sich mir die Frage: "wie?" .
Vielleicht sehe ich auch einfach den Wald vor lauter Bäumen nicht
Bernd
|
|
|
19.11.2008, 17:24
Beitrag #5
|
IchSelbst
LVF-Guru
Beiträge: 3.689
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
Ansteuerung einer Wasco ADIODA Karte
' schrieb:Vielleicht sehe ich auch einfach den Wald vor lauter Bäumen nicht
Also, noch würde ich das so sehen.
Nimm halt die LabVIEW-Treiber vom Hersteller und nimm die als Basis für das was du machen willst: ""Wie am Panel, so an der Karte".
Eigentlich bleibt dir gar nichts anderes übrig, als es so zu machen. Ganz am Anfang muss mal jemand die PCI-Adressen heraussuchen. Willst du das von hand machen? Ich gehe davon aus, es gibt in der Wasco-Lib ein VI (wie auch immer), das dieses für dich macht: Heißt gemeinhin INIT.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
04.12.2008, 06:54
Beitrag #6
|
Shelin
LVF-Neueinsteiger
Beiträge: 3
Registriert seit: Oct 2008
8.5
2008
de
93128
Deutschland
|
Ansteuerung einer Wasco ADIODA Karte
ich hatte zwischenzeitlich zwei Telefonate mit dem Hersteller.
Die zum Download zur Verfügung gestellten VI´s sind nach dessen Aussage Funktionsfähig für alle Wasco-Karten, mit
Ausnahme der von uns verwendeten PCI16ext. Anscheinend ein Glückstreffer. Hat etwas mit dem auf dieser Karte
eingesetzten Chipsatz zu tun.
Ich habe die Treiber ausprobiert, bekam aber außer Systemabstürzen oder keine Ein- / Ausgabesignale nicht wirklich
etwas brauchbares Zustande.
Soweit ich das verstanden habe, greifen diese VI´s auf die Treiber-DLL der Karte zurück.
Die Hersteller-VI´s sind momentan durch Krankheitsbedingten Ausfall Zeitlich etwas verlegt worden,
was uns bei der Projektarbeit leider nicht weiterhilft
Meine Frage nun:
Könnte jemand von euch (da mir ganz ehrlich gesagt das Wissen dazu fehlt) mit diesen DLL´s etwas anfangen ?
viele Grüße,
Bernd
|
|
|
04.12.2008, 10:40
Beitrag #7
|
macces
LVF-Gelegenheitsschreiber
Beiträge: 57
Registriert seit: Oct 2006
8.60 SE
2006
kA
47803
Deutschland
|
Ansteuerung einer Wasco ADIODA Karte
Ich kenn mich nicht wirklich damit aus, aber vielleicht hilfts ja doch.
http://www.pcmesstechnik.eu/treiber/down...nxp130.pdf liefert Informationen über verschiedene Funktionen und Namen der Übergabeparameter.
Rufst Du die dll in LV auf, solltest die jeweilige Funktion (wasco_getBoardInfo usw) auswählen können. Zur Nutzung nun noch die jew. Parameternamen, entnommen aus dem pdf-file) inkl. Datentyp eingeben. Falls des so funktioniert (wie gesagt, noch nie gemacht, bisher gabs immer Hersteller-vi´s oder ne gute Doku), kannst so nach und nach die benötigten Funktionen realisieren.
Aber finds vom hersteller irgendwie...komisch... So ne Info (ätsch, bei Ihrer Karte geht des nich) is ja nich gerade unwichtig.
Naja, hoff ich konnt helfen.
|
|
|
04.12.2008, 17:51
Beitrag #8
|
|
|
| |