PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Homeserver IP-Telegramme mit Werten machen Ärger



smarteib
14.01.04, 09:00
Habe mich mal intensiv mit "IP-Telegrammen mit Werten" beschäftigt. Empfange im HS eine Stuktur mit 7 Werten Typ Byte.

In der zugehörigen Bearbeitungsschnittstelle (Befehle die bei Telegramm-Eingang ausgeführt werden) greife ich auf die empfangen Werte zu.

Dabei habe ich nun festgestellt, daß die empfangenen Werte noch garnicht auf die aktuell empfangen aktualisiert wurden (zumindest nicht alle). Da diese Bearbeitung nur bei Empfang von diesem IP-Telegramm aufgerufen wird, macht das keinen Sinn. Mir war dies zunächst nicht aufgefallen, da das Telegramm zyklisch gesendet wurde und die Werte nur leicht verzögert aktualisiert wurden. Nach einer Optimierung des Telegrammverkehrs wird das Telegramm aber nur noch ereignisgesteuert verschickt und dabei wird der Variablenstatus erst durch Zufall aktualisiert.

Das macht so keinen Sinn.

Gruß Bruno

PeterH
14.01.04, 10:12
Hallo Bruno,

die Variablenwerte werden nicht durch "Zufall" aktualisiert.
Nach Eingang des IP-Telegrammes wird sofort die hinterlegte Aktion ausgeführt.
Das Updaten der Werte erfolgt paralell dazu.
Bei mehreren Werten kann es sein, das der Befehl vor dem Update aller Werte ausgeführt wird.
Will man Befehle ausführen die mit den neuen Werten arbeiten, so sollte man Binärauslöser verwenden.
Diese werden bei jeder Wertzuweisung eines Kommunikationsobjektes ausgelöst.

smarteib
14.01.04, 10:28
Hallo Peter,

danke für die schnelle Antwort.

Das ist ja gerade das Problem, das in einer ereignisorientierten Bearbeitung die Werte parallel aktualisiert werden. Ich wollte ja unsinnige zyklische Bearbeitungen vermeiden. Warum soll man sachen zyklisch bearbeiten wenn ich schon eine ereignisorientierte Bearbeitung habe. Es wäre schön wenn man das ändern könnte, damit es transparent bleibt sonst ist die Aufrufschnittstelle "bei Empfang" nur noch die hälfte Wert.

Gruß Bruno

PeterH
14.01.04, 10:39
Hallo Bruno,

das habe ich nicht ganz verstanden.
Die Verwendung von Binärauslösern ist ja gerade eine ereignisorientierte Bearbeitung.

Um es nochmal zu sagen:

- Der Befehl hinter einem IP-Telegramm reagiert bei Eintreffen eines IP-Telegrammes.
- Der Befehl hinter einem Binärauslöser reagiert bei Zuweisung eines Wertes an ein Kommunikationsobjekt.

Nun kann sich jeder raussuchen was er braucht.