• No results found

S7-1200 PLC-Web applicatie

N/A
N/A
Protected

Academic year: 2021

Share "S7-1200 PLC-Web applicatie"

Copied!
64
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

S7-1200 PLC-Web applicatie: Afstudeerscriptie

Afstudeerperiode februari t/m juni 2012

Afstudeerscriptie

S7-1200 PLC-Web applicatie

(2)

S7-1200 PLC-Web applicatie: Afstudeerscriptie

Inhoudsopgave

1 Voorwoord... 6 2 Samenvatting ... 7 3 Startpositie project ... 8 3.1 PLC programmeer software ... 8 3.2 Webdesign software... 8 3.3 Systeem klant ... 8 3.4 Opdrachtomschrijving ... 8 4 Planning en werkzaamheden ... 9 4.1 Werkzaamheden ... 9 4.2 Planning ... 10 5 Opdrachtomschrijving ... 11 6 Onderzoek ... 12 6.1 PLC ... 12 6.2 HTML ... 12 6.3 IO lezen/schrijven ... 12 6.3.1 Lezen ... 12 6.3.2 Schrijven ... 12 6.4 Javascript ... 13 6.4.1 JQuery ... 13 6.4.2 Realtime ... 14 6.5 Inloggen ... 14 7 Basisopzet website ... 15 7.1 Basisframe ... 15 7.1.1 Energie Systeem ... 16 7.1.2 Setpoints ... 16 7.1.3 Bedrijfsuren ... 16 7.1.4 Zonnepanelen ... 17 7.1.5 Alarmen ... 17 7.2 Ipad ... 17 8 Go/NoGo website ... 18

(3)

S7-1200 PLC-Web applicatie: Afstudeerscriptie

10.1 PLC - WWW ... 20 11 Conclusie ... 21

Bijlagen

A Project Management Document ... A-1 A.1 Uitvoeringsgegevens ... A-1 A.2 Situatiebeschrijving ... A-2 A.2.1 Bedrijfskarakteristiek ... A-2 A.2.2 Product, dienst, assortiment ... A-2 A.2.3 Markt(en) ... A-2 A.2.4 Beleid (huidige beleidsdoelen) ... A-3 A.2.5 Probleemstelling voor het project ... A-3 A.2.6 Afbakening project (systeemgrenzen) ... A-3 A.3 Doelstelling ... A-4 A.4 Relevante documenten ... A-5 A.5 Werkzaamheden ... A-5 A.6 Eisen (randvoorwaarden) ... A-6 A.7 Kwaliteitsbewaking ... A-7 A.8 Tijd (planning) ... A-7 A.9 Kosten ... A-7 A.10 Organisatie ... A-8 A.11 Informatie ... A-8 B Onderzoeksverslag ... B-9 B.1 Communicatie PLC-webpagina ... B-9 B.2 IO Lezen + Schrijven... B-10 B.2.1 IO Lezen ... B-10 B.2.2 IO Schrijven ... B-11 B.3 Visualisatie ... B-12 B.4 Realtime... B-13 B.4.1 Waardes ... B-13 B.4.2 Visualisatie ... B-13 B.5 Login PLC-webpagina ... B-14 B.5.1 Waarvoor? ... B-14 B.5.2 Users ... B-14

(4)

S7-1200 PLC-Web applicatie: Afstudeerscriptie B.5.3 Beveiliging... B-15 B.5.4 Eigen Login-formulier ... B-15 B.5.5 Tegenslagen ... B-16 B.5.6 Gezochte oplossingen ... B-17 B.5.7 Conclusie ... B-17 B.6 Uitbreidingen ... B-17 B.7 Conclusie ... B-17 C PLC website ... C-18 C.1 Presentatie van de webpagina ... C-18 C.2 Code van de webpagina ... C-19 D Plan van aanpak voor inbedrijfstelling ... D-31 D.1 Verschillen in software ... D-31 D.1.1 Gebruikte software ... D-31 D.1.2 Firmware in de PLC ... D-31 D.2 Wijzigingen programma ... D-31 D.3 Werkzaamheden tijdens inbedrijfstelling ... D-32 E Handleiding S7-1200 Web applicatie ... E-33 E.1 Inleiding ... E-33 E.2 Benodigdheden ... E-34 E.2.1 Kennis ... E-34 E.2.2 Siemens Software ... E-34 E.2.3 Webbrowsers ... E-34 E.2.4 Webdesign software ... E-34 E.3 Opzetten PLC-Website ... E-35 E.3.1 PLC configuratie ... E-35 E.3.2 PLC programma ... E-36 E.4 Website ... E-37 E.4.1 AWP commando’s ... E-37 E.4.2 IO Input ... E-37 E.4.3 IO Output ... E-39 E.4.4 Enumerated tags ... E-39

(5)

S7-1200 PLC-Web applicatie: Afstudeerscriptie

E.5.2 Users ... E-42 E.5.3 Externe bron ... E-43

(6)

S7-1200 PLC-Web applicatie: Afstudeerscriptie

1 Voorwoord

Dit verslag heb ik geschreven in het kader van mijn afstudeeropdracht als student van de opleiding Mechatronica aan de Avans Hogeschool te Breda. Deze opdracht heb ik gedaan bij Van Doren Engineers in Boekel. De afstudeeropdracht betreft het onderzoeken van de mogelijkheden en het maken van een website welke is gekoppeld aan een PLC.

Vanuit het bedrijfsleven komt de laatste tijd steeds meer de vraag naar de mogelijkheid voor een website die informatie verschaft over de status van een systeem of zelfs besturen. Omdat er PLC´s bestaan die deze mogelijkheid bieden maar er bij Van Doren Engineers nog geen kennis en ervaring over is, was dit een goede aanleiding om dit te onderzoeken. Dit verslag behandeld de achtergrond van het project, het onderzoek en de uiteindelijk ontworpen website.

Graag wil ik een aantal mensen bedanken die mij hebben geholpen tijdens mijn afstudeer periode. Ten eerste wil ik graag mijn bedrijfsbegeleider André van Drunen bedanken voor zijn tijd, inzet en ondersteuning bij het uitvoeren van deze opdracht. Ook wil ik al mijn collega’s bedanken voor hun tijd op momenten dat ik met vragen zat, hun ondersteuning tijdens mijn werkzaamheden maar ook voor hun gezelligheid op de werkvloer.

Daarnaast wil ik ook mijn docentbegeleider Harry Voermans bedanken voor zijn inzet en begeleiding vanuit de hogeschool.

Verder wil ik nog mijn familie en vrienden bedanken voor het mogelijk maken van het volgen van deze studie en het altijd klaar staan voor mij. En natuurlijk ook mijn klasgenoten voor de leuke tijd die ik heb gehad tijdens de opleiding.

Ivo van den Elsen, Juni 2012

(7)

S7-1200 PLC-Web applicatie: Afstudeerscriptie

2 Samenvatting

Dit verslag gaat over het onderzoeken van de mogelijkheden en het maken van een website die gekoppeld en gehost is op een S7-1200 PLC.

Door, op basis van de aanwezige kennis, de startpositie te bepalen, werd duidelijk wat er te wachten stond. Aan de hand hiervan is er bepaald welke werkzaamheden er naar verwachting gedaan zouden moeten worden. Door alle werkzaamheden goed te doorlopen, kon er ongeveer een tijd voor

ingeschat worden. Vervolgens zijn deze werkzaamheden met geschatte benodigde tijd gecombineerd en leidde dit tot een goede planning.

Om een zo goed mogelijke website te maken zijn de mogelijkheden hiernaar onderzocht. Tijdens dit onderzoek kwam de wereld achter de websites boven tafel. Door gebrek aan kennis op dit nieuwe gebied, moest er eerst geleerd worden hoe een website gemaakt wordt om vervolgens de IO van de PLC te kunnen verwerken in de website.

Nadat de basiskennis voor het maken van een website met IO voldoende was, is er begonnen met een opzet maken van de website voor de klant door het bestaande PLC programma met HMI scherm te splitsen in een aantal schermen welke verschillende informatie over het systeem presenteren. Nadat de opzet klaar was is er een afspraak met de klant gemaakt voor een keuring, of er een “Go” of een “No-Go” gegeven zou worden voor het ontwerp. Hieruit volgde een “Go”, waarna meteen verder is gegaan met het afmaken van de schermen voor de simulatietesten.

Met diverse succesvolle simulatietesten werd het tijd voor de inbedrijfstelling van de website in de PLC bij de klant. Omdat de software versie bij de klant een oude versie was, kon dit voor problemen zorgen. Dus om goed voorbereid bij de klant aan te komen een stappenplan gemaakt zodat er niks vergeten kon worden. Ondanks de goede voorbereiding waren er toch wat problemen in het begin, maar de inbedrijfstelling is uiteindelijk wel goed afgerond met een tevreden klant. Later wel nog een keer terug gegaan voor een nieuwe versie, welke wat correcties bevatte, en gelukkig verliep de software upgrade nu wel zonder problemen.

Door eerst goed achtergrondinformatie te verzamelen over de opdracht kwam er een beeld bij het te verrichten werk en de te leren kennis, en is hierop een planning gebaseerd. Tijdens het project is het houden aan de gemaakte planning goed verlopen. Door eerst de kennis achter websites te leren en vervolgens een testpagina te maken, ontstond er een goed beeld over de mogelijkheden van de webserver en is er gestart met het maken van de website. Na dit project is duidelijk geworden wat de mogelijkheden van de PLC webserver zijn en hoe deze is te gebruiken.

