Modellbasierte und komponentenorientierte Programmierung von Steuerungen



Ähnliche Dokumente
Robotersteuerung MRobot

Modellbasierte Programmierung einer Simulationskomponente für die KUKA-Robotersteuerung Sunrise

Modellbasierte und komponentenorientierte Softwareentwicklung für Eingebettete Systeme

Studentische Mitarbeit im Labor CIM & Robotik

Objektorientierte Programmierung

Einführung eines mikrocomputerbasierten Anlagensimulators für die Ausbildung auf dem Gebiet der Automatisierungstechnik

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

JetSym. Programmierung in Hochsprache ST nach IEC We automate your success.

Generative Prozessmodelle Patrick Otto MDD Konferenz

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Themen. Web Services und SOA. Stefan Szalowski Daten- und Online-Kommunikation Web Services

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Programmierung mit NQC: Kommunikation zwischen zwei RCX

Softwaretechnik (Allgemeine Informatik) Überblick

Projektplan(ung) zu CYOUTOO

ArcObjects-Programmierung mit Delphi. Marko Apfel, Team Entwicklung

Benötigen wir einen Certified Maintainer?

Jürgen Schwab, debis Systemhaus

BEISPIELKLAUSUR Softwareentwicklung:

OSEK-OS. Oliver Botschkowski. PG AutoLab Seminarwochenende Oktober AutoLab

Abschnitt 16: Objektorientiertes Design

SeismoGIS. Ein GISTool für die Analyse von Erdbebendaten für die Erdbebenstation der Universität zu Köln. Universität zu Köln Geographisches Institut

Kapitel 2: Der Software-Entwicklungsprozess

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Objektorientiertes Software-Engineering

jet IDS HIGH-LEIT OPC-GATEWAY zur Anbindung von Automatisierungssystemen Ein offenes, skalierbares SCADA System für alle Infrastrukturanwendungen

FACHHOCHSCHULE MANNHEIM

SEP 114. Design by Contract

Informationssystemanalyse Lebenszyklusmodelle 3 1. Lebenszyklusmodelle sollen hauptsächlich drei Aufgaben erfüllen:

Softwareentwicklung aus Sicht des Gehirns

Spline Morphing. Softwarepraktikum im IWR. Carl Friedrich Bolz. Carl Friedrich Bolz

Grundlagen der Softwaretechnik

Comparison of Software Products using Software Engineering Metrics

IBM License Information document

Softwareentwicklung bei KMU - Ergebnisse einer Studie zum Entwicklungs-, Projekt- und Qualitätsmanagement

Einführung in modellgetriebene Softwareentwicklung. 24. Oktober 2012

Information Systems Engineering Seminar

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Einsatz von xalerator. bei den. Ergo Direkt Versicherungen. Bereich Versicherungstechnik/Leben

Prüfungsausschuss. Fachkraft im Fahrbetrieb. Konstellation & Struktur Prüfungsausschuss. Harald Enderlein

PocketPC.ch Review. SBSH ilauncher 3.1. Erstelldatum: 3. Dezember 2007 Letzte Änderung: 3. Dezember PocketPC.ch_Review_iLauncher.

Bachelor-/Masterarbeit: Entwicklung einer interaktiven und bedienerfreundlichen Oberfläche (GUI/NUI)

Grundlagen Software Engineering

Integrierte und automatisierte GUI-Tests in Java

Objektorientierte Programmierung OOP

Agile Software Development

Kosten-Leistungsrechnung Rechenweg Optimales Produktionsprogramm

HOMEPLANE. Home Media Platform and Networks

Informatik, Mathematik und Naturwissenschaften

Fahrdynamikregelung für Nutzfahrzeuge - Entwurf und Simulation modellbasierter Fahrdynamikregelsysteme

Prozessorientiertes Asset Management und Mobile Workforce (unter Android)

BIM Building Information Modeling für bauausführende Unternehmen

Wiederverwendung von automotive Software- Reifegradmodell, Technologie, Praxisbericht

INNOVATOR im Entwicklungsprozess

Function-Toolkit. Robot-Control Professionelle Lösungen entwickeln für Bewegungsaufgaben

Bildquelle:

Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015

Implementation of a Framework Component for Processing Tasks within Threads on the Application Level

Kurzfassung der Studienarbeit

Grundlagen des Software Engineering

10 Erweiterung und Portierung


Was sind Herausforderungen im Projektmanagement?

Generatives Programmieren

Software Engineering

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Regelungs- und Systemtechnik 1. Kapitel 1: Einführung

Makigami, Prozessmapping und Wertstromdesign. erstellt von Stefan Roth

Kapitelübersicht. Was ist So#waretechnik? Historische Entwicklung der So9waretechnik Prinzipien, Methoden, Werkzeuge. Was bedeutet Objektorien+erung?

Workshop 1 Wandlungsfähigkeit in der Produktion - Die Turbulenzen von morgen beherrschen -

Some Software Engineering Principles

4D Server v12 64-bit Version BETA VERSION

Comparing Software Factories and Software Product Lines

CANape Option Simulink XCP

