Drehzahlregelung über Geber

BFC92

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

Ich muss die Drehzahl eines Motors über eine S7314 (6ES7 314-6EH04-0AB0) und eine G120 ( 6SL3210-1KE14-3AF2) Regeln. Hierzu bekomm ich eine Drehzahl von einen Näherungssensor geliefert. Quasi ein Geber mit Sechs Strichen. Jetzt will ich eine Solldrehzahl einstellen und der Motor soll bis zu dieser Hochfahren und dort bei untersciedlicher belastung auch bleiben. Wenn ich jetzt einen der Vorgefertigten PID Regler verwende, zum Beispiel den CONT_C bekomm ich ja ein Ausgangsignal zwischen 0- und 100%, ich weiß jetzt absolut nicht wie ich das verarbeiten soll. Ich kann über Profibus nur "Drehzahl erhöhen" "Drehzahl verringern" oder eine Solldrehzahl in den FU schreiben. Oder gibt es noch andere Parameter die ich benutzen kann. Es kann doch nicht sein das noch nie jemand sowas realisiert hat, ich finde nämlich gar nichts dazu. Wäre sau cool wenn jemand nen brauchbaren Ansatz hat.
 
Wenn ich jetzt einen der Vorgefertigten PID Regler verwende, zum Beispiel den CONT_C bekomm ich ja ein Ausgangsignal zwischen 0- und 100%, ich weiß jetzt absolut nicht wie ich das verarbeiten soll. Ich kann über Profibus nur "Drehzahl erhöhen" "Drehzahl verringern" oder eine Solldrehzahl in den FU schreiben
Der Regler gibt Dir einen Wert 0-100% aus. Diesen normieren/skalieren auf 0-X für die Solldrehzahl des FUs und übertragen.
Bin mir nicht ganz sicher aber hat der CONT_C nicht einen OUT_REAL (0-100%) und einen OUT_PER (0-X)? Dann würde OUT_PER derjenige sein der die Sollwertvorgabe füttert.
X steht für die Drehzahlvorgabe (Maximalwert).

Es kann doch nicht sein das noch nie jemand sowas realisiert hat, ich finde nämlich gar nichts dazu. Wäre sau cool wenn jemand nen brauchbaren Ansatz hat.
Es haben schon viele das Vorhaben realisiert, Du bist nicht der erste.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja danke schonmal, ich weiß schon bin nur mittlereweile leicht verweifelt...
1649069015828.png

also welchen Ausgang muss ich jetzt benutzen?
und Wenn ich den einfach zwischen sagen wir 0 und 5200 skaliere, und 1500 haben will. Dann gibt der ja 5200 zu beginn aus und geht dann auf 0 Wenn der wert erreicht wäre, dann würde der FU aber die Drehzahl null anstreben, um dann wieder 5200 anzustreben. Oder versteh ich das Falsch? Also auf was genau muss ich da skalieren?
 
Du hast so gar keine Ahnung von der Materie oder?

also welchen Ausgang muss ich jetzt benutzen?
und Wenn ich den einfach zwischen sagen wir 0 und 5200 skaliere, und 1500 haben will. Dann gibt der ja 5200 zu beginn aus und geht dann auf 0 Wenn der wert erreicht wäre, dann würde der FU aber die Drehzahl null anstreben, um dann wieder 5200 anzustreben. Oder versteh ich das Falsch? Also auf was genau muss ich da skalieren?

Du nutzt LMN und skalierst diesen auf den Min-Max-Wert der Sollwertvorgabe Deines FUs.

Der Regler sollte z.B. mit MAN_ON = true/false gestartet und gestoppt werden, parallel zur Freigabe des FUs und MAN mit dem Wert 0.0 belegt werden. Somit würde er bei deaktiviertem Motor auch nicht regeln wollen. Denn wenn er regelt und der Motor hat gar keine Freigabe, dann dreht der Regler irgendwann hoch auf max und beim nächsten Motorstart schiesst er dann auch auf den Maximalwert.

