Übungen und praktika zur automatisierungstechnik schuljahr...
TRANSCRIPT
1
Übungen und Praktika zur Automatisierungstechnik
Schuljahr 2015/2016
Übungen sind theoretisch zu lösende Aufgaben, die die besprochenen
Themengebiete im Stil einer Prüfungsaufgabe behandeln.
Praktika sind Praxisaufgaben, die an der Laboranlage (digitale Fabrik)
der tsm realisiert werden sollen. Die Praktika sollen in
Zusammenarbeit mit den Fächern Steuerungstechnik und
Datenverarbeitung dazu führen, daß die Laboranlage am
Jahresende lauffähig ist.
Alle Praktika können Sie auch über das Internet durchführen :
http://portal.ts-muenchen.de
2
Inhalt :
Entwicklung der industriellen Automatisierung
Übung : Verfügbarkeitsberechnung
Prozessebene
Praktikum : Profibus DP
Praktikum : Profinet I/O
Übung : Kommunikationsvarianten
Übung : Entwurf von Petrinetzen
Praktikum : Handshake auf SPS-Ebene
Übung : Testfragen zum Thema Handshake
MES-Ebene
Praktikum : Kommunikation mit OPCuA
Praktikum : Programmieren in VB classic
Praktikum : Einführung in Visual Studio
Praktikum : SPS objektorientiert ansprechen
Praktikum : Schnittstelle SPS-PC
Praktikum : Verkettung von Modulen in MES
Praktikum : manuelles Bedien-Terminal in MES
IT-Ebene (ERP)
Praktikum : Webservices mit Telnet bedienen
Praktikum : Webservices mit Browser lesen
Praktikum : XML-Auftragsdaten von ERP lesen
Abschlußprojekt
Ein MES-System für die digitale Fabrik
3
Übung : Verfügbarkeitsberechnung
Nach etwa 120 Betriebsstunden zeigt ein neu erworbener Rechner erste Mängel. Die Fehlersuche,
Beschaffung von Ersatzteilen und die Reparatur erfordern zwei Stunden. Danach läuft der Rechner
528 Stunden problemlos, bis er erneut ausfällt. Die Reparatur benötigt fünf Stunden. Weitere 288
Stunden später fällt der Rechner ein weiteres Mal aus und ist dieses Mal schon nach einer halben
Stunde einsatzbereit.
1. Aufgabe : Berechnen Sie MTBF und MTTR, p und q !
Berechnung der Gesamtausfallwahrscheinlichkeit der in Serie verschalteten Module A und B :
Erwartete mittlere Up-Time Komponente A: ~ 62 Tage Erwartete mittlere Up-Time Komponente B: ~ 230 Tage Erwartete mittlere Down-Time Komponente A: ~ 32 Minuten Erwartete mittlere Down-Time Komponente B: ~ 11 Stunden 2. Aufgabe : Berechnen Sie p und q des Gesamtsystems !
4
Berechnung der Gesamtausfallwahrscheinlichkeit der redundant ausgelegten und parallel verschalteten Komponenten A und B :
Erwartete mittlere Up-Time Komponente A: ~ 62 Tage Erwartete mittlere Up-Time Komponente B: ~ 230 Tage Erwartete mittlere Down-Time Komponente A: ~ 32 Minuten Erwartete mittlere Down-Time Komponente B: ~ 11 Stunden 3. Aufgabe : Berechnen Sie p und q des Gesamtsystems !
Struktur A :
Struktur B :
4. Aufgabe : Überlegen Sie zunächst, und dann rechnen Sie : Welche Struktur ist besser ?
5
Hilfsblatt zum Praktikum : digitale Fabrik der tsm
Zuliefereinheit
Soft-SPS in Codesys oder
Simatic Step7
auf Server MES1
Lineararm
Vertikalarm
Horizontalarm
Lager /Ausliefer-
Einheit
IP:1.0.6.3
DP : 3
IP:1.0.6.4
DP : 4
IP:1.0.6.5
DP : 5
IP:1.0.6.6
DP : 6
IP:1.0.6.2
DP: 2
Master
IP:1.0.6.1
DP: 1
Reserve
(1.0.6.7)
6
Praktikum : Profibus DP
1. Aufgabe :
Bauen Sie einen Lichtschalter !
Die Betätigung des Tasters an der Station Band soll eine der Lampen an der
Station Vertikalarm (…und wenn das geht dann alle Lampen aller Stationen)
ansteuern. (Sie können auch irgendwelche Mechanikbewegungen auslösen..)
2. Aufgabe :
Bauen Sie ein „Lauflicht“ aus Pneumatikfunktionen über die gesamte Anlage, also ein
Modul nach dem anderen soll einen Zylinder ausfahren.
Lösungshilfe :
Die Lösung sieht so aus, daß nach Start durch einen Taster an der ersten Station jeweils die
Meldung des Endschalters am Zylinder (der diesen auch wieder einfahren läßt) an die
nächste Station weitergegeben wird :
Station n oder Taster zu Station n+1
Endschalter am Zylinder
(… das geht besser, soll aber hier nicht der Schwerpunkt sein !)
Für die Festlegung der Ein-Ausgänge an den Slaves und am Master verwenden sie bitte die
Adressdefinitionen der Signale „Start“ und „Acknowledge“ an den Stationen,
die Sie im Pflichtenheft auf Seite 39 finden.
Arbeiten Sie unbedingt nach Pflichtenheft mit bibliotheksfähigen FBs !!
S Q
R
Ventil
7
Praktikum : Profinet I/O – Kommunikation
Wir greifen hier schon ein wenig vor, und betrachten Signale, die wir bei der modularen
Anlagenkonzeption im zweiten Halbjahr benötigen werden.
Die einzelnen Fertigungsmodule (Band, Linear usw..) werden über standardisierte
Kommunikationssignale gesteuert :
Ready, Start, Busy, Acknowledge und Error
- Lesen Sie in der Anlagendokumentation („Gesamtdokumentaion der Anlage“ auf portal.ts-
muenchen.de) nach, welche Speicher als Abbild in der SPS für diese Signale benutzt werden.
Sie finden diese Angaben auf Seite 16.
- Definieren Sie in einer Station Ihrer Wahl diese Speicherkonfiguration (DB)
- Koppeln Sie das der Station räumlich zugeordnete Wago-Device mit der anhängenden
Meldeleuchte über Profinet I/O an Ihre Station
- Lassen Sie die Meldeleuchte für die Signale leuchten, indem Sie in einer AWL-Anweisung
die DB-Werte auf die konfigurierten Ein- und Ausgängen übertragen
..testen !
8
Übung : Aufgaben zum Petrinetz - 1
Stellen Sie die Funktion eines Dreistufen-Automatikgetriebes durch ein Petrinetz dar.
Ein- und Ausgänge sind :
- Drehzahl n(max) überschritten
- Drehzahl n(min) unterschritten
- Fahrhebel auf N oder D (Leergang oder Fahrbetrieb)
- Fahrstufe 0 (Leerlauf)
- Fahrstufen 1-3
Wenn Sie das geschafft haben, können Sie noch einen weiteren Eingang einfügen :
- Kickdown (Taster bei Vollgas)
Die Diskussion über Vor- und Nachteile verschiedener Lösungen soll zeigen, wie gut man
an einer solchen grafischen Darstellung über Funktionen reden kann !
9
Übung : Aufgaben zur Handshakekommuniaktion
Zur Steuerung einer Verpackungsanlage werden 3 SPS (A, B und C) eingesetzt.
Gerät A steuert neben der eigenen Mechanik auch das Timing der Anlage.
Hierzu wird ein Protokoll kommuniziert, das folgende Signale umfasst :
READY damit signalisieren B und C, daß sie betriebsbereit sind
START damit startet A die Geräte B und C (unabhängig voneinander)
BUSY damit melden B und C, daß sie in Betrieb sind (Mechanik arbeitet)
ENABLE damit wird Gerät A von außen (Bediener) beauftragt, die Gesamtfunktion
zu starten
Der Protokollablauf ist nun folgender (Textbeschreibung) :
Mit ENABLE=1 startet SPS A ihre Mechanikfunktion (dies ist kein Kommunikationssignal und
wird deshalb im Timing nicht dargestellt). Weiter startet A die beiden SPS B und C jeweils
mit START, aber nur, wenn beide mit READY ihre Betriebsbereitschaft melden. In B und C
werden die START-Signale von A im Sinne eines Handshakes jeweils mit dem Signal BUSY
quittiert. BUSY bleibt solange 1, bis die Mechanikfunktion der jeweiligen Station beendet ist
(= Funktionshandshake). Wenn ENABLE dann noch 1 ist, werden A und B erneut gleichzeitig
gestartet, sobald beide fertig sind (BUSY = 0).
1) Zeichnen Sie ein Timingdiagramm für alle Kommunkationssignale der Anlage.
2) Zeichnen Sie für alle beteiligten Geräte je ein Petrinetz, das die Funktion des Geräts
grafisch beschreibt.
10
Praktikum : Programmieren mit Graph 7
Wählen sie eine Anlagenstation mit mindestens 2 Pneumatikzylindern.
Die Klemmenbelegung entnehmen Sie aus der Gesamtdokumentation im Portal unter
„digitale Fabrik“
1) Programmieren Sie nun folgenden Ablauf :
Nach Schalten des Wahlschalters auf AUTO sollen die Zylinder seriell auslaufen, also immer
einer nach dem Anderen: Z1 läuft aus bis zum Endschalter, dann zurück, bei Erreichen des
Ruhekontakts beginnt Z2 und so weiter…
2) Nun folgenden Ablauf :
Nach Schalten auf AUTO laufen die Zylinder gleichzeitig aus, jeder bei Erreichen seines
Endschalters zurück, wenn beide in Ruhe sind das Ganze von vorne …
3) Nun folgender Ablauf :
Wenn der Schalter auf MANU liegt, läuft Zylinder 1 ständig vor und zurück, wenn der
Schalter auf AUTO liegt, laufen beide wie in Aufgabe 2
11
Praktikum :
Handshakekommunikation in der Prozessebene
(Kommunikation mit Profibus DP)
Ziel :
Anlagenfunktionen sollen durch den besprochenen Standardhandshake
(ready, start, acknowledge, busy, auftrag) gesteuert werden. Sie müssen sich in eine
bestehende Anlage einarbeiten und mit fertigen Standard-Komponenten umgehen.
Sie finden die Dokumentation der Schnittstellen und die Vorgaben für den Programmaufbau
in der Gesamtdokumentation der digitalen Fabrik auf http://portal.ts-muenchen.de
Aufgabe :
Dearchivieren sie das fertig konfigurierte Projekt : //r2d2/filer/at/hand15.zip
Die Master-SPS ist fertig programmiert. Sie führt am Profibus ein Programm aus, das alle
Stationen in Endlosschleife mit einem Handshake bedient.
Sie sollen eine Slave-Station nach Pflichtenheft an den Master konfigurieren und in pflichten-
heftkonformer Struktur (FBs für Kommunikation und Mechanikaktion nach Vorgabe,
Variablendefinition in den FB) eine Mechanikfunktion (Zylinder rein/raus) durchführen
lassen. Die Kommunikationssignale sollen wie in den Modulbeschreibungen angegeben an
den Meldeleuchten visualisiert werden (ohne ERROR).
Beachten Sie insbesondere auch den „Nullauftrag“ im Handshakeprotokoll !
Dokumentation finden Sie hier :
Standard-Handshakeprotokoll : Seite 12
Adressbelegung bei Profibuskommunikation : Seite 15
Programmstruktur, Bausteinadressen : Seiten 20 und 21
Klemmenbelegung der Module : ab Seite 22
Meldelampen und Profinet : Seite 17 und jeweils bei den Modulbeschreibungen ab S. 22
12
Ein paar Testfragen zum Thema „Handshake“ :
1) Wie ist die Standardschnittstelle für die Modulkommunikation unter openTCP definiert ? Schauen
Sie in der Doku nach und geben Sie die Adressen für Start und Acknowledge an :
Start : …………………….. Acknowledge : ……………………………………..
2) Was ist an dieser Realisierung für den Standardhandshake der Anlage falsch ?
Start
/Start
/Action
3) Erklären Sie die unterschiedlichen Funktionen der Signale Acknowledge und Busy :
4) Welche Funktion hat im Standardhandshake der Nullauftrag ?
Ready
/Busy
Ack.
Busy
Action
/Ack
13
Praktikum : Peripherie-Zugriff mit OPC-Client
Wir greifen mit einem OPC-Client auf die Tags eines OPC-Servers, der im Labornetz läuft, zu.
Der Server ist über integrierte TCP/IP-Treiber mit der Prozessebene, also den SPS der
Fertigungmodule, verbunden.
Hierzu starten sie zunächst den Simatic Manager, wählen an irgendeiner Station eine
Zylinderbetätigung aus, die keinen mechanischen Schaden bei beliebiger Betätigung
anrichten kann, und hängen im OB1 den entsprechenden Ausgang an das Merkerbit 100.7
Dann starten Sie den OPC-Client (Softing OPCua Client) :
14
Nun versuchen Sie, den Ignition OPC-Server im Labornetz zu erreichen. Der Server hat den DNS-Namen mes1, der OPC-Server arbeitet mit einem Binärprotokoll auf Port 4096. Der Server ist mit einer Userkennung geschützt, diese lautet opcuauser mit dem Passwort password. Im Message-Feld muß der geglückte Verbindungsversuch zu lesen sein. Im Fenster “Configuration Browse“ sehen Sie nun den Server und die Devices. Klicken Sie auf ein Device, und schauen Sie nach, in welchem numerischen Namespace-Knoten (ns= ?) der Zugriff erfolgen muß. Erzeugen Sie eine Subsciption (wissen Sie noch, was das ist ?). Darin ein neues Tag, diesem geben Sie als Tag-ID einen String : s=[Stationsname]MB100 (Den Stationsnamen können Sie in Configuration Browse nachschauen). Nun lesen sie erstmal den Wert, und dann schreiben Sie 128 (Bit 7 = 1) hinein. Bewegt sich die Mechanik ? Zweiter Versuch : Verwenden Sie von Zuhause aus den OPC-Client von Softing (in der Schule auf einen Stick). Damit greifen Sie auf den zweiten OPC-Server der Schule zu, der komfortablerweise das Browsen von Tags erlaubt, er benötigt keine Userkennung. Die URL aus dem Internet lautet : opc.tcp://62.245.200.166:4097 Steuern Sie den Vertikalarm über M100.7. Mit der Anlagenkamera können sie zuschauen, ob der Zugriff über das Internet klappt ! Wenn er sich schon bewegt, spielt gerade jemand anders ;-)
15
Die Kamera finden sie im Portal unter digitale fabrik …
16
Praktikum : Einführung in Visual Studio
Zeichen Sie zu jeder Aufgabe ein Struktogramm !!
1. Aufgabe :
Bauen sie das Projekt aus dem AT-Skript auf Ihrem Rechner nach.
Als Pfade geben Sie Ordner auf c:\ an, die sie hierzu unter Ihrem Namen erzeugen.
2. Aufgabe :
Erzeugen Sie ein neues Projekt, das die Eingabe eines Names erlaubt.
Es soll dann prüfen, ob es sich um Ihren Namen handelt, und wenn ja „hallo Meister“,
ansonsten „hallo Fremder“ ausgeben.
3. Aufgabe :
Erzeugen Sie ein neues Projekt, das die Eingabe eines Namens erlaubt. Es soll dann prüfen,
ob es sich um Ihren Vor- oder Familiennamen handelt, und dann „hallo Meister“, oder
„hallo Fremder“ ausgeben.
Die hierzu nötige ODER-Verknüpfung in der if-Anweisung suchen Sie bitte im Internet !
17
Praktikum : Zugriff auf OPC aus Visual Basic
Sie sollen den direkten Zugriff auf Tags in den OPC-Devices ausprobieren.
Hierzu verschaffen Sie sich zunächst einen Überblick über die OPC-Sicht der Anlage.
Wir verwenden hierfür einen anderen OPCuA-Server, der auf mes2 installiert ist,
(KEPServerEX.V5 der Firma KepWare) dieser bietet den Vorteil, Tags browsen zu können.
1) Greifen Sie mit Ihrem OPC-Client (Softing) auf den OPCuA-Server auf mes2 zu.
Der Server läuft auf Port 4097, er benutzt ein Binärprotokoll, der Zugriff kann
anonym erfolgen (keine Userkennung).
2) Browsen Sie den Server, bis sie die Tags gefunden haben, die den Vertikalarm
steuern. Wir laden das Projekt „OPC_vertikal“ auf die Anlage, damit können Sie dann
den Dreharm über den Merker M100.7 steuern. Probieren Sie das manuell mit
dem graphischen OPC-Client aus.
3) Nun basteln Sie ein VB-Projekt, das den schreibenden Zugriff auf den Steuermerker
erlaubt. Die Syntax fürs Schreiben eines Tags aus VB lautet :
<Objectname>.WriteValue("<Server-URL>", "<Tag-Name>”, <Value>)
Alle Werte in spitzen Klammern müssen durch die korrekten Werte ersetzt werden.
Das Objekt erzeugen Sie wieder durch Ziehen des EasyUAClients in die Formgrafik, sie
können dann auch den Namen rauslesen. Den korrekten Tagname entnehmen Sie dem
grafischen OPC-Client, den Wert holen Sie aus einer Textbox.
Wert in Textbox schreiben -> Button drücken, der den Schreibvorgang auslöst.
18
Übung : Kommunikation SPS und PC
Bei den beiden folgenden Aufgaben sollen eine SPS und ein Leitrechner (MES) miteinander
über das Standard-Handshakeprotokoll kommunizieren.
Das Gerät A schickt einen Auftrag (Wert = 2), und startet Gerät B, wenn dieses READY
meldet.
Dann läuft der Handshake ab.
Wenn Gerät B mit der relevanten Tätigkeit fertig ist, beginnt der Ablauf von vorne.
1. Aufgabe :
Gerät A ist der Rechner, Gerät B die SPS
Zeichen Sie Petrinetz und Struktogramm zur Realisierung !
2. Aufgabe :
In der Praxis Unsinn, als Übung aber gut : Gerät A ist die SPS, B ist der Rechner.
Zeichen Sie Petrinetz und Struktogramm zur Realisierung !
19
Praktikum : SPS und PC als Handshakepartner
Beschäftigen Sie sich nochmals mit dem Standardhandshake. Sie sollen über direkten Zugriff auf die OPC-Tags eine Station mit einem Auftrag versorgen und dann protokollkonform starten. Es ist sicher hilfreich, nebenbei mit einem grafischen OPC-Client die Tags zu beobachten. 1. Aufgabe : Greifen Sie zunächst nur lesend auf die SPS zu. Schreiben Sie ein Programm,
das den Funktionsstatus der SPS anzeigen kann. 2. Aufgabe : Nun schreiben Sie eine vollständige Routine, die ein Modul protokollkonform
steuern kann. Gestalten Sie die Grafik so, daß komfortabel getestet werden kann, zeigen sie soviel wie möglich an !
20
Praktikum : Verkettung in MES
Sie benötigen Visual Basic 2012 Express und die Klassenbibliothek tsmClassLib2015.
Dazu laden wir noch das S7-Musterprojekt MES_2016.zip auf die Anlage.
Struktogramme zeichnen !!
1. Aufgabe :
Erstellen Sie ein MES-Projekt, das auf Knopfdruck 2 Fertigungsmodule seriell koppelt.
Als Auftrag geben sie „Teil 1“ (siehe Gesamtdokumentation der Anlage im Portal) vor
Hierzu sollten sie den Logikentwurf unbedingt mit einem Struktogramm vorbereiten, damit
die Struktur klar ersichtlich wird !
2. Aufgabe :
Erstellen Sie ein MES-Projekt, das auf Knopfdruck 2 Fertigungsmodule parallel starr koppelt.
Die Aufträge sollen an Textfeldern einzugeben sein !
Hierzu sollten sie den Logikentwurf unbedingt mit einem Struktogramm vorbereiten, damit
die Struktur klar ersichtlich wird !
21
Praktikum : RFID-Controller ansprechen
Sie arbeiten wieder unter Visual Studio 2012 mit der Klassenbibliothek tsmClassLib2015.
1. Aufgabe : Schreiben Sie ein Programm, das in einer Polling-Schleife den Zustand einer RFID-Antenne ausliest. Hier muß zunächst „fehler“ und bei Eintritt eines Tags in den Erkennungsbereich „ok“ angezeigt werden.
2. Aufgabe : Nun schreiben Sie eine vollständige Routine, die in der Lage ist, ein erkanntes
Tag zu lesen und zu schreiben. Schreiben Sie Testwerte drauf und lesen Sie
diese wieder.
3. Aufgabe : Nun schreiben Sie eine Routine, die in der Lage ist, eine Zeit in
der Anlage zu messen. Hierzu wird folgende Funktion benutzt :
An der Bandstation wird Dauerlauf für lose Kopplung beauftragt.
Nun prüft man, ob an einer Station ein Tag eintrifft.
Ist dies der Fall, wird die Uhrzeit auf das tag geschrieben.
Dann wird dem Band die Vereinzelung des Bauteils beauftragt.
An der nächsten Station geschieht das Gleiche, die Differenzzeit
zwischen den beiden Zeiten wird angezeigt (in Sekunden).
Tipp : In Vb gibt es umfangreiche Unterstützung zur Zeitmessung.
Suchen Sie im Web nach“Date“, und z.b. “now“ , “time“ oder Ähnlichem.
22
Übung : XML-File schreiben
Sie sollen ein für unsere Anlage brauchbares XML-File schreiben, das die Bauteilvarianten für
alle 3 Bauteile, den Wert für das Auslieferlager, und eine Meldung „Fehler“ beinhaltet, die
als Zahl (0 oder 1) anzeigt, ob das Produkt mit der gesuchten ID vorhanden ist
Praktikum : manueller Aufruf von Webservices
Auf dem Server ERP2011 im Labornetz der Technikerschule liegen Stubs zur Auftragsvergabe
für die digitale Fabrik. Die Aufträge sind in einer Datenbank auf dem Server gespeichert.
Aktuell liegen 9 Aufträge vor, die jeweils eine Statusinformation error (0=ok), Bauteile-
information für die Produkte (teil1 bis teil3) und die Information, in welches Lager das
Bauteil verbracht werden soll (lager), beinhalten.
Die Aufträge sind durch eine laufende Nummer id gekennzeichnet.
Der Aufruf kann auch mit einem Browser erfolgen, das Format für den Aufruf eines
Webservice muß einer vollständigen URL entsprechen :
PROTOKOLL :// DNS-NAME : SAP / DOKUMENTNAME ? PARAMETER
Hier :
Protokoll : http
Servername : ERP2011 (in der Schule auch : 1.0.2.4 von außen : 62.245.200.166)
SAP(Port) : 91
Dokument(Stub) : get_auftrag.php
Parameter : id=n (mit n = 1 …9)
Rufen Sie den Webservice mit einem Browser (optimal : Firefox) auf !
23
Praktikum : XML-Daten lesen
1) Schreiben Sie in VB 2010 ein Forms-Projekt, das bei Eingabe einer Produkt-ID
in 4 Textfeldern die 3 Bauteile und das gewünschte Lager für das Produkt ausgibt.
Verwenden Sie zunächst die Schul-Klassenbibliothek mes2016.dll
2) Nun zeigen Sie , daß sie das auch selber können :
Sie sollen die Produktaufträge aus dem ERP-System ohne Nutzung der Schul-
Klassenbibliothek mes2016.dll lesen, mit den Werkzeugen von Microsoft.
Erzeugen Sie hierzu ein Fenster, das die Eingabe der Produkt-ID erlaubt,
sowie die Angabe eines gesuchten Bestandteils (z.b. „unten“)
Wenn das klappt, versuchen sie mal, den InnerText des root-Objekts zu lesen.