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:

Digital Out, einzelne Werte ändern



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!

27.05.2015, 14:38
Beitrag #1

tobi45f Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 59
Registriert seit: Feb 2015

11.0
2015
EN


Deutschland
Digital Out, einzelne Werte ändern
Hallo zusammen,
ich befasse mich grade mit meinen Digital Outputs meiner Module.
Bisher habe ich immer den DAQ Assistenten genommen- ihr werdet mich dafür bestimmt steinigen, aber ohne ihn komm ich nur selten ans Ziel Big Grin
Auf jeden Fall ist es beim Assistenten ja so, dass man bei 8 Outputs immer ein Array vorgegeben bekommt, dessen boolsche Werte man ändern kann. Eigentlich will ich aber unabhängig von den 7 anderen Werten einfach nur einem Wert ein True oder False zuweisen. Ich könnte nun ja 8x den Assistenten erzeugen mit je einem Output. Aber das muss doch sicher auch schön gehen, so zu sagen als VI wo ich vorn einfach eingeben kann, welchen Port (0-7) und welchen Zustand (I/0) der Port haben soll.
Ich hab durch die Umwandlungsfunktion was zurechtgefuscht, es funktioniert soweit, aber ob das so der Weg ist- ich bin mir da nicht ganz sicher ;D

Gruß Tobias


Angehängte Datei(en)
11.0 .vi  00_testdaq2.vi (Größe: 79,84 KB / Downloads: 175)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
27.05.2015, 15:57
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Digital Out, einzelne Werte ändern

Akzeptierte Lösung

Ein schneller Umbau deines VI:
   
Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.05.2015, 06:38
Beitrag #3

tobi45f Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 59
Registriert seit: Feb 2015

11.0
2015
EN


Deutschland
RE: Digital Out, einzelne Werte ändern
Hallo Jens,
danke für deine Lösung. Ist zwar keine SubVI an die ich einfach nur weitergebe "Element x auf True", aber ich denke, das hier ist genau so gut Dais

Was mach stutzig macht ist die Sache mit dem String Array wo alle lines drin stehen. Ich hatte das bei mir nur als Notlösung so gemacht. Aber scheinbar muss das so und geht nicht "schöner"?! Welchen Sinn hat die zweite Zeile wo überall Output drin steht? Kann ich dort auch die Beschreibung des Ports reinschreiben, sowas wie Ansteuerung Schütz 1, ... ?

Gruß Tobias
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.05.2015, 07:15 (Dieser Beitrag wurde zuletzt bearbeitet: 28.05.2015 07:31 von Lucki.)
Beitrag #4

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Digital Out, einzelne Werte ändern
(28.05.2015 06:38 )tobi45f schrieb:  Was mach stutzig macht ist die Sache mit dem String Array wo alle lines drin stehen. Ich hatte das bei mir nur als Notlösung so gemacht. Aber scheinbar muss das so und geht nicht "schöner"?!
Ob Notlösung oder nicht, jedenfalls geht es auch anders, und zwar mit einem einfachen String und ohne for-Scheife. Und es gibt sogar eine Funktion, die das Array in den entsprechenden einfachen String konvertiert:
   
Das Array-Format hat allerdings auch seine Berechtigung, z.B. dann, wenn man bei Analog-IN für die Kanäle unterschiedliche Messbereiche definieren will.
Zitat:Welchen Sinn hat die zweite Zeile wo überall Output drin steht? Kann ich dort auch die Beschreibung des Ports reinschreiben, sowas wie Ansteuerung Schütz 1, ... ?
Du meinst wohl zweite Spalte, und das mußt Du dich schon selber fragen. Jens hat doch dieses 2D-Array nur aus Deinem VI kopiert, benutzt diese Spalte aber überhaupt nicht. Vielmehr entfernt er sie als Erstes aus dem Array.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.05.2015, 08:13
Beitrag #5

tobi45f Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 59
Registriert seit: Feb 2015

11.0
2015
EN


Deutschland
RE: Digital Out, einzelne Werte ändern
Ok, dann bleibt das mit dem Array so erhalten.
jau, Spalte. Beim umwandeln hatte der einen String mit dem Digital Output erzeugt und ich hab es einfach wieder dran gemacht. Aber scheinbar ist das nicht weiter von Bedeutung :-)
Danke
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.05.2015, 08:16
Beitrag #6

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Digital Out, einzelne Werte ändern
(28.05.2015 06:38 )tobi45f schrieb:  danke für deine Lösung. Ist zwar keine SubVI an die ich einfach nur weitergebe "Element x auf True", aber ich denke, das hier ist genau so gut Dais
Du hättest gerne ein einzelnes SubVI? Bitte schön:

11.0 .vi  FGV-DO.vi (Größe: 25,38 KB / Downloads: 193)

(28.05.2015 06:38 )tobi45f schrieb:  Was mach stutzig macht ist die Sache mit dem String Array wo alle lines drin stehen. Ich hatte das bei mir nur als Notlösung so gemacht. Aber scheinbar muss das so und geht nicht "schöner"?! Welchen Sinn hat die zweite Zeile wo überall Output drin steht? Kann ich dort auch die Beschreibung des Ports reinschreiben, sowas wie Ansteuerung Schütz 1, ... ?
Die 2. Spalte kommt von dir! Denn Sinn musst du selber wissen. Zwecks String Array: s. Lucki. Dafür spricht auch, dass so schnell und übersichtlich Kanäle hinzugefügt/geändert oder gelöscht werden können.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.05.2015, 10:17 (Dieser Beitrag wurde zuletzt bearbeitet: 28.05.2015 10:22 von tobi45f.)
Beitrag #7

