
Open Source aus der SmartFactory-KL
Die Brücke zwischen IT und Anwendung
In unserer Referenzarchitektur verbindet die IT/OT-Kopplungsebene die physische Produktion mit den Anwendungen darüber. Genau hier setzt OpenSMI an: Es macht die Fähigkeiten einer Maschine als Skills verfügbar, also als klar definierte, aufrufbare Funktionen mit Parametern, Zuständen und Rückgabewerten.
Übergeordnete Systeme wie MES, autonome Agenten, grafische Oberflächen etc. können so jede SMI-konforme Maschine auf dieselbe Weise ansprechen, ohne wie bislang üblich viel Zeit und Aufwand in herstellerspezifische Anpassungen zu investieren.
-
IT-Ebene
Unternehmens- und Cloud-Anwendungen
Planung, Optimierung und datengetriebene Entscheidungen, etwa durch ERP, MES, KI-Module und autonome Agenten.
-
Hier wirkt OpenSMI
IT/OT-Kopplungsebene
Edge-Komponenten und Steuerung
Sichere Kommunikation und Datenaggregation. OpenSMI macht hier die Fähigkeiten einer Maschine als standardisierte Skills über OPC UA ansprechbar.
-
OT-Ebene
Physische Produktion
Datenerfassung und Prozessausführung durch Feldgeräte, Sensorik und Aktorik.
Ohne standardisierte Schnittstelle
- Jede Maschine bringt ihre eigene Logik und Benennung mit
- Für jede Kombination aus Anlage und Anwendung entsteht eigener Integrationsaufwand
- Wissen über die Anbindung steckt in Einzellösungen
Mit OpenSMI
- Fähigkeiten sind als Skills einheitlich beschrieben und aufrufbar
- Eine Anwendung spricht jede SMI-konforme Maschine auf dieselbe Weise an
- Bestehende Steuerungen bleiben erhalten: OpenSMI kann als Adapter vor eine SPS gesetzt werden, sodass sicherheitskritische Abläufe weiterhin dort laufen

