| 

.NET C# Java Javascript Exception

1
Hallo,
vorab, dies ist mein erstes HTML Programm :)

Und zwar möchte ich Prozessdaten von einer Siemens SPS (Webserver) ausgeben.
Allerdings ändern sich diese Daten ständig.
Ich will aber nicht jede Sekunde die Komplette Seite neu laden.
Wie kann ich nur die beiden Werte "Output_0" und "Output_2" sekündlich aktualisieren?
Danke schon mal im voraus :)

<html>
<!-- AWP_In_Variable Name='"Output_0"' -->
<!-- AWP_In_Variable Name='"Output_2"' -->
<!-- AWP_Start_Fragment Name='Mein_Firmenlogo' -->
<p><img src="Firmenlogo.jpg"></p>

<head>
<title>Überwachung</title>
<meta http-equiv="refresh" content="0.5">
</head>
<body>
Ausgang 0.0 : :="Output_0":
Ausgang 2 : :="Output_2":
</body>
</html>


Gruß Nixco
News:
30.08.2018
3 Antworten
0
Das geht am einfachsten mit JavaScript. Das JavaScript müsste einen Ruf an den SPS-Webserver absetzen, der die neuen Daten holt und die Felder (am besten in ein DIV legen und mit einer ID versehen) z.B. über document.all.<ID>.value aktualisiert.
Damit der Ruf zeitgesteuert funktioniert, instanziiert JavaScript einen Timer und erneuert diesen wenn das Ergebnis vorliegt.
Man könnte dazu
window.setInterval(...)
verwenden.
Hier ein Link auf SELF HTML., derf das prinzipielle Vorgehen zeigt.
31.08.2018
edvservice 1,4k 1 6
0
Danke für die Antwort.
Da dies meine ersten Erfahrungen sind wäre es für mich am einfachsten nachvollziehbar wenn mir das gleich jemand in den Code reinschreibt.
Dann kann ichs vergleichen und verstehe es dann auch am besten.

Besten Dank :)
31.08.2018
0
Ich kann hier leider keinen vollständigen Quelltext liefern, da Sie das Holen der Daten nicht dargestellt haben, aber das Prinzip kann ich erläutern.

<html>
<!-- AWP_In_Variable Name='"Output_0"' -->
<!-- AWP_In_Variable Name='"Output_2"' -->
<!-- AWP_Start_Fragment Name='Mein_Firmenlogo' -->
<p><img src="Firmenlogo.jpg"></p>

<head>
<title>Überwachung Cobra</title>
<!--meta http-equiv="refresh" content="0.5" -->
<script language="JavaScript">
document.addEventListener('DOMContentLoaded', function(event) {
window.setInterval(function() {
// hier den Aufruf zum Holen der Daten plazieren, zum Beispiel!
// oSMthHttp.open('GET', sURL, false);
// sXml = '';
// oSMthHttp.send(sXml);
// var sResponse = oSMthHttp.responseText;
// Responsetext parsen und Variablen füllen
// var wert0 = ...;
// var wert2 = ...;
// oSMthHttp = null;

document.all.Output0.value = 'Ausgang 0.0 : ' + wert0;
document.all.Output2.value = 'Ausgang 2 : ' + wert2;

},60000);
});
</script>
</head>
<body>
<div ID="Output0">Ausgang 0.0 : </div>
<div ID="Output2">Ausgang 2 : </div>
</body>
</html>

Das Javascript wird nach dem vollständigen Laden der Seite ausgeführt. Als Kommentar habe ich den prizipiellen Ablauf eines synchronen AJAX-Rufs dargestellt. Im einfachsten Fall wird ein GET-Request durchgeführt, d.h. alle notwendigen Parameter werden im Request übergeben. Alternativ kann ein POST-Request oder ein asynchroner Ruf verwendet werden. Das ist allerdings deutlich komplexer. Vielleicht können Sie auch eine einschlägige AJAX-Bibliothek verwenden? - Bei uns stellt dieses Framework, die Webapp bereit...

Sind die Daten ermittelt, dann kann die Seite direkt aktualisiert werden. Da hier synchron gearbeitet wird, habe ich die Aktualisierung mit 60000 Millisekunden = 1 Minute vorgegeben um dem synchronen Ruf genügend Zeit zu geben. Der Parameter sURL muss mit dem Ruf ausgefüllt werden.
31.08.2018
edvservice 1,4k 1 6

Stelle deine --Frage jetzt!