# S7 1200 Webserver



## magus111 (4 Oktober 2011)

Guten Morgen SPS - Forumgemeinde 

meine Frage bezieht sich auf den Webserver in der S7 1200. 
Ich wollte den nutzen damit der Kunde im bedarfsfall ein paar Werte einstellen kann. Das Problem daran ist das im Handbuch so gut wie nichts drin steht. 
Das einschalten des Servers ist ja nur ein Haken, aber wie muss ich von der Webseite aus die DB´s ansprechen? 
Diese werden zwar auch in der Maske genannt die übergabe DB´s aber wie bekomme ich die Daten da rein ich muss doch eingabefelder machen die sich auf den DB beziehen. 
Wenn mir einer ein Beispiel geben kann wie man das anstellt würde ich mich freuen. 
Sage schonmal danke 
euer 
Magus111


----------



## magus111 (4 Oktober 2011)

Hallo 

man 86 Hits und keiner kan mir helfen oder einen tip geben? 
Kann man die Programmirtechnik von der 300 er nutzen ich meine das ansprechen der bausteine von der HTML Seite aus ? 

Magus111


----------



## magus111 (26 November 2011)

Hallo 

Für mich ist die Sache erledigt habe da was gefunden. 
Mann muss blos immer überlegen das man Werte erst dann eingeben kann wen man als Admin angemeldet ist. 
Ich weiß nicht ob das anders geht, ist aber auch egal.

mfg 
Magus111


----------



## SCM (27 November 2011)

magus111 schrieb:


> Hallo
> 
> Für mich ist die Sache erledigt habe da was gefunden.
> Mann muss blos immer überlegen das man Werte erst dann eingeben kann wen man als Admin angemeldet ist.
> ...



Wäre doch schön wenn du uns deine Lösung weitergeben würdest!

Mfg


----------



## magus111 (27 November 2011)

Guten Abend 

da scheinbar noch einer reinschaut werde ich mal meinen Ansatz beschreiben und die Probleme die ich bekommen habe.
Als erstes habe ich eine Test HTML Seite geschrieben. Da war nicht viel drinn ich wollte erstmal schauen ob da was kommt 
An dieser stelle muss man den HTML Baustein in S7 einfügen über den WWW Baustein. Hir das erste Problem ich wusste nicht was ich da ranschreiben sollte (Deswegen auch der Beitrag) da muss aber nur der Anfangsbaustein der HTML Seite drangeschrieben werden dieses aber nur mit der Nummer: währe es der DB 333 darf da nur 333 vorgeschrieben werden. Das war schlecht beschrieben.
Danach lief der ersmal. Das zweite Problem war das ich bei einen Eingang der eingeschaltet ist auch ein grünes Kästchen angezeit haben wollte. In der S7 hilfe war nur On und Off drin. Das habe ich so gelößt:

```
im Meta <script language="JavaScript">
var off =  "<td class=\"daten2\">  <img src=\"OFF.PNG\" width=\"30\" height=\"30\"style=\"vertical-align:middle\"  alt=\"on\"></td>"
var on  =  "<td class=\"daten2\">  <img src=\"ON.PNG\" width=\"30\" height=\"30\" style=\"vertical-align:middle\"  alt=\"on\"></td>"
var platz = "    "
</script>
</head>

<body>  </Body>

Text und Tabellen ....
       <script language="JavaScript">
         var x =   :="HTTP".bolzen2:
         if (x == 0)
         document.write("<td class=\"daten1\">xxxx </td>" + off );
         else document.write("<td class=\"daten1\">xxxx</td>"  + on);
         </script>
```

Wichtig noch zu erwähnen das ich die Seite mit CSS und Tabellen umgesetzt habe, bei den Tests sah das immer etwas anders aus als hinterher auf der SPS.
Die Werte Selber die später auf die SPS geschrieben werden wurden HTML technisch so eingebungen:

```
wieder im Header 
<!-- AWP_In_Variable Name='"HTTP"' -->  // ist laut Anleitung norwendig damit die SPS damit was anfangen kann...
Header ende 
<Body>
<form method="POST" >   <input name='"HTTP".off'size="8" value=:="HTTP".off: type="text"> sec.</form>

</Body>
```