tobi45f Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 59
Registriert seit: Feb 2015

11.0
2015
EN


Deutschland
RE: Digital Out, einzelne Werte ändern
Danke Jens für die VI :-)
Als ich den Assistenten in den Code umgesetzt habe, da hat er mir einen String mit DigitalOutput erzeugt und ich hab das einfach in ein Array gepackt. Aber ok, habs verstanden Big Grin

Womit ich mich grade beschäftige ist der Unterschied von Tasks und Channel. Hier im Forum in einem Thema gab es eine Anmerkung, man solle immer Tasks nutzen und speichern, um Fehlern vorzubeugen.

Ich habe grade also im MAX meine Tasks erstellt, wenn ich das richtig sehe, ist es nichts anderes als es über den DAQ Assistenten zu erstellen, nur mit dem Unterschied, dass ich es als Task immer wieder verwenden kann ohne (im Vergleich gesehen) den Assistenten neu zu erstellen? Habe ich das richtig verstanden? Müssten die Tasks nicht dann auch in meinem Projekt irgendwo auftauchen? Irgendwann hatte ich das zumindest schonmal ungewollt, dass ich im Projekt ein Task hatte...

In deiner ersten VI, Jens, hast du ja einen Task und Channel erstellt. Nun würde ich statt create Task einfach Start Task nehmen und halt den richtigen aussuchen?

Gruß Tobias

edit: ok ich hab es falsch verstanden. Es geht so nicht.. :-(
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.05.2015, 11:15
Beitrag #8

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Digital Out, einzelne Werte ändern
Ein Task ist die Zusammenfassung mehrerer Channels (inkl. möglichen Timing).

Von der Definition von Tasks im MAX halte ich persönlich nicht viel. Das ist viel zu starr und unflexibel. Lieber die Kanalnamen dynamisch zur Laufzeit erstellen, dann gibt es kein Problem, wenn z.B. die DAQ-Hardware oder die Belegung der Kanäle geändert wird.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.06.2015, 10:32
Beitrag #9

tobi45f Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 59
Registriert seit: Feb 2015

11.0
2015
EN


Deutschland
RE: Digital Out, einzelne Werte ändern
Hallo Jens,
ich muss wegen dieser VI nochmal stören.
An sich läuft das Ding wie gewünscht, Danke noch einmal.
Aber jetzt, wo ich die Digital Ins nutze bekomme ich ein Problem.
Das Modul hat 16 Inputs und 16 Outputs. Die einen über Port 0, die anderen Port 1 (falls das einen Unterschied macht, da es sich ja um ein Modul handelt).
Nun verwende ich in der VI eine Hauptschleife, in der meine Temperaturen, Analogwerte und eben die Digital Inputs von dem Modul eingelesen werden.
Über eine Queue gehe ich in eine andere Schleife um laufzeitunabhängig meine Digital Outputs zu schalten.
Nun kommt leider bei den Tasks ein Fehler
"Error 201105 occured at DAQmx Start Task.vi
Task Name _unnamed Task <45>"

Ich weiß nichtmals, warum unnamed und warum 45. Ich habe nur 16 in 16 out und alle haben einen Namen Big Grin

Ich nehme an, dass der Fehler der ist, dass es sich um ein Modul handelt, das an zwei verschiedenen stellen Tasks erstellt und auch beendet. Die Frage ist, kann man überhaupt Input und Output zusammen erstellen?
An sich arbeitet er richtig trotz Fehler. Ich könnte diesen natürlich ignorieren aber richtig machen ist schon schöner Big Grin

Gruß Tobias

PS: das mit den richtigen beenden von den Queues hab ich immernoch nicht verstanden Big Grin also verstanden schon aber ich weiß nicht, wie ich es umsetzten kann


Angehängte Datei(en)
11.0 .vi  01_3_1_erster_Erwärmungslastzyklus.vi (Größe: 82,21 KB / Downloads: 173)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.06.2015, 11:46
Beitrag #10

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Digital Out, einzelne Werte ändern
Wie soll man da was analysieren? Alle subVIs fehlen, keine Infos über die verwendete DAQ-Hardware, und das mit der Queue solltest du besser in dem Thread fragen, in dem es darum ging. Hier versteht das außer mit jetzt keiner...

Zum Taskname - das ist nicht zu verwechseln mit den Kanalnamen. Du kannst z.B. bei DAQmx Create Task einen Namen angeben
   
aber wenn da nichts angeschlossen ist, dann werden so Namen wie "Unnamed-45" erzeugt.

Gruß, Jens

P.S.: Was soll der unkonfigurierte DAQ-Assi in dem VI?

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
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
  Falsche Werte durch paralleles Einlesen digitaler und analoger Werte daxel 13 13.189 20.08.2013 12:03
Letzter Beitrag: daxel
  dateneingabe: werte einer variable nach einem bestimmten Verlauf/Profil ändern alibaba79 1 4.105 20.10.2006 22:04
Letzter Beitrag: A.Berndsen

Gehe zu: