Hallo,
ich bin gerade dabei ein kleines SCADA Programm zu schreiben.
Dieses besteht aus 2 Teilen.
Nun bin ich auf der Suche nach einem Best-Practise für die Realisierung der Kommunikation über WCF.
Die Oberfläche sollte die Daten jede Sekunde aktualisieren.
Es können mehrere Clients gleichzeitig laufen.
bin über jeden vorschlag dankbar.
viele grüße
david
Programming is like sex: One mistake and
you have to support it your lifetime
kann mir keiner helfen? hochschieb
Programming is like sex: One mistake and
you have to support it your lifetime
Naja du hast dein Problem auch sehr allgemein formuliert bzw. erschließt sich mir nicht ganz was du für ein Problem hast.
Es würde mich z.B. wundern wenn die Kommunikation mit der SPS durch die WCF realisiert werden könnte also denke ich das es dir darum geht die gesammelten Daten den Clients über einen Service zur Verfügung zu stellen?
Wenn das der Fall ist dann sehe ich das Problem nicht so recht. Baue einfach einen normalen Service und frag ihn vom Client aus Timer gesteuert ab.
Wenn das der Fall ist dann sehe ich das Problem nicht so recht. Baue einfach einen normalen Service und frag ihn vom Client aus Timer gesteuert ab.
Hallo jaensen,
genau das habe ich mir auch gedacht, allerdings habe ich da etwas bedenken wenn pro Client ca. 1000 Signale die Sekunde angefordert werden.
Ich bin im Bereich WCF noch relativ unerfahren, deshalb auch meine allgeim formulierte Frage.
Programming is like sex: One mistake and
you have to support it your lifetime
Naja kommt auch daruaf an wie die aussehen. Wegen der Latenz etc. sollte das keine Probleme machen. Wenn es 1000 Integers sind sollte es ebenfalls kein Problem sein. Wenn es allerdings 1000 Bitmaps von einer Kamera sind dann siehts anders aus 😉
Evtl. musst du auch immer gar nicht alles übertragen sonder nur ein Delta? Um wie viele Clients handelt es sich denn ca. ?
10 Clients sollten auf jeden fall machbar sein.
Das mit dem Delta ist eine gute Idee.
was wäre denn der beste Weg um die Daten zu übertragen (meist double)?
eine Dictionary/List mit allen Werten, oder jeden Wert einzeln?
Programming is like sex: One mistake and
you have to support it your lifetime
Lieber alles in ein simples Array verpacken und alles auf einmal schicken. Da dürften die 10 Clients eigentlich kein Problem darstellen.
[EDIT] Damit sind nur die Werte gemeint, das mit dem Delta gilt trotzdem.
1000 Werte pro Sekunde: Das sollte kein Problem sein. Es stellt sich allerdings schon die Frage, welchen Mehrwert die WCF für Dein Projekt mitbringt. Die Stärken von WCF kommen da eigentlich nicht zum Tragen.
Wenn mit WCF, dann wäre eine Kommunikation über einen Service-Bus von Vorteil, oder - als zweitbeste Lösung - einen Callback vom Service zum Client, dann eben jede Sekunde einmal.
Wie auch immer, ich empfehle eine einfache Übertragung. Also - wenn möglich - keine 1000 Objekte zum Client übertragen, sonder, wie vorgeschlagen, ein Array oder ein anderes, einfaches, Konstrukt.