libnodave & asp.net

spsTec

Level-1
Beiträge
9
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen und erstmal ein Hallo an alle Forumsmitglieder,

ich würde gerne Daten aus einer S7 312C über ein CP343-1 Lean mit Hilfe der Libnodave.dll auslesen.
Der Umgang mit der Bibliothek ist mir bekannt und stellt somit kein Problem da.

Die ausgelesenen Daten sollten in einer ASP.net Weboberfläche angezeigt werden.
Jetzt ist meine Frage, wie ich am besten die Daten aus der SPS in die Website bekomme...

Eine Idee wäre mit Hilfe einer Konsolenanwendung die Daten aus der SPS auszulesen und in eine Datenbank zu schreiben, welche dann von der Website ausgelesen wird.
Auf die Daten muss nur lesend zugegriffen werden. Hat von euch evtl jemand eine alternative Idee?
Wäre es evtl auch möglich das Libnodavemodul direkt in die Weboberfläche einzubinden?

Vielen Dank für eure Ideen.
Grüße,
spsTec
 
Libnodave und ASP.net

Nachtrag:
Was wäre die beste Methode um den Kommunikationstraffic so gering wie möglich zu halten?

Grüße und vielen Dank,
spsTec
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Eine Idee wäre mit Hilfe einer Konsolenanwendung die Daten aus der SPS auszulesen und in eine Datenbank zu schreiben, welche dann von der Website ausgelesen wird.
Das halte ich auch für die beste Idee, weil:
- Die SPS nur eine recht beschränkte Anzahl von TCP- und S7-Verbindungen verwalten kann.
- Der Webserver aber eine fast unbeschränkte Zahl an Clients bedienen kann und auch viel Traffic kein Problem darstellt.
- Bei einem direkten Zugriff die Schwierigkeit auftaucht, daß wenn der Benutzer das Laden der Seite abbricht oder bei ihrer Erzeugung ein Fehler auftritt, möglicherweise eine geöffnete S7-Verbindung verbleibt.
 
Ok vielen Dank.

Würdest du in asp.net mittels Ajax Steuerelemt ein Timerinterrupt erzeugen, das alle x Sekuden die Daten auf der Seite aktualisiert?
Oder ist davon eher abzuraten?

Bei einer Datenbankabfrage wird nicht jedesmal eine Verbindung zur DB aufgebaut. Dies geht über eine Instaz die immer geöffnet ist.

Grüße,
spsTec
 
Ich kenne mich nicht weiter mit asp.net aus. Benutze eher PHP. Was ich gerne mache sieht etwa so aus:

Ich nehme eine HTML-Seite, die kann mit der Hand geschrieben oder mit PHP erzeugt sein.
Die enthält javascript, welches per Timer einen "Thread" startet.
Der Thread holt alle 0.5 bis 2 Sekunden die neuesten Daten, indem er per XMLHTTPRequest eine "Seite" vom Web-Server anfordert.
Die "Seite", die der XMLHTTPRequest holt, wird mittels PHP erzeugt, d.h. PHP holt sich die neuesten Werte aus der Datenbank und verpackt sie seinerseits nach JSON-Manier.
Der Thread in javscript ruft JSON.parse(responseText) auf und erhält eine Werteliste. Die trägt er dann in Felder von <form> ein oder malt eine Grafik auf einem Canvas-Element oder was immer Du möchtest.
Der Traffic wird minimiert, indem nur die puren Werte jedesmal wieder übertragen werden.
 
Zurück
Oben