Differenztemperatur

Begonnen von CMSDAU, 17. Oktober 2010, 14:52:29

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 3 Gäste betrachten dieses Thema.

CMSDAU

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

NetFritz

Hallo
Vielleicht ist der Baustein "CTRL_IN" das richtige für dich.
Gruß NetFritz

CMSDAU

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

peewit

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]

CMSDAU

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

NetFritz

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

Rafael

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

peewit

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]