Ankündigung

Einklappen
Keine Ankündigung bisher.

GA Type falsch?

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

    GA Type falsch?

    Hallo Zusammen,

    hoffe jetzt mal, das Thema ist einigermaßen verständlich gewählt...

    Ich habe folgendes Problem.
    Ich habe eine UVR1611 als Heizungsregelung welche über eine CAN/EIB Schnittstelle Werte auf den EIB übergibt (und andersrum...). Für die Schnittstelle gibt es keine Datenbank. Ich habe einen Dummy eingefügt.
    Wenn ich jetzt einen analogen Wert (2 Byte) übergebe kommen die Werte in ETS richtig an. Der EIB PC verarbeitet mir aber nur Temperatur Werte richtig. Was er mit allem anderen macht kann ich nicht sagen.
    Ich übergebe die Windgeschwindigkeit und sie wird in der ETS und an einem RTR 6124 von BJ richtig angezeigt. Nur in der Visu steht ein komplett anderer Wert. Die GA ist die richtige. Ich habe auch beim Dummy die GA mal auf Geschwindigkeit umgestellt, ohne Änderung im EIB PC (ETS gibt ihm dann zwar die Einheit m/s anstatt was richtig wäre km/h aber sollte erst mal nicht groß was ausmachen.)
    Auch der Wert vom Regensensor (sind rohe Widerstandswerte) wird so "verfälscht"(?). Kann keine Vergleiche programmieren da mir EibStudio mekert dass die Werte nicht sein können...


    hab mal noch drei Screenshots angehängt..

    Hat jemand eine Idee was ich da falsch konfiguriert habe?

    EDIT: HMPF!! beim Schreiben ist es mir aufgefallen. 4m/s -> 14,4km/h. Der EIB PC rechnet es sauber um... Jetzt muss ich mal schauen, was ich am sinnvollsten als dimensionslos einstelle...

    Viele Grüße
    Bernhard
    Angehängte Dateien

    #2
    Zitat von encymon Beitrag anzeigen
    Hat jemand eine Idee was ich da falsch konfiguriert habe?

    EDIT: HMPF!! beim Schreiben ist es mir aufgefallen. 4m/s -> 14,4km/h. Der EIB PC rechnet es sauber um... Jetzt muss ich mal schauen, was ich am sinnvollsten als dimensionslos einstelle...
    Du hast deine Konfiguration noch nicht gezeigt. Entweder in der ESF-Datei (durch die ETS) oder im Programm hast du für den Datentyp wohl f16 festgelegt. Dies ist die Interpretation des 16-bit-Wertes und stellt keine Umrechnung dar.

    Der eibPC verwendet den Wert also entsprechend. Dass in deinem Beispiel 14.4 angezeigt wird, deutet darauf hin, dass im Programm Code steht, der den Wert mit 3,6 multipliziert. Laut deiner Beschreibung ist das falsch, er sollte 4 km/h anzeigen. Wenn das falsch ist, wirst du den Code finden und ändern müssen.
    BR
    Marc

    Kommentar


      #3
      Der "Fehler" liegt wohl im Visu Assi. Er geht davon aus, dass der übertragene Wert (wie du gesagt hast f16) in der Einheit m/s gesendet wird und rechnet ihn in km/h um. In der Exportdatei von ETS steht uncertain zur Definition. Bin aber eh gerade am Visu ohne Assistenten zu erstellen und da wird der Wert auch richtig angezeigt, aber da meine Programierkenntnisse nicht so gut sind dauert es..

      Jetzt hab ich nur noch eine Frage betreffend f16 Werten. Mein Regensensor gibt seine Werte in 2Byte Telegrammen (f16) aus.
      Muss ich wenn ich einen Vergleich (<600) programmieren will, Kommawerte angeben? Wenn ich mit ganzen Zahlen arbeite bekomme ich vom Parser eine Fehlermeldung (Vorgabewert zu groÃx für gegebenen Datentyp in >600< in >"Regensensor-3/2/6"<< in >if_then< )
      Wenn ich dagegen 600.00 schreibe akzeptiert er das Ganze??
      wollte es nur verstehen!

      Gruß
      Bernhard

      Kommentar


        #4
        Zitat von encymon Beitrag anzeigen
        Jetzt hab ich nur noch eine Frage betreffend f16 Werten. Mein Regensensor gibt seine Werte in 2Byte Telegrammen (f16) aus.
        Muss ich wenn ich einen Vergleich (<600) programmieren will, Kommawerte angeben? Wenn ich mit ganzen Zahlen arbeite bekomme ich vom Parser eine Fehlermeldung (Vorgabewert zu groÃx für gegebenen Datentyp in >600< in >"Regensensor-3/2/6"<< in >if_then< )
        Wenn ich dagegen 600.00 schreibe akzeptiert er das Ganze??
        wollte es nur verstehen!
        Genau.

        Im eibPC gibt es 2 Datentypen, die bei fehlender Typangabe verwendet werden (siehe Handbuch unter "Datentypen").
        Dies sind u08 für 8-Bit-Werte ohne Komma und f16 für Zahlen mit Komma. Alle anderen Typen benötigen eine entsprechende Typangabe.

        Vergleichen (und Rechnen) kann man nur mit identischen Typen -> convert().
        Auch hier eine Außnahme: Für Zeichenketten gibt es (bis auf c14) eine Regel zur automatischen Anpassung (siehe Handbuch "Stringfunktionen").
        BR
        Marc

        Kommentar


          #5
          Vergleiche müssen immer auf beiden Seiten den gleichen Datentyp haben. 600.00 wird als f16 erkannt, 600 nicht.
          ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

          Kommentar


            #6
            Ok, habs verstanden. Für mich war 600 gleich 600.00
            Die eine Angabe ungenauer (ohne Kommastellen), die andere genauer. Aber richtig, woher soll der PC wissen was ich vor ihm meine...


            Gruß
            Bernhard

            Kommentar

            Lädt...
            X