UDP Wert als Digitalwert anzeigen

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • maxw
    Lox Guru
    • 26.08.2015
    • 1362

    #1

    UDP Wert als Digitalwert anzeigen

    Ich habe folgendes Problem, das ich nicht auflösen kann.

    Ich Empfange ein UDP Telegram das wie folgt aufgebaut ist: "Status=x" wobei x den Wert "0" oder "1" hat
    Als Erkennungsmuster habe ich: "Status=\v" und wenn ich das als Analogwert anzeige, passt auch alles bestens, es wird 0 oder 1 angezeigt.

    Jetzt will ich das aber als Digitalwert verwenden, aber da geht es nicht, es wird immer der Wert Aus (bzw. das entsprechende Symbol) angezeigt.
    Ich habe schon mit verschiedenen Erkennungsmustern experimentiert, statt \v z.B. \d \1 \. und sonstige Varianten. Es geht ums verrecken nicht...

    Was mach ich falsch bzw. was habe ich nicht verstanden?
    Zuletzt geändert von maxw; 09.12.2015, 18:00. Grund: typo
  • romildo
    Lebende Foren Legende
    • 25.08.2015
    • 5145

    #2
    Hallo maxw

    Vielleicht verstehe ich dich jetzt falsch.
    Ich verwende UDP auch als Digitaleingang. Mit dem UDP-Monitor schaue ich welcher Eintrag unter Textdaten da kommt und diesen setze ich genau so in die Befehlserkennung, da die Befehlserkennung ja ein Text ist.
    Beispiel:
    Textdaten = \x15
    Befehlserkennung = \x15

    Kommt dann ein UDP -Signal \x15 geht der Eingang auf ein.
    lg Romildo

    Kommentar

    • Robert L.
      MS Profi
      • 26.08.2015
      • 922

      #3
      >Was mach ich falsch bzw. was habe ich nicht verstanden?

      nein, das geht nicht
      aber du kannst einfach den "Analogen Wert" verwenden
      solage es 0 und 1 ist, wird das 1:1 genau gleich wie ein digitaler Wert betrachtet..

      ansonten den analogen wert an eine digitalen merker "schicken" und in der programmierung den merker verwenden..

      Kommentar

      • maxw
        Lox Guru
        • 26.08.2015
        • 1362

        #4
        Was geht nicht?
        Genau das versuche ich ja, ich verwende den Analogen Wert, der nur 0 oder 1 sein kann und sage in der Config dann als Digitalwert verwenden.


        Analog . das geht




        Digital - das geht nicht




        Ich verstehe nicht, was ich sonst noch machen muss, damit es auch Digital geht.
        Zuletzt geändert von maxw; 09.12.2015, 20:18.

        Kommentar

        • romildo
          Lebende Foren Legende
          • 25.08.2015
          • 5145

          #5
          Wenn du den Eingang auf Digital stellst, funktioniert dies im Pronzip schon, allerdings wird der Eingang nur sehr kurz, vermutlich eine Impulslänge, auf ein gesetzt.
          Dies macht er dann aber bei jedem Wert, da du auf v abfrägst.
          Daher solltest du den Eingang auf Analog belassen. oder wie ich in #2 geschrieben habe, für jeden Status einen Digitalen UDP Eingang verwenden und den einen auf 0 und den anderen auf 1 und nicht auf v abfragen.
          lg Romildo

          Kommentar

          • maxw
            Lox Guru
            • 26.08.2015
            • 1362

            #6
            romildo Danke, ich glaube ich konnte es jetzt nachvollziehen und habe es - beinahe - verstanden.

            UDP als Analogeingänge speichern den Wert, bis er sich wieder ändert
            UDP als Digitaleingänge speichern den Wert NICHT, sondern geben nur einen kurzen Impuls aus.

            Gibt es dafür auch eine Erklärung, warum das so ist? Das ist doch bescheuert, oder?
            Und was ist die einfachste Variante, da jetzt den Statuswert gespeichert zu bekommen, bis er sich wieder ändert?

            Kommentar

            • maxw
              Lox Guru
              • 26.08.2015
              • 1362

              #7
              Ist das die einfachste Variante um den UDP Digitalwert zu speichern?
              2 Eingänge, einer mit "Status=0" und einer mit "Status=1" Erkennung und dann auf einen Impulsschalter.
              Oder gibt es etwas einfacheres?



              Und warum zum Kuckuck speichern die UDP Digitaleingänge den Zustand nicht? Die Analogeingänge tun das doch auch!

              Kommentar


              • romildo
                romildo kommentierte
                Kommentar bearbeiten
                Wenn der UDP auf Analog gestellt ist mach er das doch von sich aus. Wenn du sicherstellen kannst, dass nur 0 und 1 kommt brauchst du keinen RS-Block. Wenn auch andere Werte kommen musst du halt sicherstellen, dass er nur auf 0 und 1 reagiert.
                Warum die Digitaleingänge dies nicht tun, musst du Loxone fragen, das hat was damit zu tun, dass bei Loxone alles auf Impuls ausgelegt ist.
                Vorteile siehe #8
            • romildo
              Lebende Foren Legende
              • 25.08.2015
              • 5145

              #8
              Wenn du zum Beispiel einen Taster damit bedienen möchtest würde ich zwei Digitale nehmen.
              Den Ersten frägst du mit "Kinderzimmer.online_status=1" ab und hängst ihn an O des Tasters
              Den Zweiten frägst du mit "Kinderzimmer.online_status=0" ab und hängst ihn an R des Tasters

              Bescheuert ist dies nicht, da du im obigen Beispiel den Taster auch über die Visu oder andere Eingangsverbinder dann bedienen kannst
              Also z.B. über UDP Licht einschalten über Visu Licht ausschalten und umgekehrt.

              Hoffe es ist einigermassen Verständlich.
              lg Romildo

              Kommentar


              • romildo
                romildo kommentierte
                Kommentar bearbeiten
                Und noch ein Argument:
                Wenn du einen UDP - Befehl schickst, kommt dieser ja nur für eine kurze Zeit und bleibt nicht Statisch stehen.
                Also wird der Digital-Eingang nur für diese Zeit auf ein gesetzt. Wirkt demzufolge wie ein Taster.

              • maxw
                maxw kommentierte
                Kommentar bearbeiten
                Doch, bescheuert ist das schon, weil ich damit eben einen Zustand darstellen will. Das Ding ist Online oder das Ding ist offline. Und ich brauche das als OK/NOK Symbol angezeigt. Mit Taster verstehe ich ja, dass nur ein Impuls kommt. Aber ich habe den Eingabetyp auf Schalter gestellt - und es kommt trotzdem nur ein Impuls. Das ist imho ein Bug und ich werde das mal bei Loxone einmelden (mit wenig Hoffnung...)
            • romildo
              Lebende Foren Legende
              • 25.08.2015
              • 5145

              #9
              Eingabetyp auf Schalter gestellt hat nur für die Anzeige also in der Visualisierung Gültigkeit.

              Bei einem Digitaleingang an deinem MS bleibt dieser auch nur so lange auf ein, wie die Taste am Eingang auf ein ist. Den Rest musst du Softwaremässig realisieren.

              Auch wenn du den Status damit anzeigen möchtest, kommt trotzdem nur ein UDP-Impuls bei der Loxone an. Die Speicherung musst du Softwaremässig realisieren wie beim MS-Eingang auch.
              Eine Lösung dafür hast du ja auch schon.

              Es gibt auch Anwender welche Beispielsweise einen Mehrfachklick damit realisieren möchten. Dies wird dadurch sehr viel einfacher.

              Was ich damit sagen will?
              Es ist nun mal Fakt, dass es so ist und je nach Anwendung ist dies vorteilhaft oder eben nicht.
              lg Romildo

              Kommentar

              • maxw
                Lox Guru
                • 26.08.2015
                • 1362

                #10
                OK, Danke - ich verstehe was du meinst, aber ganz sauber ist es imho trotzdem nicht. Weil bei einem Analogeingang ist der Wert auch nur solange da, wie er da ist. Bei einem UDP Analogeingang wird er aber gehalten und wird erst mit der nächsten Änderung überschrieben. Verhält sich einfach anders. Aber na ja, so ist es halt... Wäre schön, wenn es eine Option gäbe bei UDP Digital den Wert auch zu halten und erst mit dem nächsten Signal zu überschreiben.

                Und noch was. Definiert man bei Analog als Einheit <v.x> so wird der Wert als Ein / Aus ausgegeben - und er wird gehalten. Nur leider sind da halt keine Symbole möglich. Also konsistent ist das ganze nicht wirklich. Aber man braucht dann nicht 2 Eingänge und nur einen Virtuellen Status dahinter, um ein Statussymbol anzuzeigen.

                Das ist also die einfachste Lösung die ich gefunden habe

                Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Ohne Digitalspeicher.png
