OSCAT Forum

oscat.lib => Bestehende Module / Existing Modules => Thema gestartet von: HO am 26. Mai 2011, 18:14:34

Titel: Heizungsregelung mit CTRL_PI und CTRL_PWM -> das PWM Signal bleibt auf "1"
Beitrag von: HO am 26. Mai 2011, 18:14:34
Hallo Zusammen,

ich habe eine S7 Programm für einen Ofen geschrieben. Die Heizungsregelung habe ich mit den Bausteinen CTRL_PI und CTRL_PWM realisiert. Diese Bausteine werden im OB35 alle 250 ms aufgerufen. Die Regelung funktioniert soweit.
Temperaturschwangungen +/- 0.8 Grad.

Der Ausgang von dem CTR_PI habe ich scaliert von 0.0 - 1.0 und verwende ihn als Vorgabe für den PWM Generator.

Mein Hauptproblem ist das ab und zu der PWM Generator nicht startet. Sein Ausgang bleibt auf High. Das heißt mein Ofen heizt was das Zeug hergibt.

Hat jemand eine Idee.

Vielen Dank
Titel: Re:Heizungsregelung mit CTRL_PI und CTRL_PWM -> das PWM Signal bleibt auf "1"
Beitrag von: Fussel0804 am 26. Mai 2011, 20:41:26
Hi!

Sehe ich das richtig, dass du einen Holzofen mit Wasserführung einsetzt?

Heizungspumpe wird Drehzahlgeregelt um die Temperatur im Wärmetauscher des Ofens konstant hält.

Warum rufst du den CTRL_PI und den CTRL_PWM im OB35 auf?



Welche CPU setzt du ein?
Welche OSCAT Version nutzt du?
Rufst du den FB64, DB64 im OB1 auf?

Hier mal mein System, welches tadellos funktioniert:

Hardware:
CPU 315 2DP V3.0
Wago Buskoppler mit SSR Relais
Temperatur wird mit PT 100 eingelesen.
Format xx.x (INTEGER xxx)
Multiplizieren mit Faktor 10
Format xx.xx (INTEGER xxxx)
Diesen Wert schicke ich über einen FILTER_I mit t=1s
(zum beruhigen des Wertes und "flattern" zu vermeiden)
Ausgeben als REAL Formal xx.xx

CTRL_PI und CTRL_PWM im FB aufgerufen
CTRL_PI Ausgang von 0.3-1.0 Skaliert
bei Werten unter 0.3 läuft die Pumpe "nicht rund".
CTRL_PWM
- F: 10.0 Hz
- DC: 0.3-1.0

Gruß Stefan
Titel: Re:Heizungsregelung mit CTRL_PI und CTRL_PWM -> das PWM Signal bleibt auf "1"
Beitrag von: HO am 29. Mai 2011, 07:32:05
Hallo Stefan,

ich habe eine industriellen Ofen für Wärmebehandlung für eletronische Bausteile.
Ich setze eine VIPA SPS ein : 315AG12 (Speed 7)
Oscat Version Step7_311
Step Version 5.4 Sp4

Ich mache heute einen  Test und rufe die Bausteine zkylisch über den OB1 auf und nicht meht über den OB35.
Mal sehen was passiert.

Ich gebe dir info, wenn es funktioniert.

Gruß

HO
Titel: Re:Heizungsregelung mit CTRL_PI und CTRL_PWM -> das PWM Signal bleibt auf "1"
Beitrag von: Fussel0804 am 29. Mai 2011, 10:43:14
Denke bitte auch an den FBb64 im OB1.
Titel: Re:Heizungsregelung mit CTRL_PI und CTRL_PWM -> das PWM Signal bleibt auf "1"
Beitrag von: HO am 31. Mai 2011, 07:16:08
Hallo Stefan,

ich habe alle Bausteine im Programm. Ich habe festgestellt der Baustein für das PWM_CTR läuft nicht an.
Wenn ich alle Instanz DB's neu übertrage funktioniert er, solange bis ich die SPS wieder ausschalte und neu Starte.

Ich habe folgendes festgestellt das Progamm CLK_PRG wird beim Start der SPS nicht neu initialisert.

VAR_INPUT
  PT : TIME := t#10ms;
END_VAR
VAR_OUTPUT
  Q : BOOL := 0;
END_VAR
VAR
  init : BOOL;
  last : TIME;
  tx: TIME;
END_VAR

BEGIN

(* read system time *)
tx := DINT_TO_TIME(DWORD_TO_DINT(T_PLC_MS()));
 
(* initialize on startup *)
IF NOT init THEN
    init := TRUE;
    last := tx - pt;
END_IF;
 
(* generate output pulse when next_pulse is reached *)
Q := tx - last >= pt;
IF Q THEN last := tx; END_IF;
 
 
(* revision hiostory

hm 25 feb 2007  rev 1.1
    rewritten code for higher performance
    pt can now be changed during runtime

hm  17. sep 2007    rev 1.2
    replaced time() with t_plc_ms() for compatibility reasons

hm  25. oct. 2008   rev 1.3
    optimized code

*)
END_FUNCTION_BLOCK

Ich setze im OB100 (Neuanlauf) die Variable "Init" zurück -> dann läuft der Baustein !

Was hälst Du davon?
Ist das der richtige Weg?


Titel: Re:Heizungsregelung mit CTRL_PI und CTRL_PWM -> das PWM Signal bleibt auf "1"
Beitrag von: Fussel0804 am 31. Mai 2011, 07:28:21
Vom Prinzip hast du recht.

Die initialisierung wird eingebaut.
Dann kannst du den schritt im OB100 weglassen.