In de volgende hoofdstukken wordt er dieper ingegaan op het project met als toevoegende

ondersteuning nog dieper gaande toelichting in de bijlagen. Er wordt gestart met de toelichting van de startpositie van het project.

(8)

S7-1200 PLC-Web applicatie: Afstudeerscriptie

3 Startpositie project

Bij de aanvang van de afstudeerperiode was de opdracht ruim omschreven, namelijk de S7-1200 PLC koppelen met een webpagina met als doel de normale HMI te tonen via de webbrowser.

Om dit concreter op papier te krijgen was het nodig om eerst te gaan verdiepen in de producten waarmee gewerkt moest gaan worden, en het systeem waarin dit toegepast wordt.

3.1 PLC programmeer software

De PLC waarmee gewerkt wordt is de S7-1200 serie van Siemens. Om deze te kunnen programmeren was ook het nieuwste software pakket (TIA-portal) van Siemens nodig. Dit programma is een

combinatie van STEP7 & WinCCflex. Ondanks de gebruikerservaring met Siemens software was het wel nog zoeken naar bepaalde functies in TIA.

3.2 Webdesign software

Tijdens het lezen van de systemmanual van de PLC werd duidelijk dat het grootste deel van het programmeren het maken van de website zelf zou worden. Omdat dit iets volledig nieuws was, moest er eerst gezocht worden naar een goed bruikbaar programma. Na wat zoeken op internet werd “Adobe Dreamweaver CS4” door diverse sites aanbevolen. Omdat webdesign dus nieuw was, eerst globaal gaan verdiepen in de basis hoe websites worden opgebouwd en wat voor

programmeerkennis hiervoor nodig is.

Tijdens het lezen over hoe websites gemaakt worden bleken er diverse manieren te zijn. Omdat de systemmanual ook een beschrijvend stuk erin had staan, zijn deze sites later als ondersteuning gebruikt tijdens het maken van de website.

3.3 Systeem klant

Om voor de klant een goede website te kunnen maken, was kennis over de werking van het systeem ook belangrijk. Nadat alle documentatie was doorgenomen, van functie omschrijving tot PLC

programma, een bezoek gebracht aan de klant om een beeld bij te krijgen van het systeem en om de eisen en wensen van de klant te bespreken.

3.4 Opdrachtomschrijving

Nu de materialen, de achtergrond van het project, de opdracht vanuit Van Doren Engineers en de wensen van de klant duidelijk waren kon de opdracht wat concreter omschreven en afgebakend worden.

(9)

S7-1200 PLC-Web applicatie: Afstudeerscriptie

4 Planning en werkzaamheden

In het begin van de afstudeerperiode is er een PMD gemaakt, en in dit PMD is een planning verwerkt. Deze planning is gemaakt op basis van de verwachtte te leren programmeertalen en de hoeveelheid werk die geschat werd voor het maken van de website zelf.

4.1 Werkzaamheden

De werkzaamheden die verricht moeten worden zijn verdeeld in diverse fases. Dit is opgebouwd in eerst een onderzoekend deel, vervolgens een basisopzet maken zodat de klant een beeld krijgt wat er als product uiteindelijk zal zijn. Deze basisopzet dient er ook voor als bescherming dat er niet te veel werk wordt gedaan en later afgekeurd wordt door de klant. Als de klant niet tevreden is met de basisopzet kan er op tijd begonnen worden aan een nieuwe site zonder teveel tijdsverlies.

De laatste fases zijn testen en inbedrijf stellen.

Daarnaast is er ook een fase voor documentatie opgenomen in de planning, deze is niet van belang voor de klant maar wel voor VDE.

Tabel 1: Verwachtte werkzaamheden

Fasen Werkzaamheden

Fase 1 Het probleem/opdracht in kaart brengen.  Wat wil de klant?

Fase 2 Onderzoeken wat de mogelijkheden zijn met het S7-1200 systeem.

 Testopstelling basiscommunicatie opzetten tussen PLC en webpagina  Testopstelling IO Lezen

 Testopstelling IO Lezen/Schrijven

 Visualisatie van het Lezen/Schrijven van de IO

 Realtime werking van IO en visualisatie testen en optimaliseren

Kan er eventueel aan enkele eisen niet voldaan worden, een oplossing hiervoor bedenken.

Fase 3 Overleg plegen met de klant over hoe de webpagina eruit moet gaan zien, en voorbeeld maken.

Laten keuren door klant, GO/NO-GO moment.

 Bij GO, project zoals besproken voortzetten, kleine wijzigingen zijn mogelijk maar basisopzet blijft gelijk.

 Bij NO-GO, aanpassingen uitvoeren a.d.h.v. op/aanmerkingen. Opnieuw laten keuren.

Fase 4 Na GO, voorbeeld basisscherm verder uitwerken (voor zover dat nog moet gebeuren) en koppelen met PLC programma.

Fase 5 Koppeling PLC-Webpagina volledig testen.  Eerst op testopstelling, simulatie  Simulatie goed, dan bij klant testen

Fase 6 Uitbreiding van basisscherm naar meerdere schermen voor meerdere functionaliteiten en opties. Afhankelijk van het eisenpakket.

Fase 7 PLC-Webpagina na uitbreiding testen.

Fase 8 Oplevering en inbedrijfstelling van uitbreiding bij de klant. Fase 9 Volledige documentatie afmaken.

(10)

S7-1200 PLC-Web applicatie: Afstudeerscriptie

4.2 Planning

De voorgestelde projectperiode is februari/maart onderzoek en bouwen, april/mei installeren en afronden. Het streven in de planning is om in april hoogstens begin mei de oplevering en

inbedrijfstelling te doen, dan is er nog tijd voor documentatiewerk en eventuele uitloop voor onverwachte problemen.

Tabel 2: Planning op basis van werkzaamheden

Fase Geschatte tijd Periode Producten

1 2 weken 30-1-2012 / 10-2-2012 Probleem definitie/Opdrachtomschrijving 2 3 weken 13-2-2012 / 02-3-2012 Onderzoeksrapport

3 1 week 05-3-2012 / 09-3-2012 Basisopzet, Go/No-Go website

4 2 weken 12-3-2012 / 23-3-2012 Basisschermen

5 1 week 26-3-2012 / 30-3-2012 Testverslag basisschermen

6 1 week 02-4-2012 / 06-4-2012 Uitbreiding

7 1 week 09-4-2012 / 13-4-2012 Testverslag uitbreiding 8 1 dag T.z.t. te bepalen met klant Inbedrijfstelling bij klant

9 2 weken April - mei Projectdocumentatie volledig

Tijdens het project is het werken volgens planning goed verlopen. Enkele werkzaamheden waren wel wat uitgelopen maar deze waren op te vangen door later geplande werkzaamheden eerder op te pakken en parallel te laten lopen met de uitlopende werkzaamheden.

Dit was voornamelijk het geval met het onderzoek en het maken van het basisscherm. Gedurende het onderzoek werd er ook gewerkt aan een testwebsite, hierdoor kwam er steeds meer kennis van de achtergrond van een website. Door deze kennis toe te passen kon het maken van de website mooi parallel lopen met het onderzoek.

Daarnaast bleek de uitbreiding minder werk te zijn dan verwacht. Door deze omstandigheden kon de uitloop van het onderzoek opgevangen worden.

(11)

S7-1200 PLC-Web applicatie: Afstudeerscriptie

5 Opdrachtomschrijving

De S7-1200 PLC kan door zijn eigen ingebouwde mini webserver de mogelijkheid bieden om een webpagina te laten zien met de status van de PLC, maar ook kan er een zelf ontworpen pagina getoond worden.

De opdracht bestaat uit het uitzoeken hoe, en het opzetten van een webpagina welke gekoppeld is met de IO van het programma in de PLC.

Door gebruik van een webpagina in de PLC, biedt dit de mogelijkheid om vanaf verschillende apparatuur, zonder Siemens software, de PLC IO-status te bekijken en te bedienen(binnen de mogelijkheden van de PLC webserver zelf).

De PLC is op zijn IP adres, gedefinieerd in TIA-portal, bereikbaar. Als de PLC via ethernet aan een draadloze router wordt gehangen , is de PLC ook draadloos bereikbaar binnen dit netwerk. Er bestaan mogelijkheden om vanaf het WWW met de PLC te communiceren, maar dit kan alleen met bepaalde configuraties in de router. Er zal dan nog wel extra aandacht aan beveiliging tussen router en buitenwereld geschonken moeten worden.

Omdat bij de klant binnen het eigen WLAN-netwerk wordt gewerkt zal het communiceren via het WWW niet binnen de opdracht vallen. Als de opdracht af is en er is tijd over kan er wel aandacht geschonken worden aan dit onderdeel, en in hoeverre het lukt dit te realiseren.

Om de webpagina aan de PLC te koppelen zal deze met toebehoren bijgevoegd moeten worden aan het PLC programma. Andere aanpassingen in het programma worden niet gedaan.

Onderstaande afbeelding is een schematische weergave van de beginsituatie. De stippellijnen zijn verbindingen die nog niet aanwezig zijn, hierbij moet de groene stippellijn tussen PLC en router gemaakt worden om de draadloze verbinding mogelijk te maken. De zonnepanelen zijn al via de router verbonden met het WWW, waardoor de optie voor de PLC om naar het WWW te gaan beschikbaar wordt.

(12)

