23.10.2014 Aufrufe

Ausarbeitung Projektarbeit - Teil 2

Ausarbeitung Projektarbeit - Teil 2

Ausarbeitung Projektarbeit - Teil 2

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>Ausarbeitung</strong> <strong>Projektarbeit</strong> - <strong>Teil</strong> 2<br />

<strong>Ausarbeitung</strong> <strong>Projektarbeit</strong> – <strong>Teil</strong> 2<br />

Objektorientierte Programmierung des<br />

Zulieferers mit CoDeSys V3<br />

Dominik Huth Te2b<br />

Dominik Huth Te2b Seite 1 von 11


<strong>Ausarbeitung</strong> <strong>Projektarbeit</strong> - <strong>Teil</strong> 2<br />

Inhalt:<br />

1. Funktionsbeschreibung des Zulieferers<br />

2. Hardwareanbindung an die SPS<br />

3. Was ist EtherCAT?<br />

4. Vergleich Software- und Hardware-SPS<br />

5. SPS-Programm des Zulieferers<br />

a.) Verwendete Programmiersprachen<br />

b.) Bausteine und ihre Funktionen<br />

c.) Betriebsarten<br />

d.) Handshake mit MES2<br />

6. Objektorientierung in der SPS-Technik und Umsetzung in CoDeSys<br />

7. Neue Sprachmittel und Schlüsselwörter<br />

8. Schlüsselwörter für die oo-Programmierung in CoDeSys<br />

9. Erstellung von Varianten durch Vererbung<br />

10. Beispiel aus der Praxis für die oo-Programmierung in CoDeSys<br />

a.) Die Klasse Zylinder<br />

b.) Blick in den Baustein Zylinder (FB)<br />

c.) Blick in die Methode ausfahren<br />

11. Blick in den Baustein Hauptprogramm<br />

12. Aufruf der Klasse Zylinder<br />

1. Funktionsbeschreibung des Zulieferers<br />

Der Zulieferer ist<br />

mechanisch aus 3<br />

Lagern, die mit<br />

verschieden farbigen<br />

Bausteinen bestückt<br />

sind, einem<br />

Förderband, einer<br />

Antenne zum<br />

Beschreiben der RFIDs<br />

und einem Stopper<br />

aufgebaut. Er muss die<br />

Materialien für eine<br />

Charge (3 Bauteile)<br />

zum richtigen Zeitpunkt<br />

(„just in time“) und in<br />

der für die Fertigung<br />

benötigten Reihenfolge<br />

(„just in sequence“)<br />

bereitstellen. Die<br />

Fertigungsschritte<br />

werden vom MES2 über<br />

einen Handshake dem<br />

Zulieferer übergeben.<br />

Lager 1<br />

Antenne zum Beschreiben<br />

der RFIDs<br />

Förderband<br />

Lager 2 Lager 3<br />

Zylinder A<br />

Zylinder B<br />

Zylinder C<br />

Landstraße<br />

Stopper<br />

Bedienpult<br />

Dominik Huth Te2b Seite 2 von 11


<strong>Ausarbeitung</strong> <strong>Projektarbeit</strong> - <strong>Teil</strong> 2<br />

2. Hardwareanbindung an die SPS<br />

Für die Anbindung der Sensoren und Aktoren des Zulieferers wurde das I/O-Modul EK1100<br />

von der Firma Beckhoff ausgewählt. Das I/O-Modul kann individuell modular mit Ein- und<br />

Ausgangskarten erweitert werden. Über den Feldbus EtherCAT wurde das I/O-Modul mit<br />

dem PC verbunden auf dem die Soft-SPS CoDeSys Control Win V3 läuft.<br />

Eingangs- und<br />

Ausgangskarten<br />

Feldbus<br />

EtherCAT<br />

M<br />

Motor<br />

Lichtschanke<br />

3. Was ist EtherCAT?<br />

EtherCAT ist ein von der Firma Beckhoff entwickelter<br />

Feldbus. Ein Blick in das ISO-OSI-Model (Bild<br />

rechts) verrät die Verwandtschaft zum Ethernet. Der<br />

