Download PDF - Wago
Download PDF - Wago
Download PDF - Wago
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
22<br />
Steuerungsebene<br />
Martin Paulick<br />
Die objektorientierten Features<br />
Bislang konnten Applikationsingenieure bei der Verwendung von<br />
IEC-61131-Engineeringtools keine objektorientierten Lösungen<br />
erstellen. Mit der Erweiterung des IEC-61131-Sprachumfangs um<br />
entsprechende Features hat sich die Situation geändert. Das Beispiel<br />
Fernwirktechnik zeigt, welcher Mehrwert sich daraus ergibt.<br />
Für die Aufgaben der Fernwirktechnik<br />
stehen mit Modbus, DNP3 und der<br />
IEC 60870 Kommunikationsprotokolle<br />
zur Verfügung, die sich sowohl technisch<br />
unterscheiden, als auch global eine unterschiedliche<br />
Verbreitung gefunden haben.<br />
Für die Schutz- und Leittechnik in elek-<br />
Gelungene Alternative<br />
Kleinsteuerung auf dem S7-300-Niveau<br />
ISH rüstet diese Kompaktsteuerung auf<br />
Basis einer Soft-SPS unter ProConOS ® mit<br />
vielen I/O-Schnittstellen und leistungsstarker<br />
Programmiertechnik Multiprog<br />
aus. L-Bus, Profibus/CANopen und Ethernet<br />
sind Standard. Das Hutschienenmodul<br />
bewährt sich bereits<br />
unter Extrembedingungen<br />
bei -20+70°C imBergbau<br />
und der Bahntechnik.<br />
<br />
Kompetenzschwerpunkt<br />
Sicherheitsgerichtete<br />
Steuerungen<br />
Testen Siedas Starterkit mitGrundmodulund<br />
digitalemI/O-Modulzum kleinenPreis.<br />
ISHIngenieursozietätGmbH<br />
Johannespfad 12 ·D-57223 Kreuztal<br />
Telefon +49(0) 2732/5599-0<br />
Telefax +49(0) 2732/5599-199<br />
E-Mail info@ish-gmbh.com<br />
www.ish-gmbh.com
Steuerungsebene<br />
23<br />
trischen Schaltanlagen der Mittel- und<br />
Hochspannungstechnik wurde im Jahr<br />
2004 die Norm IEC 61850 als globaler<br />
Standard veröffentlicht. Auf dieser Basis<br />
erfolgte Ende 2006 die Definition der<br />
IEC 61400-25 zur Kommunikation beziehungsweise<br />
Überwachung und Steuerung<br />
von Windenergie-Anlagen. Im Gegensatz<br />
zu den drei erstgenannten Normen, welche<br />
einen signalorientierter Ansatz verfolgen,<br />
basieren die beiden letztgenannten<br />
auf einem objektorientierten Ansatz.<br />
Die IEC 61850 wie auch die IEC 61400-<br />
25 eignen sich daher ideal für die Umsetzung<br />
in einer objektorientierten Programmiersprache.<br />
Im Umfeld der Fernwirktechnik kommen<br />
beispielsweise Steuerungen des <strong>Wago</strong>-I/O-Systems<br />
zur Überwachung von<br />
mechatronischen Einheiten oder als Gateway<br />
zu anderen Feldbussen wie Profibus<br />
zum Einsatz. Für die Erweiterung des<br />
Portfolios um eine IEC-61850-Lösung<br />
wurde die Implementierung eines IEC-<br />
61850-Servers in verschiedene <strong>Wago</strong>-<br />
Steuerungen evaluiert, welche dann mit<br />
dem in der Leittechnik enthaltenen Client<br />
kommunizieren. Nachfolgende Ausführungen<br />
beschreiben die Portierung der<br />
unter Codesys V2.3 – der IEC-61131-<br />
Programmierumgebung des Herstellers<br />
Modell eines intelligenten elektronischen<br />
Gerätes (IED) gemäß IEC 61850:<br />
Die Grafik stellt die Projektion von realen<br />
Anlagenteilen auf das Software-<br />
Objekt und den Datentransport über<br />
das Ethernet-Netzwerk dar.<br />
3S Smart Software Solutions – erstellten<br />
klassisch prozeduralen Lösung für das<br />
<strong>Wago</strong>-I/O-System Serie 750 hin zu einer<br />
unter Codesys V3 erstellten objektorientierten<br />
Lösung für das dezentrale Speedway-IO-System.<br />
Der Standard 61850 definiert im Wesentlichen<br />
ein objektorientiertes Datenmodell<br />
sowie Aktionen auf das Datenmodell<br />
und das Kommunikationsmodell.<br />
Im Datenmodell sind „Logical Name<br />
Classes“ (92 verschiedene LNCs) definiert,<br />
welche ihrerseits wieder „Common<br />
Data Classes“ enthalten. Diese „Common<br />
Data Classes“ (29 verschiedene CDCs)<br />
enthalten letztendlich Attribute (zehn verschiedene<br />
CDA) wie etwa Zeichenketten,<br />
ganze Zahlen oder Gleitkommma-Zahlen.<br />
Aktionen auf das Datenmodel sind beispielsweise<br />
„Gerät identifizieren“, „Datenmodel<br />
auslesen“, „Daten lesen“ oder<br />
„Daten schreiben“. Als mögliche Kommunikationsmodelle<br />
für die IEC 61850<br />
sind schließlich MMS, Web-Services oder<br />
OPC-UA denkbar. Umgesetzt und verfügbar<br />
ist bis dato allerdings erst MMS als<br />
Kommunikationsmodell. MMS steht für<br />
„Manufacturing Message Specification“<br />
und ist als Protokoll im Standard ISO<br />
9506 definiert.<br />
In Codesys V2.3 ist eine Umsetzung sowohl<br />
klassisch prozedural als auch „eingeschränkt<br />
objektorientiert“ möglich. Bei<br />
dem klassisch prozeduralen Ansatz kann<br />
die Trennung von Daten und Funktion erfolgen,<br />
indem für alle LNCs strukturierte<br />
Datentypen erstellt werden. Funktionen<br />
Zuverlässig.<br />
Präzise.<br />
Innovativ.<br />
? ?<br />
?<br />
?<br />
(Bilder: <strong>Wago</strong>)<br />
www.computer-automation.de . 8/09<br />
Ihr Automatisierungs-Partner<br />
für individuelle, kosteneffiziente<br />
Kundenlösungen.<br />
Grossenbacher Systeme AG<br />
CH-9008 St. Gallen |+41 71 2432929<br />
D-63452 Hanau |+49 6181 6751 999
24<br />
Steuerungsebene<br />
Objektorientierte IEC-61850-Server-Lösung<br />
in Codesys V3: Durch Verwendung<br />
der objektorientierten Spracherweiterungen<br />
für Vererbung (EXTENDS und<br />
SUPER^) lässt sich der Code-Umfang in<br />
den Methoden der dargestellten IEC-<br />
61850-Klasse deutlich reduzieren.<br />
Ich persönlich berate Sie über alle Fragen<br />
zum Thema „wireless automation“, wie die<br />
geeigneten Funktechnologien und Steuerungskonzepte<br />
bis zur Inbetriebnahme<br />
vor Ort. Vertrauen Sie auf die Kompetenz<br />
und die Erfahrung sowie die persönliche<br />
individuelle Beratung.<br />
Schildknecht AG<br />
Haugweg 26 ·D-71711 Murr<br />
Telefon: 07144/89718-0<br />
Fax: 07144/89718-29<br />
E-Mail: office@schildknecht.info<br />
Internet: www.schildknecht.info<br />
können dann auf die Datentypen zugreifen<br />
und diese manipulieren. Eine eingeschränkt<br />
objektorientierte Lösung ist mit<br />
dem Ansatz der Funktionsbausteine realisierbar.<br />
Dabei sind die strukturierten<br />
Daten der Logical Node Classes im Funktionsbaustein<br />
gekapselt und lassen sich<br />
über den Aufruf des Funktionsbausteins<br />
oder den Aufruf einer Aktion auf dem<br />
Funktionsbaustein bearbeiten.<br />
Eine Schwäche der Codesys-Version<br />
2.3 ist hierbei, dass Aktionen keine<br />
IN_OUT-Parameter (call by reference)<br />
übergeben werden können und Aktionen<br />
SPS-Störungsursachen<br />
schnell analysieren<br />
www.ServiceLab.de<br />
Funkanwendungen in der Automatisierungstechnik sind hoch komplexe<br />
Aufgabenstellungen. Mit unserem Produkten DATAEAGLE bieten wir seit<br />
über 10 Jahren Datenfunksysteme, u.a. für Profibus, an und können damit<br />
geschlossene Regelschleifen und failsafe Anwendungen über eine Funkstrecke<br />
realisieren. In mehreren Tausend erfolgreichen Projekten bewähren<br />
sich unsere Produkte tagtäglich in den schwierigsten industriellen Einsatzfällen<br />
und Umgebungen. Dabei setzen wir alle Funktechnologien in praktisch<br />
allen Frequenzen ein.<br />
auch über keine lokalen Variablen verfügen.<br />
Zwar lässt sich die fehlende Möglichkeit,<br />
IN_OUT-Parameter zu übergeben,<br />
durch die Übergabe eines Pointers<br />
umgehen; es gibt jedoch Applikationsingenieure,<br />
die Pointer<br />
Thomas Schildknecht (Dipl.-Ing.)<br />
generell vermeiden.<br />
Auch gibt es Firmen<br />
beziehungsweise Projekte,<br />
in deren Codierrichtlinien<br />
die Verwendung<br />
von Pointern untersagt<br />
ist. In der Version<br />
3 von Codesys hat<br />
3S die genannten<br />
Schwächen mit der<br />
Spracherweiterung<br />
„Methode“ abgestellt.<br />
Methoden erweitern<br />
das Konzept von Aktionen<br />
dahingehend,<br />
dass sie auch lokale<br />
Variable enthalten können<br />
und es möglich ist,<br />
IN_OUT-Parameter zu<br />
übergeben.<br />
Ein vom Anwender<br />
mit der „<strong>Wago</strong>-61850-<br />
Codesys-Bibliothek“<br />
erstelltes SPS-Programm<br />
verwendet typischerweise<br />
mehrere<br />
Objekte verschiedener<br />
Logical Node Classes.<br />
Dazu ist innerhalb der<br />
61850-Bibliothek eine<br />
Iteration über die Instanzen<br />
der verschiedenen<br />
Logical Node<br />
Classes erforderlich.<br />
Ein Vorgang, der in<br />
Codesys V2.3 ebenfalls aufwendig mit<br />
einem Array von Pointern realisiert wurde.<br />
Mit dem Interface-Mechanismus der<br />
Version 3 gelingt dies wesentlich einfacher.<br />
Dabei implementieren mehrere<br />
Klassen das gleiche Interface, zum Beispiel<br />
alle LNC die Methode Read. Die<br />
Methode lässt sich jetzt einfach aufrufen,<br />
ohne dass der Programmierer darüber<br />
nachdenken beziehungsweise extra Code<br />
schreiben muss. Ohne dieses Feature<br />
müsste der Funktionsaufruf für jede der<br />
Klassen einzeln codiert werden. In einer<br />
zukünftigen Erweiterung möchte 3S das<br />
derzeit implementierte Kommunikationsmodel<br />
MMS durch Web-Services ersetzen.<br />
Bei der Version 2.3 bestünde der Lösungsansatz<br />
für die Erweiterung um ein<br />
neues Kommunikationsmodel darin,<br />
zwei Kommunikationsbibliotheken mit<br />
gleichem Interface zu erstellen. Zum<br />
Übersetzungszeitpunkt würde dann die<br />
eine oder andere Bibliothek verwendet.<br />
Auch diese Problematik lässt sich mit<br />
dem Interface Mechanismus der Version<br />
3 wesentlich einfacher lösen, da der<br />
Code dann beide Kommunikationsmodelle<br />
beinhalten kann. Eine flexiblere<br />
Lösung entsteht dadurch, dass die Entscheidung,<br />
ob über MMS oder Web-Services<br />
kommuniziert werden soll, zur<br />
Laufzeit des SPS-Programms verschoben<br />
werden kann.<br />
Noch eine Schwäche von Codesys 2.3:<br />
Im Datenmodel der IEC 61850 erben die<br />
spezifischen Logical Node Classes von einer<br />
Basisklasse eine Anzahl von Common<br />
Data Classes. In der Version 2.3 sind diese<br />
Daten in jedem spezifischen Typ einer<br />
LNC erneut zu definieren und die Funktionalität<br />
in den Aktionen erneut zu pro-<br />
8/09 . www.computer-automation.de
Steuerungsebene 25<br />
grammieren. In der Version 3 entfällt dieses<br />
durch Nutzung des Vererbungsmechanismus<br />
(Spracherweiterung EXTENDS –<br />
Stichwort: copy & paste).<br />
Klassich versus<br />
objektorientiert<br />
Das Prinzip der objektorientierten Programmierung,<br />
welches Codesys V3 zugrunde<br />
liegt, ist die Kapselung von Daten<br />
(Attribute) und Operationen (Methoden)<br />
in einem Objekt. Die Idee rührt daher,<br />
dass man „Real World Objects“ auf Software-Objekte<br />
abbilden möchte – also zum<br />
Beispiel ein Objekt Lasttrenner mit dem<br />
Attribut Öltemperatur und den Methoden<br />
Öffnen/Schließen. Dagegen steht der frühere<br />
Ansatz der prozeduralen Programmierung<br />
für eine Trennung von Daten und<br />
Operationen. Merkmale, die von objektorientierten<br />
Sprachen unterstützt werden,<br />
sind Klassen, Methoden, Polymorphie,<br />
Schnittstellen sowie Speicherverwaltung<br />
Neben Codesys gibt es weitere objektorientierte<br />
Sprachen, die sich jedoch im<br />
Automatisierungsumfeld bis dato nicht<br />
auf breiter Front durchgesetzt haben.<br />
für Instantiierung und Zerstörung von Objekten<br />
zur Laufzeit. Dabei muss eine<br />
Sprache nicht notwendigerweise all diese<br />
Merkmale unterstützen, damit sie als objektorientiert<br />
gilt.<br />
Die objektorientierten Möglichkeiten<br />
bringen aber nicht nur dem Maschinenund<br />
Anlagenbauer Vorteile; auch die Hersteller<br />
von Automatisierungsgeräten profitieren<br />
davon. Diese haben typischerweise<br />
sowohl ein Gerät im Programm als auch<br />
ein skalierbares Hardware-Portfolio, um<br />
dem Anwender eine individuelle Lösung<br />
für seine Leistungsanforderungen bieten<br />
Sprachen und ihre Merkmale<br />
zu können. Mit den erweiterten Möglichkeiten<br />
von Codesys lassen sich jetzt mehr<br />
Funktionalitäten aus der Firmware der<br />
Geräte in die IEC-61131-Softwarelösungen<br />
verlagern, die unmittelbar auf allen<br />
Geräten des Herstellers lauffähig sind.<br />
Dies verkürzt Entwicklungszeiten und erhöht<br />
die Flexibilität.<br />
Im Fall der eingangs erwähnten Telecontrol-Lösung<br />
war der Umstieg von der<br />
Version 2.3 auf Version 3 der Codesys-<br />
Entwicklungsumgebung auf einfache Art<br />
über die automatische Konvertierung des<br />
Projektes möglich und die Lösung auf der<br />
CoDeSys v2.3 CoDeSys v3 C#/Java Smalltalk<br />
Prozedural + + – –<br />
Objektorientierung – + + +<br />
Klassen ∼ (FB) + + +<br />
Abstrakte Klassen – – + –<br />
Konstruktor+Destruktor – + + +<br />
Methoden ∼ (Aktionen) + + +<br />
Polymorphie – + + +<br />
Sichtbarkeit ∼ (Variablen) ∼ (Variablen) + +<br />
Properties – + – –<br />
Interfaces – + + –<br />
New Operator – – + +<br />
cifX –reduziert auf das Maximum<br />
für Feldbus<br />
cifX – PCI und PCI Express – basierend auf der netX Technologie.<br />
Jetzt für CANopen, DeviceNet und PROFIBUS lieferbar.<br />
www.hilscher.com<br />
info@hilscher.com
26<br />
Steuerungsebene<br />
Die offizielle Tageszeitung zur<br />
SPS/IPC/DRIVES 2009<br />
HERAUSGEGEBEN VON<br />
„Eine wertvolle<br />
Informationsquelle, die<br />
gute Orientierung gibt!“<br />
Johann Thoma,<br />
Geschäftsführer Mesago Messemanagement GmbH<br />
Veranstalter der SPS/IPC/DRIVES<br />
neuen Plattform unmittelbar lauffähig. Für die Aufgabenstellung<br />
eigneten sich hier besonders die folgenden objektorientierten<br />
Änderungen:<br />
■ Das IEC-61850-Klassenmodel spiegelt sich direkt in der objektorientierten<br />
Softwarestruktur wieder. Das bedeutet, dass<br />
zum Beispiel ein realer Lasttrenner direkt auf die Klasse<br />
XCBR abgebildet wird, was für „Circuit Breaker“ steht.<br />
■ Alle IEC-61850-Logical-Node-Classes beinhalten grundlegende<br />
Funktionalitäten einer Basisklasse. Damit sind nur<br />
noch die spezifischen Funktionen zu implementieren.<br />
■ Codesys stellt mit der speziellen Methode „FB_Init“ einen<br />
Konstruktor-Mechanismus zur Verfügung. Diese Methode<br />
wird automatisch bei der Erzeugung des Objektes genau einmal<br />
aufgerufen. In der genannten Anwendung dient dieser<br />
Mechanismus zur Initialisierung der typspezifischen Eigenschaften<br />
der abgeleiteten 61850-Klassen.<br />
■ Wie bereits erwähnt, ist MMS eine erste Umsetzung des IEC-<br />
61850-Kommunikationsmodels. Mit Blick auf die weiteren<br />
denkbaren Realisierungen hinsichtlich Web-Services oder<br />
OPC-UA ist beim Design der Kommunikationsanschaltung<br />
als Interface später eine Anschaltung einfach gegen die andere<br />
austauschbar.<br />
Die objektorientierten Erweiterungen in Codesys verfolgen<br />
letztlich das Ziel, dem SPS-Programmierer die Wahlfreiheit zu<br />
bieten, ob er die Aufgabenstellung durchgängig klassisch, durchgängig<br />
objektorientiert oder auch „gemischt“ umsetzen möchte.<br />
Die objektorientierte Lösung bietet jedoch klare Vorteile – zum<br />
Beispiel die höhere Wartbarkeit des Codes durch die Kapselung<br />
von Daten und Operationen innerhalb von Objekten. Der Mechanismus<br />
der Vererbung unterstützt den Entwickler auch hinsichtlich<br />
einer einfacheren Erweiterbarkeit der Lösung. Im skizzierten<br />
Fallbeispiel lassen sich weitere Logical Node Classes ohne viel<br />
„Copy & Paste“ ergänzen. Das Merkmal der Interfaces unterstützt<br />
den Entwickler zudem bei der Ergänzung um weitere<br />
Kommunikations-Mappings.<br />
Mit einer zukünftigen Integration von UML-Editoren in die<br />
Entwicklungsumgebung wird die objektorientierte Erweiterung<br />
der IEC 61131-3 einen weiteren Schub erfahren. Im Rahmen<br />
dieses Schrittes hin zur „ausführbaren UML“ wurden innerhalb<br />
eines Forschungsprojektes an der Universität Kassel Editoren<br />
für Klassen-, Zustands- und Aktivitätsdiagramme erstellt, die<br />
sich als Plug-In nahtlos in Codesys einbetten. Die Editoren arbeiten<br />
dabei direkt auf dem Datenmodell der Entwicklungsumgebung,<br />
so dass keinerlei manueller Abgleich zwischen den<br />
UML-Editoren und dem IEC-61131-Code notwendig ist. Dies<br />
ermöglicht letztlich einen breiteren Einsatz von Codesys – vom<br />
objektorientierten Design, über die Implementierung und Inbetriebnahme<br />
bis hin zur Visualisierung.<br />
gh<br />
Martin<br />
Paulick<br />
Erscheinungstermine: Anzeigenschluss:<br />
24. November 2009 2. November 2009<br />
25. November 2009 (für alle 3 Ausgaben)<br />
26. November 2009<br />
Kontakt:<br />
Computer&AUTOMATION Mediaberatung<br />
Tel.: 08121.95-1385 · Fax: 08121.95-1670<br />
E-Mail: media@computer-automation.de<br />
www.computer-automation.de<br />
ist Produktmanager<br />
für Engineering-Software<br />
und Telecontrol-Lösungen<br />
bei <strong>Wago</strong> Kontakttechnik.<br />
8/09 . www.computer-automation.de