TIA S7 1200 Überwachung Kommunikation Webserver

golfsiew

Level-1
Beiträge
36
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, ich habe eine S7 1214 AC DC Rly Fw3.x und programmiere im TIA V11 Professional SP2 upd3.
Auf der 1214 wurde ein Programm für eine Lichtsteuerung geschrieben. Ich kann über Eingänge und über die HTML Seite des Webservers Ausgänge setzen und rücksetzen. Außerdem kann ich über die HTML Seite die Taster der Durchgangsbeleuchtung sperren und entsperren. Der Laptop für den HTML Webserverzugriff ist nicht immer angeschalter. Wenn ich nun meinen Laptop (Webserverzugriff) einfach abziehe, bleibt die Sperre der Taster bestehen. Kann man irgendwie den Webserver, CPU überwachen ob ein Rechner angesteckt ist oder nicht, so das ich mein Sperrsignal der Taster Rücksetzen könnte?:confused:

Der Siemens Support konnte mir bei dieser Aufgabe leider auch nicht weiter helfen.:p
 
Eine Möglichkeit wäre, die automatische Seitenaktualisierung im TIA-Portal zu deaktivieren und das über etwas Javascript zu lösen.
Zusätzlich wird dann bei der Seitenaktualisierung eine Variable in der SPS auf einen Wert von z.B. 1 geschrieben. In der SPS setzt du die Variable wenn ==1 wieder auf 0 zurück, und lässt einen Timer ablaufen wenn die Variable sich nicht ändert. Dann kannst du darauf wie auch immer reagieren.

Für mein Beispiel bräuchtest du z.B. die Variable "DB_HMI".REFRESH_VAR

Damit diese schreibfähig ist musst du dieses über AWP bekannt geben:
Code:
<!-- AWP_In_Variable Name='"DB_HMI".REFRESH_VAR' -->

Du bräuchtest dazu eine form irgendwo im body deiner Seite. Über hidden wird diese unsichtbar geschaltet:
Code:
<form id="RefreshVarForm" method="post" action="">
<input type="hidden" name='"DB_HMI".REFRESH_VAR' value="1">
</form>

Im head deiner Seite fügst du dann folgendes ein:
Code:
<script type="text/javascript">
window.onload = setupRefresh;

function setupRefresh() {
    setTimeout("refreshPage();", 10000); // in Millisekunden
}

function refreshPage() {
    document.getElementById("RefreshVarForm").submit();
}
</script>

Damit wird alle 10 Sekunden das Formular mit der ID RefreshVarForm abgeschickt, und auch die Seite neu geladen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für die schnelle Antwort,

eine so ähnliche Idee hatte ich auch schon, wusste nur nicht wie ich anfangen sollte.
Habe es einmal aus probiert, das Script läuft soweit auch, da meine Seite 10sec aktualisiert wird, allerdings wird meine Variable nicht auf 1 gesetzt.
Den HTML Code habe ich per Drag&Drop heraus kopiert, deswegen denke ich, dürfte auch kein Tippfehler vorliegen. Das einzige was ich geändert habe ist der Name der Variabe. Den habe ich von Name='"DB_HMI".REFRESH_VAR' in Name='"channel10"' geändert, da diese schon unter AWP von mir angelegt wurde. Wenn ich es richtig deute heisst ja Name='"DB_HMI".REFRESH_VAR' das du ein Datenbaustein DB_HMI hast mit einer Variable Refresh_var. Ich habe folgende Quelltext an die entsprechenden Stellen eingefügt.

<!-- AWP_In_Variable Name='"channel10"' -->



<script type="text/javascript">
window.onload = setupRefresh;

function setupRefresh() {
setTimeout("refreshPage();", 10000); // in Millisekunden
}

function refreshPage() {
document.getElementById("RefreshVarForm").submit();
}
</script>



<form id="RefreshVarForm" method="post" action="">
<input type="hidden" name='"channel10"' value="1">
</form>
 
Das sollte eigentlich passen.
Damit Werte geschrieben werden können musst du dich aber am Webserver angemeldet haben. Entweder über die Siemens-Startseite oder über dein eigenes Login-Feld (wenn du eines geschaffen hast).
 
Ich habe ein eigenes Login Feld gebastelt und bin angemeldet, ich probier es einfach noch einmal aus.
Vielen Dank
 
Zurück
Oben