Pulsweitenmodulation cpu317f

mjoedi

Level-1
Beiträge
35
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo
kennt sich jemand mit PWM aus wie man sowas programmieren kann.
hab ne cpu317f dort hängen 4 heizlüfter dran die über eine pwm angesteuert werden sollen.
die heizer werden über ein externes gebläse mit luft versorgt.
jetzt soll am Touchpanel eine Gradzahl eingegeben werden und die heizlüfter sollen diese temperatur halten.
an den heizern hängt jeweils ein pt100 dran.
im moment gehts nur mit prozent eingabe ca21% entsprechen der Temperatur von 160°C die so konstant wie möglich gehalten werden soll
für dieses produkt, es werden aber noch andere Temperaturen benötigt und die eingabe soll unbedingt in °C erfolgen

aber 42% sind nicht 320°C sondern nur ca 270 also kann man es nicht so richtig berechnen

habe es im moment über den ob35 (der wird alle 20ms aufgerufen) gemacht :

OB35
L 1
L MW888
+I
T MW888



U(
L MW888
L 100
>=I
)
SPBNB _001
L 0
T MW888


FC1

L MW888
L 21 eingabe in Prozent
<=I
= A1.0



vielleicht kann mir ja jemand helfen bin da noch etwas jungfräulich :-(
 
Die Prozente die du an die PWM Ausgänge anlegst geben keine Aussage darüber was für eine Temperatur du erreichen willst. Die Prozente geben nur Aussage wieviel von der Maximalleistung deiner Aktoren du anforderst.

Um das korrekt zu machen musst du noch einen Regler dazwischenprogrammieren. Der gibt dir dann eine Prozentangabe aus.

diese verwendest du dann für die Berechnung deiner Pulsweite.

mfG René
 
Schau dir mal die Hilfe zum FB41 und zum FB43 an.

FB41. ist der Regler den du für deinen zweck verwenden kannst. FB43 macht dir dein PWM Signal aus dem Ausgangssignal des FB41.

FB41 muss in einem Weckob aufgerufen werden, z.B. alle 100ms OB35.

Du brauchst am FB41 dann garnicht viel anhängen nur den Fühler und den Sollwert vom Panel, den Rest machst du mit Pid-Control parametrieren aus dem Simatic Programmordner.

Auf dem ausgang LMN am FB41 kommt dein Stellsignal für FB43 _INV

mfG René
 
also ich rufe den ob35 alle 20ms auf
hab mal nen screenshot angehangen wie es momentan aussieht
pew100 entspricht derzeit 225
wenn ich jetzt wie dargestellt eigentlich als vorgabe 10°C eingebe sollte doch am LMN eine Null stehen sodass nicht geheizt wird
da steht aber volle 100%
oder was ist da noch falsch ?

Unbenannt.JPG
 
Der Proportionalbeiwert muss zum Heizen Negativ sein.

Ich persönlich würde das PEW erst skalieren und auf ein Real Wert wandeln um es als lesbaren Sollwert an PV_Int anzuhängen.
Dann kann man SP nämlich auch gleich lesbar anhängen und muss nix mehr wandeln im Panel.
Sonst bist du dir ja ständig im Kopf am ausrechnen was im PEW grad daherkommt und wieviel die Abweichung vom SP ist was viel einfacher ist wenn beide Werte direkt in einem Lesbaren Format dargestellt wird, vor allem auch wenn du dann im PID-Controll online betrachtest.

mfg René
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja weill 00e1 im PEW100 eben nicht 22.5 entspricht.
in der Hilfe steht was dazu was mit dem PV_PER gemacht wird.

Ich sag dir wandel das vorher in eine Gleitpunktzahl. Mach das zeug für dich lesbar.

mfG René
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ja bin im pid control auf laden gegangen
hab auch mit -1 und nur 1 probiert
wenn ich positv eingebe gehts lmn sofort auf 100 bis die temperatur erreicht ist und dann auf null
und bei negativer zahl passiert garnix
 
versteh auch nicht wirklich nach was sich der baustein richten soll oder wie der funktioniert
wenn ich jetzt z.b. 160°C eingebe woher nimmt der dann den wert was bei LMN rauskommen soll
woher bekommt der seine bezugsgrößen oder regelt der sich dann selber ein wenn Soll==Ist ist.
oder muß ich da vorher noch irgendwo was berechnen oder einen anderen baustein noch aufrufen
 
Das ist ein Regelbaustein.

Die je grösser die Abweichung zwischen PV und SP wird mit dem Proportionalbeiwert multipliziert und das Resultat am Ausgang ausgegeben. Sehr vereinfacht ausgedrückt. Integralanteil, Arbeitspunkt etc. gehören natürlich auch in die Formel rein.

Poste mal einen Onlineausdruck deines Instanzdbs. Und setz die Integrationszeit mal auf einen höheren Wert das du was siehst wenn er Regelt. 500sek oder mehr.

mfG René
 
Zuletzt bearbeitet:
Sorry hab dir vorhin n blödsinn erzählt. Positiver Proportionalbeiwert ist zum Heizen. Wiedermal selbst reingefallen.

Mach den mal auf 2.0, integralzeit auf 500s,
Ne Variablentabelle auf.
Schreib da mal SP und VP und LMN rein.
resetier den Regler. und spiel einfach mal mit dem VP rum.
Dann siehst du was er macht.
Ich glaub nämlich du hast nur gedacht der schreibt direkt 100.0 raus weil du ne sehr kurze Integrationszeit gewählt hast.
 
Zuletzt bearbeitet:
hab jetzt mal probiert als der LMN wert geht langsam nach oben
aber der fb 43 pulst nicht sowie der LMN wert so ca 4.0 erreicht schaltet er durch und QPOS_P bleibt auf 1 stehn bis die temp erreicht ist

wenn ich direkt ne 10 dranschreibe an den fb43 pulst er aber
 
Zuletzt bearbeitet:
hallo danke erstmal für die bemühungen
aber irgendwie scheint das mit den komponenten die wir hier haben nicht zu funktionieren
ob das so nicht zusammenpaßt oder so hatte mit siemens schonmal telefoniert und einen sehr netten herrn drangehabt
der sagtre das sei regeltechnik und das sollte man studiert haben wenn man damit arbeiten will so könnte man nicht weiterhelfen
super wa son A...
 
Zurück
Oben