vom Master versendete Standard Ethernet Frame<br />

wird nicht wie bei anderen Industrial Ethernet<br />

Lösungen in jeder Anschaltung zunächst empfangen,<br />

dann interpretiert und die Prozessdaten<br />

weiterkopiert. Die EtherCAT Slave-Geräte<br />

entnehmen die für sie bestimmten Daten, während<br />

das Telegramm das Gerät durchläuft. Ebenso<br />

werden Eingangsdaten im Durchlauf in das<br />

Telegramm eingefügt. Das Übertragungsverfahren<br />

des EtherCAT beruht auf den Voll-Duplex<br />

Eigenschaften von Ethernet. Auf der<br />

Verkabelungsebene ermöglicht EtherCAT eine große<br />

Vielfalt von Topologien wie Linie, Baum, Ring, Stern<br />

und deren Kombinationen bei einer maximalen<br />

Leitungslänge von 100m zwischen zwei<br />

<strong>Teil</strong>nehmern. Es ist jedoch darauf zu achten, dass für EtherCAT spezielle Switche benötigt<br />

werden.<br />

Der exakten Synchronisierung kommt immer dann eine besondere Bedeutung zu, wenn<br />

räumlich verteilte Prozesse gleichzeitige Aktionen erfordern. Der Ansatz zur<br />

Synchronisierung ist der exakte Abgleich verteilter Uhren. Dabei wird die Uhrzeit der Haupt-<br />

Uhr via EtherCAT zu den Neben-Uhren übertragen und diese laufzeitkompensiert<br />

nachgeregelt. Bei EtherCAT ist die Haupt-Uhr in einem Slave-Gerät, so dass auch hierfür<br />

keine spezielle Hardware im Master erforderlich ist.<br />

Dominik Huth Te2b Seite 3 von 11


<strong>Ausarbeitung</strong> <strong>Projektarbeit</strong> - <strong>Teil</strong> 2<br />

4. Vergleich Software- und Hardware-SPS<br />

Die SPS ist im Falle einer Soft-SPS<br />

nur noch als Software vorhanden<br />

und nicht mehr mit einer getrennten<br />

Hardware. Soft-SPSen bieten die<br />

Möglichkeit, mehrere Tasks mit<br />

unterschiedlicher Priorität auf einer<br />

CPU laufen zu lassen. So können<br />

schnellere und langsame Prozesse<br />

getrennt werden. Das Zeitverhalten<br />

einer Soft-SPS ist im Vergleich zur<br />

Hardware SPS leicht verändert<br />

(siehe Zeichnung), weil die<br />

Steuerung nur eine Task innerhalb<br />

des Betriebssystems ist. Dies kann<br />

zu kleineren Differenzen in der<br />

Bearbeitungsdauer eines Zyklus der<br />

Steuerung führen.<br />

Software SPS<br />

Tasks der<br />

Anwenderprogramme<br />

lese PA<br />

schreibe PA<br />

Zyklus<br />

Betriebssystem<br />

Der Einsatz von Soft-SPSen hat einen wesentlichen kaufmännischen Vorteil, weil ein PC<br />

sowohl als Visualisierungsrechner, Programmiergerät und Automatisierungsgerät genutzt<br />

werden kann. Es sind nicht mehr drei verschiedene Geräte notwendig. Dies ist aber<br />

gleichzeitig der größte Nachteil. Die Sicherheit des Steuerungsprogramms auf einer PC-<br />

Hardware, auf der noch weitere Programme ablaufen, wird von vielen Fachleuten als<br />

unzureichend sicher gesehen. Ein weiterer Nachteil dieses Konzeptes ist es, dass ein<br />

dezentraler Aufbau einer Anlage nur sehr schwer realisierbar ist. Der Wunsch, die<br />

„Intelligenz“ auf verschiedenen Steuerungs-CPUs in der Anlage zu verteilen, ist nicht<br />

möglich. Die komplette Anlage wird von einem zentralen Punkt gesteuert. Fällt dieser<br />

zentrale Punkt aus, so ist die gesamte Anlage „tot“.<br />