Ansichten: 615
Größe: 8,3 KB
ID: 15081


                Erkennung mit "Status=\v"
                Anzeige Einheit: <v.x>
                Anzeigen des Symbols dann mit angehängtem Virtuellen Status.

                Erspart einen UDP Befehl und einen Impulsschalter. Einfacher geht's dann wohl nicht mehr, wenn Loxone nix umbaut...
                Zuletzt geändert von maxw; 09.12.2015, 23:57.

                Kommentar

                • romildo
                  Lebende Foren Legende
                  • 25.08.2015
                  • 5145

                  #11
                  Weil bei einem Analogeingang ist der Wert auch nur solange da, wie er da ist. Bei einem UDP Analogeingang wird er aber gehalten und wird erst mit der nächsten Änderung überschrieben. Verhält sich einfach anders.
                  Bei einem physikalischen Analogeingang kommt immer ein Wert, und wenn man den wegnimmt kommt eine 0, was bei einem UDP nicht der Fall ist, da kommt kein Wert mehr, was nicht gleichbedeuten 0 ist.

                  Auch die Analogausgänge reagieren auf Änderung und nicht auf ein statisches Signal.
                  Dies kann man ganz einfach sehen, wenn man Beispielsweise zwei Analogsignale parallel auf einen Analogausgang legt.
                  Der Ausgang geht immer auf den zuletzt geänderten Wert.

                  Schlussendlich stecken hinter allen Funktionen Programme, zu welchen wir keine detailierten Angaben haben und nicht nur reine Hardware.
                  Dies nur zur Ergänzung.

                  Und noch was. Definiert man bei Analog als Einheit <v.x> so wird der Wert als Ein / Aus ausgegeben - und er wird gehalten. Nur leider sind da halt keine Symbole möglich. Also konsistent ist das ganze nicht wirklich. Aber man braucht dann nicht 2 Eingänge und nur einen Virtuellen Status dahinter, um ein Statussymbol anzuzeigen.

                  Das ist also die einfachste Lösung die ich gefunden habe
                  .....
                  Die Idee finde ich gut!
                  Wenn du lieber Symbole hättest, könntest du einen Status-Baustein an Stelle eines Virtuellen Status verwenden.
                  Klicke auf die Grafik für eine vergrößerte Ansicht