Frage:

Bitte setzt im OB1 den Befehl:
Call FB64, DB64

dann müsste es auf jeden Fall laufen.
Titel: Re:Heizungsregelung mit CTRL_PI und CTRL_PWM -> das PWM Signal bleibt auf "1"
Beitrag von: HO am 01. Juni 2011, 06:34:42
Danke

HO
Titel: Re:Heizungsregelung mit CTRL_PI und CTRL_PWM -> das PWM Signal bleibt auf "1"
Beitrag von: Fussel0804 am 01. Juni 2011, 06:36:21
Bitte schön.
Titel: Re:Heizungsregelung mit CTRL_PI und CTRL_PWM -> das PWM Signal bleibt auf "1"
Beitrag von: HO am 01. Juni 2011, 06:40:44
Wie komme ich an den neuen Baustein ran ?
Titel: Re:Heizungsregelung mit CTRL_PI und CTRL_PWM -> das PWM Signal bleibt auf "1"
Beitrag von: Fussel0804 am 01. Juni 2011, 06:52:46
ich muss den noch ändern, dann schicke ich ihn dir.
Titel: Re:Heizungsregelung mit CTRL_PI und CTRL_PWM -> das PWM Signal bleibt auf "1"
Beitrag von: HO am 01. Juni 2011, 07:06:12
Hallo Stefan,

ich habe noch eine weitere Frage.
Dieses Projekt ist das erste mit dem ich mit SCL in Kontakt komme. Seither habe ich mich fast nur ausschließlich mit S5/S7 AWL und den sonstigen Softwarepakete (ausser SCL) von Siemens beschäftigt.


SCL gefällt mir ziemlich gut. Wie komme ich an Literatur ran, um mich in SCL einzuarbeiten ?

Danke

HO
Titel: Re:Heizungsregelung mit CTRL_PI und CTRL_PWM -> das PWM Signal bleibt auf "1"
Beitrag von: Fussel0804 am 03. Juni 2011, 18:05:16
Da bin ich im Moment überfragt.

Ich werde mich mal schlau machen.

Heute abed ca. 22:00 werde ich dir eine Datei mit der Aktualisierten Version hochladen.
Titel: Beta Rel 3.32 (CTRL_PI und CTRL_PWM)
Beitrag von: Fussel0804 am 03. Juni 2011, 22:24:22
So, hier die versprochene Zip-File

Sie beinhaltet CTRL_PI und CTRL_PWM und alle benötigten untergeordneten Bausteinen.

Soweit ich das gesehen habe musst du nur den FB64 übertragen (Rel3.11=V1.3 / Rel3.32=V1.4)

wenn dieser FB Zyklisch im OB1 aufgerufen wird (Call FB64, DB64) dann passiert das problem mit dem "hängenden" Ausgang und den falschen Zeitrechnungen (überlauf des SPS Timers) nicht mehr.

Viel Erfolg damit.
Titel: Re:Heizungsregelung mit CTRL_PI und CTRL_PWM -> das PWM Signal bleibt auf "1"
Beitrag von: HO am 08. Juni 2011, 14:37:01
Danke.

Ich werde den Baustein gleich in meine Test SPS laden.
Titel: Re:Heizungsregelung mit CTRL_PI und CTRL_PWM -> das PWM Signal bleibt auf "1"
Beitrag von: HO am 09. Juni 2011, 08:50:23
Hallo Stefan,

dein Zip Datei enthält leider keine Daten.

Kannst die Datei noch einmal laden.

Danke

HO
Titel: Re:Heizungsregelung mit CTRL_PI und CTRL_PWM -> das PWM Signal bleibt auf "1"
Beitrag von: Fussel0804 am 09. Juni 2011, 09:11:31
Nein, kann ich leider nicht.

Main Laptop mit der S7 Software ist kaputt.

Aber:

Die OSCAT BASIC 3.32 und BUILDING 1.00 ist Online im Downloadbereich.

Da kannst du dir alle neuen Versionen "rausziehen"

Brauchst ja nur den FB64 neu.
Titel: Re:Heizungsregelung mit CTRL_PI und CTRL_PWM -> das PWM Signal bleibt auf "1"
Beitrag von: HO am 09. Juni 2011, 09:31:00
Stefan,

ich habe noch eine weitere Frage.

In meinem Ofen hab ich 3 Heiz Zonen. Für den FB 64 brauche ich jeweils 3 verschiedene Instanzen ?
Oder muß ich den FB64 nur einmal aufrufen für alle 3 ?
Titel: Re:Heizungsregelung mit CTRL_PI und CTRL_PWM -> das PWM Signal bleibt auf "1"
Beitrag von: Fussel0804 am 09. Juni 2011, 10:02:49
Den Aufruf
   CALL FB64, DB64
machst du genau 1x im OB1

Sämtliche Bausteine die den internen SPS timer benutzen ziehen sich die Daten aus dem DB64

Mit dem Aufruf umgehst du den üblichen Timerüberlauf bei neustart der SPS.

Gruß
Titel: Re:Heizungsregelung mit CTRL_PI und CTRL_PWM -> das PWM Signal bleibt auf "1"
Beitrag von: HO am 09. Juni 2011, 18:07:20
Spielt das eine Rolle ob der FB64 vor oder nach dem dem CTR_PWM auf gerufen wird ?
Titel: Re:Heizungsregelung mit CTRL_PI und CTRL_PWM -> das PWM Signal bleibt auf "1"
Beitrag von: Fussel0804 am 09. Juni 2011, 18:28:22
Egal, wo er aufgerufen wird.
Hauptsache er wird aufgerufen.