Einführung in die Programmierung

SWT II Projekt. Chat - Anwendung. Pflichtenheft 2000 SWT

Die MID ModellierungsMethodik M³ ein Baukasten für Produktlinien. Andreas Ditze, MDD & PL 2009, Leipzig,

Schulinternes Curriculum für Informatik (Q2) Stand April 2015

Vortrag von: Ilias Agorakis & Robert Roginer

Koordinatenmesstechnik und CAX-Anwendungen in der Produktion

Mensch und Roboter als gleichberechtige

GI-Technologien zur Umsetzung der EU-Wasserrahmenrichtlinie (WRRL): Wissensbasen. Teil 1: Einführung: Wissensbasis und Ontologie.

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht

Software Defined Networking. und seine Anwendbarkeit für die Steuerung von Videodaten im Internet

Free your work. Free your work. Wir wollen Ihnen die Freiheit geben, sich auf Ihr Geschäft zu konzentrieren.

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

Dokumentation, Analyse, Optimierung,

U08 Entwurfsmuster (II)

Prinzipien Objektorientierter Programmierung

Programmierparadigmen. Programmierparadigmen. Imperatives vs. objektorientiertes Programmieren. Programmierparadigmen. Agenda für heute, 4.

Einführung agiler Entwicklung in großen Organisationen. ein Paradox? Dr. Thorsten Janning. April 2012

13. FAMOS User Treffen

4.3 Bevölkerungsprozessstatistik: Raten und Tafeln

EPK Ereignisgesteuerte Prozesskette

Product Line Engineering (PLE)

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger

Übungsklausur vom 7. Dez. 2007

Cloud Computing - und Datenschutz

Transkript:

Labor für CIM & Robotik Prof. Dipl.-Ing. Georg Stark Modellbasierte und komponentenorientierte Programmierung von Steuerungen 1. Entwicklungsprozess Industriesteuerung 2. Programmierparadigmen - objektorientiert - komponentenorientiert - modellbasiert 3. Beispiel Entwicklung der Steuerung MRobot - Synchrone Ausführung und Simulation - Sensorintegration Automatisierung Robotik University of Applied Sciences 14.10.2010 - Folie 1

Entwicklungsprozess - Industriesteuerung Ziele Gute Wartbarkeit der Software - Fehlerbeseitigung - Erweiterungen Kosteneffizienz Optimaler Informationsfluss zwischen allen beteiligten Personen Hohe Funktionalität der Software Ansatz: Verbesserte Softwaretechnologie Kombination aus modellbasierter, komponentenorientierter und objektorientierter Programmierung Automatisierung Robotik University of Applied Sciences 14.10.2010 - Folie 2

Entwicklungsprozess - Phasen 1. Planung - Anforderungsspezifikation 2. Analyse - Beschaffung, Formalisierung des Wissens 3. Entwurf - Architektur - Teilstrukturen - Test 4. Implementierung und Test 5. Verifikation Automatisierung Robotik University of Applied Sciences 14.10.2010 - Folie 3

Entwicklungsprozess Analyse und Entwurf Darstellung von Information in der Entwicklungsebene abstrakt Produktidee Anforderungsspezifikation Analyse - Formalisierung formales Modell Architektur Teilstrukturen Quellcode Entwurf - Konkretisierung konkret nichtformal ausführbarer Binärcode formal Automatisierung Robotik University of Applied Sciences 14.10.2010 - Folie 4

Objektorientierte Programmierung Leitgedanken Konzept der vererbbaren Klassen, Kapselung Klassen sind Urkopien für Objekte Bildung von Softwarevarianten Softwareschnittstellen, abstrakte Klassen Klassen stellen Wissenselemente dar Keine domänenspezifische Programmiersprache Unterstützung für die Darstellung der Struktur des Wissens, nicht des Wissens selbst Automatisierung Robotik University of Applied Sciences 14.10.2010 - Folie 5

Komponentenorientierte Programmierung Leitgedanken Softwarekomponenten sind ausführbare Softwareteile, die über standardisierte Schnittstellen benutzt werden Mit Hilfe von Komponenten kann eine Framework-Plugin- Architektur realisiert werden Das Framework stellt insbesondere die kritische Echtzeitfunktionalität bereit. Das spezifische Robotikwissen wird mit Hilfe von Plugins implementiert Vorteile der komponentenorientierten Programmierung: - Komponenten können mit unterschiedlichen Sprachen implementiert sein - Die Wartung der Software wird erleichtert Beispiele für standardisierte Schnittstellen für Komponenten: - COM von Microsoft, - CORBA von der OMG (www.omg.org), - JavaBeans. Automatisierung Robotik University of Applied Sciences 14.10.2010 - Folie 6

