Open Source aus der SmartFactory-KL

OpenSMI: Maschinen einheitlich ansprechen

Wie gelangen die Fähigkeiten einer Maschine einheitlich, sicher und herstellerunabhängig in die IT-Welt? Mit OpenSMI (Open Smart Machine Interface) stellen wir einen zentralen Baustein unserer Referenzarchitektur als Open Source zur Verfügung.

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.

  1. IT-Ebene

    Unternehmens- und Cloud-Anwendungen

    Planung, Optimierung und datengetriebene Entscheidungen, etwa durch ERP, MES, KI-Module und autonome Agenten.

  2. 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.

  3. 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.

Adressraum eines SMI-konformen OPC UA-Servers vereinfachte Darstellung · Maus über Knoten zeigt Detail-Definition
Machinesein Server kann mehrere Maschinen führen
  • 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?
    • 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.

Herkunft aus dem Standard von der SmartFactory-KL ergänzt
Knotenart Ordner Objekt Methode

* 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:

Verfügbar

OpenSMI-Server

Python-Framework für die einfache Bereitstellung von SMI-konformen Maschinen, Komponenten und Skills.

Verfügbar

OpenSMI-Client

Python-Client für die einfache Interaktion mit SMI-konformen Maschinen, Komponenten und Skills.

Verfügbar

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:

In Kürze

OpenSMI-UI

Generische Web-Oberfläche für die Interaktion von menschlichen Bediener:innen mit SMI-konformen Maschinen.

In Kürze

OpenSMI-SFKL

Erweiterung für den OpenSMI-Server für SmartFactory-KL-spezifische Komponenten und deren Skills.

In Kürze

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

seit2020

im Einsatz in der SmartFactory-KL-Modellfabrik

2026

Veröffentlichung unter der MIT-Lizenz

OPC UA

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