S7-1200 PLC-Web applicatie: Afstudeerscriptie

6 Onderzoek

Nadat de opdracht duidelijk was, is er een onderzoek begonnen naar hoe de PLC kan werken met een webpagina, en hoe dit toe te passen is op de opdracht van de klant. In dit onderzoek is er gekeken naar hoe de IO van de PLC gepresenteerd kan worden op een website, en wat daarvoor nodig is.

6.1 PLC

Om de user-page te testen op zijn werking met de PLC, is er een kort PLC programma geschreven waarbij enkele IO schakelt en diverse tellers op en af kunnen tellen. Door de IO duidelijke tag-namen te geven, wordt het makkelijker om deze tags later in de HTML pagina te gebruiken.

Het PLC programma wordt gekoppeld met de user-page in TIA. Door in de PLC configuratie de webpagina te converteren en te compileren, waardoor TIA de webpagina opdeelt in fragmenten, en deze plaatst in system-datablokken bij het programma. Vervolgens moet de WWW-instructie toegevoegd worden om de user-page te gebruiken. Dit kan wel pas nadat de website klaar is.

6.2 HTML

Om een simpele website te maken is kennis van HTML een vereiste. Informatie over HTML is te vinden in naslagwerken en het internet. Naar mate de website uitgebreider wordt is het handig om gebruik te maken van CSS (Cascading Styling Sheet). In CSS kan de opmaak per class gedefinieerd worden, waardoor hergebruik specifiekere opmaak makkelijker wordt.

Om IO te kunnen lezen en te schrijven vanaf de website, is er een simpele basisopzet gemaakt waarin wat boolean’s en integers worden uitgelezen en gepresenteerd op het scherm. Verder is er ook IO geplaatst die geschreven kon worden vanaf de website.

6.3 IO lezen/schrijven

Voor extra toelichting zie bijlagen hoofdstuk B.2. 6.3.1 Lezen

IO kan uitgelezen worden door de gewenste tag, gedefinieerd in de PLC of DB, te declareren op een speciale manier. Tijdens het compileren van de website herkent de PLC deze variabelen en filtert ze weg uit de code en plaatst de corresponderende waarde.

De variabelen worden statisch gelezen, dus bij het laden van de pagina worden de tags gelezen. Als de variabelen veranderen als de pagina is geladen, dan worden deze veranderingen pas zichtbaar op het moment dat de pagina weer wordt vernieuwd (automatisch of handmatig).

Het type van de variabele (bool, int, real, bin, enz.) is gelijk aan de tag van de variabele in de PLC. 6.3.2 Schrijven

Naast het lezen van IO, kan er ook IO geschreven worden. Om IO te kunnen schrijven moet de gebruiker ingelogd zijn op de standaard website van de PLC, is dit niet het geval dan worden alle acties m.b.t. het schrijven van IO genegeerd. Het schrijven van de IO gebeurd met vooraf gedeclareerde tags. Ook hier is het type gelijk aan die van de corresponderende tag in de PLC.

(13)

S7-1200 PLC-Web applicatie: Afstudeerscriptie

6.4 Javascript

Naast de standaard wijze voor het lezen/schrijven van IO is het ook mogelijk om dit te doen via functies. Hiervoor kan Javascript gebruikt worden, dit is een scripttaal welke de interactie tussen de webpagina en gebruiker voorziet. Ondanks de vergelijking in de naam, lijkt Javascript niet op Java qua programmeren. Javascript is een erg uitgebreide taal, welke veel kennis en ervaring vraagt voor optimaal gebruik van alle functies.

Het Javascript kan in de HTML file zelf geplaatst worden, of als extern bestand dat vaker gebruikt kan worden door bij meerdere HTML files te importeren.

Let op: Als er gebruik wordt gemaakt van externe .js bestanden waarbij IO uit de PLC wordt gebruikt d.m.v. de AWP variabelen, dan moet de bestandsextensie .js in de PLC configuratie bij “Web server” als dynamic content toegevoegd worden.

6.4.1 JQuery

JQuery is een framework dat werkt in Javascript. Dit framework is bedoelt om het uitgebreide Javascript te vereenvoudigen en het programmeren van functies in te korten.

JQuery wordt voornamelijk gebruikt voor het verfraaien van een webpagina met diverse functies. Let op: Als het gebruik van JQuery wordt toegepast op de user-page dan moet er rekening mee gehouden worden dat bij het gebruik van externe Javascript bestanden, deze geen dynamic content (AWP variabelen) mogen bevatten.

De reden hiervoor is dat het jquery.js bestand ongeldige code bevat volgens de syntax (het bestand wordt genegeerd) als deze bij de dynamic content staat. Door de bestandsextensie uit de lijst met dynamic content te verwijderen wordt het jquery.js bestand wel bruikbaar.

(14)

S7-1200 PLC-Web applicatie: Afstudeerscriptie 6.4.2 Realtime

De IO wordt statisch uitgelezen, dat wil zeggen dat per keer dat de pagina wordt geladen de IO wordt gelezen. Door middel van een HTML of Javascript functie kan de pagina een vaste tijd een refresh krijgen waardoor de IO opnieuw gelezen wordt. Het nadeel hiervan is dat deze functies niet realtime gemaakt kunnen worden door de refreshtijd heel kort te zetten, omdat de PLC dan constant de pagina aan het laden is.

De oplossing om IO toch realtime te krijgen zonder dat de webpagina constant wordt geladen is AJAX (Asynchroon Javascript And XML).

Zie voor extra toelichting bijlagen hoofdstuk B.4.

Door met een Javascriptfunctie het XML bestand met gewenste IO een vaste korte tijd te laden, en de waardes te koppelen aan een ID kan deze later op de pagina geladen worden. Door de functie wordt het ID constant ge-update en wordt de IO realtime.

Figuur 2: Testpagina voor IO

6.5 Inloggen

Voor extra toelichting zie bijlagen hoofdstuk B.5.

Om via de webserver IO te kunnen schrijven moet de gebruiker zijn ingelogd. Dit moet op de standaard website van de PLC, vervolgens kan de zelf ontworpen pagina geopend worden om daar de gewenste IO te kunnen schrijven met bijv. knoppen.

Om dit gebruiksvriendelijker te maken kan er op de user-page een login functie gemaakt worden. Als dit gemaakt wordt moet hier wel nog wat extra aandacht aan geschonken worden om deze op dezelfde manier werkend te krijgen als op de standaard website. Dit kan door dezelfde variabelen te

(15)

S7-1200 PLC-Web applicatie: Afstudeerscriptie

7 Basisopzet website

De testpagina werkte naar behoren, dus de volgende stap was het maken van een basisopzet van de website voor de klant. Het een en ander rondom het inloggen en extra functionaliteiten kon nog wat verbeterd worden maar dit kon goed parallel lopen naast het maken van de website. Zodra de basisopzet klaar was kon er een afspraak gemaakt worden met de klant voor een keuring, zodat als deze wat anders in gedachten had over de website dit direct kon worden doorgevoerd zonder dat er teveel werk verloren zou gaan.

7.1 Basisframe

Het idee was om voor alle schermen een standaard opzet te houden zodat het overzichtelijk blijft. Hierbij zijn 2 kolommen gecreëerd waarbij de 1e smal is en het menu voorstelt, en de 2e groot is en het werkgebied aangeeft dat per scherm verschilt aan inhoud. Daarnaast zijn er nog wat functies in de standaardopzet toegevoegd zoals logo, datum-tijd en een ruimte voor een inlogveld. Dit inlogveld in niet toegevoegd aan de uiteindelijke opzet omdat dit niet goed werkte, dit om verwarring te vermijden.

Figuur 3: Startpagina

De volgende stap was het maken van de verschillende schermen met hetzelfde frame. Naast het startscherm moesten er andere schermen komen welke alle informatie van het systeem moeten weergeven. Deze informatie moest eerst gefilterd en gesorteerd worden uit het bestaande PLC programma. Uiteindelijk werden het 5 schermen:

Tabel 3: Schermen met functie

Scherm Functie

Energie Systeem Weergeven v.h. systeem met actuele temperaturen. Setpoints Alle setpoints v.h. systeem met actuele instelling. Bedrijfsuren Aantal gedraaide uren van diverse routes.

Zonnepanelen Opbrengstinformatie van de zonnepanelen, deze gegevens worden geïmporteerd vanuit een externe server.

Alarmen Status van de alarmen.

(16)

S7-1200 PLC-Web applicatie: Afstudeerscriptie 7.1.1 Energie Systeem

Bij het maken van het scherm voor de weergave van het systeem was de wens om dezelfde visuele functionaliteiten van een HMI in te bouwen. Daarmee wordt bedoelt dat de verschillende kleuren voor de standen van de kleppen en leidingen. Na wat zoekwerk naar de mogelijkheden hiervoor kwam er helaas uit dat de mini webserver in de PLC hier niet voor gemaakt is. Er zijn een aantal redenen dat het niet mogelijk is, maar de belangrijkste is toch wel dat plaatjes niet goed schakelen op de webpagina.

Een oplossing was om de huidige schematische weergave van het HMI te gebruiken en daar de temperaturen zo in te plaatsen dat deze altijd op de juiste plek stonden uitgelijnd.

Maar omdat een onbekende gebruiker geen wijs uit het schema kan halen, was ervoor gekozen om met nummers de verschillende sensoren te benoemen. Vervolgens deze onder het schema met een naam duidelijk te maken waarover het gaat met hierachter de corresponderende temperatuur van de sensor.

