Elektrotechnik & Informationstechnik, Institut für Automatisierungstechnik, Professur für Prozessleittechnik Prozessleittechnik / AG Systemverfahrenstechnik AUTOMATION 2016 Co-Simulation mittels OPC UA Stephan Hensel¹, Markus Graube¹, Leon Urbas¹, Till Heinzerling², Mathias Oppelt² (¹TU Dresden, ²Siemens AG) Baden-Baden, 07.06.2016 Agenda Motivation Konzept • Architekturüberblick • Workflow Umsetzung • Prototyp • Anwendungsbeispiel Zusammenfassung und Ausblick Baden-Baden, 07.06.2016 Co-Simulation mittels OPC UA 2 Motivation Hohe Kosten durch Spezifikationsund Implementierungsfehler Frühzeitige Fehlererkennung durch Simulation Spezifische Simulationswerkzeuge [1] Baden-Baden, 07.06.2016 Co-Simulation mittels OPC UA 3 Motivation Zielstellung • Untersuchung konzeptioneller Machbarkeit einer Middleware zur Kopplung verschiedener Simulationssysteme • Analyse des Beitrags von OPC UA für Verringerung von Konfigurations- und Anpassungsaufwänden Ansatz: • Integration von Einzelmodellen in eine Co-Simulationsumgebung • Verwendung von OPC UA als generische Middleware Baden-Baden, 07.06.2016 Co-Simulation mittels OPC UA 4 Konzept Ausgangspunkt Baden-Baden, 07.06.2016 Co-Simulation mittels OPC UA Portverschaltung im Server Portlverschaltung im Simulator Client Adapter OPC UA für CoSim Aggregating Server OPC UA Bestehende CoSimulationsansätze mittels OPC UA Aggregating Server mit Portverschaltung im Server 5 Architektur der Co-Simulationsumgebung Baden-Baden, 07.06.2016 Co-Simulation mittels OPC UA 6 Architektur der Co-Simulationsumgebung Baden-Baden, 07.06.2016 Co-Simulation mittels OPC UA 7 Architektur der Co-Simulationsumgebung CoSimStatusType ::Enumeration SimulatorType ::BaseObjectType EnumStrings Attribute DataType = LocalizedText ValueRank = OneDimensionalArray ArrayDimension = {5} Value = { „NOSIMULATION“, „LOADED“, „STOPPED“, „RUNNING“, „PROCEEDING“ } ModelIdentifier ::PropertyType Type ::PropertyType URL ::PropertyType Status Attribute DataType = CoSimStatusType ValueRank = Scalar ArrayDimension Value = 1 SignalComponentType ::BaseObjectType DataItem ::DataItemType Quality ::PropertyType Version ::PropertyType CoSimStatusType ::Enumeration SimulatorType ::BaseObjectType InputList ::BaseObjectType EnumStrings Attribute DataType = LocalizedText ValueRank = OneDimensionalArray ArrayDimension = {5} Value = { „NOSIMULATION“, „LOADED“, „STOPPED“, „RUNNING“, „PROCEEDING“ } ModelIdentifier ::PropertyType Type ::PropertyType URL ::PropertyType Signal Organizes Status Attribute DataType = CoSimStatusType ValueRank = Scalar ArrayDimension Value = 1 TimeStamp ::PropertyType SignalType ::BaseObjectType ControlSignalGroup SignalComponentType ::BaseObjectType DataItem ::DataItemType Quality ::PropertyType Version ::PropertyType TimeStamp ::PropertyType SignalType ::BaseObjectType InputList ::BaseObjectType Organizes InputSignalGroup Signal Organizes Organizes ControlSignalGroup InputSignalGroup OutputList ::BaseObjectType OutputList ::BaseObjectType Organizes OutputSignalGroup Organizes Baden-Baden, 07.06.2016 Co-Simulation mittels OPC UA OutputSignalGroup 8 Konzept Workflow • Erstellung von Simulationsmodellen Modellierung • Informationsmodellerstellung Konfiguration Kopplung Laufzeit • Browse • Portverschaltungen • Wertaktualisierung • Simulationssteuerung • Simulationsergebnisse Auswertung Baden-Baden, 07.06.2016 Co-Simulation mittels OPC UA 9 Konzept OPC UA Client Informationsmodellabfrage Browse, BrowseNext 4 OPC UA Server 7 Informationsmodelldaten 6 Informationsmodellerstellung (Methodenaufruf) 2 OPC UA Server OPC UA Client OPC UA Server Call – register() Browse, BrowseNext 2 3 OPC UA Client 1 Adapter 5 Adapter Aggregating Server Aggregating Server Informationsmodellaggregation und -abfrage OPC UA Server OPC UA Client Browse-Ergebnisse 3 Schnittstelle Simulator A 1 Schnittstelle Simulator A Simulatordaten Simulator A Baden-Baden, 07.06.2016 UI Simulator A Co-Simulation mittels OPC UA 10 Konzept Aggregating Server Portverschaltung 3 OPC UA Client Adapter Subscription-Erstellung für Output-Ports OPC UA Server Portverschaltung CreateMonitoredItems (Methodenaufruf) Referenzerstellung für Portverschaltung (EingangA <-> AusgangX) Call – connectPorts() 4 2 OPC UA Server OPC UA Client Portverschaltungen 1 Schnittstelle Simulator A UI Simulator A Baden-Baden, 07.06.2016 Co-Simulation mittels OPC UA 11 Konzept Wertaktualisierung 3 OPC UA Server OPC UA Client 4 5 Aktualisierte Ausgänge 2 OPC UA Server OPC UA Client OPC UA Server 1 6 Schnittstelle Simulator A Schnittstelle Simulator B Aktualisierte Ausgänge Aktualisierte Eingänge Simulator A - Slave Baden-Baden, 07.06.2016 OPC UA Client Simulator B - Master Co-Simulation mittels OPC UA 12 Konzept Simulationssteuerung 3 OPC UA Client Methodenaufruf OPC UA Server Methodenaufruf Call Call 2 4 OPC UA Server OPC UA Client OPC UA Server OPC UA Client Steuerbefehle 5 5 1 Schnittstelle Simulator A Schnittstelle Simulator B Simulator A - Slave Simulator B - Master UI Steuerbefehle Baden-Baden, 07.06.2016 Co-Simulation mittels OPC UA 13 Konzept Simulationssteuerung Zustandsübergangsgraph NOSIMULATION close Aggregating Server Methoden open LOADED reset init STOPPED stop start RUNNING doProceed • register(url, rootNodeId) • unregister(url) • setMaster(url) • connectSignals(inSim, inSig, outSim, outSig) • disConnectSignals(inSim, inSig, outSim, outSig) • open(), close(), init(), reset(), start(), stop(), doStep(), doProceed(), setSpeed(), createSnapshot(), loadSnapshot() • Aufruf der entsprechenden Methoden in den angeschlossenen Simulatoren PROCEEDING Baden-Baden, 07.06.2016 Co-Simulation mittels OPC UA 14 Umsetzung Prototyp Co-Simulationsumgebung • Aggregating Server • Simulatorspezifische Adapter für SIMIT und FMI open62541 als OPC UA Stack Baden-Baden, 07.06.2016 Co-Simulation mittels OPC UA 15 Umsetzung Anwendungsbeispiel Tankmodell Mischen FMI1 SIMIT2 Filter Mischen Reaktor Abfüllung SIMIT 1 Baden-Baden, 07.06.2016 Co-Simulation mittels OPC UA 16 Zusammenfassung Flexibles Co-Simulationskonzept mittels OPC UA • Semantische Selbstbeschreibungsmechanismen • Sichere Kommunikation Vorteile • Wiederverwendbarkeit bestehender Simulationsmodelle • Anwendungsfallorientierter Einsatz von Simulationswerkzeugen • Resourceneinsparung • Eingliederung von Hard- und Software Baden-Baden, 07.06.2016 Co-Simulation mittels OPC UA 17 Ausblick Konzept • Fehlerbetrachtungen (Abstürze von Simulatoren, Fehlerzustände, Abbruchtransitionen) • Robustheit (Verschaltungsprüfungen, automatische Typkonvertierungen) Prototyp • Untersuchung von Performance & Skalierungseigenschaften • Einbindung einer realen Steuerung Baden-Baden, 07.06.2016 Co-Simulation mittels OPC UA 18 Ausblick Co-Simulation in einem modularen Anlagen-Ökosystem Module • • • • Erfüllt VT-Funktion Eigene Steuerung Eigenes Sicherheitsverhalten Eigene Simulation Läuft intern ab (z.B. RaspberryPi) Engineering • Modulauswahlphase (Onlinebereitstellung des Simulationsmodells durch Hersteller) Betrieb • Können tatsächliche Alterungserscheinung des speziellen Moduls mit einbeziehen • Selbstüberwachung (Abgleich Simulation mit realem Zustand) Baden-Baden, 07.06.2016 Co-Simulation mittels OPC UA 19 Vielen Dank für Ihre Aufmerksamkeit! Prof. Dr.-Ing. habil. Leon Urbas Technische Universität Dresden Fakultät Elektrotechnik und Informationstechnik Institut für Automatisierungstechnik Für spätere Fragen: [email protected] Tel.: +49 351 463-34604 Fax: +49 351 463-39681 Besucheradresse: Barkhausen-Bau Georg-Schumann-Str. 11 01187 Dresden Postanschrift (Briefe): Technische Universität Dresden Fakultät Elektrotechnik und Informationstechnik Institut für Automatisierungstechnik 01062 Dresden Baden-Baden, 07.06.2016 Co-Simulation mittels OPC UA 20 Quellen und Bildnachweise [1] http://www.chainalytics.com/12442-2/ [2] Bildnachweis Modul einfügen Baden-Baden, 07.06.2016 Co-Simulation mittels OPC UA 21 Anhang Baden-Baden, 07.06.2016 Co-Simulation mittels OPC UA 22 Konzept OPC UA Methoden Methoden auf Simulator Server • open()/close() Methoden auf dem Aggregating Server (AS) • Bekanntmachung des Simulationsserver im AS Erster Simulator als Master (Simulationssteuerung), Weitere Simulatoren als Slave Projekt-/Versionsverwaltung • init()/reset() Initialisiere mit Werten Reset der Simulation • start()/stop() Start/Stop Simulation • doStep(time) • doProceed(time) • • • setSpeed() connectSignals(inSim, inSig, outSim, outSig), disConnectSignals(inSim, inSig, outSim, outSig) open(), close(), init(), reset(), start(), stop(), doStep(), doProceed(), setSpeed(), createSnapshot(), loadSnapshot() Aufruf der entsprechenden Methoden in den angeschlossenen Simulatoren Setze Simulationsgeschwindigkeit • setMaster(url) Über Methodenaufrufe kann Rolle geändert werden Simulationszeit weiterschalten • unregister(url) Abmelden eines Simulators vom AS Führe Einzelschritt aus • register(url, rootNodeId) createSnapshot()/loadSnapshot() Erstelle/Lade Snapshot Baden-Baden, 07.06.2016 Co-Simulation mittels OPC UA 23 Konzept Wertaktualisierung (Zeitdiagramm) SIMIT1 SIMIT2 AggServ FMI1 allStates(RUNNING) success doProceed() RUNNING Subscription -> Update der Ausgänge allStates(RUNNING) doProceed() Propagierung der aktu alisierten Werte an verschalteten Simulator (Write) -> aktuelle Daten s tehen für nächsten Simulationsschritt bereit RUNNING doProceed PROCEEDING Inputwerte werden für die Simulation üb ernommen doProceed() doProceed doProceed RUNNING PROCEEDING Inputwerte werden für die Simulation üb ernommen RUNNING success Baden-Baden, 07.06.2016 Co-Simulation mittels OPC UA 24 Konzept Simulationssteuerung (Zeitdiagramm) FMI1 AggServ SIMIT2 SIMIT1 allStates(NOSIMULATION) success open() NOSIMULATION NOSIMULATION open() open open open allStates(LOADED) open() Subscription -> Update Status LOADED failed LOADED Subscription -> Update Status allStates(LOADED) success Baden-Baden, 07.06.2016 Co-Simulation mittels OPC UA 25
© Copyright 2024 ExpyDoc