13.03.2025 08:41 | |
Beigetreten: 20.11.2024 Letzter Bes: 13.03.2025 Beiträge: 1 Bewertung:
|
Hallo, ich möchte einen Inkrementalgeber von Heidenhain ERN 1030 mit meiner Steuerung 1500 über die Karte 6ES7 138-6AA01-0BA0 angebunden. an der Motorwelle ist eine leere Spule zum Aufwickeln eines Bandes, das auf eine Spule aufgewickelt ist. Das Band wird über Ablenkrollen auf die leere Spule weitergeleitet. Der Drehgeber ist an einer Ablenkrolle mit 2 cm Durchmesser befestigt. Mit dem möchte ich die gefahrene Strecke in mm messen. Ich habe den Geber wie im Bild konfiguriert. Ich habe Variablen abgefragt um die Werte auszuwerten und in mm umzurechnen. so habe ich die Berechnung implementiert. //UsedTape ist die gefahrene Strecke //RestTape ist die gesamte Bandlänge zu Beginn ist es 30 m //#statActualPosition ist die aktuelle Position des Gebers. Das lese ich permanent aus der Geber aus. IF #bMotorOn THEN // ich berechne,wenn der Motor läft. //calculate the #Circumference OF the "gear". Expression C = PI x Diameter(mm) #Circumference := #Pi * #Diameter; //linear distance = ((actual rotation measurement in degree) / 360 ) x C; in mm #UsedTape := (((#statActualPosition / 360) * #Circumference)); //Note: you have the dynamics in the drive. Acceleration ramp, Desaceleration ramp. #rRestTape := #rRestTape + LREAL_TO_REAL(#UsedTape); #statInitialPosition := #statActualPosition; END_IF; Ich bekomme komische Werte. Die gefahrene Strecke ist nicht mit der berechneten Strecke identisch. Kann mir jemand wweiterhelfen? ------------------------------------------------------------------------------------------ |
Zuletzt bearbeitet von: Moderator_Lan am: 03/13/2025 09:15:08Neue Überschrift nach Splitten |
|
Folgen Sie uns auf