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 

DAQ - Task und Kanal Synchronisierung



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!

10.10.2012, 06:45
Beitrag #1

pandamir Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Sep 2012

2012
2008
DE



Question DAQ - Task und Kanal Synchronisierung
Hallo und Guten Morgen zusammen,

bei einem Projekt komme ich derzeit nicht weiter und möchte euch hier im Forum um ein klein wenig Hilfe bitten. Zuerst eine teilweise Auflistung der Hardware und eine kurze Beschreibung meines Vorhabens.

Hardware:
- mehrere NI-9188 Chassis
- pro Chassis verschiedene Module wie z.B. NI-9213 (Thermoelemente), NI-9203 (AI), NI-9265 (AO), NI-9422 (DI), NI-9472 (DO)

Vorhaben:
Mit der Hardware soll zum einen eine Messdatenaufnahme in einem Prüfstand und zum anderen auch eine Ansteuerung von Ventilen und Massenstromreglern für die Steuerung des Prüfstandes erfolgen. Das spätere Bedien- und Aufzeichnungsprogramm soll auf einem PC laufen und durch eine Person bedient werden. Wichtig hierbei ist die zeitlich exakte Synchronisierung der jeweiligen Kanäle der AO/AI/DO/DI und Thermoelement-Module untereinander. Das ganze wird dann noch in einer TDMS Datei gespeichert.

Was funktioniert:
Die einzelnen Module auszulesen und anzusteuern funktioniert einwandfrei. Entweder einzeln oder alle Kanäle der AI-Module in einem Task zusammengefasst. Letzteres bietet mir schon eine exakte zeitliche Synchronisierung aller Kanäle verschiedener AI-Module in einem einzelnen Chassis.

Mein(e) Problem(e):
Wie funkioniert eine Synchronisierung einzelner Tasks? Wenn ich pro Thermoelement Modul (insgesamt 2 Stück in einem Chassis) je einen Task erstelle, wie kann man diese dann synchron auslesen? Gleiches gilt für die Kombination mit den anderen AI/AO/DI/AO Modulen. Die Beispiele funktionieren leider nicht ganz so wie ich es mir erhofft hatte.

Wie bekommt man eine Synchronisierung von Modulen in zwei verschiedenen Chassis hin? Fehlt mir hier die Synchronisierungskarte NI-9469? Davon gehe ich mal aus.

Ausprobiert habe ich diese beiden Links:
http://www.ni.com/white-paper/11549/de
http://www.ni.com/white-paper/4322/en

Inkl. den Beispielen in Labview 2012 und den Beispielen aus dem letzten Link. Bei der Triggerung kommt jedesmal eine Fehlermeldung (habe ich gerade nicht parat, kommt noch).

Ich werde nachher noch das VI hochladen.

Danke im Voraus an diejenigen die mir hier weiterhelfen können. Wenn etwas unverständlich ist oder euch Informationen fehlen bitte ich genauso um Rückmeldung wie bei allen hilfreichen Tipps. Vielleicht hat schon jemand etwas ähnliches aufgebaut.

Grüße
pandamir
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.10.2012, 08:12
Beitrag #2

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
RE: DAQ - Task und Kanal Synchronisierung
Musst du wirklich absolut synchron (aka "simultan") abtasten? Mal abgesehen davon, dass das bei Temperaturwerten ja eh nicht allzu sinnvoll ist, wirst du mit deinen Modulen da kein Glück haben...die haben ja alle vor dem DAC eine MUX!

Um einzelne Tasks synchron zu starten, musst du sie einzeln für "Triggerung" konfigurieren und starten, dann aber durch eine gemeinsame Triggerleitung, ähm, triggern...die beiden von dir verlinkten Dokumente zeigen genau wie's geht!

Welches Problem hast du konkret?

A.

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.10.2012, 08:36
Beitrag #3

pandamir Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Sep 2012

2012
2008
DE



RE: DAQ - Task und Kanal Synchronisierung
Danke für die Antwort.

Also so wahnsinnig synchron muss es nicht sein. Insbesondere bei Temperaturwerten, wie du schon geschrieben hast, wird es kritisch. Die Module haben 16 Eingänge für die TE und so schnell lesen die auch nicht aus.

Konkret möchte ich alle 100ms für jeden Kanal bei jedem Modul einen Wert aufnehmen (mit dem Problem das die TE eben diesen Versatz pro Kanal haben).

Wenn ich nun einen Task für Modul 1 á 16 Thermoelement Kanälen erstelle und für Modul 2 (im gleichen Chassis) ebenfalls einen Task mit 16 Thermoelement Kanälen und diese auslese habe ich für jeden Task einen unterschiedlichen Zeitstempel.

Ich möchte aber beide Module zeitgleich auslesen.

Die im Link dargestellten Beispiele habe ich nachgebaut, leider funktionieren sie nicht. Ich werde heute nachmittag das VI hochladen. Evtl. übersehe ich einfach etwas.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.10.2012, 10:09
Beitrag #4

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
RE: DAQ - Task und Kanal Synchronisierung
(10.10.2012 08:36 )pandamir schrieb:  Wenn ich nun einen Task für Modul 1 á 16 Thermoelement Kanälen erstelle und für Modul 2 (im gleichen Chassis) ebenfalls einen Task mit 16 Thermoelement Kanälen und diese auslese habe ich für jeden Task einen unterschiedlichen Zeitstempel.

Ich möchte aber beide Module zeitgleich auslesen.

Warum packst du die Module nicht in den gleichen Task? Bei nem simulierten System funktioniert das jedenfalls Modulübergreifend...
   

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.10.2012, 10:28
Beitrag #5

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
RE: DAQ - Task und Kanal Synchronisierung
(10.10.2012 06:45 )pandamir schrieb:  Wie bekommt man eine Synchronisierung von Modulen in zwei verschiedenen Chassis hin? Fehlt mir hier die Synchronisierungskarte NI-9469? Davon gehe ich mal aus.
Ja, und zwar in jedem deiner Chassis!

Aber dran denken: Du wirst auch dann immer noch einen Zeitversatz zwischen den einzelnen Messkanälen haben...

A.

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.10.2012, 10:31
Beitrag #6

pandamir Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Sep 2012

2012
2008
DE



RE: DAQ - Task und Kanal Synchronisierung
(10.10.2012 10:09 )Achim schrieb:  
(10.10.2012 08:36 )pandamir schrieb:  Wenn ich nun einen Task für Modul 1 á 16 Thermoelement Kanälen erstelle und für Modul 2 (im gleichen Chassis) ebenfalls einen Task mit 16 Thermoelement Kanälen und diese auslese habe ich für jeden Task einen unterschiedlichen Zeitstempel.

Ich möchte aber beide Module zeitgleich auslesen.

Warum packst du die Module nicht in den gleichen Task? Bei nem simulierten System funktioniert das jedenfalls Modulübergreifend...

Hi,

das hab ich auch schon gemacht und funktioniert einwandfrei. Wie schaffe ich es aber, wenn ich z.B. Analogausgänge mit Analogeingängen synchron haben möchte? Die kann ich nicht in den gleichen Task packen.

Wenn ich von meinem Projekt her eben für jedes Modul einen Task haben möchte (egal ob das nun Sinn macht oder nicht), sollte es dennoch machbar sein diese auf irgendeine Art und Weise zu synchronisieren bzw. die beiden Tasks gleichzeitig zu starten. Aktuell startet der eine etwas zeitverzögert 8oder läuft nicht mit dem anderen synchron) und gibt mir in Folge dessen eben auch die Werte mit einem anderen Zeitstempel aus.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
10.10.2012, 10:44
Beitrag #7

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
RE: DAQ - Task und Kanal Synchronisierung
Du kannst nur absolut synchron starten (durch nen gemeinsamen Trigger), aber da wird sich über kurz oder lang ein Zeitversatz ergeben...weil da unterschiedliche Hardware (n verschiedene Module) sich gemeinsame Ressourcen (Chassis) teilen!

Mit nem separaten gemeinsamen Takt (extern oder per internem Counter erzeugt), wird es wohl gehen...

http://digital.ni.com/public.nsf/allkb/8...1E006D3BBA
http://zone.ni.com/devzone/cda/epd/p/id/5197

Das ganze ist nicht so trivial, ich kann dir aber jetzt nicht konkret weiterhelfen...dass müsste ich mit HW testen, die ich nicht habe!

A.

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.10.2012, 10:45
Beitrag #8

pandamir Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Sep 2012

2012
2008
DE



RE: DAQ - Task und Kanal Synchronisierung
(10.10.2012 10:28 )Achim schrieb:  
(10.10.2012 06:45 )pandamir schrieb:  Wie bekommt man eine Synchronisierung von Modulen in zwei verschiedenen Chassis hin? Fehlt mir hier die Synchronisierungskarte NI-9469? Davon gehe ich mal aus.
Ja, und zwar in jedem deiner Chassis!

Aber dran denken: Du wirst auch dann immer noch einen Zeitversatz zwischen den einzelnen Messkanälen haben...

A.

Hat mir der Herr von NI auch gerade erklärt Big Grin

Ich denke ich werde mir was ganz anderes überlegen müssen.

Ursprünglich wollte ich zu einem Zeitpunkt x alle an den Modulen anstehenden Werte bei allen Chassis anzeigen lassen und speichern. Auf die Kanäle heruntergebrochen geht das wegen den Multiplexern nicht, wäre aber auch zu verschmerzen. Also allen Modulen einen einzigen Zeitstempel verpassen.

Gleiches bei den AO und DO Modulen. Ich sende einen AO-Wert bei 11:50,236 los und durch die Taktung auf eine bestimmte Zeit (z.B. Start bei 11:00,000) mit einem bestimmten dt (z.B. 100ms) wäre dieser erst um 11:50,300 gesendet (an meine an die AO-Module angeschlossene Hardware) geworden.

Aber jedes der von mir erwähnten AI/AO/DI/DO-Module und auch die TE-Module haben ihren eigenen Taktgeber (so habe ich das zumindest verstanden). Packe ich alle Module in einem Chassis in einen Task ist das kein Problem. Mache ich aber für jedes Modul einen eigenen Task auf bekomme ich das nicht mehr hin diese in einem VI zu synchronisieren.

Wie es aussieht komme ich nicht drum herum, alle AI/DI Module in einem Chassis in einen Task zu packen und die AO/DO Werte mit einem eigenen Zeitstempel zu versehen oder programmiertechnisch das Senden der Werte an die AO/DO Module nur zu einem bestimmten Zeitpunkt zu zu lassen.

Morgen mal ein wenig herumprobieren Smile trotzdem Danke für die Antworten.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.10.2012, 11:31
Beitrag #9

pandamir Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Sep 2012

2012
2008
DE



RE: DAQ - Task und Kanal Synchronisierung
(10.10.2012 10:44 )Achim schrieb:  Du kannst nur absolut synchron starten (durch nen gemeinsamen Trigger), aber da wird sich über kurz oder lang ein Zeitversatz ergeben...weil da unterschiedliche Hardware (n verschiedene Module) sich gemeinsame Ressourcen (Chassis) teilen!

Mit nem separaten gemeinsamen Takt (extern oder per internem Counter erzeugt), wird es wohl gehen...

http://digital.ni.com/public.nsf/allkb/8...1E006D3BBA
http://zone.ni.com/devzone/cda/epd/p/id/5197

Das ganze ist nicht so trivial, ich kann dir aber jetzt nicht konkret weiterhelfen...dass müsste ich mit HW testen, die ich nicht habe!

A.

