Autor Thema: Wärmebehandlung - Temperaturverlauf - Programmierung  (Gelesen 11777 mal)

Offline HHrev

  • Newbie
  • *
  • Beiträge: 6
Wärmebehandlung - Temperaturverlauf - Programmierung
« am: August 18, 2011, 11:44:34 Vormittag »
Guten Tag!

Mit wurden zwei EATON/Möller (easy)-Systeme vorgesetzt um eine "einfache" Temperaturregelung für eine Wärmebehandlung aufzubauen.

Die Hardware die mir zur Verfügung gestellt wurde ist:
   -> easy200 POW (Stromversorgung)
   -----------
   -> easy512-DC-RC ("Kompaktsteuerung")
   -----------
   -> MFD CP8-NT (CPU Modul)
   -> MFD-R16 (I/O Modul)
   -> MFD-80-B (Display Modul)
   -----------
   -> PT100 Temperatursensoren
   -> Gebläse
   -> Heizung...

Folgende Aufgabe habe ich zu programmieren:
   -> Es soll ein Temperaturverlauf, der durch Zeit/Temperatur-Wertepaare vorgegeben ist,
      "nachgefahren" werden (mit linearer Interpolation zwischen den Stützstellen).
   -> Die Anzahl der Zeit/Temperatur-Werte ist fix = 5 (vorraussichtlich)
   -> Es soll mehrere vorgegebene Zeit/Temp Verläufe zur Auswahl geben.
   -> Gesamtzeit des Temperaturverlaufes kann bis zu 2 Tagen dauern.
   -> Es sollen an der Steuerung die Zeit/Temperatur Vorgabewerte geändert werden können
   -> Es soll der aktuelle Betriebszustand im Display angezeigt werden

Da ich viel Erfahrung mit textueller Programmierung habe, wollte ich das Programm natürlich schreiben/tippen.

Nach längerem herumprobieren, Forum-lesen und Installation von mehreren CoDeSys Demoversionen,
kann ich noch immer nicht mit sicherheit sagen, ob man die oben genannten Steuerungen überhaupt mit AWL oder
sonst einer textuellen Sprache programmieren kann.

Also habe ich mich mal einige Stunden in die EasySoft-Pro V6.80 eingearbeitet - stoße aber andauernd auf triviale Dinge,
die mir sehr viel Zeit kosten - bzw. die ich noch überhaupt nicht lösen konnte.
(Ich denke halt noch in Anweisungen und nicht in Plänen (Schalt- und Bausteinplan)

Nun meine Fragen zur Möglichkeit der textuellen Programmierung:
   -> Lassen sich die oben genannten Steuerungen auch irgendwie textuell programmieren?
      -> wenn mit CoDeSys - mit welcher Version und welchen Targets?
      -> wenn auch anders - wie?

Meine ersten Fragen zur "grafischen Programmierung" mit easySoft-Pro:
   -> Wie kann ich konstante Werte in ein MB oder MW speichern? Oder wo/wie würdet ihr die Zeit/Temp Wertetabelle speichern?
   -> Wie würdet ihr die Interpolation bewerkstelligen? Mit den Arithmetik-Bausteinen? oder gibts da was einfacheres?

Abschließend noch eine allgemeine Frage:
   -> Ist der beschriebene Programmumfang für die beiden Steuerungen zu bewältigen? Wo sind ev. Probleme zu Erwarten?

Wenn euch noch Antworten zu Fragen einfallen, die ich gar nicht gestellt habe, die mich aber Interessieren werden, is auch gut!
Tips kann ich als grafischer Programmierneuling gut gebrauchen!

Was auch hilfreich wäre, ist, wenn mir mal wer einen kleinen Überblick geben könnte, wie ihr dieses Programm grafisch aufbauen würdet.

Danke!

mfg Harald
« Letzte Änderung: August 18, 2011, 18:17:41 Nachmittag von HHrev »

Offline veltins54

  • easy god
  • *****
  • Beiträge: 1199
Re:Wärmebehandlung - Temperaturverlauf - Programmierung
« Antwort #1 am: August 18, 2011, 11:51:51 Vormittag »
Hallo

die beiden Steuerungen lassen sich nur mit der Easysoft programmieren,also grafisch.
Festwerte lassen sich in DB-Bausteine speichern,in der MFD CP8-NT.
Wozu soll die Easy512 sein.
Diese beiden Steuerungen können nicht miteinander kommunizieren,eine bessere
Kombination wäre   MFD CP8-NT +Easy 819 DC-RC.
In der 800ter ist auch die Wertespeicherung einfacher.

Die Programmierung ist mit einer klassischen Relaissteuerung zu vergleichen,weshalb sie ja
auch als EasyRelais bezeichnet wird.
Das aber mit einen wesentlich größerem Funktionsumfang.  

Wenn du in deiner Programmiersprache arbeiten möchtest kannst du die Easycontrol verwenden.
« Letzte Änderung: August 18, 2011, 12:49:20 Nachmittag von veltins54 »
Für die Richtigkeit der Beispiele wird keine Gewähr übernommen.
Für Schäden, die durch Verwendung der Beispiele entstehen, wird keine Haftung übernommen.

Offline HHrev

  • Newbie
  • *
  • Beiträge: 6
Re:Wärmebehandlung - Temperaturverlauf - Programmierung
« Antwort #2 am: August 18, 2011, 13:49:03 Nachmittag »
Hallo!

Danke für deine schnelle Antwort!

Die zwei Steuerungen sind schon vor längerer Zeit von jemand anderem für dieses Projekt gekauft worden.

Es sind zwei verschiedene Steuerungen, da eine "große" und eine "kleine" Variante der Maschine gebaut werden soll, wobei die kleinere einen verkleinerten Funktionsumfang haben soll.
-> Also Kommunikation zwischen den Steuerungen wird nicht angestrebt!

Weil die beiden Steuerungen schon hier herumliegen, will ich mal probieren diese zu Verwenden, bevor ich mir andere Hardware ansehe.

Wegen der grafischen Programmierung:
-> das mit den Datenbausteinen hab ich wohl verstanden - scheint aber trotzdem ein sehr großer Aufwand zu sein nur um eine Zahl in einen Merker zu speichern?
-> Wenn ihr mir noch einen Weg zur Interpolation verratet (ausser mit Arithmetik Bausteinen "selber rechnen"), kann ich eigentlich schon loslegen und sehen wie weit ich komme...


thx, mfg Harald

Offline veltins54

  • easy god
  • *****
  • Beiträge: 1199
Re:Wärmebehandlung - Temperaturverlauf - Programmierung
« Antwort #3 am: August 18, 2011, 14:18:48 Nachmittag »
Hallo

welche Werte sollen mit der linearen Interpolation verarbeitet werden.

mal ein Beispiel bitte.

Man kann die Werte auch in ein MB , MW oder DW speichern.
Dazu müssen die entsprechenden MB,s remanent gemacht werden.
Die Easysoft 6,80 hat im Programm eine Hilfe,in ihr befindet sich eine Tabelle in der die zusammenhänge
erklärt werden.
In der oberen Leiste das ?.
Oder Baustein ins Arbeitsfeld ziehen,(in dem Fall) Merker dann  F1  die Tabelle wird sichtbar.
« Letzte Änderung: August 18, 2011, 14:48:39 Nachmittag von veltins54 »
Für die Richtigkeit der Beispiele wird keine Gewähr übernommen.
Für Schäden, die durch Verwendung der Beispiele entstehen, wird keine Haftung übernommen.

Offline HHrev

  • Newbie
  • *
  • Beiträge: 6
Re:Wärmebehandlung - Temperaturverlauf - Programmierung
« Antwort #4 am: August 18, 2011, 15:58:34 Nachmittag »
Hallo!

ich habs jetzt so gemacht, dass bei Programmstart konstante Werte aus den DB Bausteinen in Merker gespeichert werden... das ist sicherlich nicht die "schönste" Lösung, funktioniert aber fürn Anfang mal recht gut.

An das Remanent machen der Merker habe ich auch schon gedacht, jedoch will ich ja die vom Benutzer vorgenommenen Änderungen vorraussichtlich nicht remanent speichern; weiters habe ich es einfach nicht geschafft irgendwo die merker auf einfachen weg mit zahlen vorzubelegen  :-[ ? wie geht das?

Wegen der linearen Interpolation: Es soll die "Soll-Temperatur" zwischen den Stützstellen (Zeit und Temperatur) linear interpoliert werden.

So, nun ein Beispiel zur linearen Interpolation:

In den Merkern sind die angestrebten Endtemperaturen und die Zeiten die benötigt werden sollen um diese zu erreichen gespeichert
-- also z.B. Zeit1 im MW50; Temperatur1 im MW51; Zeit2 im MW52; Zeit3 im MW53 usw
Als Beispiel mit Zahlen:
    Zeit1=60min; Temperatur1=50°C;
    Zeit2=120min; Temperatur2=50°C
    Zeit3=100min; Temperatur3=200°C
    Zeit4=300min; Temperatur4=200°C
    Zeit5=600min; Temperatur5=Raumtemperatur
Der angestrebte soll-Temperaturverlauf sieht dann folgendermaßen aus:
-> in den ersten 60Minuten (Zeit1) nach Programmstart soll die Temperatur "linear" auf 50°C (Temp1) ansteigen.
    (also wenn die starttemperatur/raumtemperatur/maschinentemperatur anfangs z.B. 20°C ist,
    dann muss die soll-Temperatur nach 30Minuten 20°C+(30min/60min)*(50°C-20°C)=35°C betragen.
    also, wenn die Zeit1 verstrichen ist (nach 60minuten) muss die solltemperatur Temp1 (50°C) betragen
-> in den folgenden 120min (Zeit2) soll die Temperatur auf 50°C (Temp2) gehalten werden
-> in den nächsten 100min (zeit3) soll die Temperatur wieder linear auf 200°C (Temp4) ansteigen
    der Temperaturanstieg über die Zeit sollte wieder mittels linearer Interpolation geschehen.
    wenn die Zeit3 verstrichen ist, soll die Maschine auf 200°C sein
-> In den darauffolgenden 300min (Zeit4) wird wieder die Temperatur gehalten,
    da die Anfangs- und Endtemperatur dieses Zeitabschnittes gleich sind
-> im letzten Zeitabschnitt (Zeit5=10Std) soll die maschine wieder auf raumtemperatur abkühlen - wieder mit ca. linearem Temperaturverlauf.

Nur der vollständigkeit halber (du wirst es eh wissen) die Formel für die lineare Interpolation zwischen zwei stützstellen:
Zwischenwert = Anfangswert + [(verstrichene Zeit)/(Gesamtzeit)] *(Endwert-Anfangswert)

Die Heizung / das Gebläse sollen vorerst mit einem Schwellwertvergleich (zwischen Soll- und Isttemperatur) geschalten werden.
(Wenn das mal alles funktioniert, überlege ich einen PID Reglerbaustein zu verwenden und die Verbraucher mittels PWM zu "dimmen"...)

Die "Reglerparameter" (also Schwellengröße, oder P,I,D) werden später experimentell ermittelt...

Danke für deine Hilfe!

mfg H

P.S.: Wie die Hilfe-Funktion funktioniert weiß ich eh, und die Verteilung der Merker im Speicher ist mir auch schon klar (glaube ich halt...)
« Letzte Änderung: August 18, 2011, 18:18:20 Nachmittag von HHrev »

Offline veltins54

  • easy god
  • *****
  • Beiträge: 1199
Re:Wärmebehandlung - Temperaturverlauf - Programmierung
« Antwort #5 am: August 18, 2011, 16:43:24 Nachmittag »
Hallo,

also machbar ist es mit der MFD -CP8-NT.

Zu deiner Frage zur Speicherung der Sollwerte in MB,s oder MW,dieses kann über eine
Eingabemaske erfolgen welche als Zielort ein MB,MW,DW hat.
Dazu ist es aber notwendig das sie remanent gemacht werden,weil sonnst die Werte
beim ausschalten der Steuerung wieder 0 sind.
Die Werte können auch in den verschiedenen Bausteinen direkt über eine Maske eingetragen
werden.
Zu deiner linearen Interpolation,kannst du dir mal die LS-Bausteine ansehen,wenn du es nicht mit AR,s
machen willst.
« Letzte Änderung: August 18, 2011, 17:47:21 Nachmittag von veltins54 »
Für die Richtigkeit der Beispiele wird keine Gewähr übernommen.
Für Schäden, die durch Verwendung der Beispiele entstehen, wird keine Haftung übernommen.

Offline HHrev

  • Newbie
  • *
  • Beiträge: 6
Re:Wärmebehandlung - Temperaturverlauf - Programmierung
« Antwort #6 am: August 18, 2011, 18:13:41 Nachmittag »
Hallo!

Zitat
also machbar ist es mit der MFD -CP8-NT.
kann ich daraus schließen, dass dieses projekt mit der easy512 nicht zu bewerkstelligen ist?

Zitat
Zu deiner Frage zur Speicherung der Sollwerte in MB,s oder MW, dieses kann über eine
Eingabemaske erfolgen welche als Zielort ein MB,MW,DW hat.
Falls du damit eine Eingabemaske am MFD Display meinst:
   wow, das klingt mal relativ einfach, werde die "visualisierung" aber erst später in angriff nehmen!
   (oder ist das eine schlechte herangehensweise, wenn man solche steuerungen programmiert?
   also die "grafische oberfläche" erst nach dem funktionsaufbau "programmiert")
Falls du eine Eingabemaske in der Programmiersoftware meinst:
   wo finde ich diese eingabemaske?

Zitat
Die Werte können auch in den verschiedenen Bausteinen direkt über eine Maske eingetragen
werden.
Das habe ich, wie oben geschrieben, schon bei den DB Bausteinen verwendet um die vorbelegung der merker zu bewerkstelligen - nur habe ich nach einer ähnlichen Maske für die Merker gesucht, die es wohl nicht gibt...

Zitat
Zu deiner linearen Interpolation,kannst du dir mal die LS-Bausteine ansehen
aahhh,.... die habe ich sogar schon in verwendung für die pt100 sensoren - nur habe ich den Zusammenhang nicht erkannt  ;)


Wiedermal vielen Dank für deine sehr hilfreichen Informationen!
Wünsch noch nen schönen Abend!




Offline veltins54

  • easy god
  • *****
  • Beiträge: 1199
Re:Wärmebehandlung - Temperaturverlauf - Programmierung
« Antwort #7 am: August 18, 2011, 18:22:43 Nachmittag »
Hallo

schau dir mal deine Persönliche Nachricht an.
Das alles schriftlich zu erklären dauert zu lange.

Trotzdem fange ich mal an.
zu 1.

Ob es mit der 512 auch geht kann ich  so nicht sagen,mit einigen Tricks könnte es in einfacherer Form
möglich sein.Aber dazu müsste man sich erst mal mit dem Gesamtumfang befassen.
In der 512 gibt es keine AR-Bausteine was die Berechnung des ersten  Schrittes (Soll (50)- ist(20)
schwieriger macht.

ZU 2. Ich meine die Eingabemaske am MFD Display .

Die Herangehensweise an die Programmierung,das macht wohl jeder anders.

Zu 3.

Die Merker sind Bestandteil der MB,s ,MW.DW, eine Zahleneingabe in einen Merker (1 bit)
kann nicht erfolgen.schau dir die Tabelle richtig an.
Dazu sind die  MB ,MW.DW, also Achtung bei der Verwendung MB,MW.DW  das macht die darin enthaltenen
Merker für die normale Verwendung unbrauchbar.
Als Beispiel MB1 ist gleich Merker 1-8,MB1 ist im MW1 und DW1.
« Letzte Änderung: August 18, 2011, 19:53:07 Nachmittag von veltins54 »
Für die Richtigkeit der Beispiele wird keine Gewähr übernommen.
Für Schäden, die durch Verwendung der Beispiele entstehen, wird keine Haftung übernommen.

Offline veltins54

  • easy god
  • *****
  • Beiträge: 1199
Re:Wärmebehandlung - Temperaturverlauf - Programmierung
« Antwort #8 am: August 18, 2011, 19:09:16 Nachmittag »
Hallo,

jetzt mal zu den LS-Bausteinen.

Als Eingangs variable nehmen wir mal ein Zeitrelais 0-60 min (Ausgang QV= Istzeit)
 als ersten Bereich X1 =0    X2 =60 das sind die Zeitwerte

 als zweiter Bereich Y1 = 50   Starttemp nach ersten schritt.

                                 Y2 =  200 Endtemp nach 60 min

jetzt berechnet der LS-Baustein ständig das Verhältnis  Istzeit  zur Solltemp linear so gut er kann.

Dieses Beispiel soll nur das Prinzip darstellen.



Für die Richtigkeit der Beispiele wird keine Gewähr übernommen.
Für Schäden, die durch Verwendung der Beispiele entstehen, wird keine Haftung übernommen.

Offline veltins54

  • easy god
  • *****
  • Beiträge: 1199
Re:Wärmebehandlung - Temperaturverlauf - Programmierung
« Antwort #9 am: August 18, 2011, 19:46:28 Nachmittag »
Hallo,

unter Umständen brauchst du eine Werteeingabe in MB,MW,DW nicht,denn alle Werte können
in den Bausteinen über Display auch eingegeben werden und verändert werden,und sie bleiben gespeichert.
Für die Richtigkeit der Beispiele wird keine Gewähr übernommen.
Für Schäden, die durch Verwendung der Beispiele entstehen, wird keine Haftung übernommen.

Offline Maikky

  • Sr. Member
  • ****
  • Beiträge: 531
Re:Wärmebehandlung - Temperaturverlauf - Programmierung
« Antwort #10 am: August 18, 2011, 21:06:13 Nachmittag »
Hallo HHrev, hallo veltins54.

Ich glaube wir kommen hier am einfachsten mit einigen Beispielen weiter.

Im Anhang ist ein Beispiel zum
- Setzen der Werte bei Programmstart
- Änderung der Werte
- Sollwerterhöhung für "Schritt 3" (Beispiel von 50°C nach 200°C in 100 min.)
 
Ist natürlich nur ein Vorschlag und als Beispiel gedacht.

Gruß
Maikky

Offline veltins54

  • easy god
  • *****
  • Beiträge: 1199
Re:Wärmebehandlung - Temperaturverlauf - Programmierung
« Antwort #11 am: August 18, 2011, 21:52:42 Nachmittag »
Hallo HHrev,

wie Maikky,s Beispiel zeigt gibt es verschiedene Möglichkeiten zum Ziel zu kommen.
Ich hatte da an einen anderen Weg zur Lösung gedacht,aber so ist es nun mal
verschiedene Programmierer verschiedene Wege.
Und das ist auch gut so.
Für die Richtigkeit der Beispiele wird keine Gewähr übernommen.
Für Schäden, die durch Verwendung der Beispiele entstehen, wird keine Haftung übernommen.

Offline Maikky

  • Sr. Member
  • ****
  • Beiträge: 531
Re:Wärmebehandlung - Temperaturverlauf - Programmierung
« Antwort #12 am: August 18, 2011, 22:02:50 Nachmittag »
Hallo HHrev, hallo veltins54.

Die Idee von veltins54 den Ausgang eines Timers zur Skalierung zu nehmen ist wahrscheinlich
einfacher. Habe das Beispiel entsprechend geändert.

Gruß
Maikky

 

Offline veltins54

  • easy god
  • *****
  • Beiträge: 1199
Re:Wärmebehandlung - Temperaturverlauf - Programmierung
« Antwort #13 am: August 18, 2011, 22:35:46 Nachmittag »
Hallo Maikky,

ob das mit dem Timer der einfachere Weg ist,ist noch nicht sicher,es sollte auch nur ein Beispiel sein.
Für die Richtigkeit der Beispiele wird keine Gewähr übernommen.
Für Schäden, die durch Verwendung der Beispiele entstehen, wird keine Haftung übernommen.

Offline HHrev

  • Newbie
  • *
  • Beiträge: 6
Re:Wärmebehandlung - Temperaturverlauf - Programmierung
« Antwort #14 am: August 22, 2011, 13:08:48 Nachmittag »
Hallo wiedermal!

Also ich benutze nun DB Bausteine zur Wertinitialisierung der Temparaturen/Zeiten.
Der Timer+Counter funktioniert auch und die Interpolation hat auch geklappt!
All das konnte ich fast problemlos mit euren Hilfestellungen umsetzen -> Danke!

Nun stehe ich aber schon wieder an: Und zwar beim wechseln von einem Zeitabschnitt zum nächsten.

Ich habe einen Merker (M10), der anzeigt, ob eine Wärmebehandlung läuft
und 5 weitere Merker (M21-M25), die anzeigen, welcher der 5 Zeitabschnitte aktiv ist.

Am besten erkläre ich meinen Programmaufbau mit 3 Bildern:
1. Bild: laden der Werte in die Merker
2. Bild: Allgemeine Funktionen während Wärmebehandlung
3. Bild: Spezifische Funktionen während der einzelnen Schritte (aufbau aus dem bild habe ich 5x - für jeden schritt einen)

Nun mein Problem:
Wenn der erste Schritt fertig abgelaufen ist (also der Counterstand der gewünschten Minutenanzahl entspricht), wird der Merker für den nächsten Schritt gesetzt, und es sollte auch der Counter resettet werden. Doch leider bleibt das Overflow Signal des Counters noch bestehen, was dazu führt, dass die nachfolgenden Schritte auch sofort beedndet werden...

Kollegen meinten, dass das Problem wahrscheinlich mit der Abarbeitungsreihenfolge des Schaltplanes zu tun hat.... Wir haben ein bischen herumprobiert und die Schaltplanelemente fürs Counter resetten an den Anfang des Schaltplanes gestellt - und ähnliches - aber leider bisher ohne Erfolg.

Könnt ihr vielleicht Erahnen, wo mein Problem liegt, und wie ich es ev. beheben kann?
Bzw könnt ihr meinen Programmaufbau aufgrund der Erklärung+Bilder überhaupt nachvollziehen?

Wiedermal vielen Dank!
mfg Harald