HTTP ist hir mein DB und Off die Vareabele die in DB geschrieben werden soll.

Das wars auch schon . 

wen noch Fragen sein sollten stehe ich gerne zur Verfügung.
Magus111


----------



## SCM (27 November 2011)

magus111 schrieb:


> Guten Abend
> 
> da scheinbar noch einer reinschaut werde ich mal meinen Ansatz beschreiben und die Probleme die ich bekommen habe.
> Als erstes habe ich eine Test HTML Seite geschrieben. Da war nicht viel drinn ich wollte erstmal schauen ob da was kommt
> ...



Kann man sich mit diesen HTML Code jede Beliebige Variable ansehen oder greift er nur rein auf einen DB zu?Das hab ich noch nicht ganz verstanden!

Mfg


----------



## magus111 (27 November 2011)

Hallo 


das habe ich noch nicht getestet. 
Aber da in der S7 1200 die Datenbausteinmenge nur vom Speicher abhängt sollte das kein Thema sein.
Wie gesagt ich brauchte das nur so. 
Das was man immer bedenken muss an so einer HTML Seite ist zum einen die Aktualesierung und zum anderen möchte man den Anwender das Admin pass wirklich geben...
Für meinen fall ist das egal, und ich werde auch noch ein Schaltplan in PDF Format auf die SPS Packen so hat man immer eine kleine DOKU da. 
Die Speicherkarte die ich eingesetzt habe die wollte nicht deshalb habe ich das abgehakt komme mit den platz auch so aus . 
Ach eine sehr wichtige Sache hatte ich noch mit dem IE9 hatte ich so meine Probleme mit der Eingabe der Werte. Habe dann Mozilla genommen und das lief woran das liegt k.a. bei IE 8 war alles noch ok ...

mfg 
magus111


----------



## settelma (30 Januar 2012)

Hallo,

ich hätte hierzu mal Fragen.
1. Hattest du auch Probleme mit dem Sicherheitszertifikat. Ich hab immer Probleme auf den Webserver drauf zu kommen. Geht dann auf einmal wieder und dann wieder nicht.
2. Ich hab das erste mal eine Testseite auf die Steuerung geschoben. Hat funktioniert. Hab dann ne Änderung im Editor gemacht. Dann bei Anwenderdifinierten Webseiten im TIA Portal
nochmal auf " Bausteine erzeugen" gedrückt. Dann hats so ausgeschaut das TIA die Bausteine ( 333,334) gelöscht und dann wieder neu erzeugt hat.
Soweit so gut.
Wenn ich jetzt aber auf den Webserver gehe, sieht die Seite noch genauso aus wie ich sie beim ersten mal aufgespielt habe.

Hast du vielleicht schon etwas Erfahrung mit dem Webserver?

Danke

Gruß Markus


----------



## magus111 (30 Januar 2012)

Hallo Markus 

Ich habe 2 kleine Anlagen mit den Webserver ausgerüstet, die brauchten nicht viel schaffen blos 2-3 Analoge Werte ändern und ein Paar Zustände anzeigen.
Habe das auch wie in der Beschreibung gemacht, ich glaube auch das du die Bausteine alle übertragen hat.
Den Fehler den du mir beschrieben hast hatte ich nicht, Ok ich habe immer wieder die HTML Seite neu angewählt bevor ich die Bausteine neu erzeugt habe, aber daran kann das nicht liegen.Hast du den in den HTML Quode nachgeschaut ob die Änderungen wirklich nicht da sind?
Hatte die Erfahrung bei den Analogwerten gehabt das diese sich etwas anderes darstellen wenn man diese in die SPS läd. Warscheinlich liegt es daran das noch Zeichten hinzukamen.

Ich hoffe ich konnte dir helfen. Wenn nicht poste doch bitte einfach die Änderungen (Oder sende mir diese per P/N zu wen da was zu heikel ist ....)

mfg 
Magus111


----------



## netcp (30 Januar 2012)

settelma schrieb:


> 2. Ich hab das erste mal eine Testseite auf die Steuerung geschoben. Hat funktioniert. Hab dann ne Änderung im Editor gemacht. Dann bei Anwenderdifinierten Webseiten im TIA Portal
> nochmal auf " Bausteine erzeugen" gedrückt. Dann hats so ausgeschaut das TIA die Bausteine ( 333,334) gelöscht und dann wieder neu erzeugt hat.
> Soweit so gut.
> Wenn ich jetzt aber auf den Webserver gehe, sieht die Seite noch genauso aus wie ich sie beim ersten mal aufgespielt habe.



Vielleicht liegt die alte Seite noch im Browser Cache. Einfach mal löschen oder explizit neuladen mit dem aktualisieren Button.

Gruss,
Michael


----------



## settelma (31 Januar 2012)

Ich brauche eignetlich auch nicht viel Werte. Ich habe den Browser schon geschlossen und mich neu angemeldet, die "alte" Seite ist immernoch drin.
Ich hab bisher nur mal ne Überschrift in die Seite geschrieben. Nur um die Sache mal auszuprobieren. Ich hab noch nie ne HTML Seite geschrieben.
Hast du vielleicht ein Beispiel, von Anfang bis Ende, das ich mal testen könnte. Brauch nicht viel drin stehen.

Danke

Gruß Markus


----------



## magus111 (31 Januar 2012)

Hallo Markus  

ein beispiel kann ich dir morgen geben sitze am falschen Rechner.
Ich habe das Layout über Tabellen gemacht ist etwas umständlich aber so konnte ich sicherstellen das die Seite überall
gleich ausschaut.
Als hilfe für HTML kann ich http://de.selfhtml.org/ empfelen und das freie Tool phase 5.
Zudem habe ich immer die Seite lokal gestestet ob alles so ist wie ich das haben wollte.
Im Siemens s7 1200 er handbuch ist eine kurze beschribung drin was man zusätzlich mit reinnehmen muss damit die s7 damit was anfangen kann.
Wenn du dann irgentwann komplexere Webseiten machen möchtest würde ich css mit reinnehmen.

sage mal bis dann 
magus


----------



## settelma (1 Februar 2012)

Hallo Magus,

phase 5 hab ich schon runtergeladen und mal ausprobiert.

Danke für die Hilfe.

Gruß Markus


----------



## fk- princess (2 November 2012)

ich hole das thema mal wieder hoch...

möchte ebenfalls für den nutzer ein paar daten auf dem webserver zur verfügung stellen. auch kleinere funktionen sollen hier ausführbar sein...

wollte mal fragen ob im main OB der funktionsaufruf so richtig ist, denn die Variablen werdn in meiner webpage nicht angegeben.

vll ist aber auch der HTML-code nicht richtig.

bei den anzeigen handelt es sich um boolsche variablen. als ausgebe soll erstmal eine 1 oder eine 0 kommen. die verknüpfung mit bilder kommt dann erst später

hier der SFC99 aufruf. is der so richtig??? der web-DB ist der DB333

```
#WEB_STAT := WWW( 333 );
```

und hier mein HTML-code zur darstellung der variablen:

