RE: Ausführungszeit DAQmx Task zu lang
GNA. Ich könnte mich in den Hintern beissen. Es scheint daran zu liegen, dass man den Task vorher starten muss (hatte gedacht, dass das nix bringt weil ich zwischenzeitlich mal beim Anschließenden stoppen des Tasks ne Fehlermeldung gekriegt hatte und das natürlich auch nicht bei allen gemacht hatte ursprünglich *gna*
Also: Vorgehensweise - Task erst starten, dann läuft der zumindest deutlich schneller.
Praktisch gesehen: Die unteren zwei Schreibvorgänge in der Sequenz sind innerhalb von Gesamt ca. 2ms ausgeführt, setze ich parrallel noch das schreiben der Richtung rein ändert sich nix (nehme mal an das braucht dann auch ~3ms), setze ich das lesen mit rein braucht die Schleife ~3,5ms pro Durchlauf (aus irgendeinem Grund wird das also durch das Lesen langsamer als vorher). Lesen alleine braucht 1ms pro Vorgang.
Zusammengefasst: Offenbar wird Hardwareseitig jede ms eine Operation durchgeführt. Diese kann entweder Lesen oder Schreiben sein. Entsprechend können mehrere Lesevorgänge auch gleichzeitig durchgeführt werden, während ein selbst wenn parrallel gesetztes Lesen intern sequentiell verarbeitet wird. Man sollte daher wohl auch auf das Timing achten und das Lesen am besten selbst in eine definierte Sequenz einordnen.
Warum allerdings jede Operation eine ms dauert erschließt sich mir nicht. Eventuell ein Hardwaretakt des USB 6501 der da dahintersteckt?
@Gerd
Ja hatte mich auch schon mit den Specs beschäftigt und da auch nix gefunden. Hatte deswegen vermutet, dass das Setzen der Kanäle ASAP passiert (ergo das VI so schnell ausgeführt wird wie möglich) und man jegliche weiteren Timings die man haben will / erwartet Softwareseitig erzwingen muss (durch entsprechende Verzögerung zwischen Setzvorgängen).
Aber wie gesagt, mittlerweile habe ich zumindest raus wie ich zumindest das 1ms Softwaretiming pro schreiben / lesen erreiche (ich hab mich da aber auch doof angestellt....). Das reicht mir ja grundsätzlich schonmal, auch wenn die Motoren natürlich noch mehr könnten.
Muss mal kucken ob ich da demnächst auch nochmal NI drauf anhaue ob das noch irgendwie schneller geht. Trotzdem danke :-)
Achja, falls noch jemand Tipps hat, oder weis das es tatsächlich nicht schneller geht aus irgendeinem mir nicht verständlichen Grund (man sieht in den VIs nirgends, dass ein Timing erzwungen wird, allerdings liegt die eigentliche Ansteuerung versteckt in einem C Programm und da drin wäre es vermutlich am sinnvollsten Timings zu erzwingen wenn man das will (wobei mir ehrlich nicht klar ist warum NI das will).
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*
|