Ankündigung

Einklappen
Keine Ankündigung bisher.

Steuerung Heizkreise mit Slider

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Steuerung Heizkreise mit Slider

    Hallo zusammen,

    bei folgender Situation komme ich nicht so recht weiter - evtl. hat ja jemand einen Hinweis für mich. Wie in vergangenen Posts auch schon erwähnt versuche ich mich aktuell an einer Visualisierung der einzelnen Räume unseres Hauses. Dabei bin ich nun beim Thema Heizung. Die Temperatur der Heizkreise wird mit einem MDT Glastaster über eine 2byte Sollwertverschiebung an den MDT Heizungsaktor gegeben. Der Regler selbst sitzt im Heizungsaktor.
    Nun versuche ich die Temperatureinstellung über einen Slider auch in der Visualisierung zu relaisieren. Der Slider kann dort auch mit dem Datenformat umgehen (f16), Grenzwerte sind auf 18 und 24 eingestellt, 0,5er Schritte, Einheit °C, % ist nicht aktiviert.
    Sobald ich nun in der Visualisierung aber den Slider bewege, springt die Sollwerttemperatur auf 24°C. Am Glastaster kann ich die Temperatur dann wieder runter stellen, was beim Slider dann auch korrekt angezeigt wird. Erneutes Betätigen des Sliders bewirkt dann wieder den Sprung auf 24°.

    Wenn jemand eine Idee hat was ich falsch mache - würde mich sehr freuen.
    Vielen Dank vorab und Grüße

    Marko

    #2
    Ich kann mich auch täuschen, aber:
    Du versucht über den Slider die Sollwert-Temperatur einzustellen, hast aber die GA der Sollwert_verschiebung_ des Reglers parametriert?
    Damit würde der Regler bei egal welcher Einstellung auf Max gehen. Die Status-GA des aktuellen Sollwertes wird beim Ändern am Glastaster korrekt angezeigt, also ist hier die richtige Status-GA verknüpft.

    Willst du Sollwert oder Sollwertverschiebung in der Visu? Beides gleichzeitig auf einem Slider geht nicht ohne zusätzliche Logik, der Slider stellt das dar, was er auch einstellt.

    Kommentar


      #3
      Hallo und vielen dank für die Rückmeldung. Was ich letztendlich realisieren möchte ist, dass die Visu die identische Steuerung wie der Glastaster durchführt. D.h. Ich möchte gerne eine Sollwertverschiebung durchführen.

      Kommentar


        #4
        Dann sollte es funktionieren, das entsprechende Objekt von Verschiebung und Verschiebung Status zu verknüpfen und den Slider-Bereich auf zB -5 bis 5 zu stellen (EibStudio 4.019, vorher gibt's Probleme mit negativen Verschiebungen).

        Kommentar


          #5
          So, habe mich noch ein wenig daran versucht. Generell funktioniert das wie Du beschreibst - ich kann den Sollwert in den gesetzten Wertebereichen verschieben. Schön ist aber dann doch anders. Ich habe mit dem Hintergrund mich ein wenig zum Thema Visualisierung inspirieren zu lassen mal ein wenig durch's Internet gewühlt und habe dort auch auf einer EibPC Visualisierungsoberfläche etwas gesehen, was meinen Wünschen sehr nahe kommt. Das Objekt war in etwa so aufgebaut wie die Rolladenfunktion, die es fertig im Bereich Funktionen gibt. Nur das dort dann die Pfeile nach oben und unten durch ein + und - ersetzt waren und dazwischen eine Temperatur (vermutlich der aktuelle Sollwert) angezeigt wurde. Daneben war dann auf einem separaten Button die Raumtemperatur angezeigt. Ich vermute, dass mit der + bzw. - Taste der Sollwert schrittweise erhöht bzw. abgesenkt werden konnte.
          Wie lässt sich so etwas realisieren - als fertigen Funktionsblock konnte ich so etwas nicht finden.

          Vielen Dank und Grüße

          Marko

          Kommentar


            #6
            Hi,
            du hast zB die Möglichkeit, in der Visu einen Shifter anzulegen, mit 2 Icons für + und -, mit Logik verknüpfen. In der Logik wähle den Shifter, und Gruppenadressen für akt. Sollwert und Sollwertverschiebung. Beim Drücken addiere bzw Subtrahiere den gewünschten Wert vom Status der Verschiebung und sende das an die GA.

            Die Beschriftung des Shifters verbindest du mit dem Status der Sollwerttemperatur.

            Kann dir kommende Woche ein Beispiel posten.

            Kommentar


              #7
              625643E4-44A2-444E-A38A-712994B4B612.jpeg
              Als Anregung, so habs ich.
              ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

              Kommentar


                #8
                Zitat von Uwe! Beitrag anzeigen
                ... und wie hast du es nun umgesetzt? So wie foobar0815 aufgezeigt?
                Gruß Jukom

                Kommentar


                  #9
                  Nein, das ist komplett manuell ge-codet. Zu der Zeit gabs noch keinen Visu Editor.
                  Sollte nur eine optische Anregung sein, müsste bis auf das Farbige aber auch mit dem Visu Editor so machbar sein.
                  ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

                  Kommentar


                    #10
                    Hi Uwe,

                    sieht gut aus.
                    Haste vielleicht auch den Code dazu bzw. würdest Du ihn zur Verfügung stellen?

                    VG
                    Thomas

                    Kommentar


                      #11
                      Klar. Gib mir etwas Zeit.
                      ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

                      Kommentar


                        #12
                        In der Logik:
                        Die Farben sind über html-Tags im Button-Status. green ist bspw als <span class="text_01"> definiert.

                        Klein ist so eine Logik nicht, und, wenn man sich das als Experten-Makro schreibt, auch deutlich übersichtlicher, zumal man im Experten ja auch auf Visu-Elemente zugreifen kann. Aber es geht


                        heizung.png

                        In der Visu dann den Shifter anlegen:
                        Heizung-visu.png
                        Ergibt:
                        Heizung3.png

                        PS: Import/Export von Logiken kommt in der nächsten EibStudio-Version. Den Debugger haben wir auch etw. überarbeitet (Objekte in der Auswahl gruppiert, Start beschleunigt.)
                        Zuletzt geändert von foobar0815; 16.05.2019, 17:54.

                        Kommentar


                          #13
                          Zitat von Uwe! Beitrag anzeigen
                          Hallo Uwe,
                          genau so etwas suche ich auch. Wenn du dazu den Code veröffentlichen würdest, das wäre wundervoll......
                          Danke, Paul

                          Kommentar


                            #14
                            Zitat von EIB_Lehrling Beitrag anzeigen
                            Haste vielleicht auch den Code dazu bzw. würdest Du ihn zur Verfügung stellen?
                            Zitat von PaulM Beitrag anzeigen
                            Wenn du dazu den Code veröffentlichen würdest,
                            Sorry, hatte es schon wieder vergessen

                            Code siehe unten. Ist aber (noch) kein Makro, den man einfach weiterverwenden kann, sonder nur direkt für diesen Fall programmiert. Anpassung für eure Zwecke also nötig, aber sicher machbar.
                            Außerdem Verwende ich eine selbst erstellte Funktion "round()", die mir zum einen ein Dezimalkomma macht (ich kann Dezimalpunkt nicht leiden) außerdem wahlweise Tausenderpunkte einfügt. Die Funktion hab ich auch mit beigefügt.

                            [EibPC]
                            Code:
                            if change("Soll EG Flur-11/4/20") or change(Diff_EG_Flur) or change("Ist EG Flur-11/0/20") or change("H - Flur EG/ Garderobe-6/2/10") then pdisplay(20,  $<font color=lime>$ + round("Soll EG Flur-11/4/20", 1, AUS) + $°C  <font color=blue>$ + round("Ist EG Flur-11/0/20", 1, AUS) +$°C  <font color=yellow>$ + round(Diff_EG_Flur, 1, AUS) + $°K  <font color=red>$ + round(convert("H - Flur EG/ Garderobe-6/2/10", 0.0f16) / 2.55, 0, AUS) + $%$, MINUS, INACTIVE, GREEN, 93) endif
                            
                            if pbutton(20, 93) == 1 then write("Vorgabe EG Flur-6/7/20", ("Soll EG Flur-11/4/20"/10.0f16 + 0.01f16) * 10.0f16) ; read("Soll EG Flur-11/4/20") endif
                            if pbutton(20, 93) == 2 then write("Vorgabe EG Flur-6/7/20", ("Soll EG Flur-11/4/20"/10.0f16-0.01f16) * 10.0f16) ; read("Soll EG Flur-11/4/20") endif
                            
                            if pbutton(21, 93) == 1 then write("Betriebsmodus EG Flur-11/1/20", KOMFORT) endif
                            if pbutton(21, 93) == 2 then write("Betriebsmodus EG Flur-11/1/20", STANDBY) endif
                            if pbutton(21, 93) == 3 then write("Betriebsmodus EG Flur-11/1/20", NACHTMODUS) endif
                            if pbutton(21, 93) == 4 then write("Betriebsmodus EG Flur-11/1/20", 4) endif
                            BM_EG_Flur = $unbekannt$
                            if "Betriebsmodus EG Flur-11/1/20" == KOMFORT then BM_EG_Flur = $Anwesend$ endif
                            if "Betriebsmodus EG Flur-11/1/20" == STANDBY then BM_EG_Flur = $Abwesend$ endif
                            if "Betriebsmodus EG Flur-11/1/20" == NACHTMODUS then BM_EG_Flur = $Nacht$ endif
                            if "Betriebsmodus EG Flur-11/1/20" == 4 then BM_EG_Flur = $Frost$ endif
                            
                            if change("Betriebsmodus EG Flur-11/1/20") then pdisplay(21, BM_EG_Flur, ICE, INACTIVE, GREEN, 93) endif
                            [WebServer]
                            Code:
                            pshifter(20)[PLUS, MINUS]$EG Flur: Soll  /  Ist  /   &Delta;  /  %$ mpchart(31)[SINGLE, 8] ($8Stellgröße$, LINE, $Temp.Diff$, COLUMN)
                            pshifter(21)[PRESENT, ABSENT, NIGHT, ICE]$Betriebsmodus$
                            [round()]
                            Code:
                            :begin round(x,NKS@,TP@)
                            :info rundet den Wert x auf NKS Nachkommastellen und fügt ggf. Tausenderpunkte ein.
                            :var Nachkomma@
                            :var ZahlFormat@
                            :var Vorkomma1@
                            :var Vorkomma2@
                            :var TextZahl@
                            :var VKS@
                            :var Vorkomma@
                            :var NKS@
                            :var VZ@
                            Vorkomma1@ = $$
                            Vorkomma2@ = $$
                            ZahlFormat@ = $$
                            Nachkomma@ = $$
                            VZ@ = $$
                            
                            if convert( x, 0.0f32) >= 1.0f32 or convert( x, 0.0f32) == 0.0f32 then VZ@ = $$ endif
                            if convert( x, 0.0f32) < 1.0f32 and convert( x, 0.0f32) > 0.00000001f32 then VZ@ = $0$ endif
                            if convert( x, 0.0f32) < 0.0f32 and convert( x, 0.0f32) > -1.0f32 then VZ@ = $-0$ endif
                            if convert( x, 0.0f32) <= -1.0f32 then VZ@ = $-$ endif
                            
                            TextZahl@ = VZ@ + convert( convert( convert( abs(x), 0.0f32) * pow( 10.0f32 , convert(NKS@, 0.0f32 ) ) + 0.5f32 , 0s32 ), $$ )
                            VKS@ = size(TextZahl@) - convert(NKS@, 0u16)
                            Vorkomma@ = split(TextZahl@, 0u16, VKS@ - 1u16)
                            
                            if size(Vorkomma@) > 3u16 and change(Vorkomma@) and TP@ then \\
                                 Vorkomma1@ = split(Vorkomma@, 0u16, size(Vorkomma@)-4u16) ;\\
                                 Vorkomma2@ = split(Vorkomma@, size(Vorkomma@)-3u16, size(Vorkomma@)-1u16) ;\\
                                 ZahlFormat@ = Vorkomma1@ + $.$ + Vorkomma2@   \\
                            endif 
                            
                            if size(Vorkomma@) <= 3u16 and change(Vorkomma@) then ZahlFormat@ = Vorkomma@ endif
                            
                            if NKS@ <= 0 then Nachkomma@ = $$ endif
                            if NKS@ > 0 and change(TextZahl@) then Nachkomma@ = $,$ + split(TextZahl@, VKS@ , VKS@ + convert(NKS@,0u16) - 1u16 ) endif
                            
                            :return ZahlFormat@ + Nachkomma@
                            :end
                            ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

                            Kommentar


                              #15
                              Hallo zusammen,

                              vielen Dank für die Anregungen, genau so etwas möchte ich auch haben. Ich war leider die letzten Tage mit anderen Baustellen beschäftigt, aber nun versuche ich mich mal daran.
                              Wäre es evtl. möglich die Logik von foobar0815 einmal als Datei zur Verfügung zu stellen - stehe wie bereits erwähnt noch weit am Anfang und mir fehlt noch ein wenig der Background u.a. zur Umsetzung der farblich unterschiedlichen Darstellung der verschiedenen Werte. In einer Projektdatei könnte ich dann konkret die einzelnen Elemente anschauen und es so besser verstehen.

                              Vielen Dank vorab und beste Grüße

                              Marko

                              Kommentar

                              Lädt...
                              X