In der Regel will man Drehzahlen immer von unten erreichen, also sich von unten nach oben annähern. Das tut ein Regler.
Er vergleicht durchgehend Sollwert und Istwert und zieht daraus die Konsequenz das sein Ausgang etwas höher oder niedriger sein muss. Er nähert sich an. Hat er irgendwann Istwert=Sollwert erreicht so verbleibt er auf seinem Ausgang. Damit er nicht ständig nachregelt kann man eine Totzone definieren, z.B. 5% um dem Sollwert. Das wäre dann die gleichnamige Totzone (DEADBAND) und ist mit DEADB_W=1 aktiviert, wird mittels Standard-PID eingestellt oder direkt im DB des Reglers.


Hast Du irgendeine Ahnung von Reglern etc.?
Wenn nicht, dann kann das Aktivieren des Reglers bereits zu Problemen führen, wie z.B. das die Drehzahl komplett hochschiesst. Ob das schlimm ist hängt von der Mechanik ab. Das musst Du im Programm durch z.B. feste nachgeschaltete Netzwerke im OB/FC durch Vergleicher verhindern.
Fang mit kkleinen Drehzahlen an.

Ein zusammenfassendes Dokument zum Regler:
Bereits ein Handbuch vom Regler durchgelesen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja ich hab vom Regeln gar keine Ahnung, das Handbuch vom Cont_C hab ich schon zich mal durchgelesen, aber bin wohl zu dumm das zu verstehen. Also im Moment gibt mir Lmn immer 0 aus, gestern war das mal anders, aber weiß nicht hab jetzt nochmal ganz von vorn angefangen und einen neuen Cont_C eingefügt, und LMN ist irgendwie immer Null. Hab jetzt mal hier:
1649071287085.png
die Physikalische Größe eingestellt, ist das Richtig?

Danke schonmal für die Hilfe. :)

Ach und mein Restliches Programm läuft super, und hab den Motor grad allein laufen, also Zerstörung ist kein problem...
 
OK ja jetzt schreibt der Ausgang, aber hab jetzt 1500 als Drehzahl Vorgegeben, und wenn der Sollwert sich 1500 nähert geht der ausgang ja auf 0. Dann bekommt der FU ja den befehl Null umdrehungen, und an dem Punkt ist mein Problem das ich nicht lösen kann. Besser wärs wenn der Regler den Wert dann beibehält bei dem es passt, so muss er vllt gerade ne Drehzahl von1150 in Den Fu schreiben um 1500 umdrehungen zu errreichen, wäre cool wenn er sich dieser zahl langsam annähert und diese dann hält, beziehungsweise bei störgrößen halt nachregelt.
 
Nochmal genau nachlesen:
Dein Sollwert ist die Drehzahl des FUs?
Was bewirkt das? Dann ist das nur eine Rückmeldung des Stellgliedes aber kein zu regelnder Wert.

Was genau regelst Du da? Beschreibe bitte Aufbau/Funktion.

Dein Verhalten 1500/01500/0 ist das was sich Schwingung nennt. Dafür müssen P-, D-, und I- Anteil verändert werden. (P auf 1, alles andere auf 0 für den Anfang) und dann muss man sich herantasten.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nein das ist keine Schwingung, ich weiß das man sich an sowas Rantasten muss, aber ich bin ja noch nichtmal soweit. Ich hab einen Näherungssensor der Bei einer Umdrehung 6mal zählt, das hab ich umgerechnet auf eine Drehzahl die mir stetig ausgegeben wird. Diese Drehzahl ist die Variable Drehzahl_Sensor_PM. In meinen Fu Schreib ich jetzt den ausgang LMN und zwar als Solldrehzahl. Parameter (N_soll). Also wenn da jetzt 1500 steht strebt der richtung 1500, aber dann wechselt der ausgang ja richtung null, weil er Prozendual nachregelt, dann bekommt mein FU aber dem Befehl 0 und sterebt richtung Drehzahl 0. Ich weiß nicht ob ich mein Problem rüberbringe...

