Hallo,
also nachdem ja nun die Männlein-Weiblein Frage geklärt ist (gelle? - jetzt sogar mit Avatar, um künftigen Verwechslungen vorzubeugen...)
und der Vorschlag, erst das Problem hier zu posten und mir anschließend eine PM zu senden damit ich's mitbekomme (solange es den Suchagenten noch nicht gibt), wirklich gut ist,
hier nun die fachliche Antwort auf Achims Frage.
Deine Vermutung ist ganz richtig. Das Configuration_Setup.vi definiert alle erforderlichen Parameter, die der Treibersatz später benötigt, so auch die Anzahl und Benamsung der angeschlossenen Achsen. Dadurch brauchst Du Dich um irgendwelche Umrechnungsfaktoren, Steigungen, Counts, Signalpegel usw usf. nicht zu kümmern - Du wählst nur die Verstellernamen für die angeschlossenen Achsen und den ganzen Rest macht das VI alles automatisch. Wenn Du in der Entwicklungsumgebung arbeitest, bleiben diese Informationen erhalten, solange LabVIEW bzw. das Configuration_Setup.vi nicht geschlossen werden. Bei der Exe ist das anders - hier wird ja die Runtime beim Beenden der Exe zurückgesetzt und damit sind auch alle Einstellungen weg. Zudem wird damit bei jedem Neustart der Exe eine neue Instanz der (zumindest im Fall der C-843) darunterliegenden DLL erzeugt, so daß auch hier die entsprechenden Informationen verloren gehen.
Zum Hintergrund der Referenzierung:
Die Referenzierungsprozedur ist notwendig, wenn anschließend absolute Bewegungen (MOV) kommandiert werden sollen, ohne dabei Gefahr zu laufen dabei in den Endschalter zu fahren. Dazu muß LabVIEW wissen, an welcher Position sich die Stage momentan befindet. Die Versteller haben dazu entweder Referenz-, oder Limitschalter. Das Configuration_Setup.vi bestimmt automatisch, ob ein Referenzschalter vorhanden ist und nutzt dann das Kommando REF oder FRF, je nach Version. Ist kein Referenzschalter vorhanden, aber dafür Limitschalter, so kann im Configuration_Setup.vi zusätzlich gewählt werden, ob der "rechte" oder "linke" Limitschalter zur Referenzierung genutzt werden soll (Kommandos NLM/FNL, PLM/FPL). Nach einem dieser Schritte kennt die Software die aktuelle Position des Verstellers und ab da kann die Stage absolut kommandiert werden (MOV). Wie gesagt, wählt das Configuration_Setup automatisch die beste Variante.
Dieser Schritt ist jedoch nur zu Beginn der Applikation erforderlich. Wird LabVIEW jedoch geschlossen (bzw. die EXE beendet), wird die Kommunikation mit der Karte neu aufgebaut und damit ist wie oben schon erwähnt auch die Referenzierungsinformation verloren. Wenn der Versteller jedoch dazwischen nicht aus Versehen (oder, bei senkrecht stehenden Verstellern ohne Bremse, aufgrund seines Eigengewichtes) bewegt wurde, kann die Referenzierung beim nächsten Programmstart ausgeschaltet werden, NICHT jedoch das Configuration_Setup komplett übergangen werden (da sonst wie gesagt die restlichen Informationen wie Achsidentifier, Controllername usw. nicht richtig gesetzt werden).
Das macht man so:
- Man verbindet 2 Arrays an die "RON affected axes" und "Reference Mode" Connectoren des Configuration_Setup.vi. (Rechtsklick auf die jeweiligen Connectoren, Create Constant, Anzahl der gezeigten Elemente auf Anzahl der zu kommandierenden Achsen erhöhen). Im "RON affected axes" array schreibt man die Achsen rein, die nicht neu referenziert werden sollen. Das "Reference Mode" array muß dann die entsprechende Anzahl an Elementen enthalten, die auf FALSE (off) zu schalten sind. Bei diesem Aufruf des Configuration_Setup.vi werden dann diese Achsen nicht referenziert und werden NaN als Positionswert zurückgeben.
Nachteil: nun können diese Achsen nur noch relativ bewegt werden mit MVR. Um trotzdem wieder absolut bewegen zu können, kann anschließend (NACH beendetem Configuration_Setup, dazu einfach die Error in und out Leitungen der VIs verbinden) die Position mit POS.vi auf einen bekannten Wert gesetzt werden. Somit wird der Karte gesagt, wo sich der Versteller momentan befindet - wird dabei ein falscher Wert angegeben, so kann der Versteller anschließend natürlich in den Hard Stop gefahren werden, also Vorsicht mit den angegebenen Werten (Details und Warnungen dazu finden sich im GCS_LabVIEW Manual unter POS.vi und RON.vi).
Die beste und einfachste Lösung ist also: Beim 1. Programmstart referenzieren, dann nach der letzten Bewegung vor dem Beenden des Programmes die aktuelle Position auslesen und in ein File abspeichern, beim nächsten Starten das Configuration_Setup mit wie oben beschrieben ausgeschaltener Referenzierung aufrufen, anschließend Positionswerte aus dem File laden und mit POS.vi setzen. Funktioniert natürlich nur, wenn die Versteller zwischendurch nicht bewegt wurden - in dem Fall muß aber beim nächsten Programmstart sowieso neu referenziert werden.
Ich hoffe, das löst Dein Problem auf einfach umsetzbare Art und Weise. Das Filehandling hast Du ja schon implementiert, jetzt brauchst Du es nur noch wie beschrieben anzupassen.
Bei weiteren Fragen einfach fragen
Viele Grüße,
Gabs
' schrieb:OK...haste recht...ich hab nur nach dem kleinen Icon im Beitrag geguckt...ich dachte "orange" sind männlein und "pink" sind weiblein...aber das ist wohl nur in der User-Übersicht so...