CoDeSys enthält bereits eine Soft-SPS, welche es erlaubt einen Windows-PC für<br />

Steuerungsaufgaben zu nutzen. Der Anschluss an die Hardware ist über den Ethernet<br />

basierten Feldbus EtherCAT mit einer üblichen Netzwerkkarte realisiert worden.<br />

5. SPS-Programm des Zulieferers<br />

Das SPS-Programm besteht grundsätzlich aus drei <strong>Teil</strong>en:<br />

1. Der Betriebsartenbaustein nimmt die Befehle des Anlagenbedieners auf, verarbeitet diese<br />

und informiert ihn über den Zustand des Zulieferers.<br />

2. Bausteine für die Mechanikfunktionen<br />

3. Der Handshakebaustein kommuniziert mit dem übergeordneten MES Rechner.<br />

Im Zusammenspiel dieser Bausteine ergibt sich folgende Funktion des Zulieferers:<br />

Auftrag wird vom MES an die SPS gesendet => Handshake zwischen SPS und MES wird<br />

ausgeführt => ist die richtige Betriebsart vorhanden, wird der Auftrag vom Zulieferer<br />

bearbeitet => ist der Auftrag abgearbeitet, meldet die SPS das dem MES.<br />

5a. Verwendete Programmiersprachen<br />

Ablaufsprache (AS)<br />

Die Ablaufsprache ist eine der fünf IEC 61131-3 genormten Programmiersprachen. Die<br />

graphisch orientierte Sprache dient zur Programmierung von SPSen in Form von<br />

Dominik Huth Te2b Seite 4 von 11


<strong>Ausarbeitung</strong> <strong>Projektarbeit</strong> - <strong>Teil</strong> 2<br />

Zustandsmaschinen. Die Ablaufsteuerung ist eine geschlossene Kette von<br />

Steuerungsschritten mit angegliederten Aktionen und Transitionen. Jedem Schritt können<br />

Aktionen zugefügt werden. Man unterscheidet zwischen drei unterschiedlichen Aktionen<br />

„entry“ (wird beim Starten des Schrittes bearbeitet), „active“ (wird während des<br />

entsprechenden Schrittes bearbeitet) und exit (wird beim Verlassen des Schrittes bearbeitet).<br />

Aktionen und Transitionen können in einer der 5 Sprachen der IEC 61131-3 erstellt werden.<br />

Strukturierter Text (ST)<br />

Strukturierter Text ist die Sprache unter den IEC-Sprachen, die am engsten verwandt ist mit<br />

den sogenannten „höheren“ Programmiersprachen. ST ist die mächtigste, hinsichtlich des<br />

Speicherbedarfs jedoch nicht immer die effizienteste Sprache.<br />

5b. Bausteine und ihre Funktionen<br />

Hauptprogramm (PRG)<br />

Erstellsprache PRG:<br />

Strukturierter Text<br />

Funktion: Baustein zum Setzen der Attribute der FBs und zum Aufruf der FBs.<br />

Betriebsarten (FB)<br />

Erstellsprache FB:<br />

Ablaufsprache<br />

Erstellsprache Aktionen, Transitionen: Strukturierter Text<br />

Funktion: Baustein zur Steuerung der Betriebsarten Handbetrieb,<br />

Automatikvorwahl, Automatik und Störungen.<br />

Handshake (FB)<br />

Erstellsprache FB:<br />

Ablaufsprache<br />

Erstellsprache Aktionen, Transitionen: Strukturierter Text<br />

Funktion: Baustein für den Handshake zwischen SPS und MES.<br />

Mechaniksteuerung (FB)<br />

Erstellsprache FB:<br />

Ablaufsprache<br />

Erstellsprache Aktionen, Transitionen: Strukturierter Text<br />

Funktion: Baustein zur Steuerung der Mechanikfunktionen des Zulieferers.<br />

Zylinder (FB)<br />

Erstellsprache FB:<br />

Ablaufsprache<br />

Erstellsprache Methoden:<br />

Strukturierter Text<br />

Funktion: Baustein stellt die Klasse „Zylinder“ mit ihren Methoden dar.<br />

GVL_Zulieferer<br />

Globale Variablen des Zulieferers. Hier sind die Variablen für die Ein- und Ausgänge, sowie<br />

die Variablen für den Handshake mit dem MES2 deklariert.<br />

5c. Betriebsarten<br />

Grundsätzlich gibt es im Zulieferer vier verschiedene Betriebsarten.<br />

1. Handbetrieb (Wahlschalter am Bedienpult steht auf „Manu“; weiße Lampe am<br />

Bedienpult leuchtet)<br />

Im Handbetrieb kann durch das Betätigen des Start-Tasters am Bedienpult die<br />

Anlage „frei“ gefahren werden. Der Stopper wird dazu geöffnet und das Förderband<br />

Dominik Huth Te2b Seite 5 von 11


<strong>Ausarbeitung</strong> <strong>Projektarbeit</strong> - <strong>Teil</strong> 2<br />

nach links gefahren. So können Bausteine zum Beispiel nach einer Störung nach<br />

links aus der Anlage gefahren werden.<br />

2. Automatikvorwahl (Wahlschalter am Bedienpult steht auf „Auto“; grüne Lampe am<br />

Bedienpult blinkt)<br />

Wird der Wahlschalter am Bedienpult auf „Auto“ gestellt, gelangt man in die<br />

Betriebsart Automatikvorwahl. Durch betätigen des „Starttaster“ kommt man in die<br />

Betriebsart Automatik.<br />

3. Automatik (Wahlschalter am Bedienpult steht auf „Auto“; grüne Lampe am<br />

Bedienpult leuchtet)<br />

In der Betriebsart Automatik können Aufträge, die vom MES2 kommen, abgearbeitet<br />

werden. Folgende Aufträge wurden definiert:<br />

a.) Auftrag 0 => Der Handshake mit dem MES2 wird ausgeführt, jedoch<br />

werden keine mechanischen Aktionen angestoßen.<br />

b.) Auftrag 1 => Baustein wird aus dem Lager 1 auf das Förderband<br />

geschoben. Das Förderband befördert den Baustein bis zur Antenne an<br />

der der RFID des Bausteins beschrieben wird.<br />

c.) Auftrag 2 => Baustein wird aus dem Lager 2 auf das Förderband<br />

geschoben. Das Förderband befördert den Baustein bis zur Antenne an<br />

der der RFID des Bausteins beschrieben wird.<br />

d.) Auftrag 3 => Baustein wird aus dem Lager 3 auf das Förderband<br />

geschoben. Das Förderband befördert den Baustein bis zur Antenne an<br />

der der RFID des Bausteins beschrieben wird.<br />

e.) Auftrag 4 => Ist die Materialsequenz von 3 Bausteinen je eine Charge<br />

fertig, kann mit Aufrag 4 die Auslieferung an das Hauptwerk angestoßen<br />

werden.<br />

f.) Auftrag 5 => Die bereits auf das Band geschobenen Bausteine können<br />

nach links aus der Anlage gefördert werden.<br />

4. Störungen (weiße Lampe am Bedienpult blinkt)<br />

Wird im Automatikbetrieb der Not-Aus betätigt oder ist das Lager leer aus dem ein<br />

Baustein gefahren werden soll, geht die Anlage in die Betriebsart Störung.<br />

Durch das Entriegeln des Not-Aus bzw. das Auffüllen des entsprechenden Lagers<br />

welches die Störung verursacht hat, wird die Störung „quittiert“. Der Zulieferer<br />

befindet sich jetzt wieder in der Betriebsart Automatikvorwahl.<br />

5d. Handshake mit MES2<br />

Der Handshake wurde wie in der Anlagenbeschreibung spezifiziert, realisiert. Wird vom<br />

MES2 ein Auftrag gesendet und der Zulieferer befindet sich in der Betriebsart Handbetrieb,<br />

Automatikvorwahl oder Störung, wird der Handshake ausgeführt und Variable<br />

„Busy_Zulieferer“ so lange auf „1“ gesetzt, bist der Auftrag im Automatikbetrieb fertig<br />

abgearbeitet wurde.<br />

