Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

wann kommt ein Enocean-Telegramm ??

grauerwolf
2011-09-05
2014-04-16
  • grauerwolf - 2011-09-05

    Hallo,
    mit einer Wago 841-750 und der Enocean-Klemme möchte ich die Telegramme von 3 Solar-Temperatursensoren auswerten.
    Das funktioniert - im großen und Ganzen. Die Sensoren sollen alle 100s ein Telegramm schicken. So komisch das klingt: meistens(!) machen sie das. Ich traue der Mimik nicht ganz und will wissen, ob die Sensoren Telegramme schicken und die Temp. zufällig gleich geblieben ist oder ob die Telegramme ausbleiben und ich nur die Temp. von vor 4h vorgegaukelt bekomme. Die Funktionsbausteine halten die Temp. dank einer OUT-Variable.

    **Hat jemand schon mal herausbekommen, mit welcher Flanke, welchem Ergebnis-Bit oder was weiß ich die Ankunft eines neuen Telegrammes definitiv erkannt werden kann und man damit die Zeitabstände zwischen den Telegrammen erkennen kann. **

    Den Timeout-Fehler zu nutzen hilft mir nichts, da weiss ich bloß das z.B. nach 5 Minuten kein Telegramm gekommen ist, aber nicht wann nun wieder eins kommt. Ich glaube evtl. in typEnocean wird so ein Empfangsbit rumschwirren, nur eben welches.

    Ich habe ein Array gefüllt und kann damit die Zeitabstände ermitteln. Hier im Bild hats gerademal funktioniert.

    Ich habe da aber auch schon 2h und mehr Abstand gehabt.
    Programmiert ist das Ganze so:

    Vielen Dank ...

    IMG: Codesys_Enocean_1.jpg

    IMG: Codesys_Enocean_2.jpg

     
  • WAGO - 2011-09-14

    Hallo grauerwolf,

    das, was Du suchst, ist leider nicht im Baustein bzw. in der Typstruktur enthalten. Zwar ist es denkbar für jede ID, die per EnOcean angekoppelt ist, so einen Timestamp mitzuliefern, ist aber bislang noch keine Anforderung gewesen.
    Du erfasst ja jetzt schon die Zeiten. Kannst Du nicht bei Überschreiten Deiner 100s diese Werte als ungültig erklären und das Handling an eine dementsprechende Fehlerbehandlungsroutine übergeben (z.B. Füllen mit Standardwerten, Auswertung ausblenden etc.)?

    Bei weiteren Fragen kannst Du uns auch gerne unter den unten genannten Adressdaten direkt kontaktieren.

     
  • grauerwolf - 2011-09-14

    Hallo liebes Wago-Support-Team,
    der Timestamp muss aus meiner Sicht nicht mitgeliefert werden, wenn denn nur eine Flanke sagen würde: Jetzt ist ein Telegramm angekommen. Ich habe mit den Toggle-Bits experimentiert (in typEnocean), kann aber deren Funktionsweise nicht sauber nachvollziehen. Vielleicht gibt's da noch ne Möglichkeit...
    Irgendwie basiert das ganze Telegrammspiel doch auf RS232-Basis. Da gibts doch auch klare Empfangssignale oder ??
    Viele Grüße
    grauerwolf

     
  • WAGO - 2011-09-15

    Hallo grauerwolf,

    wir haben einmal versucht Dir ein Beispiel zu erstellen, dass Deiner Anforderung nachkommt. Schaue es Dir doch einfach einmal an.

    Bei weiteren Fragen kannst Du uns auch gerne unter den unten genannten Adressdaten direkt kontaktieren.

    Beispiel_Update.pro [56.5 KiB]

     
  • grauerwolf - 2011-09-19

    Hallo liebes Wago-Support-Team,
    Das Beispiel scheint alle meine Anforderungen zu erfüllen. Mit dem Toggelbit und dem OldMsgToggelbit hatte ich auch rumgeübt aber nicht die wohl entscheidende Instanzenbildung pro Sensor gemacht. 3 verschiedene OldMsgToggelbit's definiert und es hätte wohl auch funktioniert. Aber draufkommen muß man erst mal.

    Ich habe jetzt eine Testumgebung laufen, wollen wir mal sehen, wie das alles so klappt.

    Vielen Dank für die Hilfe.

    MfG
    grauerwolf

     
  • grauerwolf - 2011-09-20

    Hallo,
    melde mich nochmal mit den Ergebnissen. Funktionierts? - im Prinzip ja, aber ...
    Es ist vielleicht pingelig, aber irgendwo gehen Telegramme verloren. Das Toggelbit hat 1703 mal gewechselt, aber echt erkannt wurden nur 1684.

    Die verlorenen Telegramme spielen bei der Temperaturerfassung vielleicht wirklich nicht die große Rolle. Aber bei Schaltvorgängen (Tastern) sollte man schon sicher sein, daß was ankommt - oder aber das ein Telegramm erkannt wurde, jedoch fehlerhaft verarbeitet. Letzteres ist, glaube ich, das Wahrscheinlichste.
    Es gibt da eine Besonderheit: Im Normalfall ist toggelbit FALSE, wird bei Erkennen des Telegramms TRUE und am Ende wieder FALSE. Bei normaler Betrachtung dürfte es für den Beobachter also nie TRUE werden (höchstens mal kurzzeitig). Nun kann man im Screenshot erkennen, das es TRUE ist (war die ganze Zeit so, nicht nur mal ein Supershot !).

    Ich glaube die 21 "verlorenen" Telegramme sind genau das. Der Telegrammverkehr wird gestartet, toggelbit geht auf TRUE, aber das Telegramm wird nicht beendet bzw. fehlerhaft. Nun bleibt das Toggelbit auf TRUE.

    Vielleicht kann der gute Wago-Support nochmal behilflich sein und das bestätigen oder anderweitig aufklären. Denn da alles über eine Pipeline hereinkommt, kann ich den Fehlerfall über eine Zeitüberwachung ( z.B.das toggelbit muss nach 200ms oder sowas wieder zurückschalten) nicht erkennen, es kann ja z.B. nach 150ms schon ein anderer Sensor das toggelbit wieder beeinflussen.

    Ziemlich kompliziert das Ganze...

    Viele Grüße
    grauerwolf

    IMG: Codesys_Enocean_3.jpg

     
  • WAGO - 2011-09-22

    Hallo,

    nicht alles Annahmen, die Du hier getroffen hast, sind zwingend richtig.
    Der Status des Toggelbits ist abhängig von den internen Vorgängen im Baustein bzw. in der Klemme. So kann dieser auch durch innere Betriebszustände der Klemme den Zustand wechseln. Daher ist die Anzahl der Wertwechsel der Variable unter bestimmten Rahmenbedingungen stets höher als die Anzahl der zugeordneten Telegramme. Diese beschreibt nämlich nur die Anzahl erkannter, vollständiger und richtiger Telegramme. Telegramme von nicht ausgewerteten Sensoren werden z.B. auch empfangen, dann aber verworfen. Auch korrupte Telegramme werden verworfen.
    Der Baustein inkrementiert den Zählwert nur dann, wenn auch die ID des Sensors im Empfangsbuffer steht. Und das ist ja das Entscheidende, oder?

    Ansonsten freut es uns, dass Du mit Deiner Lösung ein Stück weitergekommen bist.

    Und weiterhin gilt: Bei weiteren Fragen kannst Du uns auch gerne unter den unten genannten Adressdaten direkt kontaktieren.

     
  • grauerwolf - 2011-09-22

    Hallo an den wago-Support,
    ich werde mich gerne mal direkt an Euch wenden, nur weiß ich ja, daß man in der zentralen Annahme ankommt und dann hätte ich vielleicht eine Ansprechperson oder ein Codewort oder was weiss ich, um Bezug auf diese Forums-Beiträge nehmen zu können. Falls ein ganz andrer Bearbeiter ran geht, dann ist es doch für beide Seiten umständlich, erst alles von vorn aufarbeiten zu müssen.

    Grüße
    grauerwolf

     
  • WAGO - 2011-09-22

    Hallo,

    melde Dich doch einfach unter Deinem Nickname "grauerwolf" oder mit dem Thema "EnOcean", wir wissen uns und Dir dann schon zu helfen:-)

     
  • grauerwolf - 2014-04-16

    Hallo zusammen,
    nach geraumer Zeit und der nächsten generation der EnOcean-Lib von Wago komme ich immer noch nicht so richtig auf eine "richtige" Flanke, wenn denn ein neues Telegramm von einem EnOcean - Sensor angekommen ist.
    Der weiter oben beschriebene Baustein "FbEnocean_Update" im Beispielprogramm, scheint's nicht mehr so richtig zu tun.
    Ich habe nun mal mit dem den Programmen innewohnenden Timeout-Funktionen experimentiert und es sieht so aus , das das eher dies ist, was ich wünsche.
    Das Testprogramm sieht so aus:
    [attachment=1]Test_Telegramm_flanke_1.jpg[/attachment]

    Und wenn das Programm losläuft, erkennt man die unterschiedlichen Zählerstände.
    [attachment=0]Test_Telegramm_flanke_2.jpg[/attachment]

    Vielleicht hilfts weiter, wer auch immer ankommende Enocean-Telegramme erkennen will...

    IMG: Test_Telegramm_flanke_2.jpg

    IMG: Test_Telegramm_flanke_1.jpg

     

Log in to post a comment.