Name: UDPStatus.png
Ansichten: 781
Größe: 4,2 KB
ID: 15085
                  lg Romildo

                  Kommentar

                  • maxw
                    Lox Guru
                    • 26.08.2015
                    • 1362

                    #12
                    Zitat von romildo
                    Bei einem physikalischen Analogeingang kommt immer ein Wert, und wenn man den wegnimmt kommt eine 0, was bei einem UDP nicht der Fall ist, da kommt kein Wert mehr, was nicht gleichbedeuten 0 ist.
                    Genau das gleich gilt aber - bei UDP - auch wenn ich auf Digital bin. Es kommt eine 1 und dann nichts mehr. Warum geht der dann wieder auf 0? Der Analoge Wert geht ja auch nicht auf 0 sondern bleibt beim letzten Wert, bis was neues kommt. Zumindest diese Möglichkeit sollte Digital - imho - auch bestehen.


                    Zitat von romildo
                    Auch die Analogausgänge reagieren auf Änderung und nicht auf ein statisches Signal.
                    Stimmt. Aber warum ist es dann bei UDP Digital anders? Warum reagieren die, wenn es doch gar keine Änderung gibt?

                    Zitat von romildo
                    Die Idee finde ich gut!
                    Wenn du lieber Symbole hättest, könntest du einen Status-Baustein an Stelle eines Virtuellen Status verwenden.
                    Danke für den Tipp, Symbole gehen aber mit dem Virtuellem Status auch, aber halt nur 2 verschiedene (was genau das ist was ich brauche).

                    Für mich noch mal zusammengefasst:
                    • Wenn ich per UDP ein Digitals Status-Signal übermittle wenn es sich ändert (also der UDP Sender erkennt, das Signal geht von 0 auf 1 oder umgekehrt), dann brauche ich im MS noch zusätzlich Logik, um den aktuellen Status zu ermitteln, ich kann nicht einfach den Digitalen UDP Eingang nehmen und anzeigen oder damit weiterarbeiten. Ich muss den Status zuerst nachbilden oder den Analogeingang mit Anzeige Einheit: <v.x> dazu überreden, satt den Wert die Zustände Ein und Aus zu verwenden - und dann digital mit z.B. Statusbaustein weiterverarbeiten.
                    • Wenn ich per UDP ein Analoges Messwert-Signal übermittle wenn es sich ändert (UDP Sender erkennt Signaländerung und sendet neuen Wert), dann kann ich einfach den Analogen UDP Eingang hernehmen und den Wert anzeigen oder weiterverarbeiten, ohne irgendwelche zusätzliche Hilfslogik.

                    Logisch ist - imho - anders.


                    lg, Max

                    Kommentar


                    • romildo
                      romildo kommentierte
                      Kommentar bearbeiten
                      Deiner Zusammenfassung stimme ich zu.
                      Wie schon erwähnt benutze ich die UDP-Digitalsignale mehrheitlich zum Schalten und nicht nur als Status. Daher habe ich einen klaren Vorteil

                      Dass man die Symbole beim Virtuellen Statusbaustein auch ändern kann, stimmt. Habe ich nicht daran gedacht, da es ja nur geht, wenn dieser auf Digital eingestellt wird. Danke für den Hinweis.
                  • Gast

                    #13
                    Hallo zusammen, hab ein Problem:
                    bekomme beim Einlernen des UDP-Gerätes (Schaltbare Steckdose) folgende Daten (Bild1)...
                    Daraufhin habe ich einen virtuellen UDP- Eingang erstellt mit passender IP und UDP-Port. Desweiteren habe ich je einen virtuellen Eingangsbefehl für Ein und Aus erstellt mit der Befehlserkennung Steckdose2=0 - Steckdose2=1. Diese habe ich als Digitaleingang erstellt.
                    Wenn ich nun etwas damit schalten möchte oder den Status anzeigen möchte funktioniert das ganze nicht. In der Statistik der Eingänge ist auch nichts zu finden... Was mache ich falsch? Der UDP-Monitor zeigt Bild 3 an

                    Kommentar

                    • romildo
                      Lebende Foren Legende
                      • 25.08.2015
                      • 5145

                      #14
                      Lege die digitalen Einänge auf einen Schalterbaustein an R und O, oder nimm einen Analogeingang und stell die Befehlserkennung auf Steckdose2=\v
                      lg Romildo

                      Kommentar

                      • Gast

                        #15
                        Hab ich, funktioniert aber nicht, anbei die Konfig einmal als Schalter und einmal als SR-Baustein.

                        Oder ist da ein Fehler drin?

                        Kommentar


                        • romildo
                          romildo kommentierte
                          Kommentar bearbeiten
                          Die Senderadresse ist auf 192.168.178.46 und der Empfangsport auf 6667 eingestellt?
                      Lädt...