TIA PID_TEMP Erst / Nachoptimierung Status lesen / starten aus der SPS

Beiträge
9
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich verwende folgende Versionen
TIA V19
PID_TEMP V1.1
Nur Heizen wird verwendet.

Ich habe 6 Heizungen die einzeln geregelt werden. Ich rufe die PID_TEMP 3 mal in 2 Cyclic Interrupts (3 Heizungen jeweils) mit 20ms Phasenverschiebung auf.

Dies ist das erste Mal, dass ich Technologieobjekte überhaupt verwende.

Wenn ich den Block "Start Pretuning / Finetuning" über Mode angebe (Mode activate flanke gebe und auch den Sollwert bei dieser Flanke ändere), kann das Technologieobjekt dies automatisch ausführen? Kümmert es sich von selbst um die unten aufgeführten Anforderungen?

"Anforderungen für das Pretuning Heizung

Die Differenz zwischen dem Sollwert und dem Istwert ist größer als 30 % der Differenz zwischen dem oberen Grenzwert des Istwerts und dem unteren Grenzwert des Istwerts.

Der Abstand zwischen dem Sollwert und dem Istwert ist größer als 50% des Sollwerts.

Der Sollwert ist größer als der Istwert."

Zum Ablesen in der SPS (oder zumindest in der HMI zur Anzeige)
Wie kann ich eine Statusanzeige der Selbstoptimierung erhalten? Ich sehe zwar den "Static. Progress"-Variable in Prozent, aber die Selbstoptimierung hat mehrere Schritte, die unter "Tuning Status" im Inbetriebnahmefenster angezeigt werden. Welche Variable zeigt mir das an?

Ich möchte nur in der Lage sein, das Tuning von einem SIMATIC TP900 Comfort aus zu starten und sicherzustellen, dass es ohne Probleme abläuft und abgeschlossen ist. Können Sie mir dabei bitte helfen?
 

Anhänge

  • PID_TEMP aufruf.png
    PID_TEMP aufruf.png
    64,4 KB · Aufrufe: 19
  • Schnittstelle.png
    Schnittstelle.png
    33,5 KB · Aufrufe: 18
Wenn ich den Block "Start Pretuning / Finetuning" über Mode angebe (Mode activate flanke gebe und auch den Sollwert bei dieser Flanke ändere), kann das Technologieobjekt dies automatisch ausführen? Kümmert es sich von selbst um die unten aufgeführten Anforderungen?
Was genau definierst du als "automatisch"?
Du triggerst mit dem betreffenden Befehl eine Optimierung nach Sprungantwort (Pretuning) oder Schwingversuch (Finetuning)an.
Der Optimierung-Algorithmus macht dann seine Optimierungs-Magic und meldet am Ende "Fertig" oder "abbruch wegen Fehler xy".

Wie kann ich eine Statusanzeige der Selbstoptimierung erhalten? Ich sehe zwar den "Static. Progress"-Variable in Prozent, aber die Selbstoptimierung hat mehrere Schritte, die unter "Tuning Status" im Inbetriebnahmefenster angezeigt werden. Welche Variable zeigt mir das an?
Findest du unter "Statusche Variablen PID_Temp" in der Hilfe.
PIDSelfTune.SUT.State (Pretuning) bzw. PIDSelfTune.TIR.State (Finetuning).

Hinweis:
Du musst nicht zwingend ein Pretuning vor dem Finetuning durchführen.
Gibt Anwendungen bei denen du einen ausreichend großen Wertsprung schlicht nicht machen kannst.
Es geht auch den PID-Regler grob einzustellen und dann im Prozess-Zielbereich eineen Schwingversuch (Finetuning) durchzuführen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nachtrag:
So sieht ein Finetuning ohne Pretuning an einem kleinen Härteofen aus:
Rot Stellgrad 0-100%
Blau Temperatur °C
Die beiden Messlinien liegen jeweils bei Start/Ende der Optimierung.
1719227733031.png
 
@Botimperator Danke.
Es ist mir selten gelungen, das Tuning korrekt durchzuführen.
Ich habe die Heizungen selbst ein- und ausgeschaltet, um die Prozesstemperatur innerhalb der unten beschriebenen Grenzen zu halten. (Ich nehme an, dass dies eine dumme Vorgehensweise ist)

"Die Differenz zwischen dem Sollwert und dem Prozesswert ist größer als 30% der Differenz zwischen dem oberen Grenzwert des Prozesswertes und dem unteren Grenzwert des Prozesswertes.

Der Abstand zwischen dem Sollwert und dem Istwert ist größer als 50% des Sollwerts."

Wie kann ich die S7-1500 dies selbständig tun lassen, um den Prozesswert innerhalb der Anforderungen der Optimierung zu halten?
Ich stelle sicher, dass der Prozesswert Raumtemperatur hat, mein Sollwert so hoch eingestellt ist, dass es mindestens 10 Sekunden dauert, bis er sich aufheizt (nur damit ich ihn manuell einschalten und mit der Optimerung beginnen kann), und löse dann die Vorabstimmung über "Modus" aus, dann sollte es funktionieren?

Das von Ihnen erwähnte statische Tag, PIDSelfTune.SUT.State und alle anderen in diesem statischen Abschnitt, kann ich sie überall im SPS-Programm lesen, oder muss ich einige Regeln befolgen, (wie z. B. für einen Instanz-DB), der nur im zyklischen Interrupt verwendet werden kann usw.?
 
Ich habe die Heizungen selbst ein- und ausgeschaltet, um die Prozesstemperatur innerhalb der unten beschriebenen Grenzen zu halten. (Ich nehme an, dass dies eine dumme Vorgehensweise ist)
Naja, wenn du den Regelkreis unterbrichst während der Tuning-Vorgang läuft erkennt der Regler die Unterbrechung nicht als Unterbrechung, sondern rechnet die Zeit in der keine Heizleistung in die Regelstrecke einfliest in die Zeitkonstanten mit rein.
Ergebnis: falsche Zeitkonstanten => fehlerhafte PID-Werte ¯\_(ツ)_/¯

Denn du die Selbstoptimierung laufen lassen willst, MUSS diese den Prozess ohne dynamische Störgrößen testen können.
Der Algorythmus der Technologieobjekte ist für dynamische Störgrößen nicht geeignet.

Wie kann ich die S7-1500 dies selbständig tun lassen, um den Prozesswert innerhalb der Anforderungen der Optimierung zu halten?
Was sind denn deine Anforderungen?
Zulässige Minimal/Maximaltemperatur?
Heizleistung & was genau zu heizen ist?
Gewünschte Regeltoleranz?

Ich stelle sicher, dass der Prozesswert Raumtemperatur hat, mein Sollwert so hoch eingestellt ist, dass es mindestens 10 Sekunden dauert, bis er sich aufheizt (nur damit ich ihn manuell einschalten und mit der Optimerung beginnen kann), und löse dann die Vorabstimmung über "Modus" aus, dann sollte es funktionieren?
Hast du die TIA-Hilfe entsprecchend durchgearbeitet?
Da ist die Inbetriebnahme beschrieben.

Das von Ihnen erwähnte statische Tag, PIDSelfTune.SUT.State und alle anderen in diesem statischen Abschnitt, kann ich sie überall im SPS-Programm lesen, oder muss ich einige Regeln befolgen, (wie z. B. für einen Instanz-DB), der nur im zyklischen Interrupt verwendet werden kann usw.?
Technologieobjekte kannst du wie ganz normale Instanz-DBs verwenden.
 
Zurück
Oben