Figuur 4: Energie Systeem

7.1.2 Setpoints

Dit scherm moest gaan bestaan uit alle setpoints van het systeem en de seizoen instellingen. Omdat de setpoints in het PLC programma instelbaar zijn moet dit hier ook kunnen, wel moet de gebruiker dan ingelogd zijn (inloggen op standaard website) om IO te kunnen schrijven. Tijdens het openen van de pagina wordt de huidige stand van de setpoints ook uitgelezen. Verder zijn de seizoenen

instelbaar gemaakt op maand en dag welke geselecteerd kunnen worden uit een selectlist. 7.1.3 Bedrijfsuren

Hier worden de tellers uitgelezen die de bedrijfsuren registreren van pompen en diverse routes die gedraaid worden.

(17)

S7-1200 PLC-Web applicatie: Afstudeerscriptie 7.1.4 Zonnepanelen

Het scherm van de zonnepanelenopbrengsten viel onder uitbreidingen van de website omdat dit systeem los staat van het systeem dat geregeld wordt door de PLC. Het enige wat het PLC systeem met dit systeem te maken heeft is dat er leidingen door de zonnepanelen stromen als opwarming van het water.

De opbrengst van de zonnepanelen wordt door een ander systeem geregistreerd, en de wens van de klant was om dit toch te integreren in de website van de PLC om zo toch alles bij elkaar te hebben. Omdat de klant deze voorheen de informatie alleen via een app op zijn Ipad beschikbaar had was het even uitzoeken hoe deze verwerkt kon gaan worden. Deze informatie bleek bereikbaar te zijn via een externe ftp-server. Door deze gegevens via een aantal specifieke URL’s door te linken naar de

website van de PLC, werd deze informatie hier ook zichtbaar.

Omdat de info van de zonnepanelen via een paar menu’s weergeven wordt, waren er ook diverse URL’s. Om alleen de inhoud te laten wijzigen zonder dat er een nieuwe pagina werd geopend, was er een functie nodig dat alleen de inhoud wisselt op basis van knoppen.

7.1.5 Alarmen

Alle mogelijke alarmen worden hier getoond met hun actuele status. Tijdens het testen bleek dat er geen tekst bij de status kwam te staan, maar een 0(laag) of 1(hoog). Hier moest dus nog iets voor worden bedacht. Door een functie te maken welke de tekst doet veranderen op het moment dat een alarm schakelt, was dit opgelost. Wel was de reactietijd wat aan de trage kant, maar dit zou geen effect hebben op het uiterlijk voor de keuring door de klant dus kon het parallel gezet worden naast de andere werkzaamheden.

7.2 Ipad

Omdat de klant als eis heeft dat de website vanaf zijn Ipad bezocht moet kunnen worden, is het van belang dat alle functies van de website ook hierop worden getest.

Het surfen op de website via de Ipad gaat zonder problemen en IO kunnen gewoon uitgelezen worden. Maar zoals in hoofdstuk 6.5 is behandeld moet een gebruiker ingelogd zijn voordat hij variabelen kan schrijven.

Op het moment dat de gebruiker via een Ipad dan wel een Andriod tablet inlogt ontstaat er een error. Omdat deze functie wel wenselijk is op de Ipad, is er gezocht naar waar de problemen ontstaan. Uiteindelijk bleek dat de problemen voor kwamen bij het gebruik van de webbrowsers Safari, Chrome en met gebruik van een Ipad.

Na het onderzoeken van dit probleem, blijkt de fout te zitten in de beveiligde handshake tijdens het inloggen. Na contact met Siemens hierover blijkt dit deels te zitten in de PLC en deels in het gebruikte framework voor de browsers van Apple. Volgens Siemens kan het nog wel even duren voordat er een firmware update zal komen voor de PLC.

Helaas kan bij gebruik van een Ipad of ander soort tablet geen IO geschreven worden omdat de inlogsessie niet goed verloopt. Of dit mogelijk gaat worden zal afhangen van Siemens, want die zullen een update moeten uitbrengen welke Safari als webbrowser zal ondersteunen.

(18)

S7-1200 PLC-Web applicatie: Afstudeerscriptie

8 Go/NoGo website

Nadat de basisopzet van de website een heel eind klaar is, was het tijd om eens samen te gaan zitten met de klant. Hiervoor is een afspraak gemaakt met de klant bij VDE in Boekel. Tijdens dit gesprek was de klant erg tevreden over het huidige resultaat. Verder zijn er nieuwe afspraken gemaakt waarbij wat weken later de 1e versie geïnstalleerd wordt bij de klant. Na de software update kan de klant gebruikerservaring opdoen, en eventueel wat commentaar of taal correcties doorgeven. Tijdens dit gesprek vroeg de klant nogmaals of de informatie van de zonnepanelen geïntegreerd kon worden bij de website. Hierbij was afgesproken dat via de mail hierover gegevens toegestuurd zouden worden.

Na dit gesprek was afgesproken met de klant dat nog het een en ander afmaakt werd aan de website en dat dan pas een afspraak maak voor een inbedrijfstelling.

Een belangrijke functie die nog een verbetering nodig had was die van de Alarmen. Deze werkte namelijk wel, maar had nog een te trage reactietijd. Dus hier moest nog even goed over na gaan denken hoe dit op te lossen was.

De trage reactietijd bleek te zitten in de hoeveelheid data, 23 booleans, die de server moest uitlezen op de PLC. 23 bits is op het eerste gezicht niet veel, maar het zijn wel 23 tags die uitgelezen moeten worden door de webserver. Door deze in de PLC te comprimeren naar 2 woorden, en deze later weer te ontleden aan de client-side werd de reactietijd aanzienlijk verhoogt omdat nu maar 2 tags

(19)

S7-1200 PLC-Web applicatie: Afstudeerscriptie

9 Inbedrijfstelling

De eerste versie was klaar dus kon deze de PLC in bij de klant. Om goed voorbereid bij de klant te verschijnen is er een plan van aanpak (bijlagen hoofdstuk D) gemaakt zodat van tevoren goed op papier staat wat er moet gebeuren bij de software update.

Ondanks dat de inbedrijfstelling goed was voorbereid, waren er helaas toch wat problemen. De oorzaak van de problemen kwam door het verschil in versie van de Siemens software waarmee gewerkt werd. De versie van het programma in de PLC was v10.5 en voor het werken met een website moest deze ge-update worden naar v11. Tijdens de controle of de laatste versie

overeenkwam met de versie in de PLC begonnen de problemen. TIA v11 bleek het programma dat gemaakt was in v10.5 wel te herkennen maar niet te kunnen lezen omdat deze anders gecodeerd was. Na een telefoontje met de toenmalige opdrachtgever bij dat project, bleek er een back-up laptop te zijn met de laatste versie van het PLC programma. Na deze voor de zekerheid gecontroleerd te hebben met de versie in de PLC, kon weer verder gewerkt worden volgens het stappenplan. Uiteindelijk is de inbedrijfstelling goed afgerond en is er weer een nieuwe back-up gemaakt voor de klant en voor VDE zelf.

9.1 2

e

inbedrijfstelling

Met de klant was afgesproken dat hij commentaar kon geven na wat gebruik van de website. Zodat deze doorgevoerd kon worden in een nieuwe versie welke op een nader te bepalen datum in de PLC bij de klant komt.

Na ongeveer anderhalve week was de 2e versie met alle doorgevoerde correcties klaar, en is deze geïnstalleerd bij de klant. Ditmaal verliep alles zonder problemen, en was de klant weer snel geholpen.

(20)

S7-1200 PLC-Web applicatie: Afstudeerscriptie

10 Uitbreiding naar WWW

In de opdrachtomschrijving was de verbinding naar het WWW (World Wide Web) buiten de grenzen van de opdracht gelegd, en als hier tijd voor over was dat dit verder onderzocht zou worden.

De wens van de klant was om vanuit elders in het (buiten)land naar de website van de PLC te kunnen gaan, om vervolgens zijn systeem te bekijken en ta laten zien aan anderen.

Omdat hij dit dan graag vanaf zijn Ipad wil doen valt de mogelijkheid om het systeem te kunnen bedienen al af, als hij een PC heeft dan zou dit wel mogelijk zijn.

Belangrijk was de beveiliging omtrent het systeem (wijzigen van parameters), maar het belangrijkste was de veiligheid van het PLC programma (wijzigen van programma zelf, functieblokken ect.).

10.1 PLC - WWW

Na wat onderzoek bleek dat hiervoor geen instellingen in de PLC veranderd hoefden te worden maar dat in de router instellingen gewijzigd moet worden.

Dit kan gedaan worden door de internetpoort van router open te zetten richting de PLC. Hiervoor bestaan er 2 mogelijkheden, namelijk de standaard onbeveiligde verbinding (HTTP) port:80 en de met SSL beveiligde verbinding (HTTPS) port:443.

De PLC wordt dan bereikbaar vanaf het IP-adres van de klant met als toevoeging :80 of :443, dus als bijvoorbeeld via http: 123.456.78.99:80 of via https: 123.456.78.99:443.

Omdat de PLC nu in verbinding met internet gaat komen is het van belang dat deze ook goed

beveiligd is. Wat dus belangrijk is voor de PLC is dat het wachtwoord wordt ingesteld, zeker omdat de gebruikersnaam niet te wijzigen is.

