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
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
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
Denke bitte auch an den FBb64 im OB1.
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?
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.
Danke
HO
Bitte schön.
Wie komme ich an den neuen Baustein ran ?
ich muss den noch ändern, dann schicke ich ihn dir.
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
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.
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.
Danke.
Ich werde den Baustein gleich in meine Test SPS laden.
Hallo Stefan,
dein Zip Datei enthält leider keine Daten.
Kannst die Datei noch einmal laden.
Danke
HO
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.
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 ?
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ß
Spielt das eine Rolle ob der FB64 vor oder nach dem dem CTR_PWM auf gerufen wird ?
Egal, wo er aufgerufen wird.
Hauptsache er wird aufgerufen.