Modellierung von Echtzeitsystemen

Ähnliche Dokumente
Fakultät für Informatik der Technischen Universität München. Kapitel 3. Echtzeitsysteme Lehrstuhl Informatik VI Robotics and Embedded Systems WS 11/12

Modell-basierte Entwicklung mit der Timing Definition Language (TDL)

Modellierung von Echtzeitsystemen

Example Ptolemy Model of Comp.: Synchronous Reactive

Fakultät für Informatik der Technischen Universität München. Kapitel 2. Modellierung von Echtzeitsystemen und Werkzeuge

Softwareentwicklung eingebetteter Systeme

Uhren und Synchronisation

An Overview of the Signal Clock Calculus

Fakultät für Informatik der Technischen Universität München. Echtzeitsysteme Lehrstuhl Informatik VI Robotics and Embedded Systems.

Kapitel 2. Fakultät für Informatik der Technischen Universität München. Echtzeitsysteme Lehrstuhl Informatik VI Robotics and Embedded Systems

Software Engineering. 5. Architektur

Diskrete Ereignissysteme. Spezielle Netzstrukturen- Übersicht. Beispiele zu speziellen Netzstrukturen. Petri-Netze und Zustandsautomaten

EasyLab: Modell-basierte Software-Entwicklung für mechatronische Systeme

FPGA vs. Mikrocontroller. Agenda

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung

Electronic Design Automation (EDA) Spezifikation

EasyKit Eine allgemeine Methodik für die Entwicklung von Steuerungskomponenten

1.4! Einführung. Systemmodellierung. Methoden und Werkzeuge

Validierbare Architekturen für Industrielle Automatisierungssysteme

Lab4PLC. Lab4Arduino. SPS Hersteller unabhängiger SPS Trainer

Simon Barner Michael Geisinger Technische Universität München

Grundlagen der Automatisierungstechnik für den Studiengang BEL 1. Semester

Inhaltsverzeichnis Einführung und Überblick

Analyse und Entwurf von Softwaresystemen mit der UML

Prinzipen und Komponenten Eingebetteter Systeme (PKES) Sebastian Zug Arbeitsgruppe Eingebettete Systeme und Betriebssysteme

Die Integration zukünftiger In-Car Multimedia Systeme unter Verwendung von Virtualisierung und Multi-Core Plattformen

Seminar: Multi-Core Architectures and Programming

Kernprozess zur System- und Softwareentwicklung. Logische Systemarchitektur f 1. f 2 f 3. f 4 Funktion. Technische Systemarchitektur SG 1 SG 2 SG 3

Microsoft.NET Framework & Component Object Model. ein Vortrag von Florian Steuber

Leicht konfigurierbare Hardware-Abstraktionsschicht für flexible Automatisierung

Virtuelle Inbetriebnahme. Digitalization Days 2017

Unified Modelling Language

Software Engineering in der Praxis

Projekt Beispiele: HiL-Testsysteme

UML (Unified Modelling Language) von Christian Bartl

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung

FPGA-basierte Automatisierungssysteme

Prinzipien und Komponenten eingebetteter Systeme

EasyKit - Innovative Entwicklungs- und Didaktikwerkzeuge für mechatronische Systeme

Parallel Ein-/Ausgabe Box

Software Engineering in der Praxis

Objektorientierte Programmierung (OOP)

J. Reinier van Kampenhout Robert Hilbrich Hans-Joachim Goltz. Workshop Echtzeit Fraunhofer FIRST

Modellierung verteilter Systeme (Grundlagen der Programm- und Systementwicklung II)

CANape Option Bypassing

LabVIEW. 1.Einleitung

CANape Option Bypassing

Simulation in Verbindung mit Hardwarekomponenten

OpenCL. Programmiersprachen im Multicore-Zeitalter. Tim Wiersdörfer

Abschlussveranstaltung des BMBF-Verbundprojektes EasyKit 11. November 2009 EasyKit in der Praxis Rapid Prototyping bei Pumpensteuerungen

Automatisierung kompletter Kühlanlagen mittels LabVIEW und PAC-Systemen

Komponenten- HIL und Fahrzeug- HIL sind heute weit verbreitet. i.w. höhere Qualität der Fahrzeuge und Steuergeräte

Jan Krückel, Industrie- und Gebäudeautomation / ABB Automation Day, Modul 40A Neuheiten der Industrie-Automation

CMC 850. Das Schutzprüfgerät speziell für IEC Umgebungen

Einführung. ECU-übergreifende Funktionen nehmen immer mehr zu! z.b. bei Fahrerassistenz-Systemen

E Mikrocontroller-Programmierung

Echtzeitprogrammierung und Echtzeitverhalten von Keil RTX. Frank Erdrich Semester AI 7