Om zeker te zijn dat dit veilig genoeg zal zijn is er getest of in de encrypted data tijdens het inloggen herkenbare tekst terug te vinden is. Omdat dit gevonden was, is hier verder naar gezocht op internet of er meer mensen waren die dit onderzocht hebben.

Uiteindelijk was er een presentatie van een ICT ’er die erin geslaagd was om in een paar uurtjes het wachtwoord van de PLC te wijzigen. Ook was het mogelijk om logische bit operaties te veranderen, was dus betekend dat het PLC programma zelf gewijzigd kan worden.

Dit geeft dus aan dat de beveiliging van de PLC niet gegarandeerd kan worden. Het enige verschil was dat deze informatiestroom van de PLC via poort 102 (communicatiepoort voor PLC-programmeren en “Online-Diagnostics”) ging, en dat de informatiestroom van de website via poort 80 of 443 zal gaan. Volgens informatie op internet zou met port forwarding van 80 of 443 poort, poort 102 beveiligd blijven.

Stel een kwaad willend persoon heeft de inloggegevens weten te achterhalen uit de data, dan zal deze alleen parameters zoals temperaturen van het systeem kunnen wijzigen.

Maar dit is niet het grootste probleem, want als er een DOS-aanval wordt gedaan op de PLC dan crasht deze en valt het gehele systeem uit.

(21)

S7-1200 PLC-Web applicatie: Afstudeerscriptie

11 Conclusie

De geïntegreerde mini webserver in de PLC biedt (nog) niet de capaciteiten om de huidige HMI besturing bij de S7-1200 PLC te kunnen vervangen. Daarentegen is de website wel goed bruikbaar om informatie weer te geven van het PLC systeem met IO maar ook eventuele alarm statussen.

Omdat het om een mini webserver gaat in een kleine PLC zijn grote webpagina’s niet gewenst omdat deze een lange laadtijd hebben, wat surfen over de website onprettig maakt.

Dit geldt ook voor gebruik van veel variabelen. Dit is op te lossen door meerdere tabbladen te maken of door de een aantal variabelen te comprimeren tot 1 variabele om uit te lezen, en deze later weer te ontleden zodat de gewenste variabelen weer terug komen.

Verder is tot op heden de werking met een Ipad beperkt tot het uitlezen van de website en dus IO. Dit komt omdat het gebruik van apparaten als een Ipad of Galaxy-Tab nog niet worden ondersteund door de PLC. Hierdoor is het op afstand besturen van de PLC via Ipad niet mogelijk, maar alleen vanaf een PLC wat voorheen ook al was via SCADA.

Als laatste is het inloggen op de PLC van buiten zijn netwerk door de PLC te forwarden in de router niet veilig genoeg. Dit komt omdat in de beveiligde verbinding alle data is te achterhalen, inclusief wachtwoorden. Hierdoor wordt het wijzigen van parameters en eventueel het PLC programma zelf mogelijk, en dat is absoluut niet wenselijk en afhankelijk van de installatie ook nog eens

levensgevaarlijk.

Bij de aanvang van dit project bleek dat ik me moest gaan verdiepen in de stof achter het maken van een website. Ondanks dat dit ook programmeren is, was dit weer iets heel anders dan het PLC programmeren waar ik bekend mee ben. De nieuwe onbekende programmeertalen gaven deze opdracht dan wel weer een extra uitdaging.

Door eerst goed informatie te verzamelen over de opdracht kon ik een beeld creëren bij het te verrichten werk, en hierop een planning maken. Tijdens mijn project heb ik mij goed kunnen houden aan de planning die ik in het begin had gemaakt.

Omdat de opdracht voornamelijk het maken van een website voor een PLC was i.p.v. PLC programmeren, was de kennis hierover ook beduidend minder binnen VDE omdat dit niet hun vakgebied is. Hierdoor was ik meer op mezelf aangewezen. Als ik ergens vragen over had, dan ging ik voornamelijk zelf op zoek naar antwoorden. Als ik er zelf met mijn bronnen echt niet meer uit kwam, ging ik met vragen naar collega’s of via de mail naar Siemens.

Na alles uitgezocht te hebben over de mogelijkheden van de webserver en hiermee aan de gang gegaan te zijn, is er een goede website als resultaat uit gekomen.

Door mij zelfstandig en verantwoordelijk voor mijn opdracht op te stellen, kreeg ik het idee dat ik ook gezien werd als een collega. Vooral door zelf contact te onderhouden met de klant, afspraken te plannen en gesprekken te voeren gaf mij dit gevoel.

(22)

S7-1200 PLC-Web applicatie: Afstudeerscriptie

Bijlagen

A Project Management Document

A.1 Uitvoeringsgegevens

Bedrijfsgegevens:

Van Doren Engineers De Vlonder 3 5427 DB Boekel 0492-323520

info@vandoren.nl

Bedrijfsbegeleiding:

André van Drunen 0492-323520

andre.van.drunen@vandoren.nl

Onderwijsinstelling:

Avans Hogeschool

Academie voor Technologie en Management

Adres: Lovensdijkstraat 61-63 4818AJ Breda Receptie (076) 525 05 00 Postadres: Avans Hogeschool Postbus 90.116 4800 RA Breda

Hogeschoolbegeleiding:

Harry Voermans 0765-250500

haa.voermans@avans.nl

Student:

Ivo van den Elsen Margrietstraat 3H 5401 CH Uden 0651-016940

(23)

S7-1200 PLC-Web applicatie: Afstudeerscriptie

A.2 Situatiebeschrijving

A.2.1 Bedrijfskarakteristiek

Van Doren Engineers is een projectgeoriënteerde organisatie met een flexibele, proactieve instelling. En met alle relevante disciplines in huis. Van engineering tot uitvoering. Daarnaast staan ze met beide benen op de grond. Afspraken zijn er om na te komen en ze leveren de oplossing waar de klant om heeft gevraagd.

Geschiedenis

De geschiedenis van Van Doren Engineers gaat terug tot medio jaren vijftig. Onder de naam Van Doren Elektrotechniek werkte Jan van Doren als elektrotechnisch installateur in de particuliere huizenbouw en de agrarische sector. Na verloop van tijd richtte het bedrijf zich steeds meer op de utiliteitsbouw. In 1988 namen twee zonen, Cor en Marcel, het bedrijf over en gingen we verder als Van Doren Engineers. In 1994 trad Jos van Doren toe als derde partner.

In 1998 opende Van Doren Engineers een tweede vestiging, in Beringe. Twee jaar later werd daar nog een vestiging in Breda aan toegevoegd. De schakelkasten vervaardigen ze sinds 2003 veelal in Nitra, Slowakije. En met ingang van 2007 hebben ze ook werkzaamheden op het gebied van hardware-engineering in het buitenland ondergebracht: in Coimbatore, India. Hoewel Van Doren Engineers in de loop der jaren flink gegroeid is, is Van Doren Engineers in de kern weinig veranderd. VDE is nog altijd een daadkrachtig familiebedrijf, dat zich toelegt op elektrotechniek en industriële

automatisering, inclusief de koppeling met de kantooromgeving. A.2.2 Product, dienst, assortiment

Elektrotechniek en industriële automatisering

Van Doren Engineers richt zich op elektrotechniek en industriële automatisering. Daarbij werken ze met name voor industriële bedrijven en machinebouwers.

Vijf disciplines

Industriële automatisering en elektrotechniek. Stuk voor stuk brede begrippen. Van Doren Engineers is gespecialiseerd in vijf disciplines: software-engineering (PLC en SCADA), hardware-engineering, buitenmontage, paneelbouw en consultancy (MES). Daarbij hoort natuurlijk de totale beheersing van complete projecten.

A.2.3 Markt(en)

De markt waarin Van Doren Engineers zich bezig houd is voornamelijk de industriële automatisering. Om de klant goed van dienst te zijn, en kwalitatief en efficiënt te werken richt Van Doren Engineers zich voornamelijk op de regio van de vestigingen.

(24)

S7-1200 PLC-Web applicatie: Afstudeerscriptie A.2.4 Beleid (huidige beleidsdoelen)

Van Doren Engineers is een projectgeoriënteerde organisatie met een flexibele, proactieve instelling. En met alle relevante disciplines in huis. Van engineering tot uitvoering. Binding met de regio staat bij Van Doren Engineers hoog in het vaandel. Korte reistijden en vakmensen die in de regio wonen, leveren namelijk een belangrijke bijdrage aan de kwaliteit en efficiency. Daarom heeft Van Doren Engineers meerdere vestigingen in Nederland, die elk hun eigen regio bedienen.

A.2.5 Probleemstelling voor het project

Bij Van Doren Engineers was de vraag gekomen van een klant of er een mogelijkheid was waarbij de normale HMI (operatorpanels) ook op afstand kon werken via een website. Hierbij wordt bedoelt dat het PLC-systeem dan bereikbaar is via een willekeurige laptop/tablet/smartphone. Deze apparatuur gaat naar een website wat het systeem laat zien, en na inloggen ook te bedienen is. Het

belangrijkste is dus dat het systeem bereikbaar moet zijn vanaf een willekeurig apparaat zonder benodigde software. Siemens heeft een PLC (S7-1200 serie) in het assortiment welke met een webserver schijnt te kunnen werken, maar hoe precies is nog volledig onbekend.

Opdracht concreet:

Het afstudeerproject bestaat dus uit het opzetten en het toepassen van een webpagina op een Siemens S7-1200 PLC.