Aber auf jedenfall danke.
 
Also wenn da jetzt 1500 steht strebt der richtung 1500, aber dann wechselt der ausgang ja richtung null, weil er Prozendual nachregelt, dann bekommt mein FU aber dem Befehl 0 und sterebt richtung Drehzahl 0. Ich weiß nicht ob ich mein Problem rüberbringe...
Wie verhält sich der Istwert denn zeitgleich mit dem Sollwert (LMN)? Bleibt er bei 1500 oder sinkt er mit ab?
 
Natürlich sinkt der Ab, der gibt immer die aktuelle Drehzahl der Welle wieder, der Ist am an Fang auf null, erreicht dann so 1400 umdrehungen und fällt dann wieder auf so 600 Umdrehungen, und dann beschleunigt er wieder. Es gibt also ein Pulsieren, ist aber kein schwingen, weil die Regelung an sich ja falsch ist. Schwingen wär ja wenn er überregelt, aber er gibt ja den falschen Befehl... Also es wäre top wenn der Ausgegebene Wert, sich langsam steigert und dann bei der Richtigen Drehzahl, nach ein bisschen einschwingen stehen bleibt. Vllt brauch ich dafür auch einen anderen Regler als Cont_C...?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es gibt also ein Pulsieren, ist aber kein schwingen, weil die Regelung an sich ja falsch ist. Schwingen wär ja wenn er überregelt, aber er gibt ja den falschen Befehl...
Nein.

Der Regler arbeitet nicht prozentual oder linear auf den Regelwert.
Er berechnet anfänglich anhand des P-Anteils den Startwert um so schnell wie möglich dahinzukommen und regelt dann mittels D und I-Anteil nach.
Wenn er frühzeitig merkt das er zu schnell an den Sollwert herankommt dann regelt der runter, und wieder hoch, und runter...und überschwingt nicht.
Das ist Schwingen was Du beschreibst.
 
Nein, eben nicht.
Das ist mir alles klar was du sagst. Aber der Ausgang gibt einen Wert aus, dieser Wert wird in den FU geschrieben. Der SollWert ist 1500 die Drehzahl ist 0. Deshalb ist der Wert am Ausgang 1500. Wenn der FU den Befehl 1500 bekommt und jetzt nichts weiter passiert. Stellt er die Größe 1500 ein, das wäre dann eine Steuerung. Jetzt passiert aber folgendes, wenn die Drehzahl steigt schreibt der Regler ja einen kleineren Wert, was ultra sinnvoll wäre wenn ich Mehr drehzahl und weniger Drehzahl einstellen würde. Tue ich aber nicht. Jetzt kommt der kleinere Wert, sagen wir 1000 Umdrehungen in den Umrichter als sollwert, also strebt er jetzt 1000 umdrehungen an, und versucht dahin zu gehen. Das ist kein Schwingen das ist einfach falsch programiert. Die frage ist wie mach ich es richtig.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nein, eben nicht.
Das ist mir alles klar was du sagst. Aber der Ausgang gibt einen Wert aus, dieser Wert wird in den FU geschrieben. Der SollWert ist 1500 die Drehzahl ist 0. Deshalb ist der Wert am Ausgang 1500. Wenn der FU den Befehl 1500 bekommt und jetzt nichts weiter passiert. Stellt er die Größe 1500 ein, das wäre dann eine Steuerung. Jetzt passiert aber folgendes, wenn die Drehzahl steigt schreibt der Regler ja einen kleineren Wert, was ultra sinnvoll wäre wenn ich Mehr drehzahl und weniger Drehzahl einstellen würde. Tue ich aber nicht. Jetzt kommt der kleinere Wert, sagen wir 1000 Umdrehungen in den Umrichter als sollwert, also strebt er jetzt 1000 umdrehungen an, und versucht dahin zu gehen. Das ist kein Schwingen das ist einfach falsch programiert. Die frage ist wie mach ich es richtig.
Wenn Du nicht darauf hören willst was Menschen Dir erklären die mittlerweile über 20 Jahre den Kram programmieren und dabei auf knapp 1000 Anlagen zurückschauen können dann kann ich Dir leider nicht helfen.
Deine Annahme ist falsch. Der Regler schwingt weil P-Anteil, I-Anteil und D-Anteil nicht passen. Stell I und D auf 0 und den Gain (P) auf 0.5 danach auf 3 und bemerke den Unterschied.