Aufbau eines modernen Betriebssystems (Windows NT 5.0)

Fakultät für Informatik der Technischen Universität München. Kapitel 3. Nebenläufigkeit

Abschlusspräsentation - Bachelorarbeit

Javakurs für Fortgeschrittene

Grundlagen der Technischen Informatik. 13. Übung

Architekturen, Werkzeuge und Laufzeitumgebungen für eingebettete Systeme

Fehlertoleranz in eingebetteten Systemen

Das zentrale Werkzeug für kürzere Entwicklungs- und Releasezyklen von software-basierten Kundenfunktionen in der Automobilindustrie

PiXtend mit CODESYS Demo Projekt

n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen - 1 -

High Performance Embedded Processors

MCX08M Programmierbarer Regler

EasyKit. Innovative Entwicklungsmethodik für mechatronische Systeme

Virtuelle Produktion für industrielle Fertigungsanlagen mit spurgeführten Werkstückträgertransfersystemen. - eigene Vorarbeiten zum Antrag A3 -

Übung zur Vorlesung Echtzeitsysteme

Aktuelle Trends bei der Simulation mechatronischer Systeme

Große Simulink-Modelle mit Bus Objects effizienter gestalten

OSEK / OSEKtime - ein Vergleich

Klausur. Betriebssysteme SS 2007

, SS2012 Übungsgruppen: Do., Mi.,

Entwicklung einer sensorlosen Motorregelung für Dentalbohrer nach IEC Dr. Michael Schwarz

PiXtend mit CODESYS Demo Projekt

Software Engineering

Embedded CASE Tool Systems Embedded Control Solutions

Prof. Dr. Uwe Brinkschulte. Lehrstuhl für Eingebettete Systeme

Simulation digitaler Schaltungen auf GPUs

IEC Windows- Programmiersoftware für CPS500

Bounded Model Checking mit SystemC

TensorFlow Open-Source Bibliothek für maschinelles Lernen. Matthias Täschner Seminar Deep Learning WS1718 Abteilung Datenbanken Universität Leipzig

Absicherung von Automotive Software Funktionen

1.4 Spezifikation. Inhalte einer. Spezifikation

Intelligente Agenten

Bessere Service-Modellierung durch Kombination von BPMN und SoaML. Nürnberg, 24. Februar 2011

So testen Sie ein selbstorganisiertes System

HW/SW CODESIGN. Echtzeitverhalten. Mehmet Ozgan November 2015

Jochen Ludewig Horst Lichter. Software Engineering. Grundlagen, Menschen, Prozesse, Techniken. dpunkt.verlag

Obj ektorientierte Systemanalyse

Vertiefungsrichtung Rechnerarchitektur

PiXtend mit CODESYS Demo Projekt

Paul Molitor und Jörg Ritter VHDL. Eine Einführung. ein Imprint von Pearson Education

Methode zur Entwicklung sicherheitskritischer eingebetteter Systeme mittels deterministischer UML-Modelle

Systemkonzept eines modularen HiL-Systems für modellbasierte Funktionsentwicklung fahrzeugmechatronischer Systeme

LTL und Spin. Stefan Radomski

Transkript:

Modellierung von n Synchroner Datenfluss Werkzeug: EasyLab 121

Entwicklungsprozess in EasyLab 1. Spezifikation der Zielhardware 2. Modellierung der Zustandslogik sowie der abzuarbeitenden Aufgabe je Zustand 3. Simulation des Programms zum Testen und zur Erkennung von Fehlern 4. Codegenerierung und Echtzeit-Visualisierung des Zustands der Zielhardware 1. Hardwaremodell 3. Simulation 4. Codegenerierung, Deployment Testen, Parametrisieren 2. Anwendungsmodell Echtzeit- Visualisierung

Synchroner Datenfluss Funktionsblöcke Grundlagen Eingänge und Ausgänge Synchronitätshypothese Interner Zustand Black boxes -Sicht Zugeordnete Aktionen Effizienz und Zuverlässigkeit Komposition von Funktionsblöcken Berechnung statischer Schedules Typisierte Verbindungen Deterministisches Laufzeitverhalten In Bearbeitung: Hierarchische Statische Speicherallokation (RAM) Funktionsblöcke Erzeugung kompakten Codes (ROM)

Überladen von Aktoren Aktoren können typunabhängig angeboten werden Der Typ eines Aktors ist solange frei wählbar, bis sich durch Anschlussbelegung der Typ automatisch ergibt 124

Geräte Hardware Mikrocontroller Sensoren und Aktoren Geräte Hierarchische Beschreibung der Hardware Ressourcenmanagement Modellierung der Hardwarefunktionalität Beispiele: I/O-Pins, ADCs, Timer, Schnittstelle zur Anwendungslogik Hardwarezugriff Geräte bieten eine Menge von Funktionsblöcken an