A.2.6 Afbakening project (systeemgrenzen) Het is niet de bedoeling dat de afstudeerder:

 Veranderingen aanbrengen aan het PLC programma waar de web applicatie aan gekoppeld moet worden.

Wat de afstudeerder wel moet doen is:

 Onderzoeken wat de mogelijkheden zijn met een webpagina op een S7-1200 PLC.

 Webpagina maken en deze koppelen aan de PLC.

 Handleiding maken zodat het maken van web applicaties in de toekomst makkelijker toepasbaar is bij andere projecten.

(25)

S7-1200 PLC-Web applicatie: Afstudeerscriptie

A.3 Doelstelling

Dit project heeft als doel een webpagina opleveren die kan communiceren met een

S7-1200 PLC. Met communiceren wordt bedoelt het bedrijfssysteem visualiseren zoals met de huidige HMI, maar ook de IO Lezen/Schrijven en dus de PLC besturen.

Mijlpalen in het project zijn:

 Probleem definitie en eisenpakket  Onderzoeksrapport

 Basisopzet, Go/No-Go scherm  Basisscherm

 Testverslag basisscherm  Uitbreiding

 Testverslag uitbreiding  Inbedrijfstelling bij klant

(26)

S7-1200 PLC-Web applicatie: Afstudeerscriptie

A.4 Relevante documenten

[“Auteur(s)”, “Titel” , “subtitel”, “jaar”, “uitgever”, “ISBN-nummer”]

Siemens, S7-1200 system-manual, 11-2011, Siemens, A5E02486680-05

A.5 Werkzaamheden

De werkzaamheden die voornamelijk verricht zouden moeten worden zijn verdeeld in diverse fases. In paragraaf 7 is de planning van de werkzaamheden te vinden.

Fasen Werkzaamheden

Fase 1 Het probleem/opdracht in kaart brengen.  Wat wil de klant?

Fase 2 Onderzoeken wat de mogelijkheden zijn met het S7-1200 systeem.

 Testopstelling basiscommunicatie opzetten tussen PLC en webpagina  Testopstelling IO Lezen

 Testopstelling IO Lezen/Schrijven

 Visualisatie van het Lezen/Schrijven van de IO

 Realtime werking van IO en visualisatie testen en optimaliseren

Kan er eventueel aan enkele eisen niet voldaan worden, een oplossing hiervoor bedenken.

Fase 3 Overleg plegen met de klant over hoe de webpagina eruit moet gaan zien, en voorbeeld maken.

Laten keuren door klant, GO/NO-GO moment.

 Bij GO, project zoals besproken voortzetten, kleine wijzigingen zijn mogelijk maar basisopzet blijft gelijk.

 Bij NO-GO, aanpassingen uitvoeren a.d.h.v. op/aanmerkingen. Opnieuw laten keuren.

Fase 4 Na GO, voorbeeld basisscherm verder uitwerken (voor zover dat nog moet gebeuren) en koppelen met PLC programma.

Fase 5 Koppeling PLC-Webpagina volledig testen.  Eerst op testopstelling, simulatie  Simulatie goed, dan bij klant testen

Fase 6 Uitbreiding van basisscherm naar meerdere schermen voor meerdere functionaliteiten en opties. Afhankelijk van het eisenpakket.

Fase 7 PLC-Webpagina na uitbreiding testen.

Fase 8 Oplevering en inbedrijfstelling van uitbreiding bij de klant. Fase 9 Volledige documentatie afmaken.

(27)

S7-1200 PLC-Web applicatie: Afstudeerscriptie

A.6 Eisen (randvoorwaarden)

Externe voorwaarden

Ben gebonden aan het huidige systeem. Moet een oplossing gaan bedenken die draait op de huidige PLC zonder dat er grote aanpassingen gemaakt moeten worden in de hardware.

De webpagina moet bereikbaar zijn vanaf een iPad/iMac. Zal dus rekening moeten gaan houden met de standaard browser van Apple, Safari.

Functionele eisen

De webpagina moet de functies van het huidige HMI systeem krijgen.  Temperaturen uitlezen

 Systeem bedienen

 Alarmen uitlezen, en behandelen  Seizoen regeling instellen

 Visualisatie van het systeem, welk deel in gebruik is en wat niet  Bedrijfsuren uitlezen

Bedrijfseigen beperkingen

Bij Van Doren Engineers wordt een standaard gebruikt met programmeren.

Wel kan het zijn dat omdat het een nieuwe product is, er nog geen vast standaard voor is. Er kan wel een nieuwe standaard voor gemaakt worden.

Afbreukrisico

Er zijn twee mogelijke Go/No-Go momenten.

 Het uiterlijk met functionaliteiten zijn van de webpagina.

 Werking met gebruik van Safari webbrowser (wordt niet standaard ondersteund).

Als blijkt dat niet voldaan wordt aan de eisen en wensen van de klant, dan moet er een oplossing gezocht worden zodat het project toch voortgezet kan worden.

(28)

S7-1200 PLC-Web applicatie: Afstudeerscriptie

A.7 Kwaliteitsbewaking

De in paragraaf 9 benoemde personen zullen toezicht en controle houden op het beoogde resultaat wat zal gaan voldoen aan de in paragraaf 4 benoemde werkzaamheden en de in paragraaf 5

benoemde eisen.

A.8 Tijd (planning)

Projectperiode februari, maart, april/mei. Planning is om in april hoogstens begin mei de oplevering en inbedrijfstelling te doen, dan is er nog tijd voor documentatiewerk en eventuele uitloop voor onverwachte problemen.

Fase Geschatte tijd Periode Producten

1 2 weken 30-1-2012 / 10-2-2012 Probleem definitie en eisenpakket

2 3 weken 13-2-2012 / 02-3-2012 Onderzoeksrapport

3 1 week 05-3-2012 / 09-3-2012 Basisopzet, Go/No-Go scherm

4 2 weken 12-3-2012 / 23-3-2012 Basisscherm

5 1 week 26-3-2012 / 30-3-2012 Testverslag basisscherm

6 1 week 02-4-2012 / 06-4-2012 Uitbreiding

7 1 week 09-4-2012 / 13-4-2012 Testverslag uitbreiding 8 1 dag T.z.t. te bepalen met klant Inbedrijfstelling bij klant

9 2 weken April - mei Projectdocumentatie volledig

A.9 Kosten

Wie / Wat Kostprijs per

1 eenheid in € Hoeveelheid Totaal in € Afstudeerder  Vooronderzoek/eisenpakket  Onderzoek  Basisscherm  Testen  Uitbreiding schermen  Testen uitbreiding  Inbedrijfstelling  Documentatie 1,50 Uren totaal: 488 80 uur 120 uur 80 uur 40 uur 40 uur 40 uur 8 uur 80 uur 732,- Consultant  Vergadering en ondersteuning  Testen 16,- Uren totaal: 64 40 uur 16 uur 1024,-

(29)

S7-1200 PLC-Web applicatie: Afstudeerscriptie

A.10 Organisatie

Wie Functie Verantwoordelijkheden

Interart Klant Eisen en wensen bepalen

Roger Gunther Vestigingsmanager VDE Contact klant

André van Drunen Praktijkbegeleider Begeleiden afstudeertraject

Ivo van den Elsen Afstudeerder Project realiseren

Tijdens het project worden André van Drunen en Roger Gunther op de hoogte gehouden over de algemene vorderingen. Contact met Interart zal zijn in de eerder besproken fases, dit zal onder begeleiding van André of Roger zijn.

A.11 Informatie

Tijdens het project zal er informatie met bevindingen en aanbevelingen vastgelegd worden. Er zal een samenvattend document en een duidelijke handleiding worden gemaakt, welke ervoor moeten zorgen dat dit project makkelijk toe te passen is in toekomstige projecten. Deze informatie zal in een aparte map te vinden zijn op het netwerk van Van Doren Engineers zodat deze voor alle werknemers toegankelijk is.

(30)

S7-1200 PLC-Web applicatie: Afstudeerscriptie

B Onderzoeksverslag

B.1 Communicatie PLC-webpagina

Voor communicatie tussen de PLC en de webpagina moet er wat in de configuratie van de PLC gedaan worden. Dit is de PLC een IP-adres geven, de webserver aanzetten en als er gebruik wordt gemaakt van een zelf ontworpen webpagina moet deze gecompileerd worden.

Als in de webbrowser het IP-adres van de PLC wordt ingevoerd ga je naar de standaard pagina’s van de PLC zelf. Hier kan informatie over de PLC, met eventuele uitbreiding zoals bijvoorbeeld

communicatiemodules, gevonden worden. Ook is er een variabelenpagina waar variabelen tijdelijk uitgelezen kunnen worden. Voor het schrijven van deze variabelen is het een vereiste dat men is ingelogd als “admin”.

Naast deze standaard pagina’s kan er ook via een link naar de zelf ontworpen pagina gegaan worden. Men kan zonder login hier naartoe en de website bekijken, maar zodra men IO wil schrijven dan moet er ingelogd zijn als “admin”. Als er niet is ingelogd dan worden alle acties m.b.t. het schrijven van IO genegeerd.

De zelf ontworpen webpagina is bereikbaar via de standaard pagina’s, maar kan ook via het volledige URL adres bereikt worden. Dit lijkt op “192.168.0.10/awp/pagina.html”, waarbij het

IP-adres en de .html file kunnen verschillen afhankelijk van wat gewenst is.

