S7-300 Webserver

Hetzer

Level-1
Beiträge
67
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo zusammen,
ich habe jetzt auf meiner cpu ein webserver erstellt. alles so gemacht wie es auf der siemens seite steht über s7-web2plc.
aber mit der seite ansich komme ich nicht weiter... muss man die seite alles in html schreiben oder gibs da eine andere möglichkeit?


gruß hetzer
danke im vorraus
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Eine BigS-Seite...

das habe ich schon gemacht...

oder...

...noch eine BigS- Seite...

habe ich mir auch schon angesehen...

aber keines von den zeig wie man die html seite erstellt... das ist das problem...

oder kann mir einer den code schreiben für z.b. wenn man ein button drückt das e0.4 angeht?

danke im vorraus ;)
 
das habe ich schon gemacht...



habe ich mir auch schon angesehen...

aber keines von den zeig wie man die html seite erstellt... das ist das problem...

oder kann mir einer den code schreiben für z.b. wenn man ein button drückt das e0.4 angeht?

danke im vorraus ;)

Siemens sagt, sie setzen auf Standards HTML, CSS und
Javascript und gehen davon aus, dass die Anwender diese
Standards einfach beherrschen ... :lol:

Aber gnädigerweise gibt es auch Beispiele wie hier, die
man "weiterentwickeln" kann:

http://support.automation.siemens.com/WW/view/de/44212999
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du kannst die Beispiele für die analogen Werte auch für deine digitalen übernehmen. Der einzige Unterschied ist, dass du bei den digitalen nur die Werte 1 und 0 verwenden kannst. Genauso kannst du über Schaltflächen auch analoge Werte schreiben.

Hier mal ein Beispiel für drei verschiedene Möglichkeiten (Schaltfläche, Checkbox, Eingabefeld) wie du Variablen schreiben kannst:

Code:
<!DOCTYPE html>
<html>
<head> 
<title>Testseite zum Schreiben von bool-Variablen</title> 
</head>	
<body>

<!-- AWP_In_Variable Name='MeineBoolVar' -->
 
<h1>Testseite zum Schreiben von bool-Variablen</h1> 
 
<h2>Wertanzeige</h2>
<p>Wert von MeineBoolVar: :=MeineBoolVar:</p>

<h2>Ein- und Ausschalten über separate Buttons</h2>

<form method="post">
<input type="submit" value='Einschalten' style="height: 30px; width: 200px">
<input type="hidden" name='MeineBoolVar' value="1">
</form>

<form method="post">
<input type="submit" value='Ausschalten' style="height: 30px; width: 200px">
<input type="hidden" name='MeineBoolVar' value="0">
</form>

<h2>Ein- und Ausschalten über Checkbox und absenden</h2>
<p>Bei gesetzter Checkbox wird der Wert auf 1, bei nicht gesetzter auf 0 geschrieben.</p>

<form method="post">
<input type="hidden" name='MeineBoolVar' value="0" />
<input type="checkbox" name='MeineBoolVar' value="1" />
<input type="submit" value="Wert absenden" style="height: 30px; width: 200px" />                  
</form>

<h2>Über ein Eingabefeld mit den Werten 0 und 1</h2>

<form method="post">
<p>Zu sendender Wert für MeineBoolVar: <input name='MeineBoolVar' type="text" />
</p>
</form>

</body>
</html>

Du musst an allen Stellen "MeineBoolVar" durch deinen eigenen Namen ersetzen. "MeineBoolVar" kann aber genauso gut eine Integer-Variable sein. Dann hätte diese immer nur die Werte 1 und 0.

Du kannst aber nicht auf Eingangsvariablen schreiben, bzw. werden die vom SPS Programm immer wieder überschrieben. Zum Testen würde ich darum erstmal mit einem Merkerbit probieren.
 
Danke Thomas ;) und wie sieht's mit Ausgängen aus? Kann man die schreiben?
Im Prinzip ja. Nur darf dann im SPS-Programm nicht mehr auf diesen Ausgang geschrieben werden, weil sonst an den Ausgängen immer der Befehl vom Programm aus das Sagen hat.

