TIA Servomotor im Stillstand manuell bewegen

_chris_

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


ich hoffe ich bin hier im richtigen Unterforum und ihr könnt mir bei meinem Problem etwas auf die Sprünge helfen.


Ich habe eine S7-1212C DC/DC/DC, einen V90 mit 1FL6 Servomotor + Inkrementalgeber und das Ganze an TIA V16.

Hier möchte ich den Motor von der 1212C ansteuern und um den eingegebenen Winkel drehen lassen. Wenn der geforderte Winkel erreicht ist, soll der Motor stehen bleiben. Soweit ja kein Problem. Das funktioniert mit dem Technologieobjekt Positionierachse.

Jetzt möchte ich aber, dass der Motor in diesem Zustand eine geringe Strecke (so 5-10°) "von Hand" gedreht werden kann. Wenn ich z.B. an der Last die bewegt wird ziehe oder schiebe.


Leider habe ich über die Suche und Google noch nichts passendes finden können.

Hat jemand eine Idee, wie das am besten funktionieren kann?


Vielen Dank und Gruß

Chris
 
wenn der Antrieb keine Freigabe hat sollte es doch egal sein wenn die/der Achse/Geber bewegt wird.
mit der Hand an die Last ohne STO ist das Safety konform
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das funktioniert ohne Probleme solange die Mechanik nicht selbsthemmend ist. Einfach Antrieb nach STO schalten (Freigabe weg elektrisch plus Software), Bremse öffnen falls vorhanden und drehen.
 
Jetzt möchte ich aber, dass der Motor in diesem Zustand eine geringe Strecke (so 5-10°) "von Hand" gedreht werden kann. Wenn ich z.B. an der Last die bewegt wird ziehe oder schiebe.
Was soll denn passieren wenn der Motor mehr als deine 5-10° bewegt wird? Soll dann eine Bremse zumachen?
Wie sich der Motor von Hand bewegen lässt, siehst du ja bereits.
 
@Peter Gedöns @TP-Inc Vielen Dank für eure schnellen Antworten. Das über STO hört sich sehr gut an. Ich bin gerade dabei das zu programmieren aber das was ich dazu gelesen habe klingt sehr gut.

@schwimmer Der Motor soll nach dem Stillstand nichts mehr machen. Die 5-10° habe ich nur als Info dazu geschrieben falls es einen Unterschied gemacht hätte ob der Motor nur gering oder frei beweglich sein soll.



Zu diesem Projekt habe ich noch eine kurze Anschlussfrage. Und zwar führt der Motor eine Relativbewegung mc_moverelative aus. An den Motor/die Steuerung ist auch eine Schutztüre gekoppelt. Wenn diese aufgeht soll der Motor stehen bleiben (hier muss er nicht bewegbar sein) und wenn sie wieder geschlossen wird soll die Relativbewegung zu Ende ausgeführt werden. Ist das mit den 1200 Steuerungen irgendwie möglich?

Bei referenzieren Achsen und Absolutbewegungen habe ich das über mc_halt gemacht und die Bewegung dann immer nochmal von vorne gestartet. Das war zwar nicht schön, hat aber funktioniert. Bei dieser Relativbewegung ist das aber nicht möglich. Gibt es da einen workaround oder so?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja das geht alles. Du brauchst entweder eine S7-1200F oder externe Sicherheitsschaltgeräte, zB Pilz PNOZ. Relativpositionierung mache ich ungern… lieber Sollposition anhand der Istposition errechnen und absolut positionieren. Eben aus den von dir genannten Gründen. Wird die Relativpositionierung unterbrochen, fängt sie meines Wissens wieder von vorne an.
 
Zu diesem Projekt habe ich noch eine kurze Anschlussfrage. Und zwar führt der Motor eine Relativbewegung mc_moverelative aus. An den Motor/die Steuerung ist auch eine Schutztüre gekoppelt. Wenn diese aufgeht soll der Motor stehen bleiben (hier muss er nicht bewegbar sein) und wenn sie wieder geschlossen wird soll die Relativbewegung zu Ende ausgeführt werden. Ist das mit den 1200 Steuerungen irgendwie möglich?
Würde ich wie @TP-Inc bereits sagt, ein Sicherheitsrelaisrelais verwenden. Die Failsafe CPU's sind aktuell sehr selten zu bekommen (Lieferfristen), es sei denn du hast eine auf Lager o.ä.
 
Schön zu hören, dass das "nur" für mich Probleme sind, aber eigentlich gut lösbar sind.
Dazu muss ich sagen, dass ich selber Quereinsteiger in der Programmierung bin. Ich habe zwar ein paar Schulungen gemacht, aber viele Tricks und Kniffe sind mir dann doch neu.

Bis jetzt habe ich für Not-Halt etc. auch immer PNOZ's genutzt. Das ist soweit klar. Jetzt aber mein Punkt, die PNOZ gibt ja ein Signal an die PLC "alles in Ordnung" bzw "Stop".
Mein Problem liegt nun darin, das mit diesem Signal vom PNOZ PLC intern so zu programmieren, dass die Bewegung nur pausiert bzw. Geschwindigkeit 0 wird und nicht die Positionierung abgebrochen und neu gestartet wird. Da stehe ich noch etwas auf dem Schlauch und habe noch nichts passendes hinbekommen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mein Problem liegt nun darin, das mit diesem Signal vom PNOZ PLC intern so zu programmieren, dass die Bewegung nur pausiert bzw. Geschwindigkeit 0 wird und nicht die Positionierung abgebrochen und neu gestartet wird. Da stehe ich noch etwas auf dem Schlauch und habe noch nichts passendes hinbekommen.
Hat dein Antriebsregler Sicherheits Inputs? Dann könntest du diese dazu verwenden
 
Ja, ich nutze den Sinamics V90 mit STO1 STO2 Inputs.

Verstehe ich den Ablauf dann richtig:
S7-1212C startet Positionierung -> Motor bewegt -> Türe auf -> Signal über PNOZ an V90 um STO auszulösen -> Motor trudelt aus und bleibt stehen -> Türe zu -> STO wird aufgehoben und Motor dreht weiter auf die ursprünglich von der PLC angegebenen Position
 
Verstehe ich den Ablauf dann richtig:
S7-1212C startet Positionierung -> Motor bewegt -> Türe auf -> Signal über PNOZ an V90 um STO auszulösen -> Motor trudelt aus und bleibt stehen -> Türe zu -> STO wird aufgehoben und Motor dreht weiter auf die ursprünglich von der PLC angegebenen Position
Ja, dies wäre das Ziel. Hab keine Erfahrung mit einem Sinamics V90. Wenn dieser Regler sich nach einem Not-Aus selber resetet, wird's dies funktionieren.

Ich kann dir nur sagen wie's bei anderen Antrieben funktioniert nach einem Not-Aus;
- Trip Reset -> Motor macht dort weiter, wo er aufgehört hat
- allenfalls Start Flanke erneut setzen

Bei anderen Sinamics Antrieben z.B G120 könnte man mit dem FB "MC_Reset" die boolsche Variabel "Restart"=1 setzen... Ist schon eine Weile her bei mir.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja, dies wäre das Ziel. Hab keine Erfahrung mit einem Sinamics V90. Wenn dieser Regler sich nach einem Not-Aus selber resetet, wird's dies funktionieren.

Ich kann dir nur sagen wie's bei anderen Antrieben funktioniert nach einem Not-Aus;
- Trip Reset -> Motor macht dort weiter, wo er aufgehört hat
- allenfalls Start Flanke erneut setzen
Ok, das werde ich mal ausprobieren.


Relativpositionierung mache ich ungern… lieber Sollposition anhand der Istposition errechnen und absolut positionieren. Eben aus den von dir genannten Gründen. Wird die Relativpositionierung unterbrochen, fängt sie meines Wissens wieder von vorne an.

Wenn ich die Absolutposition anhand meiner aktuellen Istposition bestimme und während dieser Bewegung dann unterbreche und die Positionierung neu starte. Dann wird ja wieder ab meiner derzeitigen Istposition der Weg berechnet und der bisher bereits gefahrene vernachlässigt. Oder übersehe ich da etwas?
 
Ok, das werde ich mal ausprobieren.




Wenn ich die Absolutposition anhand meiner aktuellen Istposition bestimme und während dieser Bewegung dann unterbreche und die Positionierung neu starte. Dann wird ja wieder ab meiner derzeitigen Istposition der Weg berechnet und der bisher bereits gefahrene vernachlässigt. Oder übersehe ich da etwas?
Dass kommt nur auf dich und dein Programm an. Die Frage ist wann du die Zielposition berechnest
 
Dass kommt nur auf dich und dein Programm an. Die Frage ist wann du die Zielposition berechnest
Mein Programm ist folgendermaßen:

Im HMI wird ein Wert eingegeben und in einen ÜbergabeDB auf der PLC geschrieben.
Dieser Wert wird in einem FB1 mit einem festen Wert multipliziert und in %MD1 (real) abgelegt.
Dieser %MD1 wird nun im gleichen FB1 mit der ActualPosition der Achse aus deren DB aufsummiert und in %MD2 abgelegt.
Der MC_MoveAbsolut bekommt nun diesen %MD2 als Zielposition zu Positionieren.

Wenn diese Positionierung nun unterbrochen wird, habe ich das Problem, dass sich %MD2 durch die Änderung der ActualPosition der Achse konstant mit ändert und nicht den Wert behält, bis er z.B. durch ein Positionierung-beendet-Signal gelöscht wird.
Ich hoffe, ich konnte das einigermaßen verständlich erklären.

Oder wie hättest du die Berechnung aufgebaut, dass die Zielposition trotz Neustart des MC_MoveAbsolut auf dem ursprünglichen Wert bleibt?


So nun aber genug für heute, vielen Dank, dass Ihr euch selbst heute noch mit meinen Anliegen beschäftigt und ich wünsche euch frohe Feiertage!
 
Mal ehrlich… ist das ein übungsproblem oder soll da echt mal Geld verdient werden mit dem Gerät?

Geld verdienen ist relativ.

Ich komme eigentlich aus der Mechanik, habe mich aber schon während meiner Ausbildung für das Thema Steuerungen/Automatisierung interessiert. Ich bin jetzt bei einem "kleineren" Unternehmen in der Instandhaltung und bekomme ab und zu die Möglichkeit mit dem Thema zu befassen wenn es darum geht intern kleinere Mashchinen am Laufen zu halten oder zu modifizieren. So auch jetzt. Meistens habe ich bei einfachem etwas brauchbares hinbekommen, manchmal wurde das Projekt aber auch nach außen vergeben.

Klar ist das dann nicht die perfekte Programmierung / Industriestandard da ich mir das Meiste selbst erlesen habe und mich deswegen bestimmt auch bei vielen Standardsachen umständlich anstelle. Da ich im Unternehmen aber der Einzige bin, der sich in der Richtung "auskennt" habe ich keinen der mir direkt bei Fragen weiterhelfen kann und lese deswegen viel in Foren wie diesem hier. Und klar, dass ich mich dann manchmal auch Amateur-Problemen umständlich anstelle. Aber ich bin froh, dass ich (auch) während der Arbeitszeit in dem Bereich weiterlernen kann und mich dann irgendwann mal fragen werde, wie ich nur mal solche selbstverständlichen Fragen haben konnte.
 
Zurück
Oben