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!
Meine Frage: Arbeitet das VI "System Exec.vi" langsamer als wenn ich den externen Code mit einer dll einbinden würde?
Es geht bei mir dabei um die Ansteuerung eines xy-Tischs. Mein externes Programm führt mir je nach Parameterübergabe einen Schritt aus. Dies wird relativ schnell hintereinander wiederholt um die ganze Fläche systematisch abzufahren.
Im Moment braucht der Tisch für einen Schritt ca. 0,6 Sekunden. Das ist mir eigentlich zu langsam, da der Tisch hardwareseitig schneller sein kann. Ist es möglich dass ich das beschleunigen kann indem ich den Code mit einer dll einbinde? Dazu müsste ich mich aber erst einmal schlau lesen.
Dann vielleicht einfach die Schnittstellengeschwinidkeit erhöhen?
Bitte Beachten:
Die obenstehenden Texteile können unter Umständen Sarkasmus und Ironie enthalten, für nicht erkannten Sarkasmus oder nicht erkannte Ironie wird keine Haftung übernommen.
N.B.: "Multiple exclamation marks, " he went on, shaking his head, "are a sure sign of a deseased mind." - Terry Pratchett
' schrieb:Meine Frage: Arbeitet das VI "System Exec.vi" langsamer als wenn ich den externen Code mit einer dll einbinden würde?
Davon gehe ich aus.
SystemExec startet ein Programm auf Betriebssystemebene. Da ist aber einiger Overhead dabei. Mindestens der wird beim Aufruf durch eine DLL gespart. Außerdem wird in deiner per SystemExec aufgerufenen EXE bestimmt eine Schnittstelle (z.B RS232) initialisiert und beendet. Dieses Initailisieren und Beenden kann man mit der DLL-Methode optimieren. DLL sollte also auf jeden Fall schneller sein.
Am schnellsten wäre aber die Integration in LV direkt.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Vielen Dank für eure Antworten.
Der Tisch wird über RS232 gesteuert. Aber das C-Programm hat mir ein Kollege geschrieben, sodass ich zwar die Schnittstelle kenne aber nicht die Implementierung.
Erscheint mir logisch dass systemexec langsamer ist. werde mich jetzt wohl in die dlls einarbeiten und es damit versuchen.
Wenn dem so ist, dann kannst du die Kommunikation mit dem Tisch-Controller selber in LV programmieren. Dazu brauchst du nur die Befehlssyntax, die du dann selber per VISA-VI's an den Tisch schicken kannst.
MfG, 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!