6. Objektorientierung in der SPS-Technik und Umsetzung in CoDeSys<br />

Die klassische IEC 61131-3 bietet nicht die weitgehenden Möglichkeiten zur Bildung von<br />

Modulen, wie es vergleichsweise mit objektorientierten Beschreibungsmitteln oder in<br />

objektorientierten Hochsprachen möglich ist.<br />

Der Funktionsbaustein (FB) ist das wesentliche Hilfsmittel, um Programmcode und Daten zu<br />

kapseln. Wie ein Modul wird der FB einmal programmiert und dann beliebig oft innerhalb des<br />

Programms aufgerufen. Bei diesen so genannten Instanzen handelt es sich um identische<br />

Kopien, welche unabhängig voneinander zur Laufzeit abgearbeitet werden und zudem über<br />

einen separaten Speicherbereich verfügen. Mit Ein- und Ausgabevariablen lässt sich das<br />

Dominik Huth Te2b Seite 6 von 11


<strong>Ausarbeitung</strong> <strong>Projektarbeit</strong> - <strong>Teil</strong> 2<br />

Verhalten der einzelnen Instanzen variieren. Mit diesen Eigenschaften ist der FB den<br />

Klassen der Objektorientierung recht ähnlich und damit der einzige Baustein, der für die<br />

Bildung von Modulen geeignet ist. Im Gegensatz zu einer Klasse ist es aber nicht möglich,<br />

mehrere verschiedene Abläufe (Methoden) innerhalb eines FB zu definieren.<br />

CoDeSys unterscheidet sich von den klassischen, bisherigen IEC 61131-3 Umgebungen<br />

unter anderem darin, dass Konstrukte verwendet werden können, die aus der<br />

Objektorientierung bekannt sind. Die bisher bekannten Funktionsbausteine sind deutlich<br />

erweitert worden, so dass sie nahezu den Klassen entsprechen. Diese lassen sich nach wie<br />

vor instanziieren und verfügen über eine eigene Datenbasis. Darüber hinaus ist es in<br />

CoDeSys aber möglich Eigenschaften, Transitionen, mehrere Abläufe als Methoden und<br />

Aktionen in einem Funktionsbaustein zu definieren, welche auf dessen gemeinsame<br />

Datenbasis zugreifen können. Methoden haben ein ähnliches Verhalten wie Funktionen. Es<br />

lassen sich Eingangsparameter übergeben. Methoden verfügen über eine eigene lokale<br />

Datenbasis und liefern einen Ausgabewert zurück. Sie werden im Gegensatz zu den<br />

Aktionen innerhalb eines SPS-Zyklus berechnet. Es ist daher in CoDeSys auch nicht<br />

möglich, die Ablaufsprache für die Programmierung von Methoden zu verwenden.<br />

7. Neue Sprachmittel und Schlüsselwörter<br />

Die Einführung von objektorientierter Programmierung in der SPS-Technik stellt hohe<br />

Anforderungen an die Programmierumgebung. Folgende Anforderungen wurden bei der<br />

Implementierung von objektorientierter SPS-Programmierung in CoDeSys berücksichtigt:<br />

-Funktionale, d.h. nicht objektorientierte Programmierung muss weiterhin möglich<br />

sein<br />

-Objektorientierte und funktionale Programmierung muss innerhalb eines Projekts<br />

gemischt werden können<br />

-Bestehende Applikationen müssen mit sinnvollen Mitteln auf ein<br />

objektorientiertes Design umgestellt werden können<br />

-E/A-Konfiguration, direkter E/A-Zugriff, Online-Funktionen und Online-<br />

Änderungen müssen möglich sein<br />

-Die Komplexität der Sprachdefinition soll den Anwendungsentwickler nicht<br />

zusätzlich belasten<br />

8. Schlüsselwörter für die oo-Programmierung in CoDeSys<br />

- METHOD: Funktion die einer Funktionsbausteindefinition (Objekt) zugeordnet ist<br />

- PROPERTY: erlauben den externen Zugriff auf Daten des Funktionsbausteins<br />

- EXTENDS: erweitert einen Funktionsbaustein (Kindklasse) um die Methoden und<br />