Uhh ich glaub ich muss das Drehmoment und nicht die Drehzahl regeln, das wäre viel Sinnvoller.
Du musst doch wissen was Du willst und was nicht. Ich kenne die Anlage nicht.
 
Ja ich danke für deine Hilfe aber du verstehst das Problem nicht, vermutlich weil du einfach schon zu schlau bist um mein Problem zu verstehen.
Wenn Du nicht darauf hören willst was Menschen Dir erklären die mittlerweile über 20 Jahre den Kram programmieren und dabei auf knapp 1000 Anlagen zurückschauen können dann kann ich Dir leider nicht helfen.
Deine Annahme ist falsch. Der Regler schwingt weil P-Anteil, I-Anteil und D-Anteil nicht passen. Stell I und D auf 0 und den Gain (P) auf 0.5 danach auf 3 und bemerke den Unterschied.
Hab ich getan, macht keinen Unterschied, aber vielen dank, du verstehst mein Problem einfach nicht, vermutlich weil du einfach schon zu schlau bist um mein triviales Problem zu verstehn. Ich bin scheinbar Grundsätzlich falsch rangegangen, weil ich ja das Drehmoment und nicht die Drehzahl regeln sollte. Ich glaub zumindest das das mehr sinn Macht, du hast mir wirklich sehr weitergeholfen danke dafür. Ich versuch jetzt mal das Drehmoment zu regeln, vlt komm ich zum gewünschten ergebniss, wenn ich das hinkriegen sollte...
 
Ich bin scheinbar Grundsätzlich falsch rangegangen, weil ich ja das Drehmoment und nicht die Drehzahl regeln sollte. Ich glaub zumindest das das mehr sinn Macht
Warum beschreibst Du nicht einfach die Anlage und den Prozess der stattfinden soll? Vielleicht auch ein Bildchen?
Ich denke das Dir dann viel einfacher und zielgerichteter die Hilfestellung gegeben werden kann.

Hab ich getan, macht keinen Unterschied,
Wenn Du den P-Wert auf 0,5 gestellt hast, die Kurve angesehen und dann auf 3 gestellt hast, ebenfalls die Kurve angesehen, dann ist da ein Unterschied oder es passt etwas generell in der Verschaltung nicht, aber das kommt dann nicht aus dem Regler.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn Du den P-Wert auf 0,5 gestellt hast, die Kurve angesehen und dann auf 3 gestellt hast, ebenfalls die Kurve angesehen, dann ist da ein Unterschied oder es passt etwas generell in der Verschaltung nicht, aber das kommt dann nicht aus dem Regler.
Richtig, das sag ich ja die ganze Zeit, der Fehler ist im Programm ich schreibe keinen Sinnvollen Wert in den FU. Ich hab ja gesagt bin noch gar nicht soweit das die Regelung funktioniert, deshalb hat das auch nichts mit schwingen zutun.

Naja hab doch die Anlage schon beschrieben, ich nehme über einen Näherungssensor Die Drehzahl einer Welle auf und diese soll bei unterschiedlichen Lasten Konstant bleiben, da die Welle aber nicht direkt mit dem Motor Verbunden ist, sondern verschiedene Wellen mit verschiedenen durchmessern zum einsatz kommen, die mittels eines Bandes angetrieben werden (also auch noch unterschiedlicher schlupf) kann ich nicht auf den internen Wert des FUs zurückgreifen. Und ich glaub jetzt das ich da ja gar keine Drehzahl regeln muss, sondern einDrehmoment. Aber letztlich ist mir egal was ich regle hauptsache s läuft und die Drehzahl bleibt konstant.
 