Om IO te schrijven moet er wel ingelogd zijn op de standaardpagina. Er wordt nog gewerkt aan de mogelijkheid om op de webpagina in te loggen zodat er vanuit 1 pagina gewerkt kan worden.

(31)

S7-1200 PLC-Web applicatie: Afstudeerscriptie

B.2 IO Lezen + Schrijven

Om via de webpagina bij de IO te kunnen moet er duidelijk zijn welke PLC-tags en/of DB-tags

benodigd zijn, en hoe deze gedefinieerd zijn in de PLC. Ook moet ieder bestandsformat wat “dynamic content” bevat toegevoegd worden voordat er gecompileerd wordt. Zo weet de PLC waar welke tags vertaald moeten worden naar leesbare waardes in HTML pagina.

B.2.1 IO Lezen

Voor het lezen van IO is geen login vereist omdat deze meteen gepresenteerd kunnen worden op het scherm.

De IO kan gelezen worden in de HTML tekst, maar ook in Javascript en XML. De waarde van de IO wordt gelezen zoals deze in de PLC gepresenteerd wordt bij de desbetreffende tag.

Voor het lezen van IO moeten de gewenste tags gedefinieerd worden als 1 van de volgende mogelijkheden:

<!--AWP_Out_Variable Name=’ ”PLC_tag_naam” ’ --> <!--AWP_Out_Variable Name=’ ”Data_blok”.tag_naam’ -->

<!--AWP_Out_Variable Name=’ ”Naam “ ’ Use=’”Data_blok”.tag_naam’ -->

De variabelen wordt uitgelezen in (X)HTML door de naam van de variabele te schrijven als hieronder vermeldt. Onderstaande voorbeelden corresponderen met de bovenstaande tags:

:=“PLC_tag_naam”: := ”Data_blok”.tag_naam: :=”Naam”:

Als een variabele in Javascript gebruikt wordt is de schrijfwijze iets anders: Var x=’ :=”variabele_naam”: ‘;

Er kan ook gebruik gemaakt worden van een variabele die uit meerdere opties kan bestaan waaruit gekozen kan worden. De zogeheten “enumerated tags”.

Zo kan er bijvoorbeeld een vat 3 niveaus hebben: leeg, bijvullen en vol met respectievelijk de waardes 0,1,2. Als de tag “vat” waarde 1 is, dan zal op de plaats waar de tag gelezen wordt “bijvullen” komen te staan en niet de waarde 1.

<!-- Enumerated tags -->

<!-- AWP_Enum_Def Name="Niveau" Values='0:"Leeg",1:"Bijvullen",2: "Vol"' --> <!-- AWP_Enum_Ref Name='"Data_block_1".Vat' Enum=" Niveau " -->

De waarde van de variabelen bij alleen HTML code zal pas na een refresh (handmatig/auto) up-to-date zijn. Real-time uitlezen van de IO wordt later besproken.

(32)

S7-1200 PLC-Web applicatie: Afstudeerscriptie B.2.2 IO Schrijven

Voor het schrijven van IO is het een vereiste dat de gebruiker is ingelogd als “admin”. Is de gebruiker niet ingelogd, dan zullen de acties genegeerd worden.

Verderop in dit document uitleg over het inloggen. Het declareren van de te schrijven IO zo:

<!--AWP_ In _Variable Name=’ ”PLC_tag_naam” ’ --> <!--AWP_ In _Variable Name=’ ”Data_blok”.tag_naam’ -->

Volgens Siemens zou de alias zoals hieronder beschreven ook moeten werken, maar in de praktijk blijkt dit bij mijn testopstelling niet zo te zijn. Kan misschien verholpen zijn na een update van de firmware.

<!--AWP_ In _Variable Name=’ ”Naam “ ’ Use=’”Data_blok”.tag_naam’ -->

Net als bij het lezen kan er ook bij het schrijven gebruik gemaakt worden van de eerder toegelichte “enumerated tags”. Er is dan een mogelijkheid om een optielijst te maken, waarbij een tag meerdere waardes kan hebben. Door een selectie te maken uit de lijst en deze te bevestigen wordt de juiste waarde geschreven.

Het type (bool/int/enz) van de te schrijven variabele is afhankelijk van de gekoppelde tag en zal ook zo geïmporteerd worden in de PLC.

Het schrijven van de variabelen gaat op basis van de gedeclareerde naam en een “form-POST”. Binnen 1 “form” kunnen meerdere waardes tegelijkertijd gewijzigd worden, en met een “submit-button” verstuurd worden.

<input type=”submit” value=”Knop” />

Een knop die een ingang schakelt heeft per knop een eigen “form” nodig, want als er meerdere knoppen binnen die form zitten dan zullen deze bediend worden en dat kan ongewenste acties veroorzaken.

Het is ook mogelijk een plaatje(s) als knop te laten werken. Deze wordt dan via tags gekoppeld, en middels een Javascript kan er een actie uitgevoerd worden. Dit biedt de mogelijkheid om te werken met een drukknop die een puls geeft of een schakelaar. De tag van de drukknop in de PLC moet wel gereset worden, anders blijft deze hoog en heb je geen puls meer. Als de knop als een schakelaar werkt dan kan er gereset worden tijdens het schakelen met een script en kan er bepaald worden welke actie er uitgevoerd wordt.

(33)

S7-1200 PLC-Web applicatie: Afstudeerscriptie

B.3 Visualisatie

Er kunnen 2 soorten plaatjes worden ingevoegd, dit zijn statische en dynamische plaatjes. Statisch wil zeggen dat er altijd hetzelfde plaatje getoond wordt, dynamisch wil zeggen dat er meerdere

mogelijkheden van het plaatje getoond kunnen worden welke afhankelijk is van een tag.

Een statisch plaatje wordt geplaatst door deze in te voegen middels een image element. Verder is het mogelijke om opties te bepalen van het plaatje zoals hoogte en breedte.

<img src="../images/plaatje.jpg" />

Plaatjes zijn dynamisch te maken door ze dezelfde naam te geven met een ander volgnummer te geven welke gekoppeld is aan een staat van gekoppelde tag.

Bijvoorbeeld een klep, heeft stand 0 en 1, en heeft twee plaatjes. Dan wordt de naam van het plaatje van de klep in stand 0: Klep_0, en de naam van stand 1: Klep_1. In de HTML-code wordt het plaatje als volgt gedefinieerd:

<img src="../images/ Klep_:=”Klepstand”:.jpg” />

Doordat de PLC de tags omzet naar de corresponderende getalswaarde zal hier dus een 1 of 0 komen te staan en wordt het juiste plaatje getoond.

Het is vooralsnog alleen mogelijk plaatjes te laten veranderen tijdens het verzenden van een

“submit-form” of een refresh omdat dan de pagina opnieuw wordt geladen. Om puur alleen 1 plaatje te laten veranderen zal misschien wel mogelijk zijn, maar daarvoor moet deze telkens opnieuw geladen worden wat teveel geheugen gaat kosten.

(34)

S7-1200 PLC-Web applicatie: Afstudeerscriptie

B.4 Realtime

B.4.1 Waardes

Realtime werking van de webpagina is tot nu toe alleen te realiseren met veranderende waardes. Dit is mogelijk te maken door de uit te lezen tags te koppelen aan de .xml bestand wat een database maakt welke door een functie een automatische update krijgt.

Door de tags uit de database op te roepen in de HTML-code kunnen deze ge-update worden zonder dat de volledige webpagina opnieuw geladen moet worden.

Werkwijze:

Men maakt een XML file aan met de benodigde tags. In de html file moet een script dat de

verbinding maakt met de benodigde XML file. Vervolgens worden de te lezen tags gespecificeerd met een ID. Op de plek waar de tag gepresenteerd moet worden moet er gebruik gemaakt worden van een <SPAN> element.

XML:

<Bedrijfsuren>

<Pomp>:="Data_block_1".BedrijfTijdPomp:</Pomp> </Bedrijfsuren>

Javascript:

Script voor AJAX verbinding opzetten. Tags specificeren:

document.getElementById("Pomp").innerHTML=xmlDoc.getElementsByTagName("Pomp")[0].childNodes[0].nodeValue; HTML:

Op gewenste positie komt: <span id=”Pomp”></span>. In het Javascript wordt de xml file met een bepaalde interval opgeroepen wat de presentatie van de tag aardig realtime maakt.

B.4.2 Visualisatie

Plaatjes kunnen realtime gemaakt worden met een aangepaste functie voor de innerHTML ID. Wel kan dit eventueel extra geheugen kosten. Dit kan goed werken voor een lampje schakelaar, maar niet voor een schakelende schematische weergave zoals met HMI.

Een realtime grafiek laten opstellen van opgeslagen data kan ook niet omdat de webserver deze niet kan maken. Wat wel kan is deze data opslaan in een .csv bestand en deze vervolgens openen met Excel.

De mini-webserver is niet gemaakt voor de werkzaamheden die normaal door een HMI Touch panel of iets dergelijks verricht worden.

(35)

S7-1200 PLC-Web applicatie: Afstudeerscriptie

B.5 Login PLC-webpagina

B.5.1 Waarvoor?

Inloggen doet men om bepaalde permissies te krijgen op een site. Bij de PLC is dit om variabelen te kunnen schrijven. Om variabelen te lezen is dit niet nodig, dit is omdat deze al meteen op het scherm gepresenteerd worden.

Inloggen moet nu nog op de standaardpagina, maar de bedoeling is om dit ook vanaf de eigen pagina te kunnen zodat er maar 1 pagina nodig is.

