Step 7 PID-Regler FB58 - Fragen zur richtigen Einstellung

Xplosion

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

habe desöfteren schon den PID-Regler FB58 genutzt für Temperaturregelungen.

Einsatzgebiet: Temperaturregelung von Extrusionsanlagen

Eine Schnecke fördert durch einen Zylinder ein Kunstoffgranulat. Dieses Granulat wird mittels Zylinderheizkörper erhitzt.
Temperaturbereich ca. 100-350°C

Die Heizungen werden über Transistorrelais angesteuert. Also Ein-Aus-Ein-Aus usw..
Dafür ist ja der FB58 gut geeignet mit den Impulsformer.


Nun zu meiner Situation:

Im OB35 sind meine PID-Regler ( meist 11 Stück für 8 Heizungen und 3 Kühlungen )
Die Leistung der Heizungen am Zylinder sind meist so ca. 1200-2000W pro Stück (3 - 4 Stück sitzen auf Zylinder)
Auf dem Zylinder sind die Heizungen auch sehr träge. Beim Einschalten der Heizung bis zum Anstieg der Temperatur vergehen schonmal 30-60s.
Prinzipjell habe ich die Regelung seither ganz gut in Griff bekommen.

Diesmal habe ich aber folgende Änderung:

- OB35-Aufruf soll nicht mehr alle 20ms aufgerufen werden (Zykluszeit der S7-300 bewegt sich schon zwischen 15-20ms)
- Die Temperaturwerte werden über ein Bus-System eingelesen. Eine Veränderung der Temperatur wird max. alle 750ms gemeldet ( 10Samples/sek bei 8 Temperaturfühlern)

Meine Frage dazu ist folgende:

Welche Einstellung soll ich bezüglich meiner Situation wählen:

- OB35-Aufruf wie oft?
- Impulsformer Abtastzeit?
- Periodendauer
- Reglerabtastzeit

Das verwendete Relais ist ein Crydom CKRD2430
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bei den OB35 Takt von 20ms würde ich vielleicht bleiben, aber die Berechnung des
Reglers ins Hauptprogramm holen. Dann ist die Aufrufzeit des OB35 gering.

Hast du eigentlich große Temperatursprünge, wenn die Abtastzeit der Fühler so hoch ist?
 
Also ich habe immer T#100ms Sekunde gehabt.Reicht das nicht für den PID?

Der Impulsregler sollte ein Verhältnis um 1..10 haben bei Cycle und Periodendauer.
Gleichzeitig muss aber auch der PID um viele male mehr aufgerufen werden wie der Impulsformer.
Insofern wundern mich deine häufigen Aufrufzeiten.

Also wenn ich beim Impulsformer Cycle 30ms habe-->Periodendauer(x10) von 3 Sekunden.
Wenn ich dann noch die Untersetzung zwischen PID und Impulsregler mit 1:10 ansetze wegen der Genauigkeit
wäre ich dann bei 300ms beim PID.

oder habe ich hier einen Denkfehler?
 
Es macht nicht viel Sinn, den Regler alle 20ms aufzurufen, wenn nur alle 750ms neue Istwerte kommen.
Für Temperaturregelung sollte es ausreichend sein, den Regler nur alle 750ms ... 1s aufzurufen: OB3x-Aufruf auf 750...1000ms setzen oder im OB3x einen Untersetzungszähler programmieren, der die Regler nur bei z.B. jedem zehnten OB-Aufruf aufruft. Könnte auch ein Verteiler sein, der in jedem OB-Aufruf nur je 1 Regler aufruft.

Harald
 
Sehe ich auch so.Wichtig ist aber noch das Übersetzungsverhältnis zum unterlagerten Impulsregler.
Wenn du dort Genauigkeit willst von 10% musst du 10 mal mehr aufrufen.
Da hat der PN/DP recht damit du überhaupt dort mit viel größeren Übersetzungsverhältnissen genau wird musst du den überlagerten Regler viel weniger aufrufen.
Ich würde Minimum Cyle dort auf 50ms nehmen.Die periodendauer wird dann 5 sec.Dann hast du die geforderte Genauigkeit.
 
Den PID musst du auch zu adequaten Zeiträumen aufrufen, sonst hast du einen Rechenfehler.
Vor allem noch wenn er solange Zykluszeiten hat und mehrere Regler.
Die 50 ms meine ich beim unterlagerten Regler.Entschuldigung.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Erstmal vielen Dank für die zahlreichen Antworten....

also welche Einstellung würdet ihr mir, unter Berücksichtigung der Temperaturaktualisierung von 750ms, empfehlen?


-Reglerabtastzeit
-Impulsabtastzeit
-Imulsformer Periodendauer
-OB35-Aufrufzeit

Der PID-Regler ist ja ein kompletter Baustein mit Impulsformer. Diesen muss ich doch im OB35 aufrufen oder?
 
Es gibt verschiedene Varianten - wusste ich jetzt aber auch nicht.

https://cache.industry.siemens.com/dl/files/438/18652438/att_26581/v1/PID_Temp_d.PDF-->Seite 83
 
Welche Bearbeitungszeit hat eigentlich der FB58 ungefähr?

Ich hab jetzt den OB35-Aufruf wieder auf 10ms gestellt.
Mein gesamtes SPS-Programm liegt derzeit bei ca. 20ms Zykluszeit.

Jetzt würde mich allerdings interessieren, welche Zeit für das normale Programm noch übrig bleibt.

Habe es mit Systemzeit aufrufen ausprobiert, einmal zu Beginn des OB35 und einmal am Schluss. Allerdings speichert er bei beiden Werten das gleiche ab.
Würde also bedeuten, dass die OB35-Zykluszeit weniger als 1ms beträgt.

Bei 11 Stück FB58-Regler + Ausgangsansteuerung über weitere Verknüpfungen kann ich mir das aber nicht vorstellen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also ich mache meine Extruderheizungen mit FB41 CONT_C und FB43 PULSEGEN.
Den FB41 rufe ich alle 20s auf, der FB43 macht dann 0-20s Heiz- und 0-2s Kühlimpulse (Kühlventile) und wird zyklisch aufgerufen.
Da beim Regler im ms- Bereich herumzuwerkeln ist nicht falsch aber sinnfrei.
 
Hallo,

die Maschine ist nun in Betrieb und funktioniert einwandfrei.

Jetzt habe ich allerdings folgende Einstellung:

OB35-Aufruf : 10ms
Regler-Abtastzeit: 2s
Impulsformer Abtastzeit: 0.01s
Impulsformer Periodendauer: 2s

Jetzt würde ich gerne den OB35-Aufruf zeitlich erhöhen, ohne dass mein Verhalten dadurch beeinflusst wird.

Ich würde gern folgendes machen:

OB35 auf 20ms erhöhen
Regler-Abtastzeit 4s
Impulsformer 0.02s u. 4s

Kann ich das so machen, ohne dass es einen Einfluss auf die eingestellten Regelparameter hat?
Da die Temperaturen eh nur alle 750ms aktualisiert werden, dürfte sich ja nicht wirklich was ändern oder?

Das Einzige, was sich ändert, ist die minimale Impulsdauer von 20ms statt 10ms bzw. die Einzelschritte von 10ms auf 20ms, das sollte aber bei meinen Heizungen eh nicht relevant sein. Die Auflösung bleibt ja die gleiche.

Kann ich das so machen?
 
Zurück
Oben