Naja hab doch die Anlage schon beschrieben
Weniger, es sind zwei Threads, und ich soll in beiden nach den Infos suchen die ich brauche um Dir zu helfen? Entscheide Dich für einen und dann schliesse den anderen ab.

ich nehme über einen Näherungssensor Die Drehzahl einer Welle auf und diese soll bei unterschiedlichen Lasten Konstant bleiben, da die Welle aber nicht direkt mit dem Motor Verbunden ist, sondern verschiedene Wellen mit verschiedenen durchmessern zum einsatz kommen, die mittels eines Bandes angetrieben werden
Was wird angetrieben? Was ist dahinter? Förderband, Ventilator, Pumpe, ... - das sind unterschiedliche Einstellungen. Warum sind da verschiedene Wellen? Worauf kommt es an? Gleichbleibende Drehzahl am Endpunkt oder das Drehmoment?
Uhh ich glaub ich muss das Drehmoment und nicht die Drehzahl regeln, das wäre viel Sinnvoller.
Das hängt ja eben davon ab was Du erreichen willst.

Richtig, das sag ich ja die ganze Zeit, der Fehler ist im Programm ich schreibe keinen Sinnvollen Wert in den FU.
Das ist nicht so rübergekommen.
Der sinnvolle Wert aber ist am Ende gegeben wenn Sollwert=Wunsch, Istwert=Geber, Ausgang=FU ist. Wenn kein anderer Befehl da irgendwas zwischenschreibt dann macht der Regler was er soll: Ohne eingestellte PID-Werte vor sich rumspringen, im Falle eines Gains von 2 kennt er dann meist nur 0, 25, 50, 75, 100% weil die Rückmeldung (Istwert) viel zu schnell erreicht werden kann, im schlimmsten Fall gar nur 0 und 100%.
 
... aber du verstehst das Problem nicht, vermutlich weil du einfach schon zu schlau bist um mein Problem zu verstehen.
Du machst das Vestehen Deines Problems aber wirklich nicht sehr leicht. Dadurch, dass Du Dein Problem hier in zwei Threads abhandelst und somit in jedem der beiden Threads ein gehöriger Anteil Deiner Informationen fehlt.
Ferner bist Du auch recht sparsam mit dem Beantworten von Fragen.
Du schreibst von Drehzahl, hast es aber mit zwei verschiedenen Drehzahlen zu tun. Die eine ist die des FUs und Motor und die andere ist die Deiner Welle, an der Du die Istdrehzahl misst/errechnest.
Der Zusammenhang zwischen diesen beiden Drehzahlen ist bisher nur recht schwammig angedeutet und für uns nicht wirklich nachzuvollziehen.
Du hast anscheinend selbst Probleme damit, bei Deinen Aussagen durchschimmern zu lassen, von welcher der beiden Drehzahlen Du gerade berichtest.

Vielleicht wäre es hilfreich, statt über einen ReglerAusgang, der bei Erreichen der SollDrehzahl auf Null schrumpft, über einen Faktor nachzudenken, der sich um 1 herum bewegt. Gleich 1, wenn Deine Istdrehzahl passt, kleiner 1, wenn Deine Istdrehzahl zu gross wird und grösser 1, wenn die Istdrehzahl zu klein wird. Damit könntest Du die Solldrehzahl modulieren, die Du an den FU ausgiebst.

PS:
Ich will nur erreichen das die Drehzahl konstant bleibt.
Das meinte ich: "die Drehzahl". Egal, welche?
Anscheinend musst Du doch, um an der Welle eine bestimmte Drehzahl zu Erreichen, dem Motor ganz unterschiedliche Drehzahlen vorgeben.
 
Zuletzt bearbeitet:
Zurück
Oben