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 

Zeitbedarf DAQ Sequenz verringern, Semaphor wirklich notwendig?



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!

13.06.2018, 15:58
Beitrag #1

Philipp841 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 74
Registriert seit: Mar 2018

LV 2015 SP1 32bit
2016
DE

28359
Deutschland
Zeitbedarf DAQ Sequenz verringern, Semaphor wirklich notwendig?
Hallo zusamm´,

beigefügtes VI (Motorcontroller.vi) enthält ein DAQ-Device mit dem u.a. Signale zur Steuerung zweier Motoren ausgegeben werden. Im Hauptprogramm läuft parallel zu dieser (I/O-)Whileschleife noch eine Main-While-Schleife in welcher zur Datenerfassung ebenfalls auf die NI-Karte zugegriffen wird (Allerdings wird in besagter Main nur auf die AI-Channels zugegriffen).

Zwischen den beiden While-Schleifen wurde eine Semaphor-Funktion integriert, die dafür sorgt, dass immer nur eine der beiden Whileschleifen zur Zeit ausgeführt wird, bzw. die eine auf die andere wartet (Vermutlich damit die Karte bzw. das Ausgeben/Einlesen von Signalen nicht durcheinander gerät. Oder wüsste jmd. einen anderen Grund?).

Zur Folge hat dies, dass die Main-While-Schleife hin und wieder auf die I/O-Schelife warten muss; und zwar ganz schön lange. Insgesamt benötigt die I/O-Whileschleife ca. 50ms. Duch eine Zeitmessung der einzelnen Frames kann ich auch sagen, wie sich diese Zeit zusammen setzt.

Frame 1 - 10ms
Frame 2 - 10ms
Frame 3 - 16ms
Frame 4 - 16ms
Frame 5 - wird nicht ausgeführt, da nicht benötigt, Fehler etc... wie auch immer

Nun zu meiner Frage:
Ich habe in der Main-While-Schlife die parallel laufende Datenerfassung bereits so umgebaut, dass selbige kontinuierlich erfolgt, sprich das Erstellen, Konfigurieren, Starten, Stoppen und Schließen des Tasks nicht in jedem Schleifendurchlauf erfolgen muss und somit unnötig Zeit kostet. Ist dies in dem beigefügten VI ebenfalls möglich? Wenn ja, worauf gilt es zu achten?
(Ich habe bedenken, dass die Motoren empfindlich darauf reagieren könnten, wenn die Ausgabe der Ansteuerungssignale kontinuierlich und nicht mehr getaktet erfolgt? Insbesonder im Hinblick auf Positions- und Geschwindigkeitsregelungen etc.)

Gibt es möglicherweise auch noch eine Alternative für mein Ziel, eine gleichbleibend schnelle Datenerfassung hinzubekommen ohne die Ansteuerung der Motoren modifizieren zu müssen?

Und zum Schluss: Wieso wird diese Semaphor-Funktion benötigt, wenn ich bei der Datenerfassung lediglich auf die AIs und zur Ansteuerung der Motoren nur auf die I/Os zugreife?

Vielen Dank,
Philipp


Angehängte Datei(en)
15.0 .vi  Motorcontrol.vi (Größe: 22,85 KB / Downloads: 220)

13.0 .vi  DAQ DO mit Devices.vi (Größe: 34,42 KB / Downloads: 220)

13.0 .vi  DAQ DO1mit Devices.vi (Größe: 34,5 KB / Downloads: 215)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
Antwort schreiben 


Nachrichten in diesem Thema
Zeitbedarf DAQ Sequenz verringern, Semaphor wirklich notwendig? - Philipp841 - 13.06.2018 15:58

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Sequenz Generator erstellen wilson85 4 5.294 13.08.2013 08:34
Letzter Beitrag: GerdW
  Spannungsmessung in Sequenz mit NI USB-6009 MasterWienke 14 13.373 24.06.2011 08:59
Letzter Beitrag: MasterWienke
  Zeitsteuerung mit Flacher Sequenz koler 31 23.209 12.05.2009 09:42
Letzter Beitrag: Lucki

Gehe zu: