Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

Status
colourRed
titleIn Arbeit

...

Info

Das User Datagram Protocol, kurz UDP, ist ein minimales, verbindungsloses Netzwerkprotokoll, das zur Transportschicht der Internetprotokollfamilie gehört. UDP ermöglicht Anwendungen den Versand von Datagrammen in IP-basierten Rechnernetzen.

Die Entwicklung von UDP begann 1977, als man für die Übertragung von Sprache ein einfacheres Protokoll benötigte als das bisherige verbindungsorientierte TCP. Es wurde ein Protokoll benötigt, das nur für die Adressierung zuständig war, ohne die Datenübertragung zu sichern, da dies zu Verzögerungen bei der Sprachübertragung führen würde. ...

UDP ist ein verbindungslosesnicht-zuverlässiges und ungesichertes wie auch ungeschütztes Übertragungsprotokoll. Das bedeutet, es gibt keine Garantie, dass ein einmal gesendetes Paket auch ankommt, dass Pakete in der gleichen Reihenfolge ankommen, in der sie gesendet wurden, oder dass ein Paket nur einmal beim Empfänger eintrifft. Es gibt auch keine Gewähr dafür, dass die Daten unverfälscht oder unzugänglich für Dritte beim Empfänger eintreffen. Eine Anwendung, die UDP nutzt, muss daher gegenüber verlorengegangenen und unsortierten Paketen unempfindlich sein oder selbst entsprechende Korrekturmaßnahmen und ggfs. auch Sicherungsmaßnahmen vorsehen

Quelle: Wikipedia

Durch die Einschränkung der ModbusTCP Funktion ab Firmware V8.1.11.11 (PoKeys57E 55 - Digitale Ein und Ausgänge, div Fühler via ModbusTCP an LOXONE koppeln. oder Modbus TCP- und RTU-Schnittstelle) ist die Idee entstanden, die Zustände der Eingänge über UDP an den Miniserver zu schicken. Dabei hat man keine Einschränkung wie den minimalen Abfragezyklus von 5s bei ModbusTCP. Für kritische Signale, sollte dies nicht verwendet werden, da es sich hier um ein ungeschütztes Übertragungsprotokoll handelt. (siehe Info oben)

...

  • Virtuellen UDP Eingang anlegen
    • Senderadresse = IP unseres PoKeys
    • UDP Port = Erster eingestellter Port in der PoKeys Konfigurationssoftware. Hier ist es Port 4000.
  • Zusätzlich legen wir zu diesem virtuellen UDP Eingang noch einen "Virtueller UDP Eingang Befehl" an.
    Als Senderadresse wird wieder die IP unseres Pokeys eingetragen.
    Die Befehlserkennung muss an das jeweils empfangene Paket angepasst werden. Über den UDP Monitor lässt sich das recht einfach auslesen. Bei mir sehen die Daten wie folgt aus:

    Man sieht hier, welche Auswirkung die Einstellung der Datenports vom UDP Sender Blocks in PoBlocks hat.
    Möchte man z.B. den Wert von Port A abfragen, gibt man als Befehlserkennung In_a=\v ein.

  • Zusätzlich kann man Virtuellen UDP Eingang Befehl noch die Validierung und den Fehlerport aktivieren. Dann bekommt man einen Fehler, wenn in einer festgelegten Zeit keine Botschaften empfangen wurden, oder der Wert außerhalb des gültigen Bereichs liegt.

     

    Hier nun die Beschreibung des neuen UDP textbasiertem Kommando Interface, also Richtung Loxon

    nach einem Pokeys57E

    -> Pokeys57E und auch umgekehrt

    Dies ist das Ergebnis des langen Prozesses der Planung und die Funktion ist in der 'Beta-Version implementiert. 
    PoKeys-Geräte verfügen nun über eine einfache textbasierte Befehlsschnittstelle, die einfach via UDP-Pakete verbunden werden kann.
    PoKeys überträgt diese Befehle auf Port 20057. 
    Diese einfache Textoberfläche wird in Zukunft erweitert, um mehr Befehle und andere Schnittstellen zu unterstützen.
    Derzeit sollte es Ihnen ermöglichen, einfache UDP-Pakete an PoKeys Gerät zu senden.

    Poil-Steckplätze können auch gelesen und geschrieben werden.
    Das Setzen/Abfragen des digitalen Ausgangs zB Pin 5 auf 1 ist so einfach mit dem Senden von "OSV5=1" (ohne Anführungszeichen).
    einfach als Text als UDP an die IPadr des Pokeys über Port 20057. 

    Das Update 4.2.23 ist unter https://www.dropbox.com/s/af3w319x0d3iz4n/PoKeys_Setup_4_2_23.exe?dl=0 verfügbar

    Die PoKeys SimpleText-Syntax ist einfach:

    Jeder Befehl beginnt mit einem Buchstaben, der die Zielperipherie angibt:
    - I: Digitaleingang
    - A: Analogeingang
    - O: Digitalausgang
    - E: Encoder-Wert
    - C: digitaler Zählerwert
    - S: EasySensors-Werte
    - B: PoBlocks shared slot

    Der zweite Buchstabe des Befehls ist ein Verb:
    - G: get
    - S: set
    - R: reporting

    Der dritte Buchstabe ist das Substantiv:
    - V: Wert
    - S: status

    Der Befehl fährt dann mit Parametern fort, wobei jeder Parameter mit einem Kommasymbol getrennt wird.

    Im Falle eines set-Befehls muss der Befehl dann = Zeichen und den Wert in numerischer Form ohne zusätzliche Einheits- oder Dezimalpunktsymbole enthalten.
    Wenn die Antwort angefordert wird, endet der Befehl mit einem Fragezeichen?

    Beispiele für die Abfragebefehle:
    - IGV10? -> digitalen Eingangswert von Pin 10 (echte Pin-Nummer), mit dem Wert wird geantwortet
    -> Antwort: IRV10=1 - Melde-Digitaleingangswert von Pin 10 ist 1 (ON)

    - AGV41? -> den analogen Eingangswert von Pin 41 (echte Pin-Nummer) erhalten, mit dem Wert antworten
    -> Antwort: ARV41=534 - Der analoge Eingangswert des Pins 41 wird mit 534 ausgegeben

    - OSV5=1 -> digitalen Ausgangswert von Pin 5 auf Zustand 1 (ON) setzen, keine Antwort Reaktion


...