Attribute eines anderen Funktionsbausteins (Vaterklasse) im Sinne einer Vererbung.<br />

9. Erstellung von Varianten durch Vererbung<br />

Varianten eines Funktionsbausteines können mit dem Schlüsselwort „EXTENDS“ erstellt<br />

werden. Eine Klasse, welche auf diese Weise erstellt worden ist, erbt zunächst alle<br />

Methoden und Eigenschaften der Vaterklasse. CoDeSys zeigt diese geerbten Bestandteile<br />

einer Klasse nicht unterhalb der Kindklasse an. Trotzdem können alle Bestandteile so<br />

verwendet werden, als wären diese dort definiert. Damit ist die Kindklasse zunächst eine<br />

identische Kopie der Vaterklasse. Für die Bildung der Variante können sowohl alle geerbten<br />

Implementierungen durch eigene Implementierungen überlagert werden, als auch zusätzlich<br />

eigene Methoden und Eigenschaften definiert werden.<br />

Dominik Huth Te2b Seite 7 von 11


<strong>Ausarbeitung</strong> <strong>Projektarbeit</strong> - <strong>Teil</strong> 2<br />

10. Beispiel aus der Praxis für die oo-Programmierung in CoDeSys<br />

Anhand des Beispiels eines pneumatischen Zylinders wie er im Zulieferer mehrfach für das<br />

Herausschieben der Bausteine aus den Lagern verwendet wurde, soll kurz auf die praktische<br />

Ausführung der objektorientierten Programmierung in CoDeSys eingegangen werden. Bei<br />

den Zylindern handelt es sich um einfach wirkende Zylinder mit den Sensoren<br />

„sen_eingefahren“ (Zylinder eingefahren); „sen_ausgefahren“ (Zylinder ausgefahren) sowie<br />

den Aktor „akt_ausfahren“ (Zylinder ausfahren). In der Klasse Zylinder stellen diese<br />

Variablen die Attribute dar. Als Methoden (Funktionen) wurde „ausfahren()“ und „einfahren()“<br />

definiert.<br />

10a. Die Klasse Zylinder<br />

Das unten dargestellte Klassendiagramm der Klasse Zylinder soll dies verdeutlichen.<br />

Klassenname<br />

<br />

Zylinder<br />

akt_ausfahren: bool<br />

sen_eingefahren: bool<br />

sen_ausgefahren: bool<br />

ausfahren()<br />

einfahren()<br />

Attribute (Variablen, Parameter, Werte…)<br />

Methoden (Programme, Funktionen…)<br />

Die Klasse Zylinder wird in CoDeSys in Form<br />

eines Funktionsbausteins (FB) im<br />

Programmbaum angelegt.<br />

Die Klasse Zylinder enthält die Methoden<br />

ausfahren und einfahren.<br />

Dominik Huth Te2b Seite 8 von 11


<strong>Ausarbeitung</strong> <strong>Projektarbeit</strong> - <strong>Teil</strong> 2<br />

10b. Blick in den Baustein Zylinder (FB):<br />

Ein Blick in den Baustein Zylinder (FB) lässt noch nichts von der Erweiterung der FBs in<br />

Richtung Objektorientierung erkennen. Zunächst werden die IN- und OUT-Variablen des FBs<br />

deklariert.<br />

1. Schnittstellen Variablen<br />

FUNCTION_BLOCK Zylinder<br />

VAR_INPUT<br />

sen_eingefahren: BOOL;<br />

sen_ausgefahren: BOOL;<br />

END_VAR<br />

VAR_OUTPUT<br />

akt_ausfahren: BOOL;<br />

END_VAR<br />

IN- und OUT-Variablen<br />

des Baustein Zylinder<br />

2. Anweisungen<br />

Wie von der SPS-Programmierung bekannt, kann in den FBs ein beliebiger Programmcode<br />

geschrieben werden. In diesem Beispiel ist zu sehen, wie die Methoden (ausfahren und<br />

einfahren) der Klasse Zylinder aufgerufen werden.<br />

IF sen_eingefahren THEN<br />

