TIA Messwert auslesen

Loivii

Level-2
Beiträge
8
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe folgendes Problem:

Ich habe eine Servo-Achse (Schneider) die von einem bestimmten Startpunkt zu einem bestimmten Endpunkt fährt.
Die aktuelle Position der Achse wird ständig aus dem Servomotorleistungsteil mittels Profinet ausgelesen.

Während die Achse fährt soll ein Sensor den Abstand zum Werkstück messen.
Den Messwert des Sensors wird auch über Profinet ausgelesen und soll jedoch nicht ständig sondern nur alle 10mm ausgelsen werden bis die Achse den Endpunkt erreicht.

Programmiert wird das ganze in TIA Portal V16 die verwendete CPU ist eine 1515-2 PN.

Hat hier jemand eine Idee wie ich dies umsetzten kann?
 
Den Messwert des Sensors wird auch über Profinet ausgelesen und soll jedoch nicht ständig sondern nur alle 10mm ausgelsen werden bis die Achse den Endpunkt erreicht.
Wozu auch immer das gut sein soll.

1. Die Achse steht, du kennst die aktuelle Position.
2. Zielposition > aktuelle Position + 10 mm ? --> Flanke --> Triggerpunkt für Messwert lesen = aktuelle Position + 10mm , wenn Zielposition < aktuelle Position + 10 mm --> Flanke --> Triggerpunkt für Messwert lesen = Zielposition
3. Achse Starten
4. Triggerpunkt >= aktuelle Position --> Messwert auslesen
5. Zielposition > aktuelle Position + 10 mm ? --> Flanke --> Triggerpunkt für Messwert lesen = aktuelle Position + 10mm , wenn Zielposition ist < aktuelle Position + 10 mm --> Flanke --> Triggerpunkt für Messwert lesen = Zielposition
6. Triggerpunkt >= aktuelle Position --> Messwert auslesen
7. Sprung zu 5., wenn Zielposition noch nicht erreicht
8. Achse stoppt in Zielpos

PS: von 3 bis 8 bewegt sich die Achse kontinuierlich.
Bei8 jedem Triggerpunkt wird die Messung ausgeführt und gespeichert und der nächste Triggerpunkt berechnet.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Mit welcher Geschwindigkeit wird denn die Achse bewegt?
Wie schnell können die Messwerte von deinem Sensor ausgewertet werden? (Ultraschall z.B. sind sehr langsam)
Soll die Achse dauerhaft fahren bis der Endpunkt erreicht ist (inkl. den Messungen) oder immer die 10mm Verfahrschritte machen?

Wieso nicht einmal zum Start messen, Achse positionieren (vielleicht Position - Toleranz) und dann evlt. nochmal zum Schluss messen und korrigieren? Ist der Endpunkt ständig in Bewegung?

-chris
 
Danke erstmal für die schnellen Antworten.

Vielleicht habe ich das gestern zu ungenau erklärt.

Die X-Achse fährt kontinuierlich vom Startpunkt bis zum Endpunkt. (Verfahrweg ca.900mm)
Die Geschwindigkeit hierbei ist nicht sehr schnell. Eine Fahrt dauert ca. 2min.

Während die X-Achse fährt soll die Y-Achse den Abstand zum Werkstück halten da an ihr ein Induktor befestigt ist und der Koppelabstand zwischen 3-5mm gehalten werden soll. Wie auf dem Bild zu sehen ist das Werkstück leider nicht komlpett gerade sondern durchgebogen. (auf die gesamte Länge ca. 10-15mm)

Das Problem hierbei ist der Sensor ist voreilend sprich die Y-Achse darf erst reagieren wenn der X-Achse die Position erreicht an dem gemessen wurde.

Bei den 10mm habe ich mich leider verschrieben ich meinte 1mm. Die Idee dahinter währe geswesen 10 Werte einzulesen und daraus einen Mittelwert zu errechnen da die Oberfläche des Werkstücks nicht glatt sondern rau ist und es dadurch vorkommen kann das ein Messwert stark aus der Reihe fällt und die Y-Achse dadurch zu tief fahren würde.
 

Anhänge

  • Bild.jpg
    Bild.jpg
    195,9 KB · Aufrufe: 21
Na ja, das ist eigentlich immernoch so, wie ich das oben beschrieben habe, nur mit 1mm statt mit 10mm.
Wenn die X-Achse startet, errechnest du mit einer Flanke den nächsten Triggerpunkt. Einn Vergleicher mit anschließender Flanke teilt dir mit, dass die X-Axhse den nächsten Triggerpunkt überschritten hat. Du speicherst deinen Messwert, errrechnest den nächsten Triggerpunkt und schreibst ihn in die Variable für den Vergleicher, Wenn der Vergleicher wieder triggert, das Ganze von vorn.
Innerhalb der Flanke des Vergleiches, kannst du einen Zahler hochzähen, ein Array befüllen, einen Mittelwert bilden usw.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Vom Prinzip her ist es weiter so wie Ralle es oben beschrieben hat. Du kennst die Position der Achse X zum Zeitpunkt der Messung, die beiden Werte schreibst du dir weg und wenn die X-Achse den Punkt der Messung erreicht kannst du die Y-Achse positionieren.
Bei dem Aufbau wirst du aber auch noch andere Probleme bekommen. Wie erfolgt denn deine Messung?. Ich weiß ja jetzt nichts über eure Anwendung aber im Bereich des Induktors ist immer mit Qualm zu rechnen, was bei optischer Erkennung Probleme bereiten kann. Ja nachdem welche Leistung und Frequenz ihr habt, könnte auch der Messkopf ziemlich gestört werden. Zu beachten wäre auch, dass sich das Werkstück bei der Erwärmung zusätzlich verformen kann.

Edit: Ralle war schneller
 
Na ja, das ist eigentlich immernoch so, wie ich das oben beschrieben habe, nur mit 1mm statt mit 10mm.
Wenn die X-Achse startet, errechnest du mit einer Flanke den nächsten Triggerpunkt. Einn Vergleicher mit anschließender Flanke teilt dir mit, dass die X-Axhse den nächsten Triggerpunkt überschritten hat. Du speicherst deinen Messwert, errrechnest den nächsten Triggerpunkt und schreibst ihn in die Variable für den Vergleicher, Wenn der Vergleicher wieder triggert, das Ganze von vorn.
Innerhalb der Flanke des Vergleiches, kannst du einen Zahler hochzähen, ein Array befüllen, einen Mittelwert bilden usw

Ich werde es mal so versuchen umzusetzten wie du es geschrieben hast.

Herzlichen Dank für die Hilfe.
 
Vom Prinzip her ist es weiter so wie Ralle es oben beschrieben hat. Du kennst die Position der Achse X zum Zeitpunkt der Messung, die beiden Werte schreibst du dir weg und wenn die X-Achse den Punkt der Messung erreicht kannst du die Y-Achse positionieren.
Bei dem Aufbau wirst du aber auch noch andere Probleme bekommen. Wie erfolgt denn deine Messung?. Ich weiß ja jetzt nichts über eure Anwendung aber im Bereich des Induktors ist immer mit Qualm zu rechnen, was bei optischer Erkennung Probleme bereiten kann. Ja nachdem welche Leistung und Frequenz ihr habt, könnte auch der Messkopf ziemlich gestört werden. Zu beachten wäre auch, dass sich das Werkstück bei der Erwärmung zusätzlich verformen kann.

Edit: Ralle war schneller
Danke auch dir für deine Unterstützung.

Die Messung erfolgt mittels konfokalen Wegmesssensors (Keyence CL-3000)
Ich rechne auch mit einer Qualm-Entwicklung deswegn wird im Bereich des Induktor die Luft von einer Absaugung abgesaugt - sollte somit die Messung nicht beeinflussen.

Meine Befürchtung ist auch das sich das Werkstück aufgrund der Wärmeentwicklung zusätzlich verformen wird.
Genau kann ich das dann erst sagen wenn wir den 1.Versuch machen.

Wie bei Ralle oben schon geschrieben werde ich mal versuchen es so umzusetzten.
 
Zurück
Oben