Ankündigung

Einklappen
Keine Ankündigung bisher.

Additionsbaustein 9035 fehlerhaft??

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

    HS/FS Additionsbaustein 9035 fehlerhaft??

    Hallo,

    ich habe im Gira Homeserver 3 eine einfache Logik aufgebaut. Diese erhält einen Wert und addiert hierzu einen anderen Wert. Das Ergebnis soll dann wieder auf den Bus ausgegeben werden. Ich verwende hierzu den Original-Additions-Baustein 9035, Änderungen hieran habe ich nicht vorgenommen (soweit dies überhaupt gehen würde). Leider wird aber nicht addiert und auf der Debug-Seite wird folgender Fehler angezeigt, welchen ich aber leider nicht interpretieren kann:

    14.09.2012 14:12:53 (1)
    File "/hs/compile/hs_logik.py", line 179, in addFormel
    File "case", line 1
    ((float(EN[3])*float(EN[4]))]=(float(EN[1])*float(EN[2]))) and ((float(EN[3])*float(EN[4]))](=float(EN[5])*float(EN[6]))) and ((float(EN[3])*float(EN[4]))]=(float(EN[7])*float(EN[8])))
    ^
    SyntaxError: invalid syntax
    [5012L, 19041L, 0L, '((float(EN[3])*float(EN[4]))]=(float(EN[1])*float(EN[2]))) and ((float(EN[3])*float(EN[4]))](=float(EN[5])*float(EN[6]))) and ((float(EN[3])*float(EN[4]))]=(float(EN[7])*float(EN[8])))', '1', '', 2L, 0L, 0L, 0L]


    Ich hoffe, Ihr könnt mir bei meinem Problem helfen. Vielen Dank.

    Schönen Gruß

    Michael Consten

    #2
    Moin,

    Diese Fehlermeldung betrifft aber den Baustein "19041" und nicht den Additions-Baustein

    Vg,
    Mucki

    Kommentar


      #3
      Hallo,

      da verstehe ich nun nichts mehr. Baustein 19041ist ein Vergleicher, welcher bei mir vollkommen problemlos arbeitet. Nur die Addition arbeitet nicht. Da scheint das Problem wohl woanders zu liegen. Weiß denn jemand, was das für ein Fehler ist, der auf der Debug-Seite angezeigt wird? Muss ja auch etwas nicht stimmen, nur dass ich es bislang nicht bemerkt habe.

      Schönen Dank schon einmal

      Michael Consten

      Kommentar


        #4
        Hallo MiCon,
        es gibt ja offensichtlich zwei Probleme, das der Addition und das auf der Debugseite/Vergleicher. Nehmen wir uns erstmal die Addition vor (Threadtitel):
        Poste bitte ein Bild der Logik.
        Von welchem Typ sind die KOs?
        Was stimmt am Ergebnis nicht, wie stellst Du das fest?
        Gruß, Rainer

        Kommentar


          #5
          Moin,

          BTW: Der Baustein 19041 hat IMHO tatsächlich einen kleinen Fehler in Zeile 47.
          Code:
          5012|0|"((float(EN[3])*float(EN[4]))>=(float(EN[1])*float(EN[2]))) and ((float(EN[3])*float(EN[4]))>[COLOR="Red"](=[/COLOR]float(EN[5])*float(EN[6]))) and ((float(EN[3])*float(EN[4]))>=(float(EN[7])*float(EN[8])))"|"1"|""|2|0|0|0
          Als Folge dürfte Ausgang 2 nichts ausgeben.

          (Hab's mal an den Ersteller weitergegeben.)

          VG,
          Mucki

          Kommentar


            #6
            Hallo,

            danke für die Antworten schon einmal.

            Der Fehler des Vergleichers ist damit ja schon einmal geklärt, und auch, warum es bei mir keine Auswirkungen hat. Ich nutze Ausgang 2 nicht.

            Anbei habe ich einmal das Bild meiner Logik angefügt. Ich nutze den Addierer für meinen Gaszähler. Mein Gaszähler hängt an einer Tastersschnittstelle, welche einen eingebauten Zähler hat. Die Tasterschnittstelle sendet nun ihren Zählerstand auf den Bus (5/3/7, im Experten als Typ 32 Bit EIS 11). Um auf den richtigen Zählerstand zu kommen, muss hierzu eine Abgleichsdifferenz addiert werden. Diese gebe ich über die Adresse 5/3/8, im Experten ebenfalls Typ 32 Bit EIS vor. Ich weiß nicht ob es wichtig ist, aber den Wert von 5/3/8 lasse ich remanent speichern. Das Ergebnis der Addition soll dann direkt ausgegeben werden auf 5/3/9 (ebenfalls 32 Bit EIS 11) bzw. noch mit dem festen Wert 118 multipliziert werden, um den Stand in kwh zu bekommen. Das Ergebnis der Multiplikation wird dann auf 5/3/10 (32 Bit, EIS 11) ausgegeben. Eigentlich in meinen Augen eine ganz einfache Logik.

            Vom Verhalten her gibt der Homeserver nun bei eintreffen eines Telegramms auf 5/3/7 von beispw. 100 auf 5/3/9 aber ebenfalls eine 100 aus. Diese wird dann auch "korrekt" multipliziert und auf 5/3/10 ausgegeben. Die Differenz auf 5/3/8 gebe ich per manuelles Telegramm per ETS vor. Also senden von beispw. 5200 als auf 5/3/8.

            Ich habe das soeben noch einmal ausprobiert. Was mich wundert ist, dass bei senden des Wertes auf 5/3/8 kein Ergebnis vom Homeserver gesendet wird. Vielleicht liegt hier das Problem, dass der Homeserver das Telegramm auf 5/3/8 gar nicht mitbekommt. Für die ETS nutze ich den Homeserver als IP-router um auf den Bus zu kommen. Das funktioniert auch ansonsten wunderbar ohne jegliche Probleme. Verarbeitet der Homeserver vielleicht keine "eigenen" Telegramme?

            Was kann da falsch laufen??

            Vielen Dank

            Michael Consten
            Angehängte Dateien

            Kommentar


              #7
              Wenn der HS das Telegramm erst gar nicht empfängt, stimmt etwas in der Kommunikation ETS-<Übertragungsweg>-HS nicht. Gib den Offset (die Differenz) einmal über die Visu vor, dann kannst Du Fehler in der Logik ausschließen; für mich sieht sie ok aus.

              Zitat von MiCon Beitrag anzeigen
              Für die ETS nutze ich den Homeserver als IP-router um auf den Bus zu kommen.
              Meinst Du iETS - oder wirklich das, was Du geschrieben hast? Das wäre kein Standard . Wie hängt Dein HS am Bus (welche Schnittstellle)?
              Gruß, Rainer

              Kommentar


                #8
                Hallo,

                in der ETS habe ich als Verbindungstyp IP (EIBlib/IP) gewählt und die IP-Adresse des Homeservers angegeben.

                Beim Homeserver habe ich als Schnittstelle EIBNet/IP Routing angegeben und die Adresse von meinem Wiregate eingetragen.

                Am Wiregate hängt letztendlich eine serielle Schnittstelle am Bus.

                Ist vielleicht ein wenig kompliziert, aber ich habe es aus einem mir nicht bekannten Grund nicht geschafft von der ETS direkt über das Wiregate zu kommen. Die Verbindung ETS-HS-Wiregate funktionierte jedoch auf Anhieb und bislang völlig problemlos. Daher hatte ich nicht viel Zeit darin investiert, die ETS direkt ans Wiregate zu koppeln.

                Schönen Gruß

                Michael

                Kommentar


                  #9
                  Und was hat
                  Zitat von Taxus Beitrag anzeigen
                  Gib den Offset (die Differenz) einmal über die Visu vor, ...
                  das ergeben?
                  Gruß, Rainer

                  Kommentar


                    #10
                    es hat geklappt!!!

                    Die Werteingabe über die Visu funktioniert. Super. Vielen Dank....

                    Ich weiß zwar nicht, warum die Änderung nicht über ein ETS-Telegramm funktioniert aber nu' klappt es.. Ist ja so eigentlich auch viel besser, da kann man den Wert ohne ETS problemlos ändern.

                    Schönen Dank und schöne Grüße..

                    Michael

                    Kommentar

                    Lädt...
                    X