Ankündigung

Einklappen
Keine Ankündigung bisher.

Heizung Regelung

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

    [EibStudio] Heizung Regelung

    Hallo, vermutlich Anfängerfrage.
    Ich wollte nun gerne meine Raumtemperatur auch über den EibPc realisieren.
    So wie ich das verstanden habe, erzeugt die im EibStudio vorhandene Vorlage aber einen Prozentausgang, also 8 Bit.
    Ich habe aber an vielen Heizkörpern thermische Stellventile. Dort benötige ich aber ein PWM Signal, also nur 1 oder 0.
    Leider bin ich zu doof das umzusetzen. Im Forum finde ich auch keinen Hinweis dazu.
    Kann hier ein Profi helfen ?
    Vielen Dank im voraus. Stefan.

    #2
    hmm,
    z.b. if wert > 0 then write(xx,ein) endif oder bei aus if wert = 0 then write(xx,aus) endif

    Kommentar


      #3
      Hallo PharaDOS, ja ok, verstehe ich - aber bei PWM käme ja noch der Faktor Zeit ins Spiel.
      Bei 10 Minuten Zyklus würde das bei 10% ja bedeuten z.B. 1 Minute ein und 9 Minuten aus.....

      Kommentar


        #4
        Dann würdest du das was ich oben geschrieben habe bei 100% machen.
        Bei den zeiten gibt das dann viele ideen, z.b. wandelst du die % dann in eine Zeit um bezogen auf 10 minuten. also 90% entsprechen 9 minuten. und das dann mit dem after(xxx) befehl verbinden

        Kommentar


          #5
          Ja klingt gut, aber leichter gesagt als getan. Wie schon gesagt - Anfänger.... Hilfe....

          Kommentar


            #6
            Gibt es da keine fertiges Beispiel? (Nicht weil ich faul bin, sondern Ahnungslos 😶..)

            Kommentar


              #7
              leider hab ich dafür kein Beispiel, da dies bei mir die KNX Aktoren selber machen.
              Aber fang doch einfach erstmal mit der 100% Lösung von oben an, wenn das funktioniert dann spielst du mit den weiteren Features rum.
              gerade als Anfänger ist immer schwierig alles umsetzen zu wollen.
              Deswegen, klein anfangen und dann mit Features überladen :-)

              Kommentar


                #8
                Ok, dann werde ich mal sehen was das wird. Danke für den Anstoß. vg

                Kommentar


                  #9
                  Ich meine da gabs mal einen Beispielcode vom user SnowMaKeR
                  offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                  Enertex Produkte kaufen

                  Kommentar


                    #10
                    Hi,

                    sollte so funktionieren:

                    Code:
                    :begin PercentToOnOffController(uInterval, uPercent, bGa)
                    :info $Convert a percent value into a on-off control signal for a GA$ \\
                        $Control interval in seconds (const, u64)$ \\
                        $Percent value from controller (u08) $ \\
                        $Groupaddress of actuator (ga, b01)$ \\
                      
                    :var bIsOn@
                    bIsOn@=AUS
                    
                    :var uIntervalMs@
                    uIntervalMs@ = uInterval * 1000u64
                    
                    :var uTimeOn@
                    uTimeOn@ = convert(convert(uInterval, 0f32) * convert(uPercent, 0f32) / 255f32 + 0.5f32, 0u64) * 1000u64;
                    :var uTimeOff@
                     uTimeOff@ = uIntervalMs@ - uTimeOn@
                    
                    :var uNow@
                    uNow@ = utctime()
                    :var uLastChange@
                    uLastChange@=0u64
                    
                    :var uElapsed@
                     uElapsed@ = uNow@ - uLastChange@
                    
                    if systemstart() then uLastChange@ = uNow@ endif
                    
                    // uElapsed@ gleich zurücksetzen, ansonsten triggert der zweite Block immer gleich mit.
                    if change(uElapsed@) then {
                        if bIsOn@ and uElapsed@ >= uTimeOn@ then {
                            write(bGa, AUS);
                            bIsOn@ = AUS;
                            uLastChange@ = uNow@;
                            uElapsed@ = 0u64;
                        } endif;
                    
                        if bIsOn@==AUS and uElapsed@ >= uTimeOff@ then {
                            write(bGa, EIN);
                            bIsOn@ = EIN;
                            uLastChange@ = uNow@;
                            uElapsed@ = 0u64;
                        } endif;
                    } endif
                    
                    :end​
                    Den Code in einer neuen Makrobibliothek hinterlegen und in einem Programm dann wie folgt aufrufen:
                    Code:
                    SteuerungsIntervall=600
                    PercentToOnOffController(SteuerungsIntervall,"Stellwert-1/2/2","Aktor-1/2/3")​;

                    Kommentar


                      #11
                      Ok, erst, mal DANKE

                      Kommentar

                      Lädt...
                      X