OSCAT Forum

oscat.lib => oscat.lib fuer TwinCAT/CoDeSys => Thema gestartet von: CMSDAU in 17. Oktober 2010, 14:52:29

Titel: Differenztemperatur
Beitrag von: CMSDAU in 17. Oktober 2010, 14:52:29
Hallo zusammen!

Ich bin ein blutiger Anfänger und bastel an einer Regelung für meine Heizung.
Keine Angst, ich greife nicht in die Steuerung des Gaskessels ein!

Die Steuerung besteht aus folgenden Komponeten:

Controller 750-842
2 x 2DO 750-517
1 x 8DI 750-430
1 x 4AI 750-460

Ein Teil der Steuerung läuft schon nahezu perfekt, was mir jetzt noch fehlt, ist ein Baustein für die Temperaturdifferenz.

AI2 misst die Temperatur im Pufferspeicher.
AI3 misst die Temperatur im Warmwasserbereiter.
Ich benötige jetzt einen Baustein, der mir einen Ausgang setzt, wenn die Temparatur im Pufferspeicher um mindestens 5 Kelvin größer ist wie im Warmwasserbereiter.

Ich habe gesucht, aber nur den "differ" gefunden. Da ist es doch aber wohl so, das der schaltet, wenn 1>2 ist aber auch wenn 2>1 ist.

Wie gesagt, ich habe so gut wie keine Ahnung von der Materie. Bitte dies bei euren Antworten zu beachten und das ganze so zu formulieren, das ich geistiger Tiefflieger das auch verstehe.

Vielen Dank im voraus für eure Hilfe.

Gruß
Carsten
Titel: Re:Differenztemperatur
Beitrag von: NetFritz in 17. Oktober 2010, 23:13:14
Hallo
Vielleicht ist der Baustein "CTRL_IN" das richtige für dich.
Gruß NetFritz
Titel: Re:Differenztemperatur
Beitrag von: CMSDAU in 18. Oktober 2010, 16:04:24
Hallo NetFritz,

erst einmal danke für deine Antwort. Ich habe mir den Baustein mal angeschaut, aber ich glaube (heist nicht wissen) er ist nicht der richtige.

Ich versuche mal das ganze nochmal abers zu beschreiben.

Eingang 1 (real) - Eingang 2 (real) = >+5 dann Ausgang (bool) 1

Den Wert (im Beispiel oben 5) möchte ich verändern können.
Da ich den Ausgang an mehreren stellen im Programm verwenden muß, brauche ich nur ein 0 oder1. Den Rest mache ich mit einfachen Bausteinen (and / or).

Gruß
Carsten
Titel: Re:Differenztemperatur
Beitrag von: peewit in 18. Oktober 2010, 18:24:29
was hindert dich, das ganze auch so zu programmieren
(im anhang nochmals den mikro-baustein zum importieren)

FUNCTION real_diff : BOOL
VAR_INPUT
   E1 : REAL;
   E2 : REAL;
   DIFF : REAL;
END_VAR

real_diff := E1 - E2 >= DIFF;



[gelöscht durch Administrator]
Titel: Re:Differenztemperatur
Beitrag von: CMSDAU in 18. Oktober 2010, 19:27:19
Hallo peewit,

ich habe doch oben geschrieben "Ich bin ein blutiger Anfänger"!
CMSDAU hat die Bedeutung:
C=Carsten
M=macht
S=SPS
D=dümmster
A=anzunehmender
U=user

So, jetzt haben wir alle gelacht!

Das was du mir geschickt hast, schein zu funktionieren! Super, danke vielmals.

Wenn ich jetzt alles fertig habe, werde ich das ganze immer weiter verfeinern und mich bestimmt noch desöfteren melden!

Man kann dies als Drohung oder Versprechen sehen.

Gruß
Carsten
Titel: Re:Differenztemperatur
Beitrag von: NetFritz in 19. Oktober 2010, 19:54:14
Hallo
Ups da habe ich wohl nicht richtig gelesen.
Der Baustein von peewit ist spitze.
Ich hätte noch hätte noch in CFC ein "HYST_1" hinter dem "CTRL_IN" gesetzt.
Gruß NetFritz
Titel: Re:Differenztemperatur
Beitrag von: Rafael in 20. Oktober 2010, 13:47:10
Zitat von: peewit in 18. Oktober 2010, 18:24:29
...
real_diff := E1 - E2 >= DIFF;


Diese Funktion finde ich genial einfach.
Ich sollte mich verstärkt bemühen zukünftig mit ST zu arbeiten.
Kennt jemand adhoc einen Link zu Grundregeln von ST.
Gilt z.B. bei dem obigen Ausdruck, dass die Subtraktion vor dem logischen Vergleich durchgeführt wird?
Oder wird der Ausdruck einfach von links nach rechts abgearbeitet?
Ist sowas in der IEC 61131 festgelegt?
Ich schätze da hab ich einiges zu stöbern und zu probieren.
Tolles Forum! Tolle Funktionsbibliothek! :)
Gruß
Rafael
Titel: Re:Differenztemperatur
Beitrag von: peewit in 20. Oktober 2010, 19:39:35
hallo

Die im Strukturierten Text verfügbaren Operatoren unterliegen in ihrer Abarbeitung einer bestimmten Reihenfolge. Diese kann von entscheidender Bedeutung sein, wenn mehrere Operatoren in einem Ausdruck zusammen angewandt werden. Eine Verschiebung dieser Priorisierung kann jederzeit über eine Klammerung erfolgen. Klammern können jedoch auch benutzt werden, um eine Programmierung übersichtlicher zu gestalten und Zusammenhänge deutlicher darzustellen. (siehe anhang)

am besten zu siehst dir mal bei pascal bzw. delphi (internet) die regeln an, denn das ist ziemlich das gleiche


[gelöscht durch Administrator]