END_IF;<br />

ausfahren();<br />

Aufruf der Methode<br />

ausfahren()<br />

IF sen_ausgefahren THEN<br />

END_IF;<br />

einfahren();<br />

Aufruf der Methode<br />

einfahren()<br />

10c. Blick in die Methode ausfahren<br />

Die Methode ausfahren() ist ein untergeordneter Baustein des Zylinder (FB) also der Klasse<br />

Zylinder. Variablen, die im Zylinder (FB) deklariert worden sind, können auch in der Methode<br />

ausfahren() verwendet werden. Zusätzliche benötigte IN-Variablen, die der Methode<br />

übergeben werden sollen, können deklariert werden.<br />

1. Schnittstellen Variablen<br />

METHOD PUBLIC ausfahren<br />

VAR_INPUT<br />

END_VAR<br />

Hier können zusätzliche<br />

Input-Variablen<br />

deklariert werden<br />

Dominik Huth Te2b Seite 9 von 11


<strong>Ausarbeitung</strong> <strong>Projektarbeit</strong> - <strong>Teil</strong> 2<br />

2. Anweisungen<br />

In der Methode selbst steht der Programmcode für die gewünschte Funktion, die in der<br />

Methode realisiert werden soll. In diesem Beispiel ausfahren() der Klasse Zylinder ist der<br />

Programmcode recht übersichtlich. Wird die Methode ausfahren() aufgerufen, wird der OUT-<br />

Variable für Zylinder ausfahren auf „high“ gesetzt.<br />

akt_ausfahren:=1;<br />

Programm der Methode<br />

11. Blick in den Baustein Hauptprogramm<br />

Das Hauptprogramm stellt den „Kopf“ des SPS-Anwenderprogramms des Zulieferers dar.<br />

Hier werden die Objekte referenziert, und die Attribute (Ein- und Ausgänge) gesetzt, also an<br />

den FB „übergeben“.<br />

1. Schnittstellen Variablen<br />

Die drei Zylinder des Zulieferers (Zylinder_A, Zylinder_B, Zylinder_C) werden der Klasse<br />

Zylinder mit ihren Methoden „zugewiesen“.<br />

PROGRAM PLC_PRG<br />

VAR<br />

Zylinder_A: Zylinder;<br />

Zylinder_B: Zylinder<br />

Zylinder_C: Zylinder<br />

END_VAR<br />

Objekte werden<br />

referenziert<br />

2. Anweisungen<br />

Im Hauptprogramm des Zulieferers werden alle Ein- und Ausgänge an die jeweiligen FBs<br />

übergeben. In der Objektorientierung spricht man von Attribute setzen. Es folgt ein kleiner<br />

Ausschnitt aus dem Hauptprogramm, in dem die Attribute für den Zylinder_A gesetzt werden.<br />

Hauptprogramm.Zylinder_A.sen_eingefahren:=Zylinder_A_eingefahren;<br />

Hauptprogramm.Zylinder_A.sen_ausgefahren:=Zylinder_A_ausgefahren;<br />

Attribute setzen (Eingänge)<br />

Zylinder_A_ausfahren:= Hauptprogramm.Zylinder_A.akt_ausfahren;<br />

Attribut setzen (Ausgang)<br />

Dominik Huth Te2b Seite 10 von 11


<strong>Ausarbeitung</strong> <strong>Projektarbeit</strong> - <strong>Teil</strong> 2<br />

12. Aufruf der Klasse Zylinder<br />

Jetzt müssen nur noch die Aufrufe für die Zylinder gemacht werden. Das passiert in der<br />

Schrittkette der Mechaniksteuerung (FB) in der Aktion „Mechaniksteuerung.Zylinder_aktive“.<br />

Der Programmausschnitt unten zeigt den Aufruf von Zylinder_A, bedingt an den Auftrag 1.<br />

IF auftrag = 1 THEN<br />

END_IF<br />

Hauptprogramm.Zylinder_A();<br />

Aufruf des<br />

Funktionsbausteins<br />

Zylinder_A()<br />

Dominik Huth Te2b Seite 11 von 11

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!