DS zu S7-1200

Datenaustausch Digitalstrom zur S7-1200
 

 

Ein Datenaustausch von der Digitalstrom Steuerung zur S7-1200 ist über das Netzwerk relativ einfach möglich. Dazu kann man einen HTTP-Request nutzen. Im DS-System wird über den Scene Responder als Aktivität eine URL aufgerufen, welche die zu steuernden Variablen in der S7-1200 und dessen Steuerwert beinhaltet. In der S7-1200 können diese Variablen zur Ereignissteuerung ausgewertet werden.
Folgende Vorgehensweise soll hier als Beispiel dienen:

DS_S7-1200_01

Alle Beispiel wurden mit TIA V15 erstellt, Abweichungen zu anderen Versionen sind möglich.

Als erstes werden in der Steuerung die benötigten Variablen angelegt. Der Datentyp ist hier Bool, kann aber auch Int oder anderes sein. Zur Übersichtlichkeit habe ich die Variablen in einem Datenbaustein namens DSdata abgelegt. Zusätzlich ist noch eine Error Variable www_Return vom Typ Int angelegt, die wir später benötigen.

Die Liste kann beliebig erweitert werden.

<!-- AWP_In_Variable Name='"DSdata".DS_Fernsehen' -->
<!-- AWP_In_Variable Name='"DSdata".DS_Kino' -->
<!-- AWP_In_Variable Name='"DSdata".DS_WZ_Licht_Aus' -->

Danach schreiben wir eine einfache HTML-Seite für die S7-1200, welche die Variablen beinhaltet. Es genügt schon der reine Header in <!>. Weitere HTML-Tags sind nicht nötig.

Zur Syntax: Die Variablen sind in ‘ eingeschlossen, der Datenbaustein in. Beim Übersetzen erstellt das TIA Portal daraus die nötige Variablenanbindung.
Diese drei Textzeilen z.B: als index.html speichern.

DS_S7-1200_02

Unter Gerätekonfiguration -> Eigenschaften -> Allgemein -> Webserver aufrufen.

  1. Webserver aktivieren
     
  2. Zugriffsrechte für Jeder festlegen (Der Benutzer ist autorisiert, Variablen zu Schreiben).
     
  3. HTML Verzeichnis angeben mit der zuvor erstellten index.html und einen Applikationsnamen angeben.
     
  4. Danach wird über Bausteine erzeugen der HTML Code übersetzt und automatisch in den Datenbausteinen DB333 / DB334 abgelegt.

DS_S7-1200_03

Vor dem Compilieren der CPU benötigen wir zur Anbindung der Steuerung an die HTML-Seite noch den WWW Baustein. Der Anschluss CTRL_DB verweist in der Regel immer auf den DB333, unter RET_VAL geben wir die zuvor erstellte Integer Error-Variable an.

Zum Schluss alles übersetzten und in die S7-1200 laden.

Anmerkung:
Im Netzwerk 2 werden übrigens die gelesenen Variablen bei Wert TRUE nach einem Zyklus auf FALSE zurückgesetzt. Zu Testzwecken sollte man aber jegliche weitere Verarbeitung erst mal unterlassen, damit man einen Signalwechsel auch mitbekommt.

DS_S7-1200_04

Test:

Dazu mit der S7-1200 Online gehen und den Datenbaustein mit den Variablen auf beobachten schalten.

In einem Browser die IP Adresse der S7-1200, gefolgt von /awp/ und dem definierten Applikationsnamen eingeben. Nach dem ? die zu Steuernde Variable angeben und dessen Übergabewert.
Die Syntax entspricht dem Beispiel mit einem Datenbaustein, welcher in “ gesetzt ist und sieht wie folgt aus:

http://192.192.17.192/awp/Startseite/index.html?"DSdata”.DS_Kino=1

Damit wird nun die Variable DS_Kino auf 1 (=true) gesetzt. Bei Int-Variablen sind natürlich auch andere Zahlenwerte möglich.

Sollen Variablen direkt aus der Standard-Variablentabelle genommen werden, dann sind diese in “ anzugeben, also:

http://192.192.17.192/awp/Startseite/index.html?"DS_Bool"=1

Sollte das Beispiel nicht funktionieren, dann die korrekte Schreibweise nochmal prüfen und gegebenenfalls durch Eingabe der IP Adresse direkt die Webside der CPU aufrufen. Dort die Benutzerrechte testen. Ebenfalls kann hierüber auch die Variable getestet werden.

DS_S7-1200_05

Hat der Test geklappt, dann kommen wir zur Programmierung in Digitalstrom.

Mit Hilfe des Scene Responder läßt sich das Eintreten eines Ereignisses überwachen und dadurch als Aktivität eine URL aufrufen. Die URL entspricht dabei unser zuvor getesteten Browser Eingabe.

In diesem Beispiel werden alle drei Variablen mittels definiertem DS Auslöser auf 1 (true) gesetzt. Das Rücksetzen übernimmt bei mir die S7-1200.

Hinweis zur Schreibweise:

Es ist zu beachten, Sonderzeichen nach URL-Encoding (URL-Kodierung, auch Prozentkodierung genannt) zu benennen. Somit wird aus den “ die Kodierung %22.
DS setzt hier automatisch in UTF-8 Kodierung um, was dann der Zeichenfolge &quot; entspricht. Dies versteht aber die S7-1200 nicht und würde dadurch die Variable nicht setzen. Daher bei der Eingabe der URL anstelle der “ direkt die Zeichenfolge %22 angeben.

 

Viel Erfolg beim Testen!