Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 26

Thema: Wohnungs-/Hausautomatisierung mit Hilfe des Webservers der S7-1200

  1. #1
    Registriert seit
    19.04.2013
    Beiträge
    17
    Danke
    0
    Erhielt 14 Danke für 3 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    ich bin neu hier im Forum und möchte meine Erfahrungen und Lösungen mit euch teilen. Ich habe dieses Beispielprojekt auch schon im Siemensforum gepostet, möchte es euch aber nicht vorenthalten.

    Ich habe mir eine Wohnung gekauft. Im Zeitalter der Smartphones und Tablets möchte ich natürlich mein Licht, bzw meine Heizung über solche Geräte steuern. Da es sich bei der Wohnung um ein Neubau handelt, hatte ich die Möglichkeit an der Elektroinstallation noch Veränderungen vorzunehmen.
    Ich komme aus der S7-Welt und habe mich entschlossen eine S7-1200 für die Automatisierung zu benutzen. Diese hat einen Webserver integriert, auf dem man "anwenderdefinierte Webseiten" ablegen kann. Über diese Webseite lassen sich dann z.B. über das Smartphone Variablen in der S7 steuern und beobachten.

    Die Aufgabe: Ich möchte Sowohl über die Taster in der Wand, als auch über mein IPhone und IPad das Licht, die Steckdosen und die Heizung in meiner Wohnung steuern können.

    Die Hardware: Eingesetzt wird eine S71214C (DC/DC/DC); 1x16DI; 2x8DO; 1x4AI (RTD).
    Die Analogkarten und die PT100 habe ich noch nicht, deswegen konnte ich den Teil mit der Heizungssteuerung noch nicht testen.

    Die Programmierung der S7: Die gesamte Programmierung habe ich hier nicht hochgeladen. Ich habe beispielweise den Code für die Ansteuerung von einer Licht-Stelle und die Ansteuerung von der Heizung in einem Raum hochgeladen. Der Rest ist ja nur Strg+C --> Strg+V und die Variablennamen abändern.

    Der Webserver: Der Webserver wird in HTML geschrieben. hier habe ich mir Hilfe geholt, da ich mich nicht so gut mit HTML auskenne. Der gesamte Code liegt im Anhang.

    Admin: Der Webserver meldet sich automatisch als "admin" mit dem Kennwort "" an. Dafür muss in der CPU "kein Schutz" eingestellt werden. Somit umgehe ich dass man bei jedem Aufruf des Webservers erst durch das Siemens Menü zu den anwenderdefinierten Webseiten navigieren muss. Als "admin" muss man aber angemeldet sein, damit man auch Variablen steuern kann.

    Slider: Ich habe die Webseite nach den verschiedenen Räumen meiner Wohnung aufgeteilt. Damit ich nicht einen Button für "Licht an" und einen für "Licht aus" einbinden muss, habe die ich IPhone typischen "Slider" verwendet. diese zeigen mir auch gleich welche Licht / welche Steckdose eingeschaltet ist. Um die Sleider verwenden zu können musste eine JQuery Quelle eingebunden werden. Außerdem musste noch ein kleines Java Script geschrieben werden um bei einer Veränderung eines Sliders den Wert an die Steuerung zu senden.

    "App like": Wenn man sich die Webseite auf den Homebildschirm eines IOS Gerätes legt, wird beim öffnen der Webseite die obere und untere Zeile von Safari ausgeblendet, so sieht das Ganze aus als wenn es eine App wäre. Um dies noch zu verschönern wurde der Webseite noch ein Icon hinzugefügt, welches dann auf dem Homebildschirm liegt.

    Heizung: An der Heizungsregelung konnte ich im Vorwege nichts verändern. Die Heitzung ist eine Fußbodenheizung die über ein Wandthermostat geregelt wird. Die Technik dahinter ist sehr simpel. Man kann an dem "Rädchen" drehen, damit wird die länge eines Bimetalls verändert. Wenn das Bimetall eine bestimmte Temeratur erreicht wird ein Signal an eine seperate Steuerung gegeben. diese weiß nun, dass die gewünschte Temeratur erreicht wurde. Nach dem Einzug werden ich das Thermostat ausbauen, dafür einen PT100 einsetzten, diesen auf die S7 führen und in der Steuerung die eingestellte Temeratur am Webserver mit der Ist-Temperatur vergleichen. Ist die Temeratur erreicht, steuer ich einen digitalen Ausgang an, der auf die seperate Steuerung der Heizung verdrahtet wird.
    Im Webserver wurde für jeden Raum ein Schieberegler (einstellbar zwischen 15 und 30 Grad) eingebunden. Beim Verändern des Schiebereglers wird die gewünschte Temperatur an die Steuerung gesendet.
    Den Code für die Heizungssteuerung konnte ich leider noch nicht testen, da ich weder den PT100 noch die AI habe.


    Die Mehrkosten lagen ca. bei 1500-2000 Euro für den mehraufwand für den Elektriker, der die Leitungen alle an einen zentralen Punkt legen musste, sowie die Steuerung mit IOs.

    Wenn ich das ganze in meine Wohnung eingebaut habe, berichte ich gerne wieder. Ich denke aber das ganze sollte im Großen und Ganzen funtionieren.

    Im Anhang habe ich das TIA V11 Projekt, den Webserver und ein Paar Screenshots des Webservers angehängt.

    Anregungen und Verbesserungsvorschläge nehme ich gerne entgegen.

    Gruß Jannes
    Angehängte Grafiken Angehängte Grafiken
    Angehängte Dateien Angehängte Dateien
    Zitieren Zitieren Wohnungs-/Hausautomatisierung mit Hilfe des Webservers der S7-1200  

  2. Folgende 12 Benutzer sagen Danke zu Jannes1987 für den nützlichen Beitrag:

    artofautomation (07.11.2015),Blacky70 (23.04.2013),horkatz (29.12.2015),keyna (10.03.2016),klamotte (04.09.2013),Larzerus (20.06.2013),Mobi (26.04.2013),opec (27.06.2013),peet88 (18.11.2013),Technikfreak (19.04.2013),UniMog (29.04.2013),wolder (29.04.2013)

  3. #2
    Registriert seit
    25.06.2008
    Ort
    Blomberg/Lippe
    Beiträge
    1.293
    Danke
    51
    Erhielt 130 Danke für 124 Beiträge

    Standard

    Hattest du es schonmal probiert anstatt es über Ajax zumachen, es mit XMLHttpRequest zusenden? Wenn ja ist Ajax besser?
    Weil ich mach das über XMLHttpRequest. Dort geht das dann auch über POST- und GET-Anfragen.
    Läuft das ganze auch wenn du die Seite auf die S7 packst und die JQuery-Scripte? Weil sonst muss du ja immer eine Verbindung haben zum Internet.
    Also bei mir läuft es moment so, dass die JGquery-Scripte auch lokal auf dem Rechner sind, somit brauche ich keine Verbindung zum Netz. Aber ich nutze keine S7, aber das ist ja egal.
    Gruß
    Mobi


    „Das Einfache kompliziert zu machen ist alltäglich. Das Komplizierte einfach zu machen –
    das ist Kreativität“ (Charles Mingus).

  4. #3
    Jannes1987 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    19.04.2013
    Beiträge
    17
    Danke
    0
    Erhielt 14 Danke für 3 Beiträge

    Standard

    Zitat Zitat von Mobi Beitrag anzeigen
    Hattest du es schonmal probiert anstatt es über Ajax zumachen, es mit XMLHttpRequest zusenden? Wenn ja ist Ajax besser?
    Weil ich mach das über XMLHttpRequest. Dort geht das dann auch über POST- und GET-Anfragen.
    Läuft das ganze auch wenn du die Seite auf die S7 packst und die JQuery-Scripte? Weil sonst muss du ja immer eine Verbindung haben zum Internet.
    Also bei mir läuft es moment so, dass die JGquery-Scripte auch lokal auf dem Rechner sind, somit brauche ich keine Verbindung zum Netz. Aber ich nutze keine S7, aber das ist ja egal.

    Also ich habe mir Hilfe bei der Homapage geholt. Wir haben das nur mit Ajax ausprobiert. Ich kann alles auf eine S7 packen (auch die JQuery Quellen). Unter der V11 muss man aber noch die Quellen "stückeln" (da gibt es auf der Siemens Seiten den Befeht dafür) unter der V12 soll es keine Probleme mehr geben, konnte ich aber noch nicht ausprobieren.

  5. #4
    Registriert seit
    26.05.2009
    Beiträge
    541
    Danke
    35
    Erhielt 78 Danke für 69 Beiträge

    Standard

    Der Webserver meldet sich automatisch als "admin" mit dem Kennwort "" an. Dafür muss in der CPU "kein Schutz" eingestellt werden. Somit umgehe ich dass man bei jedem Aufruf des Webservers erst durch das Siemens Menü zu den anwenderdefinierten Webseiten navigieren muss. Als "admin" muss man aber angemeldet sein, damit man auch Variablen steuern kann.
    Das ist bisher immer mein Problem gewesen. Ne Lösung hab ich bisher noch nicht gefunden.
    Ich werde das mal testen.

    Gruß wolder

    P.S.: Sehr schick was ihr da gebastelt habt!
    Wenn du denkst du denkst, dann denkst du nur, dass du denkst, denn beim Denken der Gedanken, kommt dir der Gedanke, dass das Denken der Gedanken ein gedankenloses Denken ist

  6. #5
    Registriert seit
    04.03.2013
    Beiträge
    11
    Danke
    0
    Erhielt 2 Danke für 1 Beitrag

    Standard

    Hoi,

    ich bastle auch gerade an S7-1200 + jQuery.
    Leider bin ich in Javascript nicht so fit.
    Darum meine Frage: Kannst du deine my.js kurz erklären.
    Soweit ich das verstehe und gegoogelt habe fängst du das event von Slider.change ab und "machst dann was" mit der Tempvariable. Aber warum? die Tempvariable (z.B. optWohn_Deckenlicht1On) ist doch in der SPS nirgends deklariert?!

    Code:
    $(document).ready(function(){
                    $(".sliderContainer").change(function(){
                            sentIt(this);
                    });
    
            if(:="M_BOOL1": == 1)
                    $("#optWohn_Deckenlicht1On").attr("selected", "selected");
    Kann man das Javascriptfile auch für andere Steuerelemente erweitern? Hast du evtl. ne Doku für mich, finde leider nichts dazu.

    Danke schon mal!

  7. #6
    Jannes1987 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    19.04.2013
    Beiträge
    17
    Danke
    0
    Erhielt 14 Danke für 3 Beiträge

    Standard

    Hey,
    ne doku habe ich leider nicht...
    mit der Anweisung:

    if(:="M_BOOL1": == 1)
    $("#optWohn_Deckenlicht1On").attr("selected", "selected");


    stelle ich nur sicher, dass die Slider auch auf "selected" also AN gehen wenn jemand das Licht über einen Taster in der Wand einschaltet.

    Gruß Jannes

  8. #7
    Registriert seit
    04.03.2013
    Beiträge
    11
    Danke
    0
    Erhielt 2 Danke für 1 Beitrag

    Standard

    Soweit verstanden

    Aber was bewirken dann die Zeilen
    Code:
    $(document).ready(function(){
                    $(".sliderContainer").change(function(){
                            sentIt(this);
                    });

    bzw.
    Code:
    function sentIt(c){
            $.ajax({
                    type: "POST",
                    url: "",
                    data: $(c).parents("form").serialize(), // serializes the form's elements.
                    success: function(){ console.log("done"); }
            });
    }
    Danke für deine Hilfe

  9. #8
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Zitat Zitat von Jonny Wire Beitrag anzeigen
    Aber was bewirken dann die Zeilen
    Code:
    $(document).ready(function(){
                    $(".sliderContainer").change(function(){
                            sentIt(this);
                    });
    Damit wird bei allen Elementen mit der Klasse sliderContainer bei Änderung des Wertes das Ereignis sendIt() ausgelöst.
    D.h. wenn du den Slider verschiebst wird die Funktion sendIt() aufgerufen, welche dann den Wert mittels POST an die SPS übermittelt.

  10. #9
    Registriert seit
    04.03.2013
    Beiträge
    11
    Danke
    0
    Erhielt 2 Danke für 1 Beitrag

    Standard

    Sorry, dass ich dich so mit Fragen beballere

    Funktionieren bei dir die slider (Real)?
    Hab dein Beispiel gerade nochmal geladen und bin Online drauf gegangen, Werte werden nicht aktualisiert.

  11. #10
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich habe mir das Projekt mal genauer angesehen. Da sind noch einige Dinge mehr die nicht funktionieren.

    Mit dem Slider hast du Recht, der kann nicht funktionieren.
    Du musst in der Wohnung.html dazu bei allen Slidern den Wert für die Eigenschaft Name ändern.

    Code:
    <input type="range" name="slider_wohn" id="slider_wohn"  value=":="W_Temp_Wohn":" min="15" max="30" step="0.5" />
    in
    Code:
    <input type="range" name='"W_Temp_Wohn"' id="slider_wohn"  value=":="W_Temp_Wohn":" min="15" max="30" step="0.5" />
    Bei name= musst du den Variablennamen schreiben auf den später in der SPS geschrieben werden soll.

    Allerdings funktioniert das nicht 100%ig, da bei verschieben des Reglers jede kleine Änderung an die SPS geschrieben wird. Ich habs bei mir zumindest erreicht, dass in der SPS nicht der Wert steht der einem auf der Webseite angezeigt wird.
    Auch werden die Daten nur einmalig beim erstmaligen Laden der Seite aus der SPS aktualisiert, das ist ja auch doof wenn sich dort mal was ändert.

    Vielleicht hat der Jannes ja noch eine funktionierende Version, denn mit der die er hier gepostet hat wirds zu Hause in der Bude wohl kalt bleiben müssen

Ähnliche Themen

  1. Hilfe mit PID Regler s7 1200 Einstellungen
    Von Gonzo3 im Forum Simatic
    Antworten: 20
    Letzter Beitrag: 05.04.2017, 10:01
  2. Hausautomatisierung via S7-1200 für Smartphones
    Von Flipdajunk im Forum Gebäudeautomatisierung
    Antworten: 10
    Letzter Beitrag: 26.04.2013, 12:11
  3. Antworten: 2
    Letzter Beitrag: 11.03.2012, 19:25
  4. Problem mit der Anbinung des Touchpanels
    Von patrick_123 im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 13.12.2010, 18:19
  5. Antworten: 1
    Letzter Beitrag: 23.03.2009, 03:53

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •