Twincat 3 mit Keyence Laser Messkopf einrichten

Gizzl0r

Level-1
Beiträge
142
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Tag,
ich habe von der Firma Keyence Testweise eine LK-G3001P und zwei Laser Messköpfe LK-G402S erhalten um einige Messungen durchzuführen. Die Messköpfe sind an die Steuerung angebunden und von dort liegen die 2 Analogen Ausgänge an einer 4..20mA Analogeingangskarte der Firma Beckhoff. Die Messköpfe fahren mit einer Achse über eine 10-14 mm starke Platte. Die Messköpfe sollen dabei die tatsächliche stärke der Platten messen.
Ich kriege die Werte auch Analog angezeigt. Die Frage ist nur wie weiter? Wie kann ich z.b. aus diesem Analogwert einen Abstand anzeigen lassen? Gibt es eine Möglichkeit die Auswertung in Twincat einzubinden?

Mit freundlichen Grüßen
Daniel
 
Hallo Daniel,
ch kriege die Werte auch Analog angezeigt. Die Frage ist nur wie weiter? Wie kann ich z.b. aus diesem Analogwert einen Abstand anzeigen lassen? Gibt es eine Möglichkeit die Auswertung in Twincat einzubinden?
das Stichwort das Du suchst ist Skalierung. Du musst den Wert der von der Analogkarte geliefert wird in eine physikalische Größe (z.B. Abstand) in TwinCAT umrechnen. Vielleicht hilft Dir diese FAQ weiter.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,
habe es hinbekommen. Es lag an der fehlenden Konfig Software von Keyence.
Ich wollte jetzt kein zweites Thema aufmachen und hoffe Ihr habt eine Lösung.

Ich habe eine Platte die mit dem Laser Messkopf abgefahren wird. Ich will sobald der Laserkopf eine Erhebung erkennt, anfängt zu "Messen" und nach dem Abfahren der Platte (fallende Flanke) die Messung beendet.
Ich will die Größe der Platte messen. Ich hatte die Überlegung bei einem Wert > 1mm eine Zeit Messung zu starten die solange läuft bis der Lasermesskopf über die Platte gefahren ist. Diesen Wert würde ich dann mit der Achsgeschwindigkeit verrechnen die z.b. 100mm/s fährt um damit die Länge der Platte zu erfassen.
Wie kriege ich aber den Timer aufgebaut der mir nach der Messung den Wert in eine Variable speichert.

Gruß
Daniel
 
Das ist doch eigentlich ganz einfach.
Bei einer steigenden Flanke (Neuer Wert - alter Wert > 1mm oder was auch immer) speicherst Du dir eine Zeit weg und bei der fallenden Flanke ermittelst Du die Differenz der Zeiten nimmst das Ganze mal der Geschwindigkeit, fertig.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe jetzt ein TON der mir die Zeit aufnimmt solange ich eine High Flanke habe. Gibt es eine Möglichkeit das die ET am TON nach Fallender Flanke gespeichert wird?
Gruß
Daniel
 
Ich habe jetzt ein TON der mir die Zeit aufnimmt solange ich eine High Flanke habe. Gibt es eine Möglichkeit das die ET am TON nach Fallender Flanke gespeichert wird?
Du denkst zu umständlich, Du brauchst keinen Timer, sondern lediglich eine Variable vom Typ TIME, diese füllst Du bei steigender Flanke mit der Funktion TIME() und bei der fallenden Flanke errechnest Du mit ABS() die Differenz und multiplizierst das mit der Geschwindigkeit, fertig. Du musst nur auf die Ungenauigkeit aufgrund der Zykluszeit achten.
 
Top hat super geklappt.
Ich will zum vergleich auch noch die Achsposition für eine Berechnung mit beifügen.
Dazu habe ich einen R_trig mit der Bedingung das dieser "1" wird wenn etwas erkannt wird. Dann noch einen R_Trig der erkennt wann der Wert des Laserkopfes wieder auf 0 ist. Beide Aktionen werden mit der Aktuellen Achsposition verknüpft. Mein Problem besteht dabei dass, der R_Trig während der ganzen Zeit "1" ist wo der Messkopf > 0 ist.
Gibt es hier ein Baustein der nur einen Zyklus Aktiv ist?

laserkopf_pou.jpglaserkopf_st.jpg
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
...Mein Problem besteht dabei dass, der R_Trig während der ganzen Zeit "1" ist wo der Messkopf > 0 ist.
Gibt es hier ein Baustein der nur einen Zyklus Aktiv ist?
Dann hast Du irgendwo einen Fehler, R_TRIG ist bei einer steigenden Flanke immer nur für einen Zyklus TRUE. Wo rufst Du denn R_TRIG auf, in einem Programm, einem Funktionsbaustein oder einer Funktion? Letzteres funktioniert nicht und könnte genau das Verhalten zeigen.
 
Hi,
ich weiss nicht warum aber habe die Netzwerke gelöscht und 1:1 so wieder aufgebaut und jetzt läuft es. Danke für die Hilfe :)
 
Zurück
Oben