INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Dieses Thema hat akzeptierte Lösungen:

Digitale Kanäle hintereinander schreiben



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

03.06.2019, 09:58
Beitrag #1

Christoph1993 Offline
LVF-Grünschnabel
*


Beiträge: 13
Registriert seit: Nov 2018

2016
2017
DE


Deutschland
Digitale Kanäle hintereinander schreiben
Hallo zusammen,

Ich benötige eure Hilfe beim Schreiben von 6 digitalen Kanälen. Ich möchte, dass immer nur zwei digitale Kanäle gleichzeitig mit einer 1 geschrieben werden, während die restlichen 4 Kanäle mit einer 0 geschrieben werden, anschließend die nächsten beiden Kanäle mit einer 1 usw. Also ein ´sequentieller Ein- und Ausschaltvorgang. Der Vorgang, in denen 2 der 6 Kanäle mit einer 1 (und die restlichen 4 mit einer 0) geschrieben werden, soll 1 Sekunde betragen, also für insgesamt 6 Kanäle 3 Sekunden.
Zur Verdeutlichung, wie ich mir das sequentielle Ein- und Ausschalten vorstelle:

Start Vorgang 1:

11 00 00 -> 1 Sekunde
00 11 00 -> 1 Sekunde
00 00 11 -> 1 Sekunde

Start Vorgang 2:

11 00 00 -> 1 Sekunde
usw...

Ich habe mir schon überlegt ob ich das DAQmx VI "Digital 1D Bool NChan 1Samp" für das Schreiben meiner Kanäle nehmen soll. Ich habe euch mal ein Screenshot meines VI's, in denen ich den Ein- und Ausschaltvorgang integrieren möchte, angehängt. Falls etwas unklar ist, bitte einfach nachfragen. Vielen Dank im Voraus für rege Impulse. Big Grin

LabVIEW Version: 16.0
Messkarte: NI USB-6229


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.06.2019, 11:36
Beitrag #2

MaxP Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 88
Registriert seit: Oct 2016

LV Prof. SSP
-
DE_EN


Deutschland
RE: Digitale Kanäle hintereinander schreiben
Hallo Christoph,

kleine Anmerkungen vor weg:
1. Es ist deutlich einfacher Binärzahlen von Links nach Rechts zu schieben, also von rechts nach links.
2. Du hast 3 Zustände, also musst du beim Quotienten auch durch 3 teilen.

Meine Lösung würde so wie im Anhang aussehen.
Ich arbeite lieber mit Integerzahlen, da ich die Handhabung in LabVIEW damit deutlich einfacher finde. Operationen wie UND, ODER, NICHT kannst du auch auf Integer anwenden.
Nach links oder rechts verschieben kannst du Integer mit der Funktion x2^n, wobei n die Anzahl der Stellen ist um die verschoben werden soll.

Gruß Max


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.06.2019, 15:41
Beitrag #3

Christoph1993 Offline
LVF-Grünschnabel
*


Beiträge: 13
Registriert seit: Nov 2018

2016
2017
DE


Deutschland
RE: Digitale Kanäle hintereinander schreiben
Hallo Max,

danke für deine Antwort. Die While-Schleife soll keine erste Lösung sein, sondern dient nur zum Schreiben von Spannungswerten, genauer gesagt von Ober- und Untergrenzen. Das habe ich leider vergessen zu erwähnen. Die einzige Abhängigkeit zwischen dem Schreiben in die digitalen Kanäle und der While-Schleife soll die Taktzeit [ms] sein, die hier 3 Sekunden betragen soll. Jeder Schreibvorgang soll also 1 Sekunde dauern und zum nächsten anknüpfen. Ich benötige doch irgendein Bool'sche Array, in dem ich meine 1 oder 0 reinschreiben kann und das wiederrum mit meiner Messkarte kommuniziert? Ich glaube deine Lösung bringt mich nicht weiter.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.06.2019, 20:11
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.387
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Digitale Kanäle hintereinander schreiben

Akzeptierte Lösung

Hallo Christoph,

Zitat:Jeder Schreibvorgang soll also 1 Sekunde dauern und zum nächsten anknüpfen. Ich benötige doch irgendein Bool'sche Array, in dem ich meine 1 oder 0 reinschreiben kann und das wiederrum mit meiner Messkarte kommuniziert?
Du brauchst:
- eine FOR-Loop, um 3mal zu iterieren
- eine Wartezeit von 1s in der Loop
- einmal DAQmxWrite in der Loop, um die boolschen Werte auf deine DOs zu schreiben
- ein Array von 6 boolschen Werten, welches du ausgeben willst
- 3 (nacheinander) auszugebende Werte…
   

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.06.2019, 07:09
Beitrag #5

MaxP Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 88
Registriert seit: Oct 2016

LV Prof. SSP
-
DE_EN


Deutschland
RE: Digitale Kanäle hintereinander schreiben
(03.06.2019 15:41 )Christoph1993 schrieb:  Ich benötige doch irgendein Bool'sche Array, in dem ich meine 1 oder 0 reinschreiben kann und das wiederrum mit meiner Messkarte kommuniziert?

Brauchst du eben nicht. Machen Mikroprozessoren z.B. auch nicht, da wird auch meistens eine Zahl auf einen Port geschrieben.
Du kannst dem DAQmx Treiber einfach eine unsinged integer übergeben und schreibt ihn dann auf die Ausgänge, fertig.
Wenn du lieber mit Bool'sche Array arbeitest, kannst du die integer auch danach umformen und dann schreiben (macht in meinen Augen aber keinen großen Sinn).

Wenn das ganze immer nur einmal laufen soll, kannst du auch eine For-Schleife mit 3 Iterationen nutzen. Hier also While-Loop gegen For-Loop tauschen und du wärst damit auch wieder fertig.

Gruß Max
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Mehrere Messungen Hintereinander Darstellen. LV_Vladi 20 11.627 06.12.2015 10:57
Letzter Beitrag: LV_Vladi
  Booleandaten hintereinander auf einen Digital I/O Kanal ausgeben anuller 7 6.911 05.11.2012 15:38
Letzter Beitrag: B033el
  Digitale Kanäle bei VI Stop auf False zurück setzen FIE 5 4.682 28.08.2009 11:57
Letzter Beitrag: Y-P
  Counter Output auf Digitale Kanäle Abtin 21 18.886 28.11.2008 08:33
Letzter Beitrag: blisnez
  Digitale I/O PrinCe 0 2.805 28.11.2006 12:36
Letzter Beitrag: PrinCe
  Task, physikalische Kanäle, virtuelle Kanäle Biks 2 9.552 29.01.2006 18:23
Letzter Beitrag: Biks

Gehe zu: