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 

Ausführungszeit DAQmx Task zu lang



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!

18.04.2013, 15:54 (Dieser Beitrag wurde zuletzt bearbeitet: 18.04.2013 15:55 von Kiesch.)
Beitrag #1

Kiesch Offline
LVF-Stammgast
***


Beiträge: 412
Registriert seit: Mar 2009

2019, 2018, 2016
2009
DE

04519
Deutschland
Ausführungszeit DAQmx Task zu lang
Hallo,

ich benutze ein USB 6501 um verschiedene Schrittmotoren anzusteuern. Das sieht dann vom Grundsatz etwa so aus (sieht noch bisschen wild aus da ich noch am testen bin wie es am besten geht - spiele damit noch ein wenig rum bevors endgültig umgesetzt wird; das VI ist also entsprechend noch nicht perfekt; ja mir ist bewusst, dass ich die Sequenz auch rausnehmen kann - die war ursprünglich drin weil ich dachte ich brauche ne Verzögerung zwischen High und wieder Low setzen):

   

Das ganze funktioniert soweit auch (es bewegt sich wie es soll; das ganze läuft über eine Steuerkarte der ich letztlich lediglich eine steigende Flanke reingeben muss über den Takteingang) und so lange ich den Rot umkreisten Teil auf deaktiviert setze auch mit einem ausreichenden Takt von 500Hz (ergo 2ms pro Schleifendurchlauf). Der würde mir ausreichen, auch wenn 1kHz schöner wäre. Nehme ich allerdings das Rot markierte auf aktiviert (Endschalterstatus lesen), dann wird mein Programm plötzlich auf ~ 10-15ms pro Schleifendurchlauf eingebremst, was ich nicht so ganz verstehe (ich würde erwarten, dass das genauso schnell liest wie schreibt).
Hat jemand eine Idee woran das liegen könnte? Oder ist das tatsächlich so Gottgegeben und ich muss mich damit abfinden? (im schlimmsten Fall habe ich schon nen Workaround dafür; macht das Kalibrieren der Endschalterposition etwas umständlicher und langwieriger)


Was ich persönlich beitragen kann: Ich hatte ich ursprünglich den Eindruck, dass auch die unteren zwei SchreibVIs genauso langsam waren bevor ich dann mal Testweise einen Signalverlauf habe ausgeben lassen bei dem ich ein dt von 1ms eingestellt hatte (einfach nen Rechtecksignal aus false - true - false - ... im Wechsel) und das lief dann auch entsprechend schnell genug. Anschließend liefen die dann auch im "Einzelner Wert" Modus auch mit ziemlich genau 1ms Takt pro Ausführung (besagte 500Hz). Ich habe daraus geschlossen, dass man in irgendeiner Form einen Hardwaretakt einstellen kann (was ich offenbar durch die 1ms dt gemacht habe), aber ich habe keine Ahnung wo das geht.
Wie aber schon gesagt: Ich bin mir nicht sicher ob es wirklich daran lag. Allerdings habe ich gerade noch einen kleinen Plausibilitätstest gemacht, indem ich das Fahrrichtung setzen (man kann den Task auch im Bild erkennen "Richtung_Motor_Z" ) auch mit in die Schleife gepackt habe. Obwohl der dabei eigentlich parralel ausgeführt werden sollte, ergibt sich für 1000 durchläufe plötzlich 95XXms statt 200X *also knapp 5 fache Ausführungszeit*. Was für mich eindeutig dafür spricht, dass man dabei irgendwas für die schnellere konfigurieren muss, allerdings kann ich absolut nicht finden wo. Weder im MAX habe ich eine geeignete Option gefunden, noch in den für die Tasks nutzbaren Eigenschaftsknoten.

Wenn jemand ne Idee hat woran das liegen kann und wie ich das schneller kriege immer raus damit. Wie gesagt: Die 500Hz kann ich verstehen. Offenbar braucht das aus irgendeinem Grund hardcoded eine ms pro Schreiboperation (vorher hab ich das ganze über den Parralel Port angesteuert, da gab es eine solche Beschränkung nicht). Zumindest konnte ich auch mit dem Signalverlauf keine schnellere Ausführung erzielen.

Falls es außerdem eine Möglichkeit gibt das Schreiben / Lesen ASAP ausführen zu lassen, wäre ich davon auch begeistert (da man dann auch an die 1kHz rankommen könnte, was das Verfahren der Motoren natürlich nochmal um nen Faktor 2 schneller machen würde und auch so ziemlich die physikalische Grenze der Motorgeschwindigkeit darstellt.

Gruß Kiesch

Zitat:Märchen und Geschichten werden erzählt am Lagerfeuer, technischen Fakten werden mitgeteilt (oder so). (Genauso wie Software nicht auf einem Server "herumliegt", die ist dort installiert.)
*Zitat: IchSelbst*
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30
Antwort schreiben 


Nachrichten in diesem Thema
Ausführungszeit DAQmx Task zu lang - Kiesch - 18.04.2013 15:54

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Probleme mit RPM Messung -> DAQmx task Redsheep 0 3.679 16.04.2014 15:20
Letzter Beitrag: Redsheep
  DAQmx Encoder Task nur einmal bei Z-Tic auf Null setzen cb 6 7.055 10.03.2014 14:49
Letzter Beitrag: cb
  Interrupt a Triggered DAQmx Task bundesschranzminister 1 3.479 11.11.2013 10:10
Letzter Beitrag: bundesschranzminister
  DO-Signal liegt nicht lang genug an cRio 4 4.639 12.12.2011 22:13
Letzter Beitrag: GerdW
  Create 2 Task, Fehler nach Start Task Martin Heller 1 4.912 09.09.2011 14:26
Letzter Beitrag: illuminus
  Unterschied DAQmx clear & stop Task gottfried 4 6.599 02.08.2011 08:48
Letzter Beitrag: gottfried

Gehe zu: