-> Hier kostenlos registrieren
Ich steh gerade ein wenig auf dem Schlauch und würde mal den Input von Euch benötigen
Es geht darum, ein Werkstoff wird von zwei Walzen (oben und unten, Werkstoff ist in der Mitte eingeklemmt) gezogen. Dieser kann vor den Walzen mit einem Antrieb nach links und rechts bewegt werden. Der Werkstoff hat auf der rechten Seite keine gerade Kante, diese kann nach beiden Richtungen verlaufen (z.B.: eine langgezogene S-Form). Jedoch soll der Werkstoff immer mit der rechten Kante richtig auf eine fixe Position ausgerichtet werden, bevor dieser zu den Walzen kommt.
Die Ausrichtung wird mittels Industriekamera gemessen und der Abstand an die SPS übermittelt. Mit diesen Messwerten soll der Antrieb angesteuert werden, der den Werkstoff je nach Position richtig ausrichtet.
Ich hab eine kleine Skizze angehängt, damit man sich ein wenig ein Bild machen kann.
Also meine Grundidee ist, den gemessenen Abstand in einen PID Regler schicken, das Stellsignal skalieren und dem Antrieb übergeben. Dieser Antrieb fungiert hier als reine Drehzahlachse.
Der Setpoint vom Regler wäre ein fixer Wert, der den gewünschten Abstand entspricht. Somit sollte der Regler die Abweichung immer ausgleichen und den Motor mittels Drehzahl so lange ansteuern, bis das Werkstück im richtigen Abstand steht.
Das Knifflige dabei, die Walzen "ziehen" das Werkstück mit einer variablen aber hohen Geschwindigkeit durch und dabei muss die Ausrichtung schnell genug und vorallem genau sein +-1mm.
Das ganze ist relativ klein gehalten, der Antrieb muss das Werkstück maximal +-30mm verschieben.
Geschwindigkeiten:
Walzenantriebe: variabel 7,5 - 50mm/s
Ausricht Antrieb: max 400mm/s
Da hier die Zeit ein wichtiger Faktor ist, einmal ein paar details zu den Zykluszeiten:
Abtastung Kamera: 8-12ms
Abtastung Regelbaustein SPS: 2ms
Profinetzykluszeit zum Antrieb: 2ms
CPU Siemens 1518F
Zuerst habe ich das Stellsignal vom Regler linear skaliert, jedoch hatte ich hier das Problem, dass der Antrieb entweder genau oder schnell war, jedoch nicht beides. Die lineare skalierung habe ich gegen eine kubische funktion getauscht. Diese Regelung läuft schon besser, jedoch läuft das ganze nur bei einer langsamen Geschwindigkeit.
Habe einen selbstgeschriebenen PID Regler und ebenfalls den Siemens PID_Compact versucht.
Der Siemens Regler springt nach dem Autotune extrem und ist sehr unruhig.
Wie würdet Ihr diese Aufgabe angehen?
Wie könnte ich den Regler etwas "sanfter" einstellen?
Vielleicht anstatt auf Drehzahl regeln, direkt positionieren (Positionsdifferenz errechnen und den Antrieb positionieren)?
Von Seiten der Zykluszeiten bin ich ja insgesammt recht schnell unterwegs.
Bin dankbar für jede Idee!
Es geht darum, ein Werkstoff wird von zwei Walzen (oben und unten, Werkstoff ist in der Mitte eingeklemmt) gezogen. Dieser kann vor den Walzen mit einem Antrieb nach links und rechts bewegt werden. Der Werkstoff hat auf der rechten Seite keine gerade Kante, diese kann nach beiden Richtungen verlaufen (z.B.: eine langgezogene S-Form). Jedoch soll der Werkstoff immer mit der rechten Kante richtig auf eine fixe Position ausgerichtet werden, bevor dieser zu den Walzen kommt.
Die Ausrichtung wird mittels Industriekamera gemessen und der Abstand an die SPS übermittelt. Mit diesen Messwerten soll der Antrieb angesteuert werden, der den Werkstoff je nach Position richtig ausrichtet.
Ich hab eine kleine Skizze angehängt, damit man sich ein wenig ein Bild machen kann.
Also meine Grundidee ist, den gemessenen Abstand in einen PID Regler schicken, das Stellsignal skalieren und dem Antrieb übergeben. Dieser Antrieb fungiert hier als reine Drehzahlachse.
Der Setpoint vom Regler wäre ein fixer Wert, der den gewünschten Abstand entspricht. Somit sollte der Regler die Abweichung immer ausgleichen und den Motor mittels Drehzahl so lange ansteuern, bis das Werkstück im richtigen Abstand steht.
Das Knifflige dabei, die Walzen "ziehen" das Werkstück mit einer variablen aber hohen Geschwindigkeit durch und dabei muss die Ausrichtung schnell genug und vorallem genau sein +-1mm.
Das ganze ist relativ klein gehalten, der Antrieb muss das Werkstück maximal +-30mm verschieben.
Geschwindigkeiten:
Walzenantriebe: variabel 7,5 - 50mm/s
Ausricht Antrieb: max 400mm/s
Da hier die Zeit ein wichtiger Faktor ist, einmal ein paar details zu den Zykluszeiten:
Abtastung Kamera: 8-12ms
Abtastung Regelbaustein SPS: 2ms
Profinetzykluszeit zum Antrieb: 2ms
CPU Siemens 1518F
Zuerst habe ich das Stellsignal vom Regler linear skaliert, jedoch hatte ich hier das Problem, dass der Antrieb entweder genau oder schnell war, jedoch nicht beides. Die lineare skalierung habe ich gegen eine kubische funktion getauscht. Diese Regelung läuft schon besser, jedoch läuft das ganze nur bei einer langsamen Geschwindigkeit.
Habe einen selbstgeschriebenen PID Regler und ebenfalls den Siemens PID_Compact versucht.
Der Siemens Regler springt nach dem Autotune extrem und ist sehr unruhig.
Wie würdet Ihr diese Aufgabe angehen?
Wie könnte ich den Regler etwas "sanfter" einstellen?
Vielleicht anstatt auf Drehzahl regeln, direkt positionieren (Positionsdifferenz errechnen und den Antrieb positionieren)?
Von Seiten der Zykluszeiten bin ich ja insgesammt recht schnell unterwegs.
Bin dankbar für jede Idee!