Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Probleme mit MPChart

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

    - √ - Probleme mit MPChart

    Hallo zusammen,

    irgendwie finde ich den Fehler in meinem Code für den MPChart nicht.
    Hintergrund: Ich will in einem MPChart den 3 Tagesverlauf einer Temperatur abbilden. Die Temperaturen speichere ich in einem String-Array.

    Die aktuelle Temperatur des Tagesverlaufs wird im MPChart auf dem Index 0 dargestellt. Gegen 00.00 Uhr will ich die im Array gesammelten 48 Temperaturen von heute auf einen Schlag in den Index 1 des Charts schreiben, die von gestern in den Index 2 und so weiter...

    Allerdings scheitere ich daran den MPChart mit Werten zu befüllen, obwohl der Code eigentlich überschaubar ist.

    Hier mal mein Testcode:
    Chartdefinition:
    [highlight=epc]
    mpchart(WebMChartZentWohnTemp4T)[DOUBLE,SXY]($Heute$,DOTS,$T-1$,LINEDOTS,$T-2$,LINEDOTS,$T-3$,LINEDOTS)
    [/highlight]

    und zwei Befüllungsvarianten:
    A:
    [highlight=epc]
    if after(systemstart(),10u64) then{
    mpchart(WebMChartZentWohnTemp4T,00.2,00.2,2,WebPag e4CZentralHeizungAnzeigeEGID);
    } endif
    if after(systemstart(),20u64) then{
    mpchart(WebMChartZentWohnTemp4T,00.4,00.4,2,WebPag e4CZentralHeizungAnzeigeEGID);
    } endif
    if after(systemstart(),30u64) then{
    mpchart(WebMChartZentWohnTemp4T,00.6,00.6,2,WebPag e4CZentralHeizungAnzeigeEGID);
    } endif
    [/highlight]

    oder B:
    [highlight=epc]
    if after(systemstart(),1000u64) then{
    mpchart(WebMChartZentWohnTemp4T,00.2,00.2,2,WebPag e4CZentralHeizungAnzeigeEGID);
    mpchart(WebMChartZentWohnTemp4T,00.4,00.4,2,WebPag e4CZentralHeizungAnzeigeEGID);
    mpchart(WebMChartZentWohnTemp4T,00.6,00.6,2,WebPag e4CZentralHeizungAnzeigeEGID);
    } endif
    [/highlight]

    Bei beiden Varianten wird immer nur die letzte Anweisung in den Graph geschrieben (siehe Screenshot), die 0.2er und 0.4er Werte tauchen nicht auf. Dabei macht es keinen Unterschied, ob ich den MPChart vom Typen XY oder SXY nehme. Kann sich das irgendwer erklären?

    VG,
    Boris.
    Angehängte Dateien

    #2
    Beim Schreiben der Werteliste in die Charts, darf immer nur 1 Wert pro Zyklus geschrieben werden.

    Wenn Du also 48 Werte in das Chart schreiben willst musst Du den 1. Wert schreiben und dann mit after 1ms verzögern, bevor Du den nächsten Wert schreibst.

    Kommentar


      #3
      Anhand meines Codes für das Löschen von Charts (Schreiben von 48 Nullen) via Visu Button, kannst Du das Beschreiben des Charts mit Deinen Wunschwerten ableiten:

      [highlight=epc]
      Chart_Counter = 0u08
      if Init == EIN \\
      and "EibPC Test-5/4/1" == EIN then \\
      Chart_Counter = 1u08 \\
      endif

      if Init == EIN \\
      and "EibPC Test-5/4/1" == EIN \\
      and Chart_Counter == 48u08 then \\
      write("EibPC Test-5/4/1", AUS); \\
      Chart_Counter = 0u08 \\
      endif

      if Chart_Counter > 0u08 \\
      and Chart_Counter <= 48u08 \\
      and after(change(Chart_Counter), 1u64) then \\
      mpchart(ID_Energie_Haus_Chart_Aktueller_Verbrauch, WebZeit,0.0f16,0,PageID_Energieverbrauch); \\
      mpchart(ID_Energie_Haus_Chart_Aktueller_Verbrauch_ 24h,WebZeit,0.0f16,0,PageID_Energieverbrauch); \\
      mpchart(ID_Energie_WP_Chart_Aktueller_Verbrauch,We bZeit,0.0f16,0,PageID_Energieverbrauch); \\
      mpchart(ID_Energie_WP_Chart_Aktueller_Verbrauch_24 h,WebZeit,0.0f16,0,PageID_Energieverbrauch); \\
      Chart_Counter = Chart_Counter + 1u08 \\
      endif
      [/highlight]

      Kommentar


        #4
        HAllo Michael,

        glatte 1, klappt!

        Vielen Danke,
        Boris.

        Kommentar

        Lädt...
        X