Automatisierung der Heizungssteuerung zum Selbermachen. Teil 3
Weiter geht es über die Heimat Heizungssteuerung mit dem sprechen NM8036 Timer-Thermostat (Start hier weiterhin hier ).
Programmstrings und Programm für NM8036.Der NM8036-Timer-Thermostat ist natürlich eine gute Sache, aber ohne Person ist er immer noch nur ein Stück Hardware. Ich sage, dass für die normale Steuerung der Heizung in einem Privathaus ein Programm erforderlich ist, das entsprechend der verwendeten Ausrüstung erstellt wird. Wo soll ich anfangen?Machen wir uns mit den Grundprinzipien der Programmierung dieses "Stücks Eisen" vertraut. Wie Sie aus der Beschreibung wissen, können in der Steuerung nur 32 Befehle (Anweisungen) platziert werden. Natürlich nicht viel, aber dieser Nachteil wird bis zu einem gewissen Grad durch die Tatsache kompensiert, dass diese Teams ziemlich funktional sind, dh anfangs einige Bedingungen enthalten.Buchstäblich jede Anweisung erlaubt Ihnen, eine Wahl zu treffen:- Art des Teams;
- Start- und Endzeiten;
- Gültigkeitszeitraum;
- Belastung;
- Art des Eingangssensors;
- Nummern (Namen) des Sensors;
- obere und untere Schwellenwerte (Hysterese);
- Logik der Interaktion.
Stimmen Sie zu, Meister, eine ziemlich umfangreiche Liste und für den ersten unerfahrenen Blick ist nicht ganz unverständlich. Deshalb werden wir jetzt auf all diese Punkte näher eingehen. Danach wird sich hoffentlich alles als nicht so kompliziert herausstellen. Lesen Sie es einfach sorgfältig durch.Art des Teams. Es gibt vier davon, mit Ausnahme des Typs „Deaktiviert“: Timer, Heizung, Kühlung, Wecker. In Bezug auf den letzten, den Wecker, können wir mit Sicherheit sagen: Kaum jemand hat ihn benutzt. Obwohl vielleicht jemand fädelt und dieses Gerät an der Wand am Kopf anbringt. Aber ich würde lieber ein Handy benutzen ...Tatsächlich bleiben uns drei Arten von Interesse: Mit dem Timer können Sie die ausgewählte Last zu einer bestimmten Zeit und an einem bestimmten Tag ein- und ausschalten. Durch Erhitzen kann die Last eingeschaltet werden, wenn die Temperatur auf die eingestellten Werte abfällt, und durch Abkühlen wird eingeschaltet, wenn die Temperatur steigt.Start- und Endzeit sowie Gültigkeitsdauer. Die Wahl dieser Werte ist mit jedem Team der drei Teams möglich, an denen wir interessiert sind. Hier finden Sie Datum und Uhrzeit des Starts sowie Datum und Uhrzeit des Stopps. Diese Auswahl hängt eng mit der Gültigkeitsdauer zusammen. Auf welche Weise?
Wenn der Gültigkeitszeitraum nicht ausgewählt ist (oder „Ohne Zeitraum“ ausgewählt ist), werden die ausgewählten Werte für Zeiten und Daten wörtlich genommen. Das heißt, die Ladung funktioniert von der Startzeit über die Uhrzeit und das Datum des Stopps bis zum 2. Oktober 2099. Die ganze Zeit ohne auszuschalten. Aber wie kann man die Last jeden Tag zur ausgewählten Zeit einschalten und zu einer anderen Zeit ausschalten?
Für diese Arbeitslogik müssen Sie den Gültigkeitszeitraum angeben. Irgendein. Insbesondere wird im obigen Beispiel der Zeitraum nach Wochentagen ausgewählt und alle Tage werden angezeigt. Jetzt wird die Last jeden Tag während des Starts ein- und während des Stopps ausgeschaltet. Und so geht es wieder bis 2099 weiter.Hinweis: Bei der Auswahl der Typen des Befehls Heizen und Kühlen wirkt sich die Auswahl der Temperaturwerte neben der ausgewählten Zeit und Wirkungsdauer auch auf das Ergebnis aus.Auswahl laden. Es macht kaum Sinn zu erklären, dass dies die Wahl der Last ist, auf die das Team einwirkt. Ich stelle jedoch noch einmal fest, wie bequem es ist, eine solche Auswahl (sowie die Auswahl der Sensoren) zu treffen, wenn Namen zugewiesen sind. Ich zeige absichtlich nicht, wie der NM8036-Block über die Tastatur des Blocks selbst programmiert wird, da ich es nicht selbst gemacht habe und es viel bequemer finde, dies mit dem erweiterten Manager zu tun (ich werde im nächsten Teil darauf eingehen).
Sensoren In diesem Programmblock können Sensoren und deren Werte ausgewählt werden. Die Reihenfolge der Aktionen ist sehr logisch: Wählen Sie den Sensortyp aus, wählen Sie den Sensor selbst aus der Liste aus und stellen Sie die erforderlichen Werte ein.
Sensortyp. Es gibt drei Optionen: digital (Temperatursensoren), analog (dies sind die Eingänge des ADC-Controllers) und Vergleich zweier Sensoren (Temperatursensoren). Wählen Sie zunächst Digital.
Digitaler Sensor. Wählen Sie aus der angezeigten Liste der Sensornamen den gewünschten aus.
Hysterese. Und hier sei vorsichtig, Meister. Das Ein- und Ausschalten der Last sind Aktionen, die das System bei unterschiedlichen Temperaturen ausführt. Stellen Sie nicht die gleichen Temperaturwerte für den oberen und unteren Schwellenwert ein, dies entspricht nicht der Logik der Steuerung. Die Schwellenwerte können sehr nahe liegen, z. B. 22,12 Grad und 22,13 Grad, sie müssen jedoch unterschiedlich sein.
Die Hysterese ist die Differenz zwischen den Ein- und Ausschalttemperaturen. Darüber hinaus gibt es zwei Arten von Befehlen: Heizen und Kühlen. Wenn also eine Heizung installiert ist, wird die Last immer in der grünen Zone (unterhalb der unteren Schwelle) eingeschaltet. In der gelben Zone kann die Last ein- und ausgeschaltet werden, alles hängt von der Richtung ab. Wenn die tatsächliche Temperatur steigt, wird die Last auf die obere Schwelle (25 Grad) eingeschaltet. Wenn es erreicht ist, schaltet sich die Last aus und ihr Einschluss ist nur möglich, wenn die Temperatur auf den unteren Schwellenwert abfällt. Oberhalb der oberen Schwelle wird die Last unter keinen Umständen eingeschaltet.
Eine andere Sache ist, wenn die Art des Befehls Cool ist. Hier wird die Last immer bei Temperaturen über der oberen Schwelle (grüne Zone) eingeschaltet. Die Last wird bei der Temperatur der unteren Schwelle (24 Grad) und der Einbeziehung: bei der Temperatur der oberen Schwelle (25 Grad) getrennt. Somit wird die Temperatur für beide Befehlstypen zwischen Werten von 24 bis 25 Grad gehalten.Auswahl eines analogen Sensors. Hier und bei der Auswahl eines digitalen Sensors muss die Hysterese ein- und ausgeschaltet werden.
Das Programm bietet zwei Arten von Hystereseeinstellungen: ADC und Physik. Sie können Werte in jede Zeile eingeben, in einer anderen werden die entsprechenden Werte automatisch berechnet. Lesen Sie mehr über die Darstellung dieser Daten im zweiten Teil über ADC-Eingänge.Es sollte auch beachtet werden, dass die Logik der Last und hier der Art des Befehls entspricht: Heizen oder Kühlen. Es spielt keine Rolle, was wir hier messen: Temperatur, Druck, Kilogramm, Kilometer oder Volt ...Vergleich zweier Sensoren. Diese Funktion ist in Firmware-Versionen unter 1,95 nicht verfügbar. Es besteht auch eine Abhängigkeit von der Art des Befehls. Im obigen Beispiel wird die Last während des Heizens eingeschaltet, wenn der Sensor „Hausrücklauf“ „kälter“ als der „BTA-Ausgang“ ist. Wenn der Kühltyp ausgewählt ist, kehrt sich die Situation um.
Die Logik der Interaktion. In vielen Fällen ist diese Funktion gefragt, da es manchmal unmöglich ist, ein Programm zu erstellen, bei dem mehrere Bedingungen berücksichtigt werden müssen. Für mich sollte der Betrieb der Pumpe im Haus zum Beispiel nicht nur von der Temperatur im Flur abhängen, sondern auch von der Temperatur des Hausrücklaufs und von der Position des Schalters „Boiler“. Das heißt, drei Sensoren müssen auf dieselbe Last wirken. Im Allgemeinen kann es bei der Steuerung der Heizung eines Privathauses verschiedene Situationen geben.
Lassen Sie es uns zunächst herausfinden, Meister, mit dieser Logik. Wir sind uns sofort einig, dass die getrennte Lastposition Null (0) und die Ein-Position Eins (1) ist. Das heißt, jedes Team von 32 kann uns als Ergebnis nur diese 2 Zustände geben: 0 oder 1 (deaktiviert und aktiviert). Alle Bedingungen in diesem Befehl wurden erfüllt (Uhrzeit, Datum, Zeitraum, Sensorstatus) - ausgegeben 1 (Laden an), und wenn mindestens eine der aufgelisteten Bedingungen nicht erfüllt ist - ausgegeben 0 (Laden aus).Nehmen wir jetzt zwei Teams. Für die gleiche Ladung (ich achte besonders darauf). Zwei Teams, die auf dieselbe Last einwirken, aber unterschiedliche Sensoren testen oder eine andere Zeit einstellen, oder im Allgemeinen sind die Typen unterschiedlich: eines ist Heizen und das andere ist Kühlen oder Timer. Es spielt keine Rolle, aber die Hauptsache ist, dass jeder von ihnen sein eigenes Ergebnis liefert: 0 oder 1. Aber die Last ist eins! Wem sollte sie zuhören, wie sie sich verhalten soll? Wird es sich einschalten oder nicht?Hier kommt die Interaktionslogik ins Spiel. Es gibt zwei Optionen: die Option "ODER" und die Option "UND". Mit der Option „ODER“ wird die Last eingeschaltet, wenn mindestens ein Team 1 ausgibt. Das ODER ein anderes - es spielt keine Rolle, aber wenn mindestens eines den Startschuss gibt, wird die Last eingeschaltet.
Mit der Option "Und" auf andere Weise. Hier werden zwei Einheiten benötigt, damit die Last funktioniert. Das und das andere. Wenn mindestens eines der Teams die Freigabe nicht erteilt hat, wird die Ladung nicht eingeschaltet.Und wenn die Teams nicht zwei, sondern drei sind? Und wenn vier? Und egal, die Logik bleibt dieselbe. Die Hauptsache ist zu verstehen und sich daran zu erinnern, dass die Interaktionslogik so eingestellt ist, dass sie mit dem vorherigen Team für dieselbe Last interagiert.Nun, hier sind wir mit den Prinzipien der Programmierung von NM8036 bei der Heizungssteuerung eines Privathauses vertraut. Aber das Gespräch ist noch nicht vorbei. Wir werden noch Beispiele geben, um verschiedene Tricks kennenzulernen.Die Logik meines Systems sieht, wie bereits erwähnt, zwei Modi vor, in denen der Kessel in Betrieb ist und in dem anderen die Lufttemperatur geregelt wird. Der Modusschalter befindet sich im Schalter "Boiler".Der Name dieses Schalters entspricht anscheinend nicht seiner Logik. Warum? Denn wenn es eingeschaltet ist, gibt es eine Spannung von 0 Volt aus, und wenn es ausgeschaltet ist, gibt es 5 Volt ab. Dies ist keine notwendige Maßnahme, sondern nur, dass ich sie während der Montage zufällig auswähle. Dementsprechend habe ich das Programm gemacht, ich wollte es nicht berühren.Des Weiteren.Das Programm enthält 5 Lasten, die es steuert:1. Pumpe umgehen.2. Der Pumpenkreis zum Haus.3. Elektrische Heizelemente.4. Signalwarnung.5. Signalalarm.Kontrollierte Temperatursensoren:1. Lufttemperatur in der Eingangshalle.2. Die Temperatur am Eingang der Register.3. Temperatur im Rücklauf des Heizkreises.Im Allgemeinen ein Modusschalter, fünf Lasten und 3 Temperatursensoren. All dies muss irgendwie in einer bestimmten Logik zu einem Ganzen verbunden sein: einem Steuerungsprogramm. Loslegen!Zunächst bestimmen wir die Werte, anhand derer wir die Position des Modusschalters bestimmen. Es sollte zwei Bedeutungen geben. Einer von ihnen sollte überdurchschnittlich sein, der andere darunter. Ich akzeptierte die obere Hystereseschwelle von 2,7 Volt und die untere - 2,0 Volt. Es hätte weiter von der Mitte entfernt sein können, beispielsweise 3,5 Volt und 1,5 Volt, aber wie sich herausstellte, bestimmt das Programm trotz der akzeptierten Werte eindeutig die Position des Schalters.Einfach ausgedrückt, das Programm weiß jetzt, dass bei einer Spannung unter 2 Volt der Modus „Kesselbetrieb“ aktiviert ist. Wenn die Eingangsspannung über 2,7 Volt liegt, ist dies der Modus „Schaltungsbetrieb“.Dieser Umstand ermöglicht es uns bereits, eine der Lasten zu steuern: die Bypasspumpe. Wenn der Modus „Kesselbetrieb“ aktiviert ist, muss diese Pumpe eingeschaltet sein und Wasser jagen. Im Modus „Kreislaufbetrieb“ ist diese Pumpe jedoch nicht erforderlich. Für diese Last sind keine weiteren Bedingungen vorgesehen.
Und so die erste Zeile. Wir setzen den Start-Stopp bis 2099, lassen ihn immer funktionieren, solange eine Versorgungsspannung vorhanden ist. Wir wählen nicht die Art der Periode aus, hier ist keine Periodizität in der Zeit erforderlich. Die Last wurde angezeigt, der Sensor wurde angezeigt, die Hysteresewerte wurden bestimmt.Aber warum heizen? Da bei dieser Auswahl die Last jedoch immer eingeschaltet bleibt, solange die Eingangsspannung unter der oberen Hystereseschwelle liegt (dh unter 2,7 Volt). Ich habe diese Bedingungen oben ausführlicher erläutert.Dank dieser Programmzeile wird nun die Bypasspumpe die ganze Zeit eingeschaltet, während der Modus „Kesselbetrieb“ eingeschaltet ist. Haben Sie, Meister, eine Frage wie: Oder ist es besser, die Pumpe einfach mit dem Kippschalter einzuschalten? Immerhin macht es keinen Unterschied, es ist sowieso ein Becher!Wenn es auftritt, werde ich folgendermaßen antworten: Und dieser Kippschalter von mir schaltet nicht nur die Bypasspumpe ein. Dank der Betätigung dieses Kippschalters werden andere Aufgaben ausgeführt, die im Folgenden beschrieben werden.
Als nächstes kümmern wir uns um die Registerheizung. Dazu habe ich einen Elektrokessel installiert. Die darin enthaltenen Heizelemente sollten sich einschalten, wenn die Temperatur am Eingang der Register unter 40 Grad liegt. Es gibt aber auch eine Bedingung: Sie sollten nur im Modus „Kesselbetrieb“ eingeschaltet werden.Über die Temperatur: Ich habe bereits über den Fehler von Temperatursensoren gesprochen, die mit Klebeband am Rohr befestigt sind. Daher berücksichtigen wir diesen Fehler und setzen die Grenzen der Hysterese etwas niedriger. Wie viel - das habe ich empirisch ermittelt.Für diese Last (Heizelemente) müssen also zwei Bedingungen erfüllt sein. Beginnen wir mit der Temperatur von der ersten und stellen die Werte für die erste Lastlinie der Heizelemente ein. Start-Stopp und Art der Periode sind in allen Zeilen gleich, daher werde ich sie nicht mehr erwähnen.Im Übrigen wählen wir die Aufgabe Heizen, laden TENy, steuern die Sensoreingangsregister und stellen die Hysterese 36-35 ein. Mit solchen Einstellungen werden die Heizelemente bei einer Temperatur von 35 oder weniger eingeschaltet und ausgeschaltet, wenn sie 36 Grad erreichen (in der Natur habe ich 41 Grad).
Jetzt müssen wir noch eine weitere Bedingung für diese Last (Heizelemente) erfüllen: den Modus „Kesselbetrieb“. Hier fällt es uns leichter, diese Bedingung haben wir bereits in der ersten Zeile für die Bypasspumpe erfüllt. Wir stellen hier alles genau gleich ein, in der dritten in einer Reihe Programmzeile und in der zweiten in einer Reihe für die Last der Heizelemente.Im Gegensatz zu dieser Zeile geben wir natürlich die Belastung der Heizelemente an und (ACHTUNG!) In der oberen rechten Ecke treffen wir die Wahl der Interaktionslogik I. Wenn Sie vergessen haben, Meister, sende ich Ihnen oben noch einmal, wo wir mehr über die Interaktionslogik sprechen.Somit schaltet sich die Last der Heizelemente jetzt nur ein, wenn die Temperatur am Eingang der Register unter 40 Grad liegt und nur, wenn der Modus „Kesselbetrieb“ eingeschaltet ist.
Und jetzt ist es Zeit, über den Alarm nachzudenken. Insbesondere wenn TENs eingeschaltet sind, sollten kurze, seltene Ticker für mich klingen. Hier könnte man theoretisch einfach das Signalgerät an die Heizelemente und das gesamte Geschäft anschließen. Die Frage ist nur: wie? Immerhin pendelt das Lastrelais TENY 220 Volt Wechselstrom, und 12 Volt Konstantstrom sollten zum Warnsignal gehen. Es ist also notwendig, ein separates Laden zu programmieren: Warnung.Also werden wir es tun. Alles ist genau das gleiche wie für die Last der Heizelemente, auch zwei Leitungen, aber geben Sie die Last in ihnen an: Warnung. Links sehen wir die erste Zeile ...
Und hier ist die zweite Zeile für das Warnsignal.
Wir werden sofort einen Alarm auslösen, dh ein Temperaturüberschusssignal am Eingang der Register. Und hier sind auch zwei Programmzeilen erforderlich, da die Temperatur am Eingang der Register geregelt und der Zustand des Modus „Kesselbetrieb“ beobachtet werden muss.Fast alles ist das gleiche wie beim Warnsignal. Fast, weil wir die Last angeben. Unfall, Hysterese 51-50 und (ACHTUNG!) Die Aufgabe, die wir Kühlung wählen. Mit dieser Anordnung wird die Last des Alarms eingeschaltet und funktioniert dann, wenn die Temperatur am Eingang der Register 51 und höher vom Sensor ist. In der Natur habe ich es 58 und höher.
Und die zweite Zeile zum Lastunfall befestigt den Modus "Kessel". Die Logik der Interaktion Und!
Und schließlich erreichten wir die Einstellung der Lufttemperatur im Flur. Hier werden wir nicht eine Zeile verwalten und nicht zwei. Hier habe ich drei Bedingungen: die Temperatur in der Eingangshalle, die Temperatur bei der Rückführung des Stromkreises und ... den Modus „Stromkreisbetrieb“. Kein Kessel, sondern ein Heizkreis.Theoretisch ist es nicht so schwierig, wenn auch drei Zeilen. Die erste Zeile regelt die Temperatur im Flur. Aufgabe Heizen, Last Pumpenhaus, Hysterese 21.7-21.6.
Die zweite Zeile ist eine wichtige Zeile. Dies ist der Temperaturzustand in der Rücklaufleitung des Stromkreises. Die Pumpe sollte aufhören, heißes Wasser zu fördern, wenn ihre Rücklauftemperatur 33 Grad überschritten hat.
Und dies ist die dritte Zeile für die Last des Pumpenhauses und die letzte in meinem Heizungssteuerungsprogramm. Pass auf, Meister, hier ist die Aufgabe Kühlen für den Kippschalter ausgewählt. Ich denke du verstehst warum.Natürlich werden in meinem Heizungssteuerungsprogramm nicht alle NM8036-Funktionen verwendet. Es gibt auch einen Vergleich von zwei Temperatursensoren, die ich nicht nach Bedarf verwendet habe.Ich möchte auch ein paar Worte zur Logik der Interaktion sagen. Die Anweisungen besagen, dass für jede Programmzeile die Logik der Interaktion mit der vorherigen Zeile bestimmt wird. Aber ich würde hier korrigieren. Ein bisschen falsch. Richtiger: die Logik der Interaktion mit dem Ergebnis der vorherigen Zeilen. Was bedeutet das?Aber schauen Sie: Wir haben zum Beispiel 5 Zeilen des Programms für dieselbe Last:1. Zeile 1 (ODER)2. Zeile 2 (UND)3. Zeile 3 (UND)4. Zeile 4 (ODER)5. Zeile 5 (UND)Wie kann man das Ergebnis bestimmen? Beginnen wir von oben. Die erste Zeile zählt keine Logik, da für diese Last keine vorherigen Zeilen vorhanden sind. Wenn Sie jedoch das logische UND in die erste Zeile setzen, wird diese Zeile niemals für Sie ausgeführt (sie ergibt 0).Die zweite Zeile arbeitet mit der ersten gemäß der Logik I. Das heißt, die erste sollte 1 und die zweite - 1 ergeben. Zwei Einheiten in der Logik und geben eine Einheit am Ausgang: 1. Wenn mindestens eine der Bedingungen nicht erfüllt ist, ist der Ausgang der zweiten Zeile Null ( 0).Die dritte Zeile funktioniert ... nicht mit der zweiten! Sie arbeitet mit Ergebnis von der zweiten. Sie arbeitet mit diesem Ergebnis gemäß dem logischen UND und gibt ihr Ergebnis 0 oder 1 an.Die vierte Zeile. Noch nicht verwirrt? Achten Sie darauf, dass es mit dem ERGEBNIS von Zeile 3 gemäß dem logischen ODER funktioniert (jede 1 am Eingang ergibt 1 am Ausgang).Und schließlich die fünfte Zeile. Wenn wir nicht verwirrt sind und das Ergebnis nach der vierten Zeile genau kennen, können wir das Ergebnis nach der fünften Zeile ganz genau bestimmen. Logik Und: Für 1 am Ausgang sollten zwei Einheiten am Eingang sein. Und wenn wir nach der fünften Zeile Ausgang 1 erhalten, wird unsere Last eingeschaltet. 0 - lässt sich nicht einschalten.Fortsetzung folgt… Source: https://habr.com/ru/post/de383709/
All Articles