```
<!-- AWP Kommandows fuer die Realisierung von Schreibbaren Variablen -->
<!-- AWP_In_Variable Name='"signale".Pruef_Start' -->
<!-- AWP_In_Variable Name='"signale".Pruef_Stop' -->

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01Transitional//EN">

<html>

    <head>
        <title>Inflation_Test Startseite</title>
        <meta http-equiv="content-language" content="de">
        <meta http-equiv="content-type" content="text/html; charset=utf8">
        <meta http-equiv="content-script-type" content="text/javascript">
        <meta http-equiv="refresh" content="1; URL=Inflation_Start.html">
        <link rel="stylesheet" type="text/css" href="Stylesheet/SeitenFormat.css">
        
        
        <!--
        <style type="text/css"> @import "SeitenFormat.css"; </style>
        -->
        <!-- später noch verwendet, für Anzeige nicht relevant-->
        <script>
            function mousedown(){
                document.getElementById('"Signale".Pruef_Stop').value = "1";
                document.forms["f"].submit();
            }
            
            function mouseup(){
                document.getElementById('"Signale".Pruef_Stop').value = "0";
                document.forms["f"].submit();
            }
        </script>
    </head>


    <body>

        <!-- Formatierung der Seite in Bereiche -->
        <!-- Header Line -->
        <div id="header">
        <!-- Ueberschrift fuer alle Seiten ( Hauptueberschrift ) -->
            <table border ="0">
                <tr>
                    <td width="900px"><h2><big>Inflation Test<br>S7 1200 / IFM O2V104</big></h2></td>
                    <td width="300px"><img src="Images/SIEMENS_Logo.PNG"/></td>
                </tr>
            </table>
        </div>

        <!-- Navigation -->
        <div id="navi">
        </div>

        <!-- Data Area -->
        <div id="page">

            <!-- Ueberschrift der "page" -->
            <h2 align = "left"> <font color="#0000FF"> Startseite / Gerätestatus </font> </h2>

            <table border="0" width="600px">
                <tr>
                    <td class="static_field_headline">Status</td>
                    <td class="static_field_headline">Zustand</td>
                </tr>
                <tr>
                    <td class="static_field">Kalibierung OK</td>
                    <td class="static_field">:="Signale".KAL_OK:</td>
                </tr>
                <tr>
                    <td class="static_field">Vor-Test OK</td>
                    <td class="static_field">:="Signale".PreTest_OK:</td>
                </tr>
                <tr>
                    <td class="static_field">Parametrierung OK</td>
                    <td class="static_field">:="Signale".Param_OK:</td>
                </tr>
                <tr>
                    <td class="static_field"></td>
                    <td class="static_field"></td>
                </tr>
                <tr>
                </tr>
                <tr>
                </tr>
                <tr>
                    <td class="static_field">Pruefung laeuft</td>
                    <td class="static_field">:="Pruef_Ein:</td>
                </tr>
                <tr>
                    <td class="static_field">Pruefung abgebrochen</td>
                    <td class="static_field">:="Signale".Pruef_Check.Pruef_Abgebr:</td>
                </tr>
                <tr>
                    <td class="static_field">Pruefung abgeschlossen</td>
                    <td class="static_field">:="Signale".Pruef_Check.Pruef_OK:</td>
                </tr>
                <tr>
                    <td class="static_field">Objekt OK</td>
                    <td class="static_field">:="Signale".Pruef_Check.Objekt_OK:</td>
                </tr>

            <!-- Anweisung zur Erstellung der Buttons 
            <form name="f" method="post" action="">
                <input name='"signale".Pruef_Stop'  id='"signale".Pruef_Stop' type="text" value="1" >
            </form> -->
            

            <!--<form method="post" action="">
                <input type="submit" value="STOP" style="height: 30px; width: 100px">
                <input type="hidden" name='"signale".Pruef_Stop' value="1">
                <input type="..." name='"signale".Pruef_Stop' value="0">
            </form> -->

            <!-- Buttons -->
            <!--<BUTTON onmousedown="mousedown()" onmouseup="mouseup()">STOP</BUTTON>
            -->


        </div>




    </body>
</html>
```

der code beinhaltet noch n bissel mehr, wollte ihn aber vollständig posten. vll habe ich auch nur im head etwas vergessen, bin nicht so gut uin html. selfhtml.org hilft schon ungemein, aber ich ecke immer wieder an

edit: oder is der db aufruf falsch??? meine signale sind im Datenbaustein Signale DB10 untergebracht. mein webDB soll der 333 sein. müssen die beim SFC99 aufruf verbunden werden oder läuft das in der steuerung automatisch?


----------



## fk- princess (2 November 2012)

magus111 schrieb:


> Guten Abend
> 
> da scheinbar noch einer reinschaut werde ich mal meinen Ansatz beschreiben und die Probleme die ich bekommen habe.
> Als erstes habe ich eine Test HTML Seite geschrieben. Da war nicht viel drinn ich wollte erstmal schauen ob da was kommt
> ...



hast du evtl noch die ID der onlinehilfe? habe nur das eine beispiel mit dem tanklager, was mir aber nich so recht hilft, zumindest nicht in allen punkten wie zB die anzeige binärer variablen


----------



## Thomas_v2.1 (2 November 2012)

Bekommst du denn irgendwelche Werte angezeigt?
So wie du das programmiert hast, bekommst du auf der Webseite 0/1 bei false/true angezeigt.


----------



## fk- princess (2 November 2012)

habe einen möglichen fehler gefunden.
beim programmieren statt output_field habe ich static_field geschrieben... änder das gerade und probier es dann aus

edit: habs ausprobiert... kein erfolg. habe hinter den Texten hellgraue kästen, die wohl das tabellenfeld beschreiben sollen, aber es steht nichts drin


----------



## Thomas_v2.1 (2 November 2012)

fk- princess schrieb:


> habe hinter den Texten hellgraue kästen, die wohl das tabellenfeld beschreiben sollen, aber es steht nichts drin



Wie, was Kästen?
Am besten guckst du dir den ausgelieferten HTML Quelltext im Webbrowser an.
Die SPS macht nur eine Textersetzung. 

Aus folgendem Quelltext in der SPS

```
<tr>
<td class="static_field">Kalibierung OK</td>
<td class="static_field">:="Signale".KAL_OK:</td>
</tr>
```
wird dann 

```
<tr>
<td class="static_field">Kalibierung OK</td>
<td class="static_field">1/td>
</tr>
```

ausgeliefert, wenn die Variable "Signale".KAL_OK auf true steht.

Über AWP_enum kann ließe sich der eingesetzte Wert anpassen, aber das hast du bei dir so wie es aussieht nicht drin.


----------



## fk- princess (2 November 2012)

AWP_enum kommt noch. entweder mach ich n Text der dem boolschen wert entspricht, oder ich lasse ein bild (LED oder ähnliches) anzeigen.


----------



## Thomas_v2.1 (2 November 2012)

Hast du denn jetzt eine Wertanzeige oder nicht?


----------



## fk- princess (2 November 2012)

eine wertanzeige habe ich leider immer noch nicht...

habe mal auch noch ein paar ganz einfach buttons eingefügt, auf grundlage des siemens beispiels (tanküberwachung)
aber auch hier ändern sich keine variablen in der steuerung. wie bei der anzeige regt sich da nix 

mein sfc99 baustein steht im main OB ganz oben als erstes... 


```
<!-- Button-Erzeugung Start und Stop -->                
                <table width="200px" height="150px" border="0">
                    <td align="left">
                        <form method="post" action="">
                            <input type="submit" value="Start_EIN" style="height: 40px; width: 100px">
                            <input type="hidden" name='"Signale".Pruef_Start' value="1">
                        </form>
                    </td>
                    
                    <td align="center">
                        <form method="post" action="">
                            <input type="submit" value="Start_AUS" style="height: 40px; width: 100px">
                            <input type="hidden" name='"Signale".Pruef_Start' value="0">
                        </form>
                    </td>
                </table>
                
                <table width="200px" height="50px" border="0">
                    <td align="left">
                        <form method="post" action="">
                            <input type="submit" value="Stop_EIN" style="height: 40px; width: 100px">
                            <input type="hidden" name='"Signale".Pruef_Stop' value="1">
                        </form>
                    </td>
                    
                    <td align="center">
                        <form method="post" action="">
                            <input type="submit" value="Stop_AUS" style="height: 40px; width: 100px">
                            <input type="hidden" name='"Signale".Pruef_Stop' value="0">
                        </form>
                    </td>
                </table>
```


----------



## Thomas_v2.1 (2 November 2012)

Du kannst nicht einfach aus irgendwelchen Beispielen wild Dinge zusammenkopieren, das muss auch zusammenpassen.

Probier doch als erstes nur eine Wertanzeige umzusetzen, das ist nämlich das einfachste was man machen kann.
Wenn das funktioniert machst du dich daran Werte von der Webseite aus in die SPS zu schreiben.


----------



## fk- princess (2 November 2012)

ich habe das nicht einfach rauskopiert. mit den hilfen in der pdf-Dokumentation habe ich die anzeigen und die buttons erstellt. ich kann das auch nicht kopieren, da es garnicht auf meine datanbausteine passt.

im beispiel werten globale variablen genutzt. zB: "tankanzeige" oder dergleichen.
bei mir sind alle variablen in DB´s hinterlegt; werte wie signale.

beispiel: "signale".Pruef_Check.Objekt_OK

dieses signal möchte ich auf der page anzeigen, unteranderem. vll programmiere ich den aufruf der variablen auch falsch. in der hilfe ist es nur eine globale variable in "" ...

auf den pages sind die texte und platzhalter alle da, auch die buttons. nur sie füllen sich nicht mit den werten aus der steuerung.


----------



## Thomas_v2.1 (2 November 2012)

Was willst du denn immer mit deinen Buttons? Lass dir doch einfach mal den Wert der Variablen anzeigen, in deiner Tabelle. Was wird denn dort für ein Wert ausgegeben, wenn du schreibst "habe keine Wertanzeige"? Garnichts?

Um Werte in die Steuerung schreiben zu können musst du außerdem angenmeldet sein. Das musst du über die Startseite machen.


----------



## fk- princess (2 November 2012)

es geht in erster linie auch erstmal nur um die anzeigen. 

is der aufruf: output_field:="DB".Strukt.Variable: richtig??? oder output_field:="DB".Variable: ???


----------



## Thomas_v2.1 (2 November 2012)

Wenn Variable "Variable1" aus dem DB "DB1" angezeigt werden soll, ginge das mit:

```
<p>Der Wert der Variable ist: :="DB1".Variable1:</p>
```
Und sowas würde ich am Anfang testen ob das funktioniert.

Ich weiß nicht was dein output_field da machen soll.


----------



## fk- princess (2 November 2012)

habe ich versucht. auch hier bekomme ich keinen wert angezeigt


----------



## Thomas_v2.1 (2 November 2012)

Lass dir im Firefox mal den Seitenquelltext anzeigen, rechte Maustaste->Seitenquelltext anzeigen.


----------



## fk- princess (2 November 2012)

jetzt hat es geklappt. ich lag wohl nur en einem faschen buchstaben. die variable heisst "Signale".KAL_Ok und ich habe in der .HTML "signale".KAL_OK geschrieben... so ein minifehler der mich hier aufgehalten hat


----------



## Thomas_v2.1 (2 November 2012)

Du schaust dir aber schon ab und zu mal die Warnungen an die das TIA generiert? Solche Fehler stehen da nämlich drin.

Edit:
Bug im TIA: Der TIA Generator überprüft nicht die Groß- und Kleinschreibung. Später ist diese aber relevant, darum gibt es dann keine Warnung.
Ist eine Variable aber garnicht im Programm vorhanden, gibt es eine Warnung.


----------



## fk- princess (2 November 2012)

tia hat keine warnungen ausgespuckt. ich habe die die schreibfehler in der .html gehabt. das diagnosefeld der steuerung ist leer


----------



## Thomas_v2.1 (2 November 2012)

fk- princess schrieb:


> tia hat keine warnungen ausgespuckt. ich habe die die schreibfehler in der .html gehabt. das diagnosefeld der steuerung ist leer



Ja, hab ich auch grad gemerkt. Bei Groß- und Kleinschreibung schnallt TIA das nicht, ansonsten gibt es aber eine Warnung.


----------



## fk- princess (2 November 2012)

ich dank dir auf jeden fall für deine hilfe... dieser kleine fehler hat mich zwar einiges an zeit gekostet, aber man kann daraus nur lernen...


----------



## fk- princess (7 November 2012)

ich versuche gerade im webserver ein array of byte anzeigen zu lassen.

das array of byte ist 10 byte lang und beinhaltet das datum, das über die visu in datenbereich der steuerung eingetragen wird.

wie ich den html-code zu schreiben habe weiss ich jedoch nicht.

für eine einfache variable ist das klar: zB <p>:="DB".variable:</p>

aber beim array funktioniert das nicht. auch der versuch das erste element anzeigen zu lassen schlug fehl: <p>:="DB".array[1]:</p>

hat da wer vll einen tip?


----------



## Thomas_v2.1 (7 November 2012)

fk- princess schrieb:


> aber beim array funktioniert das nicht. auch der versuch das erste element anzeigen zu lassen schlug fehl: <p>:="DB".array[1]:</p>
> 
> hat da wer vll einen tip?


Eigentlich sollte das so funktionieren. Vlt. wieder ein Tippfehler?


----------