Ich weiß zwar nicht was du da vorhast, aber ich würde die ganzen Daten für die Webvisualisierung in einen separaten DB legen, und im SPS-Programm die Befehle von dort abarbeiten. Ein direktes Lesen/Schreiben von Ein- und Ausgängen finde ich in einer realen Anlage nicht gerade schön, da es schwer nachzuvollziehen ist, wenn von deiner Webvisu direkt Ausgänge geschaltet werden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ich sag mal ganz einfach... will mir viele taster sparen und das eig alles über ein monitor machen... sehe ich das richtig das ich denn das über ein merker machen kann und denn damit den ausgang ansprechen kann?

mit DB habe ich keine erfahrung des wegen trifft das für mich nicht zu...

danke nochmal ;)
 
ich sag mal ganz einfach... will mir viele taster sparen und das eig alles über ein monitor machen... sehe ich das richtig das ich denn das über ein merker machen kann und denn damit den ausgang ansprechen kann?

So würde ich es machen. Dann gibst du den Merkern entsprechende Namen, z.B. "Web_Schalter_x", "Web_Zustand_y" usw. Dann weiß man wenigstens woher die Bits gesetzt werden.
Im Programm schreibst du dann:
U "Web_Schalter_x"
= "Ausgang_y"

mit DB habe ich keine erfahrung des wegen trifft das für mich nicht zu...

Dann ist doch jetzt ein guter Zeitpunkt das zu lernen. Das macht vor allem wenns mal mehr Variablen werden vieles übersichtlicher.
 
ich habe es jetzt mal rauf gespielt habe meine daten eingegeben habe passiert nix in der online anschicht in step 7 ich musste bei <!-- AWP_In_Variable Name='MeineBoolVar' --> jetzt <!-- AWP_In_Variable Name='W1' --> doch das W1 musste ich in "" setzten weil web2plc rumgemeckt hat
hier noch mal der code

Code:
<!DOCTYPE html>
<html>
<head> 
<title>Testseite zum Schreiben von bool-Variablen</title> 
</head>    
<body>

<!-- AWP_In_Variable Name='"W1"' -->
 
<h1>Testseite zum Schreiben von bool-Variablen</h1> 
 
<h2>Wertanzeige</h2>
<p>Wert von MeineBoolVar: :="W1":</p>

<h2>Ein- und Ausschalten über separate Buttons</h2>

<form method="post">
<input type="submit" value='Einschalten' style="height: 30px; width: 200px">
<input type="hidden" name='W1' value="1">
</form>

<form method="post">
<input type="submit" value='Ausschalten' style="height: 30px; width: 200px">
<input type="hidden" name='W1' value="0">
</form>

<h2>Ein- und Ausschalten über Checkbox und absenden</h2>
<p>Bei gesetzter Checkbox wird der Wert auf 1, bei nicht gesetzter auf 0 geschrieben.</p>

<form method="post">
<input type="hidden" name='W1' value="0" />
<input type="checkbox" name='W1' value="1" />
<input type="submit" value="Wert absenden" style="height: 30px; width: 200px" />                  
</form>

<h2>Über ein Eingabefeld mit den Werten 0 und 1</h2>

<form method="post">
<p>Zu sendender Wert für MeineBoolVar: <input name='MeineBoolVar' type="text" />
</p>
</form>

</body>
</html>


hab jetzt nur den schalter und die checkbox gemacht...
 
Zuletzt bearbeitet:
soooooo habe den fehler gefunden... endlich:) :!:
bei: <form method="post">
<input type="submit" value='Einschalten' style="height: 30px; width: 200px">
<input type="hidden" name='W1' value="1">
</form>

musste das W1 auch in "";)

so viiiiieeelen dank nochmal ;):D
 
hätte da noch eine sache... wie heißt denn der code für <p>Wert von MeineBoolVar: :="W1":</p> wenn da ne 0 kommt das denn Aus steht und wenn 1 denn Ein?
;):p
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Da gibt es mehrere Möglichkeiten. Um bei den AWP-Befehlen dafür zu bleiben, kann man eine Aufzählung AWP_Enum_Def verwenden.

Variante 1:
<!-- AWP_In_Variable Name='MeineBoolVar' -->
<!-- AWP_Enum_Def Name='eEinAusText' Values='0:"Aus",1:"Ein"' -->
<!-- AWP_Enum_Ref Name='MeineBoolVar' Enum='eEinAusText' -->

Dann werden an allen Stellen an denen MeineBoolVar vorkommt, für die Werte 0 -> Aus und für 1 -> Ein eingesetzt. Dann musst du zum Schreiben der Variable aber ebenfalls anstelle von 0 und 1 die Texte Aus und Ein schicken (in den Formularen value="Ein" und value="Aus).
Wenn man das nicht will kann man die nächste Variante nehmen.

Variante 2:
<!-- AWP_In_Variable Name='MeineBoolVar' -->

<!-- AWP_In_Variable Name='MeineBoolVar_Use' Use='MeineBoolVar'-->
<!-- AWP_Enum_Def Name='eEinAusText' Values='0:"Aus",1:"Ein"' -->
<!-- AWP_Enum_Ref Name='MeineBoolVar_Use' Enum='eEinAusText' -->

An der Stelle wo der Wert ausgeben wird, kann man sich damit beides anzeigen lassen:

<p>Wert von MeineBoolVar: :=MeineBoolVar:</p>
<p>Wert von MeineBoolVar_Use: :=MeineBoolVar_Use:</p>

Die erste Zeile zeigt wie gehabt 0 und 1 an, die zweite die Definitionen aus der Enumeration, also Aus und Ein.
Gleiches beim Schreiben: schreibst du auf MeineBoolVar musst du 0 oder 1 schreiben, schreibst du auf MeineBoolVar_Use musst du die Aufzählungswerte verwenden. In der SPS landen beide Versionen letztendlich auf der gleichen Variable.

Mit Javascript gibt es dann weitere Möglichkeiten.
 
Variante 1:
<!-- AWP_In_Variable Name='MeineBoolVar' -->
<!-- AWP_Enum_Def Name='eEinAusText' Values='0:"Aus",1:"Ein"' -->
<!-- AWP_Enum_Ref Name='MeineBoolVar' Enum='eEinAusText' -->

Dann werden an allen Stellen an denen MeineBoolVar vorkommt, für die Werte 0 -> Aus und für 1 -> Ein eingesetzt. Dann musst du zum Schreiben der Variable aber ebenfalls anstelle von 0 und 1 die Texte Aus und Ein schicken (in den Formularen value="Ein" und value="Aus).
Wenn man das nicht will kann man die nächste Variante nehmen.

ich habe mich jetzt für checkbox entschieden würde das trotzdem gehen?
 
ich habe mich jetzt für checkbox entschieden würde das trotzdem gehen?

Ja, bei Variante 1 musst du wie schon erläutert die Werte für value ebenfalls anpassen.

<form method="post">
<input type="hidden" name='MeineBoolVar' value="Aus" />
<input type="checkbox" name='MeineBoolVar' value="Ein" />
<input type="submit" value="Wert absenden" style="height: 30px; width: 200px" />
</form>
 
was trage ich hier rein?
Wo eintragen?

Eine Enum-Definition sagt aus, dass Werte durch etwas anderes ersetzt werden sollen. Den Namen dafür kannst du dir aussuchen.

<!-- AWP_Enum_Def Name='eEinAusText' Values='0:"Aus",1:"Ein"' -->

Sagt das dieses eine Liste ist, bei der 0 durch "Aus" und 1 durch "Ein" ersetzt werden soll.

Möchtest du z.B. mit einer bool-Variable irgendwas an- oder abwählen, kannst du eine weitere Liste anlegen:
<!-- AWP_Enum_Def Name='eNeinJaText' Values='0:"Nein",1:"Ja"' -->

Referenzierst du dann diese Liste mit:
<!-- AWP_Enum_Ref Name='MeineBoolVar' Enum='eNeinJaText' -->

dann wird überall wo du MeineBoolVar ausgibst für 0 "Nein" und für 1 "Ja" eingsetzt. Wenn du Werte schreiben willst dann musst du ebenfalls Nein bzw. Ja schreiben.

Das ist ganz praktisch wenn du Formulare mit Auswahllisten oder Radio-Buttons hast.

Ansonsten steht das weitestgehend auch in den Siemens Handbüchern beschrieben.
 
Zurück
Oben