De ondersteunde browsers zijn: - Internet Explorer 8.0+

- Mozilla Fire Fox 3.0+ - Opera 11.0+

Dit verklaart waarschijnlijk dat inloggen vanaf een andere browsers een error geeft.

Omdat de eigen webpagina vanaf een Ipad (Safari) bezocht gaat worden moet hier nog een oplossing voor bedacht worden. Mogelijkheden hiervoor zijn: andere webbrowser voor Ipad zoeken, inlog mogelijkheid maken op eigen pagina wat geen error geeft.

B.5.2 Users

Er is 1 standaard account om in te loggen, namelijk: “admin”, en deze accountnaam is niet te veranderen. Verder bestaat er geen mogelijkheid om meerdere users toe te voegen bij de PLC, en eventuele bevoegdheden aan de account te koppelen zoals bij HMI.

Het wachtwoord van dit account is gelijk aan het wachtwoord van de PLC (write/read protection). Is er geen wachtwoord ingesteld, dan logt men in door alleen “admin” bij user in te voeren en op ENTER of Login te drukken.

Er kan wel een aparte Login voor verschillende users gemaakt worden op de zelf ontworpen webpagina, maar voordat er met deze login gewerkt kan worden moet er eerst op de PLC met “admin” ingelogd worden omdat er dan variabelen geschreven worden. En dat maakt het dus overbodig. Tevens als je de “admin” gegevens hebt kan je ook in principe het PLC programma bewerken.

(36)

S7-1200 PLC-Web applicatie: Afstudeerscriptie B.5.3 Beveiliging

Naast het eventuele wachtwoord van de PLC is ook nog het inloggen encrypt met SSL (Secure Sockets Layer, port:443). Na de encrypted handshake tussen client en server wordt er een cookie

gegenereerd bij de client welke ervoor zorgt dat deze bevoegdheid tot het schrijven van variabelen krijgt.

Gaat de login niet goed, typfoutje of iets dergelijks, dan wordt er geen cookie geplaatst bij de client en worden zijn acties m.b.t. het schrijven van variabelen genegeerd. Er is dus opnieuw een login-sessie vereist voor het schrijven van variabelen.

Figuur 5: Login-sessie, bekeken met Wireshark

B.5.4

Eigen Login-formulier

Om de zelf ontworpen website een volledige functionaliteit te geven was mijn idee om een eigen Login-formulier maken welke is afgeleid van de standaard webpagina.

Door de bron van de webpagina te bestuderen werd duidelijk wat de te schrijven variabelen waren. Door deze over te nemen en een en eigen formulier te maken, lukte het om de login-variabele te setten waardoor de gebruiker IO kan schrijven.

Wel bleef er nog een klein probleem, ondanks dat de variabele geset wordt veranderd het formulier niet mee waarbij de user-status wordt uitgelezen met de mogelijkheid om ook weer uit te loggen. Als oplossing om toch de mogelijkheid voor het schrijven van IO apart in te schakelen is een knop gemaakt welke bij het indrukken de inloggegevens verstuurd. Wel werkt deze knop alleen maar bij de ondersteunende browsers.

(37)

S7-1200 PLC-Web applicatie: Afstudeerscriptie B.5.5 Tegenslagen

Tijdens het inloggen op de PLC vanaf Safari op de PC of Ipad komt er een 404-error terug. Na verschillende manieren te geprobeerd te hebben is met Wireshark geluisterd naar wat er op de “lijn tussen PC en PLC” gebeurd tijdens het inloggen. Hieruit blijkt dat de “encrypted handshake” niet goed verloopt. Dit komt omdat de beveiligde verbinding tussen de client (Safari) en de server (PLC) niet tot stand kan worden gebracht. Na contact met Siemens hierover blijkt de oorzaak van dit probleem in de webserver van de PLC te zitten.

Er is wel verbinding tussen client en server, maar deze verliest data of decrypt deze niet goed. Zo blijkt dat tijdens het inloggen aan het eind van de handshake bij aanvragen van de nieuwe pagina dat de cookie mist bij de client, welke van essentieel belang is.

Ook ontstaat soms tijdens de handshake een “Encrypt Alert (21)”. Na de definitie ervan opgezocht te hebben, blijkt dat dit betekend dat de decryptie niet goed is gegaan.

Figuur 6: Encrypt Alert

(38)

S7-1200 PLC-Web applicatie: Afstudeerscriptie B.5.6 Gezochte oplossingen

Omdat op de Ipad de webbrowser Safari problemen gaf, is er gezocht naar alternatieven waardoor wel de inlogfunctie zou werken. Volgens de systemmanual worden de browsers Fire Fox, Opera en IE ondersteund, dus is er naar deze browsers gezocht voor de Ipad.

Beschikbare browsers voor Ipad

Opera: Voor Ipad is Opera Mini beschikbaar. Na deze geïnstalleerd te hebben blijk deze niet bruikbaar te zijn. De browser kan de server zelf niet bereiken. De reden hiervan is onbekend, waarschijnlijk doordat het een Mini browser is en dus niet de mogelijkheden hiertoe heeft.

Andere mogelijke browsers zijn Apollo, Mercury en Dolphin. Maar deze gedragen zich hetzelfde als Safari. Wel surfen op de website van de PLC maar inloggen vertoond een 404-error.

Het lijkt er dus op dat het probleem zich niet alleen in Safari verschuilt maar ook in de Ipad zelf. B.5.7 Conclusie

Om een eigen login-formulier werkend te krijgen is de code nodig die in de webserver zit, maar deze is niet zomaar te achterhalen en Siemens geeft deze niet weg.

Het probleem dat ontstaat met het inloggen via een Ipad zal voorlopig niet door een eigen script te verhelpen zijn. Dit omdat volgens Siemens de login afhandeling security fixed zit in de ingebouwde webserver. Een oplossing hiervoor zal helaas vanuit Siemens met een update moeten komen, dus of dit nog komen gaat blijft de vraag.

B.6 Uitbreidingen

Dit onderdeel is voor de uitbreidingen m.b.t. de zonnepanelen opbrengsten en eventueel het oplaadt proces van de Fisker (elektrische auto).

De informatie over de zonnepanelen staat op een FTP server. Deze informatie zal als geheel gepresenteerd moeten worden binnen het scherm. Er kan informatie van andere servers worden getoond d.m.v. het plaatsen van “iframes” binnen de webpagina zelf. Door deze server als bron van het frame te stellen, wordt de inhoud zichtbaar binnen het desbetreffende frame.

Hoe de Fisker gepresenteerd kan worden binnen de mogelijkheden van de PLC webserver is nog niet duidelijk, omdat hier nog niks over bekend is hoe dit nu gebeurd.

B.7 Conclusie

Na dit onderzoek zijn de mogelijkheden van de PLC webserver duidelijk. Er kan een eigen webpagina ontworpen worden waarbij de gewenste data blok tags gepresenteerd worden op het beeld. Er kan ook visualisatie aan toegevoegd worden, maar dit heeft wel zijn grenzen. Dit komt omdat de ingebouwde webserver niet is bedoelt om de HMI te vervangen. Sensoren kunnen uitgelezen

worden, data tags kunnen geschreven worden en als visualisatie kunnen er afbeeldingen toegevoegd worden. Er kunnen geen grafieken gegenereerd worden omdat de webserver niet de mogelijkheden

(39)

S7-1200 PLC-Web applicatie: Afstudeerscriptie

C PLC website

C.1 Presentatie van de webpagina

De website is opgebouwd vanuit een vast frame waarbij er het werkgebied veranderd van inhoud als de gebruiker door het menu klikt. Dit frame is opgebouwd uit het menu (kolom links) welke altijd hetzelfde blijft, en de header (horizontale donkergroene balk) met de titel van het bedrijf en de datumnotatie.

De titelbalk (donkergrijs vlak) bevat de titel van het gekozen menu en heeft een gereserveerde ruimte voor het geval van alarm.

Het werkgebied (lichtgrijs vlak) verschilt totaal van inhoud t.o.v. alle andere tabbladen.

Referenties

GERELATEERDE DOCUMENTEN

Opmerking: U ziet de PRESENCE_TYPE berichten alleen wanneer een client een BOSH- verbinding instelt of wanneer de BOSH-verbinding van een client is losgekoppeld. Wanneer

- Moet tenminste één speciaal karakter bevatten - Mag geen algemeen wachtwoord zijn.. - Mag niet het woord 'Nmbrs' of

5) In de Reisproef heeft het inleveren van de parkeervergunning voor twee jaar tegengewerkt bij een aantal mensen om hun auto via de bonusregeling in te leveren. Als deze regeling

9 Dat mag zo zijn, maar daarmee wordt niet verklaard waarom juist RDS een zorgplicht zou hebben met betrekking tot het risico van klimaatverandering en aansprakelijk zou zijn

De figuur hierna schetst de verschillende types van actuatoren, sensoren en hun omvormers.. Figuur 3: Sensoren en Actuatoren bij

Using the authentication cookie identification mechanism of Shep- herd, we collected a set of authentication cookies for 6,335 sites – the automated mechanism failed to identify

7:658 BW moet een werkgever zorgen voor een veilige werkplek en deze zorgplicht ziet niet alleen op fysieke schade, maar ook op psychische schade.. Op grond

KG übernimmt insbesondere keine Garantie dafür und steht insbesondere nicht dafür ein, dass die in der Application Note illustrierten Abläufe und Funk- tionen stets wie