Auf Bewährtem aufgebaut, um das Nötige erweitert
OpenSMI beschreibt Maschinen und ihre Komponenten mittels standardisierter, hierarchischer OPC UA-Informationsmodelle und macht ihre Fähigkeiten als Skills nutzbar. Als Basis dient OPC UA for Machinery, die wir um eigene Bausteine, allen voran das Skill-Modell, erweitern.
Die veröffentlichten Pakete stellen dafür die Grundstruktur bereit, auf deren Basis konkrete Komponenten wie Achsen, Greifer oder Förderstrecken modelliert und implementiert werden können.
-
Machineoberste Einheit, die ein Client anspricht
- IdentificationHersteller, Seriennummer, Instanz-URI
- Lockverhindert gleichzeitige oder widersprüchliche EingriffeDefinition *Prevents concurrent or conflicting modifications to a machinery item in OPC 10000-100.
- ParameterSetbeschreibbare Parameter als flache ListeDefinition *Provides containers for systems that expose a flat list of parameters in OPC 10000-100.
- MonitoringProzess-, Verbrauchs- und Zustandsdaten im Betrieb, dazu die Position im RaumDefinition *Offers a dedicated structure to manage and supervise process information, consumption information, health information, and status information in OPC 40000-1. Additionally, we integrate localization by using SpatialObjects of OPC 10000-210.
- Attributesstatische Angaben wie Abmessungen, Masse und Leistung, dazu BilderDefinition *Store static information such as dimensions, mass, and power, as well as supplementary information like images using the ISupportInfoType of OPC 10000-100.
- ResourcesBetriebsmittel, die die Maschine nutztDefinition *Provide access to all identifiable resources associated with a machinery item. In this context, a resource describes and/or quantifies objects used by the machinery item, comparable to Equipment of OPC 40000-1.
- RequirementsAbhängigkeiten von anderen AnlagenteilenDefinition *Define dependencies on other assets, i.e., various OPC UA objects.
-
Componentsalle identifizierbaren Bauteile, etwa Achsen, Greifer, FörderstreckenDefinition *Enable the identification and organization of all identifiable components of a machinery item in OPC 40001-1.
- Componentgleicher Aufbau wie die Maschine, beliebig tief verschachtelbar
-
SkillSetFähigkeiten der Maschine, als gekapselte Funktionen aufrufbarDefinition *Adds skills to a machinery item, allowing the invocation of executable implementations of encapsulated automation functions.
-
Skilleinmalig oder dauerhaft, einzeln oder zusammengesetzt
-
SkillExecutionder Ausführungsteil des Skills
- ParameterSetEingaben für den Aufruf
-
StateMachineZustände und Übergänge
Ready› Starting› Running› Completing› Completed
- MonitoringLive-Werte während der Ausführung, nur lesbar
- FinalResultDataErgebnisse nach Abschluss, nur lesbar
- FeasibilityCheckkann der Skill die Aufgabe grundsätzlich?
- PreconditionCheckist sie jetzt und hier möglich?
-
SkillExecutionder Ausführungsteil des Skills
-
Skilleinmalig oder dauerhaft, einzeln oder zusammengesetzt
-
MethodSetsynchrone Aufrufe als flache ListeDefinition *Provide containers for systems that expose a flat list of methods in OPC 10000-100.
- Methodgleicher Aufbau wie ein Skill, aber ohne StateMachine
Fundament: OPC UA for Machinery. Identifikation, Komponentenhierarchie, Parameter und Überwachung folgen dem etablierten Standard. Türkis markiert sind die Knoten, die die SmartFactory-KL ergänzt hat, allen voran das Skill-Modell, das die Fähigkeiten einer Maschine ansprechbar macht.
* Definitionen aus dem zugehörigen Fachbeitrag, IEEE Xplore
- Ready
- Starting
- Running
- Completing
- Completed
Jeder Skill durchläuft einen definierten Zustandsablauf, den jede Anwendung gleich interpretiert. Für einen weiteren Lauf setzt Reset() den Skill zurück nach Ready. Bei einem Fehler oder nach Halt() geht er nach Halted.
Die Komponenten des OpenSMI-Ökosystems
Unser Beitrag zum OpenSMI-Ökosystem besteht derzeit aus folgenden Komponenten:
OpenSMI-Server
Python-Framework für die einfache Bereitstellung von SMI-konformen Maschinen, Komponenten und Skills.
OpenSMI-Client
Python-Client für die einfache Interaktion mit SMI-konformen Maschinen, Komponenten und Skills.
OpenSMI-Remote
Erweiterung für den OpenSMI-Server, um externe SMI-konforme Maschinen, Komponenten und Skills in einem einzigen Server zu aggregieren.
In Kürze werden weitere Komponenten veröffentlicht:
OpenSMI-UI
Generische Web-Oberfläche für die Interaktion von menschlichen Bediener:innen mit SMI-konformen Maschinen.
OpenSMI-SFKL
Erweiterung für den OpenSMI-Server für SmartFactory-KL-spezifische Komponenten und deren Skills.
OpenSMI-ROS
Erweiterung für den OpenSMI-Server, um Komponenten und Skills von ROS nahtlos in OpenSMI zu integrieren.
Gewachsen im
laufenden Betrieb
unserer Modellfabrik
im Einsatz in der SmartFactory-KL-Modellfabrik
Veröffentlichung unter der MIT-Lizenz
als offener Standard für die Kommunikation

Reifegrad und industrieller Einsatz
OpenSMI richtet sich derzeit noch an Forschung, Prototyping und Demonstratoren. Python eignet sich gut für schnelle Entwicklung und Erprobung, ist für den produktiven Einsatz in der Industrie aber nur bedingt einsetzbar. Die Konzepte hinter OpenSMI lassen sich jedoch auf besser geeignete Programmiersprachen übertragen.
Jetzt loslegen: Quellcode, Pakete und Dokumentation