Damit habe ich es auch schon probiert. Aber ich fürchte meine Hardware unterstützt diese Art der Triggerung / Synchronisierung nicht. Geht nur mit speziellen Modulen, soweit ich das verstanden habe.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.08.2013, 12:25 (Dieser Beitrag wurde zuletzt bearbeitet: 16.08.2013 12:29 von Spoony.)
Beitrag #10

Spoony Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Aug 2013

12
2011
DE_EN



RE: DAQ - Task und Kanal Synchronisierung
Hallo Forum ,
nach langem suchen habe ich mich entschlossen mein Anliegen in diesem thread publik zu machen.

Ich benutze ein NI-cDAQ 9174. In diesem Element stecken drei unterschiedliche Messgarten.
Es handelt sich dabei zum einen um eine NI 9205 welche Analoge Signale aufnimmt, wie Temperatur Windgeschwindigkeit etc.
Messgarte zwei ist eine NI9203 welche ausschließlich Paramter des Windes aufnimmt, ebenfalls Analog.
Bei der dirtten und letzten Messkarte handelt es sich um eine Digitalemessgarte und zwar um eine NI 9421.

Nach mehrfachen Kontakt mit dem Support von National Instruments, der uns mehrfach bestätigt hat, dass es mit Hilfe des NI cDAQ 9174 möglich sein sollte diese drei Messkarten Hardwareseitig zu takten.Das heist das das Problem welches ich habe anscheind Softwareseitig ist.

Die lezte Messkarte soll mit Hilfe eines Drehzahlsensors die Drehzahl einer Windturbine aufnehmen. Dafür verwende ich eine Counterfunktion, was dem VI entnommen werden kann.Da nicht immer Wind vorhanden ist steht die Windturbine entsprechened bei Windsille. Dennoch sollen alle anderen gewünschten Paramter weiterhin aufgezeichnet werden.

Nun meine Frage wieso Funktioniert die Taktung der drei Messkarten nicht und wer kann mir weiter helfen?
Ich habe das VI so aufgebaut, wie es auf mehrern Natinonal Instrumentsseiten zu sehen ist, die sich ebenfalls mit Synchronisation befassen.

Ich bedanke mich bereits im Vorraus bei euch für eure Hilfe.
Mit freundlichen Grüßen
Spoony
Im Anhang befindet sich das SubVi das in dem Hauptprogramm die synchrone Datenaufnahme gewährleisten soll.

Der Fehlercode der auftritt lautet wie folgt:

Possible reason(s):

An attempt has been made to perform a route when the source and the destination are the same terminal.

In many cases, such as when configuring an external clock or a counter source, you must select a PFI, PXI Trigger, or RTSI line as the source terminal.

Property: Start.DigEdge.Src
Property: Start.DigEdge.Edge
Source Device: cDAQ1
Source Terminal: ai/StartTrigger

Task Name: _unnamedTask<214>


Angehängte Datei(en)
12.0 .vi  Init_test.vi (Größe: 37,24 KB / Downloads: 401)
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
  Synchronisierung von Analogen Signalen mit digitalem Encoder Benj1man 8 6.334 12.05.2020 10:38
Letzter Beitrag: Benj1man
  DAQ Kanal erzeugen jodh14 11 8.739 21.03.2018 15:37
Letzter Beitrag: jodh14
  Output Input Synchronisierung MatzeK95 4 7.448 15.04.2016 15:15
Letzter Beitrag: MatzeK95
  Task, Kanal und Physikalische Namen Nordvestlys 1 6.429 11.02.2015 15:50
Letzter Beitrag: Nordvestlys
  Pro Kanal einen Task moeglich ? cDAQ 9171 mit NI 9237 Wurzelsepp 6 6.660 11.03.2014 16:38
Letzter Beitrag: Wurzelsepp
  DAQmx - Kanal 2 Abtastrate abhängig von Kanal 1 DerJohannes 6 7.105 29.08.2013 17:50
Letzter Beitrag: DerJohannes

Gehe zu: