USB-1208LS PortA/B gleichzeitig schreiben - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: Hardware (/Forum-Hardware) +---- Forum: 3rd Party Hardware (/Forum-3rd-Party-Hardware) +----- Forum: Meilhaus (/Forum-Meilhaus) +----- Thema: USB-1208LS PortA/B gleichzeitig schreiben (/Thread-USB-1208LS-PortA-B-gleichzeitig-schreiben) |
USB-1208LS PortA/B gleichzeitig schreiben - FelixG - 26.11.2012 09:33 Hallo Gemeinde, für mein aktuelles Projekt ist es notwendig die beiden digitalen Ports A und B gleichzeitig zu schreiben. Mein Problem dabei ist, dass PortB sofort wieder zurückgesetzt wird. Mit der Highlight-Funktion habe ich gesehen, dass die Daten zwar gleichzeitig am ULx Write ankommen aber trotzdem erst PortB geschrieben wird und dann PortA. Hat jemand von euch eine Idee was ich hier falsch mache? Entschuldigung für den kleinen VI ausschnitt aber ich darf das VI leider nicht hochladen. Vielen Dank im Voraus mfg Felix RE: USB-1208LS PortA/B gleichzeitig schreiben - FelixG - 05.12.2012 15:00 Hallo zusammen, ich habe jetzt herausgefunden, dass die While-Schleife in der Event-Struktur das Problem war. Die While-Schleife muss ausserhalb der Event-Struktur sein, damit das parallele Abfragen aller Ein-und Ausgänge funktioniert. Es funktioniert jetzt alles. mfg Felix RE: USB-1208LS PortA/B gleichzeitig schreiben - GerdW - 05.12.2012 16:03 Hallo Felix, der Zusammenhang zwischen Frage und präsentierter Lösung erschließt sich mir nicht, insbesondere da dein Bild oben nur den kleinsten Teil eins VIs zeigt. Kannst du deine Lösung etwas genauer erläutern? RE: USB-1208LS PortA/B gleichzeitig schreiben - FelixG - 07.12.2012 08:15 Hallo Gerd Ich werde mal kurz versuchen zu erklären was genau mein Problem war. Ich versuche in meinem Programm die beiden Digitalen Ports A und B zu schreiben. PortA wurde immer geschrieben und das Kontroll-LED leuchtete danach auch konstant. Das Kontroll-LED bei PortB leuchtete hingegen nur kurz auf. PortB wurde immer vor PortA geschrieben und somit leuchteten nie alle benötigten Kontroll-LEDs. Also, Kontroll-LED von PortB leuchtet kurz auf und danach leuchtet das Kontroll-LED von PortA konstant bis andere Daten geschickt werden. Die Daten werden in der Case-Struktur generiert und an die zugehörigen Ports geschickt. Wie im Bild von meinem ersten Beitrag ersichtlich ist, hatte ich die While-Schleife innerhalb der Event-Struktur und hatte daher 2 While-Schleifen im ganzen Programm. Da im restlichen Programm aber auch noch Digitale und Analoge Eingänge vorhanden sind funktionierte das nicht. Ich habe dann die While-Schleife innerhalb der Event-Struktur gelöscht und eine neue um die Event-Struktur gelegt. Die ULx Create Channel und die ULx Start Task liegen jetzt alle vor der gleichen While-Schleife und können dadurch jetzt parallel abgefragt werden. Jetzt werden die Daten gleichzeitig auf die beiden Ports geschrieben und die Kontroll-LEDs leuchten nun auch konstant. Ich hoffe ich konnte jetzt das Problem und die Lösung einigermasen verständlich erläutern. Falls nicht werde ich es auch gerne nochmals versuchen. Falls gerade noch Verbesserungsvorschläge vorhanden sind wäre ich sehr dankbar dafür. mfg Felix RE: USB-1208LS PortA/B gleichzeitig schreiben - GerdW - 07.12.2012 09:07 Hallo Felix, Zitat:Falls gerade noch Verbesserungsvorschläge vorhanden sind wäre ich sehr dankbar dafür.Gerne doch! - Die Referenzen der Buttons brauchst du nur einmal vor der Whileschleife abfragen und in ein Array packen... - Es ist eine ganz blöde Idee, im Blockdiagramm die Namen/Label der Buttons auszublenden - oder noch schlimmer, diese womöglich durch Leerstrings zu ersetzen (aka "Löschen")! Wie man an den PropertyNodes sieht, hast du wohl das Label gelöscht... (Vergleich mit einer textbasierten Programmiersprache: Hast du schon mal versucht, ein C-Programm zu verstehen, bei dem jemand alle Variablennamen durch "" ersetzt hat?) - Angesichts der Case-Struktur würde ich dir anraten, deine boolschen Indikatoren ("LED") in ein Array zu packen. Das könnte vieles vereinfachen... RE: USB-1208LS PortA/B gleichzeitig schreiben - FelixG - 07.12.2012 09:36 Hallo GerdW, vielen Dank für die schnelle Antwort. Mit den Property Nodes wird nur sichergestellt das der Benutzer gewisse Buttons auf dem FP nicht drücken kann bevor sie überhaupt freigeschaltet sind. Ich habe diese Buttons bei den Eigenschaften des Aktiv-Status auf Deaktiviert und ausgegraut gesetzt. Der Benutzer kann diese dann wieder auf Aktiviert setzen wenn er die externe Steuerung des Geräts bestätigt. An die anderen 2 Punkte werde ich mich jetzt mal wagen. mfg Felix RE: USB-1208LS PortA/B gleichzeitig schreiben - FelixG - 12.12.2012 13:27 Hallo zusammen, ich stehe leider schon vor meinem nächsten Problem. Ich habe mit dem USB-1208LS 2 Digitale Ports zu Verfügung, d.h je 8Bit. Von PortA werden alle Pins belegt und funktionieren auch. Bei PortB hingegen versuche ich gerade 3Anschlüsse für die Digitale Ausgabe und 4Anschlüsse für die Digitale Eingabe zu verwenden. Im Anhang seht Ihr meinen ersten Versuch dies zu realisieren. Mein Problem dabei ist, dass ich immer zwischen der Ausgabe und der Eingabe entscheiden muss. Wenn ich jetzt z.B die 4 Digitalen Eingänge teste und dann auf einen Button drücke der eine Ausgabe zur Folge hat funktioniert die Ausgabe perfekt. Allerdings sind die Eingänge dann alle auf den Aktiv-Status gesetzt und können dann nicht mehr abgefragt werden. Habt Ihr eine Idee wieso das so ist oder ist das überhaupt nicht möglich? Vielen Dank im Voraus und freundliche Grüsse Felix RE: USB-1208LS PortA/B gleichzeitig schreiben - FelixG - 14.12.2012 13:21 Hallo, ich habe jetzt mal nacheinander gewisse Teile des Programms deaktiviert. Wenn ich den Inhalt der Event-Struktur deaktiviere funktionieren die Digitalen Eingänge immer noch nicht. Wenn ich jetzt allerdings die ganze Event-Struktur deaktiviere funktionieren die Dig. Eingänge. Ich schliesse jetzt mal daraus, dass das ULx Read und die Event-Struktur sich irgendwie nicht mögen, was mich allerdings verwundert. Wisst ihr vlt wieso das so ist? Oder liege ich mit meiner Annahme komplett daneben? Vielen Dank und Gruss Felix P.S: zu meinem vorherigen Beitrag ist noch zu sagen, dass ich das Datenblatt des USB-1208LS nochmals durchgelesen habe und herausgefunden habe das es möglich ist die einzelnen Anschlüsse entweder als dig. Eingang oder Ausgang zu verwenden. RE: USB-1208LS PortA/B gleichzeitig schreiben - GerdW - 14.12.2012 13:22 Hallo Felix, Vielleicht liegt es am fehlenden TimeOut der Eventstruktur? Lt. deinem Ausschnitt würde ich ein TimeOut von 100ms einstellen und dafür die Wartezeit in der Schleife entfernen... RE: USB-1208LS PortA/B gleichzeitig schreiben - FelixG - 14.12.2012 16:13 Hallo Gerd, sry für die wenigen Infos aber ich weiss leider wirklich nicht mehr weiter. Danke für den Tipp. Einen TimeOut von 100ms habe ich jetzt in der Event-Struktur. Es funktioniert leider immer noch nicht. Trotzdem danke und allen ein schönes Wochenende Gruss Felix |