Anwendung Pneumatischer Zylinder Hardware Zylinder Positionssensor (Kolben) Endlagenschalter Zwei Magnetventile Steuerungseinheit Mikrocontroller Analog-Digital-Wandler Treiber für induktive Lasten Ventile Ziel: Positionssteuerung des Kolbens Umsetzung Hardware-Modell aus Bibliothek für Match-X Anwendungsmodell Kleines Datenflussdiagramm Integration der Hardwarefunktionalität Steuereinheit Wegsensor

EasyLab: Zustandsfluss-Diagramme Zustandsfluss-Diagramme An IEC-61131-3 angelehnt Zustand: Referenz auf SDF-Modell Transitionsbedingungen: Boolesche Ausdrücke mit Variablen Komposition von Zuständen Zustandsfolgen Alternativ- und Parallelzweige Sprünge Vorteile Modellierung von Zuständen (vgl. Automaten) Diagrammart weit verbreitet in Anwendungsdomäne

Perspektiven Ausdehnung der Modellierung auf verteilte Systeme Automatische Parallelisierung für Multi- und Many-Core-Systeme: Besseren Verhältnisses von Leistung / Energieeinsatz Berücksichtigung nicht-funktionaler Eigenschaften Automatische Erzeugung energieeffizienten Codes Fehlertoleranz-Mechanismen Quality of Service Verstärker Einsatz in Lehre und Ausbildung Mikrocontroller-Praktikum Übung zur Vorlesung

Modellierung von n Zeitgesteuerte Systeme Werkzeug: Giotto 129

Giotto: Hintergrund Programmierumgebung für eingebettete Systeme (evtl. ausgeführt im verteilten System) Ziel: strikte Trennung von plattformunabhängiger Funktionalität und plattformabhängigen Scheduling und Kommunikation temporaler Determinismus Hauptkonzept: Logische Ausführungszeiten Aktoren: Tasks Programmblock aus sequentiellen Code keine Synchronisationspunkte, blockende Operationen erlaubt Schnittstellen: Ports Drivers: realisieren die Kommunikation zwischen Ports Flexibilität durch Modes/Guards Ausführung durch virtuelle Maschinen: Embedded Machine: Reaktion der Tasks auf physikalische Ereignisse Scheduling Machine: physikalisches Scheduling http://embedded.eecs.berkeley.edu/giotto/ 130

Logische Ausführungszeit Port Port Logical Execution Time Logical Task Invocation Physical Start Suspend Resume Stop Motivation siehe http://www.cs.uic.edu/~shatz/sees/henzinger.slides.ppt 131

Kommunikation zwischen Tasks 132

Modes / Guards Um die Ausführung flexibel zu gestalten, bietet Giotto Modes und Guards an Guards: Boolsche Funktion, die über die Ausführung eines Tasks entscheidet (wird vor Start des Tasks aufgerufen) Mode: Menge von Tasks und Drivers die zeitgleich ausgeführ werden, es kann immer nur ein Mode aktiv sein. Nicht-harmonischer Moduswechsel (Unterbrechung eines laufenden Modes): Voraussetzung: [m]/ task = [m ]/ task m: Quellmodus, m : Zielmodus, [m]: Modusdauer m, task : Taskfrequenz Logische Ausführungszeit muss gleich sein Wechselmechanismus: = LCM { [m]/ task { task,t, ) Invokes[m], = [m ]-( - ) mit = n* LCM: least common multiple, : aktuelle Rundenzeit, : neue Rundenzeit in m, - : Zeit bis zum nächsten gleichzeitigen Beendigungspunkt Task 1: ω task1 =1 Task 2: ω task2 =3 Task 1: ω task1 =1 Task 3: ω task2 =2 π[m]=12 δ = 8 π[m ]=12 δ =? 133

Ausführungsumgebung 134

Zusammenfassung Das Konzept der logischen Ausführungszeiten erlaubt eine Abstrahierung von der physikalischen Ausführungszeit und somit die Trennung von plattformunabhängigem Verhalten (Funktionalität und zeitl. Verhalten) und plattformabhängiger Realisierung (Scheduling, Kommunikation) Die Ausführung erfolgt über zwei virtuelle Maschinen: E-Machine: Interaktion mit der Umgebung (reaktiv) S-Machine: Interaktion mit der ausführenden Plattform (proaktiv), Vorteil: Schedule kann vorab berechnet werden Weitere Literaturhinweise: Henzinger et al.: Giotto: A time-triggered language für embedded programming, Proceedings of the IEEE, vol.91, no.1, pp. 84-99, Jan 2003 Henzinger et al.: Schedule-Carrying Code, Proceedings of the Third International Conference on Embedded Software (EMSOFT), 2003 135