Modellbasierte Programmierung Leitgedanken Programme implementieren Wissen aus unterschiedlichen Bereichen, z.b. Bediendialoge, Eigenschaften von Objekten, Bewegungsverhalten von Maschinen Formale Modelle stellen das Wissen mit Hilfe von formalen Sprachen dar Als Modell wird eine hinreichend genaue, zusammenhängende Darstellung eines bestimmten Bereichs der realen Welt bezeichnet Für eine effiziente, direkte Implementierung von formalen Modellen braucht es geeignete domänenspezifische Sprachen Die technische Software MATLAB umfasst eine Programmiersprache, welche eine direkte Implementierung von formalen Modellen unterstützt Automatisierung Robotik University of Applied Sciences 14.10.2010 - Folie 7

Vergleich Programmierparadigmen Objektorientierte Programmierung Entwurf: Darstellung der Struktur des Wissen durch Klassen, Sicherheit, Wiederverwendbarkeit der Software Implementierung: Allgemeine Sprachen Komponentenorientierte Programmierung Entwurf: Definition von ausführbaren Strukturen Implementierung: Austauschbarkeit (Plugins), unterschiedliche Sprachen möglich Modellbasierte Programmierung Analyse: Darstellung des Wissens durch formale Modelle Entwurf: Modelle bestimmen die Struktur der Software. Implementierung: Domänenspezifische Sprachen Automatisierung Robotik University of Applied Sciences 14.10.2010 - Folie 8

Beispiel Robotersteuerung MRobot Funktionsumfang der Software 1 12 Bewegungsachsen Interpolationsarten - Punkt zu Punkt (PTP) - Linear mit Polynom-Überschleifen - Kreis - Spline Sensorsteuerung Offline-Programmierung mit Grafiksimulation in Echtzeit Mächtige Anwender-Programmiersprache Automatisierung Robotik University of Applied Sciences 14.10.2010 - Folie 9

Robotersteuerung MRobot Modellbasierter Entwurf - Bahnsteuerung Bahnsteuerung Bewegungsmodell Modellparameter (Kinematik) Bahnsatz Modellfunktionen: Initialisierung, Ausgabe, Zustandsübergang Achssollwerte Modellzustand (Bewegung) Automatisierung Robotik University of Applied Sciences 14.10.2010 - Folie 10

Robotersteuerung MRobot Modellbasierte Entwurf Zustandsübergang Bewegung Interpolation FOR tint = tipo:tipo:tges Geschwindigkeitsprofil Berechne s int (tint) gemäß tba, tka, tva, s b, s k, s v CASE Verfahrart Trajektorie PTP CPL q int (tint)=q 1 +s int (tint) P int OL ( t int) ( t int) = r 0 r ul ( t int) ; q 1 int (tint)=rtraf(p int (tint), kf, rob_para) CPC P int OL ( t int) ( t int) = r 0 r ukr ( t int) 1 ; q int (tint)=rtraf(p int (tint), kf, rob_para) Automatisierung Robotik University of Applied Sciences 14.10.2010 - Folie 11

Robotersteuerung MRobot Softwarestruktur Komponenten, Schnittstellen Grafik-Simulation OpenGL Echtzeitgrafik Roboter CAN Sensor CAN, RS 232 COM Echtzeitkern mit Sensorschnittstelle COM Roboter-Bahnsteuerung Automatisierung Robotik University of Applied Sciences 14.10.2010 - Folie 12

Robotersteuerung MRobot Vorteile des gewählten Realisierungsansatzes Nur die Programmierung des roboterunabhängigen Echtzeitkerns erfordert intensive C++ - Programmierkenntnisse. Alle roboterspezifischen Programmteile sind in einer problemnahen, einfachen Skriptsprache implementiert. Die Programmierung und Wartung der umfangreichen, roboterspezischen Software kann deshalb von Roboterfachleuten ohne umfangreiche Programmierkenntnisse durchgeführt werden. Die Kosten für Entwicklung und Wartung der Software werden gegenüber dem konventionellen Realisierungsansatz wesentlich gesenkt.!! Automatisierung Robotik University of Applied Sciences 14.10.2010 - Folie 13

Robotersteuerung MRobot Synchrone Ausführung und Simulation Automatisierung Robotik University of Applied Sciences 14.10.2010 - Folie 14

Robotersteuerung MRobot Simulation KUKA KR15 Automatisierung Robotik University of Applied Sciences 14.10.2010 - Folie 15

Robotersteuerung MRobot Bahnsteuerung durch Abstandssensor (Eigenentwicklung) Automatisierung Robotik University of Applied Sciences 14.10.2010 - Folie 16

Robotersteuerung MRobot Einfaches Überwachungssystem mit 3D-Webcam Automatisierung Robotik University of Applied Sciences 14.10.2010 - Folie 17

Robotersteuerung MRobot Objektverfolgung durch 3D-Webcam (Eigenentwicklung) Automatisierung Robotik University of Applied Sciences 14.10.2010 - Folie 18

Labor CIM & Robotik Darstellung im Internet Buch: Robotik mit MATLAB: http://www.hs-augsburg.de/stark/robotik_mit_matlab/ MATLAB User Story: http://www.mathworks.de/company/user_stories/userstory20581.html Labor CIM & Robotik: http://www.hs-augsburg.de/campus/rotes_tor/j-bau/j3/j307/index.html Automatisierung Robotik University of Applied Sciences 14.10.2010 - Folie 19