Temperaturregelung mit FB41

baerle

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

versuche gerade eine Temperaturregelung mit einem FB41 hinzubekommen. Allerdings bereitet mir die parametrierung des FB41 ein wenig Probleme. Wie skaliere ich meinen Temperaturbereich(PT100) für den FB41. Temperaturbereich zwischen -100°C und +450°C. Der Istwert wird über PV_PER eingelesen. Da wird auch ein Wert angezeigt(HEX 943). Kann ich aus diesem Wert die temperatur errechnen??
Was muss ich bei SP_INT eingeben wenn ich eine Temperatur von 150°C möchte??
Welche Werte sind noch wichtig, damit der Regler richtig funktioniert??

gruß
 
Je nach Parametrierung der Eingangsbaugruppe,
steht der Temperaturwert als Integer zur verfügung mit 1 oder 2 kommastellen.

In deinem Fall 943 Hex = 2371 DEZ = 23,71 ° ? oder 237,1°

Für den FB41 musst du das ganze als Real wandeln.

L PEW ???
DTR
T IDB.PV_IN

Wichtig unbedingt ein Logisch 0 an "PVPER_ON".

Kleine Verbesserung das gilt natürlich nur bei einer Siemens-Analogbaugruppe an der der Fühler direkt angeschlossen ist.
Bei Baugruppen anderer Hersteller oder Messumformern funktionierts anders.

SP_INT muss in diesem Fall Real 150.0
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Baugruppen

Also ich denk du must erst mal schauen was du für Analogbaugruppen hast
Siemens bis -+32767?
Wago bis -+27648?
Diese zwei Werte sind schon mal ziemlich wichtig.
Die Eingangswerte in die Analogbaugruppe vom pt100 kannst du dann mit einer Formel in einen Bereich von z.B
0-100°C umwandeln.

Die Programmierung für die Formel schaut so aus:
Ist dann ein flexibler Baustein in dem alle Werte geändert werden können.
Nomierungsbaustein:

x1, y1 stellt den linken Begrezungspunkt, x2 , y2 den rechten Begrenzungspunkt der Normierungsgeraden dar .
x ist der Eingang der Normierung. Der Ausgang y bewegt sich in den Grenzen zwischen y1 und y2

Bildung des Zählers
LD SM0.0
MOVR #y2, #zaehler
-R #y1, #zaehler

Bildung des Nenners
LD SM0.0
MOVR #x2, #nenner
-R #x1, #nenner

Bildung der x-Differenz
LD SM0.0
MOVR #x, #diff_x_x1
-R #x1, #diff_x_x1

Berechnung des Quotienten aus Zähler geteilt durch Nenner
LD SM0.0
MOVR #zaehler, #quotient
/R #nenner, #quotient

Multiplikation des Quotienten mit der x-Differenz
LD SM0.0
MOVR #quotient, #produkt
*R #diff_x_x1, #produkt

Das Ergebnis wird vorerst einer temp -Variable zugewiesen
LD SM0.0
MOVR #produkt, #y_norm
+R #y1, #y_norm

Jetzt wird die out Variable y mit dem berechneten Wert belegt.
LD SM0.0
MOVR #y_norm, #y_y


Ist halt mit S7-200 geschrieben ist aber ähnlich.
MFG
 
Als Analogbaugruppe verwende ich ein SM331- 1KF01-0AB0. Wenn ich das richtige verstehe, schließe ich meinen PT100 direkt an die Baugruppe an. Wenn ich dann an PVPER_ON eine "1" lege, erfasst er mir den aktuellen Wert. Soweit so gut. Als Ausgabegruppe habe ich SM332-5HD01-0AB0. Am Ausgang ist ein Signalwandler angeschlossen, der aus dem 0..10V-Signal ein 24 VAC-Puls-/Pausen-Signal macht.
Am FB41 - PV_PER habe ich den Eingang PEW290. Das geht bis hierher:) .
Wenn ich als Sollwert SP_INT 150.0(150°C) eingebe, macht er am Ausgang nix:confused: . Bin ich jetzt wieder verkehrt?? Das kann doch nicht so schwer sein.

gruß
 
Hallo baerle,

beachte den Beitrag von MSB. Er hat bereits alles beschrieben. Vielleicht sollte man noch erwähnen dass du den Eingang "PV_IN" verwenden solltest! Der Eingang "PV_PER" ist für S7-Standardsignale (0..27648) vorgesehen. Ein PT100-Eingang liefert jedoch direkt den Temperaturwert in °C mit einer bzw. mit zwei Kommastellen, vorausgesetzt, er ist in der HW-Konfig entsprechend konfiguriert.
Den Sollwert musst du in derselben physikalischen Größe vorgeben.


Gruß, Onkel
 
Ok. Nochmal für mich:
habe das Eingangssignal nun auf PV_IN gelegt. Es wird 2500.0 angezeigt, was wohl einer Temperatur von 25°C entspricht. An SP_INT habe ich nun 150.0 geschrieben. Aber am Ausgang tut sich nix. Kapiere nicht so ganz wo der Fehler ist.
Möchte eigentlich nur die Temperatur in einem Wasserkreislauf konstant halten. Das kann doch nicht so kompliziert sein. Der Baustein ist ja auch schon fertig. Leider stelle ich mich scheinbar zu dumm, um den Baustein richtig zu parametrieren.
Gibt es eigentlich nirgends Beispielparametrierungen für den FB41, wo man sieht auf was man achten muss??
Ich muss doch nicht alle Eingänge beschalten?? Nur die, die ich brauche. Und in meinem Fall sollte es doch recht einfach sein.

Gruß
 
Achte darauf, dass der FB41 mit konstanter Zykluszeit abgearbeitet werden muss, z.b. OB 35. Die Aufrufzeit muss am Eingang CYCLE bekannt gegeben werden.

Der Eingang COM_RST muss mit 'false' belegt sein. Lediglich im Anlauf (OB100) muss dieser Eingang mit 'true' belegt werden.

Die Variable MAN_ON ist mit 'true' vorbelegt. Dadurch ist der Regler im Anlauf auf Hand geschaltet. Damit er zu regeln beginnt musst du den Eingang MAN_ON auf 'false' setzen.

Gruß

Parz
 
MSB schrieb:
Je nach Parametrierung der Eingangsbaugruppe,
steht der Temperaturwert als Integer zur verfügung mit 1 oder 2 kommastellen.

Onkel Dagobert schrieb:
...Den Sollwert musst du in derselben physikalischen Größe vorgeben.

baerenmarx schrieb:
Ok. Nochmal für mich:
habe das Eingangssignal nun auf PV_IN gelegt. Es wird 2500.0 angezeigt, was wohl einer Temperatur von 25°C entspricht. An SP_INT habe ich nun 150.0 geschrieben. Aber am Ausgang tut sich nix. Kapiere nicht so ganz wo der Fehler ist.

Ein klein wenig deprimierend ist das schon, oder? Gib dir mal ein bisschen Mühe! Wie groß ist die Regeldifferenz?


Gruß, Onkel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Sorry. Bin wohl noch nicht ausgeschlafen!! Das war natürlich Blödsinn, die Regeldifferenz negativ zu machen
Der entscheidende Tipp war aber den Eingang MAN_ON auf "false" zu setzen!!!
Ich danke euch allen für die Mühe mit mir. Aber es war eigentlich wirklich nur dieser kleiner Fehler, der mich fast wahnsinnig gemacht hat.
Ich hoffe ich kann euch jederzeit nochmal belästigen, auch wenn ich diesesmal ein wenig auf dem Schlauch stand:)

Viele Grüße

Baerle
 
Zurück
Oben