Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR IDENTIFYING AN INCOMPATIBILITY AMONG FUNCTIONAL UNITS FOR JOINTLY PROVIDING A CONTROL FUNCTION; CONTROL DEVICE; SYSTEM; COMPUTER PROGRAM; STORAGE MEDIUM; AND DATA STREAM
Document Type and Number:
WIPO Patent Application WO/2019/243024
Kind Code:
A1
Abstract:
The invention relates to a method for identifying an incompatibility between a plurality of functional units (9), which jointly provide a control function for controlling and/or monitoring equipment (6) and for this purpose are designed to communicate with one another. In order to enable improved identification of incompatibilities between the functional units (9), the following steps are provided: b) determining whether a change of a mode of functioning causes a change in communication in the case of a first (1) of the plurality of functional units (9), c) determining a second (2) of the plurality of functional units (9) that is designed to communicate with the first functional unit (1), and d) determining, on the basis of the communication between the first functional unit (1) and the second functional unit (2), whether there is an incompatibility between the first functional unit (1) and the second functional unit (2).

Inventors:
SCHALL DANIEL (AT)
Application Number:
PCT/EP2019/064273
Publication Date:
December 26, 2019
Filing Date:
June 03, 2019
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SIEMENS AG (DE)
International Classes:
H04L12/24; H04L12/46; H04L12/40
Foreign References:
US20070032917A12007-02-08
EP2645190A22013-10-02
US20140046618A12014-02-13
EP18003975A
EP18003976A
Download PDF:
Claims:
Patentansprüche

1. Verfahren zum Erkennen einer Inkompatibilität zwischen mehreren Funktionseinheiten (9), wobei die mehreren Funkti onseinheiten (9) eine oder mehrere Steuerfunktionen zum Steu ern und/oder Überwachen einer Gerätschaft (6) gemeinsam be reitstellen und die mehreren Funktionseinheiten (9) hierzu untereinander zur Kommunikation ausgebildet sind, mit den Schritten :

b) Bestimmen, ob eine Änderung einer Funktionsweise eine Än derung einer Kommunikation bei einer ersten (1) der mehreren Funktionseinheiten (9) herbeiführt,

c) Bestimmen einer zweiten (2) der mehreren Funktionseinhei ten (9), welche zur Kommunikation mit der ersten Funktions einheit (1) ausgebildet ist, und

d) Bestimmen anhand der Kommunikation zwischen der ersten Funktionseinheit (1) und der zweiten Funktionseinheit (2), ob eine Inkompatibilität zwischen der ersten Funktionseinheit

(1) und der zweiten Funktionseinheit (2) vorliegt.

2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass bei dem Bestimmen nach Schritt d) dann eine Inkompatibilität zwischen der ersten Funktionseinheit (1) und der zweiten Funktionseinheit (2) erkannt wird, wenn eine Inkompatibilität zwischen jeweiligen Schnittstellen der ersten Funktionsein heit (1) und der zweiten Funktionseinheit (2) vorliegt und/oder einem Signalformat der Kommunikation vorliegt.

3. Verfahren nach Anspruch 1 oder 2, gekennzeichnet, durch einen zusätzlichen Schritt: a) Bestimmen, ob die Änderung der Funktionsweise bei der ersten Funktionseinheit (1) gegenüber einem früheren Zustand vorliegt.

4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass ein Erkennen der Änderung der Funktionsweise der ersten Funk tionseinheit (1) bei dem Bestimmen gemäß Schritt a) basierend auf Metadaten (27), insbesondere einer Versionsnummer, der ersten Funktionseinheit (1) erfolgt.

5. Verfahren nach Anspruch 3 oder 4, dadurch gekennzeichnet, dass ein Programmcode (26) für die erste Funktionseinheit (1) nur dann von einer Programmcodedatenbank (22) geladen wird, wenn in dem Schritt a) erkannt wurde, dass eine Änderung der Funktionsweise der ersten Funktionseinheit (1) vorliegt.

6. Verfahren nach einem der vorherigen Ansprüche, dadurch ge kennzeichnet, dass der Schritt b) gemäß Anspruch 1 und/oder der Schritt a) gemäß Anspruch 3 zumindest teilweise durch ei nen Parser (24) durchgeführt wird.

7. Verfahren nach einem der vorherigen Ansprüche, dadurch ge kennzeichnet, dass eine Versionshistorie, welche zumindest eine Beschreibung der Funktionsweise der ersten Funktionsein heit (1) vor und nach der Änderung der Funktionsweise bein haltet, in einer Versionsdatenbank (23) gespeichert wird.

8. Verfahren nach einem der vorherigen Ansprüche, dadurch ge kennzeichnet, dass ein jeweiliger Programmcode (26) für jede der mehreren Funktionseinheiten (9) von einer Programmcodeda tenbank (22) wiederholt geladen wird und nach jedem Laden zu mindest die Schritte b) bis d) durchgeführt werden.

9. Verfahren nach einem der vorherigen Ansprüche, dadurch ge kennzeichnet, dass

- eine dritte (3) der mehreren Funktionseinheiten (9) be stimmt wird, welche zur Kommunikation mit der zweiten Funkti onseinheit (2) ausgebildet ist, und

- bestimmt, ob eine Inkompatibilität zwischen der ersten Funktionseinheit (1) und der dritten Funktionseinheit (3) o- der der zweiten Funktionseinheit (2) und der dritten Funkti onseinheit (3) vorliegt.

10. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass der Schritt a) wiederholt, insbesondere periodisch, durchgeführt wird.

11. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die genannten Schritte aus Sicht der ersten Funktionseinheit (1) für jede der mehreren Funkti onseinheiten (9) durchgeführt werden.

12. Verfahren nach Anspruch 11, dadurch gekennzeichnet, dass eine Übersicht über die jeweiligen Inkompatibilitäten jeder der mehreren Funktionseinheiten (9) erzeugt wird und automa tisch Maßnahmen zum Eindämmen jeweiliger Inkompatibilitäten getroffen werden, insbesondere ein Anpassen der jeweiligen Kommunikation, ein Einschränken der jeweiligen Kommunikation oder ein Erstellen einer Brückenschnittstelle.

13. Steuereinrichtung (19) mit Mitteln zum Erkennen einer In kompatibilität zwischen Funktionseinheiten (9), wobei die Mittel eingerichtet sind, ein Verfahren nach einem der An sprüche 1 bis 12 durchzuführen.

14. System (18) umfassend

- eine Gerätschaft (6),

- zumindest eine Funktionsinstanz (21) zum Bereitstellen von mehreren Funktionseinheiten (9), wobei die mehreren Funkti onseinheiten (9) dazu ausgebildet sind, eine oder mehrere Steuerfunktionen zum Steuern und/oder Überwachen der Gerät schaft (6) gemeinsam bereitzustellen und hierzu untereinan der zu kommunizieren,

- einer Programmcodedatenbank (22), welche dazu ausgebildet ist, einen jeweiligen Programmcode (26) für jede der mehre ren Funktionseinheiten (9) zur Programmierung der zumindest einen Funktionsinstanz (21) bereitzuhalten, und

- einer Steuereinrichtung (19) nach Anspruch 13.

15. Computerprogramm, welches direkt in einen Speicher einer Steuereinrichtung (19) ladbar ist, mit Programmcodemitteln, um die Schritte des Verfahrens nach einem der Ansprüche 1 bis 12 auszuführen, wenn das Programm in der Steuereinrichtung (19) ausgeführt wird.

16. Speichermedium mit darauf gespeicherten elektronisch les baren Steuerinformationen, welche zumindest ein Computerpro gramm nach Anspruch 15 umfassen und derart ausgestaltet sind, dass sie bei Verwendung des Speichermediums in einer Steuer- einrichtung (19) ein Verfahren nach einem der Ansprüche 1 bis 12 durchführen.

17. Datenstrom an Daten zum Erkennen einer Inkompatibilität zwischen Funktionseinheiten (9), wobei der Datenstrom zumin- dest teilweise mittels eines Verfahrens nach einem der An sprüche 1 bis 12 gewonnen wurde.

Description:
Beschreibung

Verfahren zum Erkennen einer Inkompatibilität unter Funkti onseinheiten zum gemeinsamen Bereitstellen einer Steuerfunk tion; Steuereinrichtung; System; Computerprogramm; Speicher medium; sowie Datenstrom

Die Erfindung betrifft ein Verfahren zum Quantifizieren der Zuverlässigkeit einer Steuerfunktion für eine Gerätschaft.

Ein zweiter Aspekt der Erfindung betrifft eine Steuereinrich tung mit Mitteln zum Durchführen eines solchen Verfahrens.

Ein weiterer Aspekt der Erfindung betrifft ein System mit ei ner solchen Steuereinrichtung. Zur Erfindung gehören außerdem ein Computerprogramm mit Programmcodemitteln, ein Speicherme dium sowie ein Datenstrom.

Gerätschaften, insbesondere industriell genutzte Produktions gerätschaften im weitesten Sinne, und/oder deren Funktions einheiten können miteinander vernetzt werden. Beispiele für Gerätschaften sind einzelne Produktionsanlagen, Produktions maschinen, Sensoren und Aktoren beziehungsweise Motoren. Bei den genannten Beispielen ergibt sich die Systematik, dass ei ne Produktionsmaschine jeweils zumindest einen Sensor und/oder zumindest einen Aktor beziehungsweise Motor aufwei sen kann. Eine Produktionsanlage wiederum kann eine oder meh rere Produktionsmaschinen aufweisen. Es können beispielsweise Gerätschaften unterschiedlicher Hierarchieebenen miteinander vernetzt werden. Wie im Beispiel genannt können dabei auch kleinste Einheiten der Produktionsanlagen, beispielsweise die Sensoren oder Aktoren beziehungsweise Motoren, als eigenstän diger Teil mit dem Netzwerk verbunden werden. Dieses Prinzip wird auch als „Internet of Things", zu Deutsch „Internet der Dinge", bezeichnet. Im industriellen Maßstab wird dies auch als Industrie 4.0 bezeichnet, welche durch die feingliedrige und eigenständige Vernetzung der einzelnen Gerätschaften ein besonders hohes Maß an Produktivität und Flexibilität ermög licht. Dies ist zudem in den europäischen Patentanmeldungen mit den Siemens-Aktenzeichen 201803975 und 201803976 be schrieben .

Zur Steuerung und/oder Wartung derartiger Gerätschaften, kön nen wiederum unterschiedliche Funktionseinheiten vorgesehen sein. Dabei können Steuerfunktionen durch mehrere gleicharti ge und/oder verschiedenartige Funktionseinheiten im Zusammen spiel erbracht werden. Der Begriff Steuerfunktionen ist im vorliegenden Kontext breit zu verstehen und beinhaltet alle denkbaren Funktionen zum Steuern, Überwachen, Warten und/oder zum Sammeln von Daten. Mit anderen Worten kann durch ein Zu sammenspiel der Funktionseinheiten die Steuerung, Überwa chung, Wartung und/oder das Sammeln von Daten der Gerätschaf ten bereitgestellt sein. Selbstverständlich sind die Funkti onseinheiten hierzu ebenfalls mit der Gerätschaft und unter einander vernetzt. Die Funktionseinheiten können über

Schnittstellen miteinander kommunizieren, um die Steuerfunk tion bereitzustellen. Die Kommunikation über die Schnittstel len erfolgt durch den Austausch von Steuersignalen.

Bei einer Funktionseinheit kann es sich bspw. um ein Anwen dungsprogramm oder mehrere Anwendungsprogramme handeln. Ein oder mehrere Anwendungsprogramme ermöglichen es, Daten zu verarbeiten. Ein domänenspezifisches Anwendungsprogramm und/oder eine Anwendungsprogramm-Komponente kann für die Ver arbeitung und/oder Wiedergabe von Daten eines oder mehrere Produkte und/oder eines oder mehrere Anlagenprozesse dienen. Ferner kann ein Anwendungsprogramm eine Analyse eines Wert strom, bspw. bei der Produktion eines Produktes, ermöglichen. Eine oder mehrere Funktionseinheiten können somit in einer Cloud-Infrastruktur gehostet werden. Eine Datenübertragung zwischen zwei Funktionseinheit und/oder zwischen einer Funk tionseinheit und der Cloud-Infrastruktur kann bspw. über eine oder mehrere definierte ( Programmier- ) Schnittstellen wie bspw. sog. Application Programming Interfaces, kurz API, er folgen. Außerdem kann es sich bei einer Funktionseinheit um eine oder mehrere Software-Artifacts handeln. Insbesondere ist es gemäß heutzutage verwendeten Funktions einheiten möglich mehrere Funktionseinheiten, insbesondere in Form von sog. Microservices , die bspw. unabhängig voneinander Prozesse ausführen, indem sie bspw. Daten verarbeiten, zusam menzufügen, um eine übergeordnete Funktion zu erfüllen.

Durch das Zusammenfügen von mehreren Funktionseinheiten kön nen dennoch Abhängigkeiten zwischen zwei oder mehreren Funk tionseinheiten entstehen. Diese Abhängigkeiten sorgen dafür, dass bspw. im Fall Updates oder Änderungen allgemein, unter umstände Inkompatibilitäten entstehen und die ordnungsgemäße Funktion bzw. Funktionsweise einer oder mehrerer der Funkti onseinheiten und/oder einer oder mehrerer der Funktions instanzen beeinträchtigt wird.

Die Funktionseinheiten können in eine Funktionsinstanz, ins besondere einen oder mehrere Mikroprozessoren, geladen wer den. Eine Funktionseinheit kann somit ein Computerprogramm produkt sein, welches die jeweilige Funktionsinstanz auf eine durch die Funktionseinheit vorgegebene Weise programmiert. Beispiele für Funktionsinstanzen sind Nutzergeräte (bspw. Endgeräte oder Rechner (Computer) von Nutzern) , lokale Compu ter oder Server der Gerätschaft (bspw. ein Mikroprozessor o- der eine Steuereinheit der jeweiligen Gerätschaft) und de zentrale Cloud-basierte beziehungsweise dezentrale Server (bspw. ein vom Ort der Gerätschaft entfernter Server) . Die Funktionseinheiten können beispielsweise durch unterschiedli che oder dieselben Funktionsinstanzen bereitgestellt werden. Mit anderen Worten können die Funktionseinheiten durch eine einzelne Funktionsinstanz oder durch mehrere Funktionsinstan zen bereitgestellt werden. Beispielsweise können mehrere Funktionsinstanzen durch jeweils eine oder mehrere jeweilige Funktionseinheiten programmiert werden. Die Funktionseinhei ten zum Bereitstellen der Steuerfunktion können somit über mehrere Funktionsinstanzen verteilt sein.

Um die Funktionsinstanz beziehungsweise die Funktionsinstan zen mit den zur Steuerung, Überwachung und/oder Wartung der Gerätschaft im Einzelfall notwendigen Funktionseinheiten aus zustatten, kann eine Programmcodedatenbank vorgesehen sein. Eine solche Programmcodedatenbank kann beispielsweise nach Art eines digitalen Softwaremarktplatzes, auch mit dem engli schen Fachbegriff Appstore bezeichnet, bereitgestellt sein. Die notwendigen Funktionseinheiten können aus der Programm codedatenbank auf der Funktionsinstanz beziehungsweise den Funktionsinstanzen installiert werden. Um einen reibungslosen Produktionsablauf zu gewährleisten, ist es nötig, dass stets ein reibungsloses Zusammenspiel zwischen den einzelnen Funk tionseinheiten möglich ist. Aufgrund der Modularität des Sys tems an Funktionseinheiten muss dieses Zusammenspiel auch für unterschiedliche und wechselnde Konfigurationen an Funktions einheiten stets gewährleistet sein.

Die Funktionseinheiten beziehungsweise jeweilige Programm codes der Funktionseinheiten können von Zeit zu Zeit Änderun gen unterworfen sein. Dabei kann eine der Funktionseinheiten auch Auswirkungen auf weitere der Funktionseinheiten haben. Daraus können Inkompatibilitäten entstehen. Funktioniert eine weitere Funktionseinheit aufgrund einer Inkompatibilität nicht mehr mit der geänderten Funktionseinheit gemeinsam, so kann dies wiederum weitere Inkompatibilitäten mit nochmals weiteren Funktionseinheiten nach sich ziehen. Es kann sich im Einzelfall eine wellenförmige Ausbreitung von Inkompatibili täten zwischen den Funktionseinheiten ergeben. Dieses Phäno men wird auch mit dem englischen Fachbegriff „Ripple" be zeichnet .

Es ist Aufgabe der vorliegenden Erfindung, eine verbesserte Erkennung von Inkompatibilitäten zwischen Funktionseinheiten zu ermöglichen.

Diese Aufgabe wird erfindungsgemäß gelöst durch die Gegen stände der unabhängigen Patentansprüche. Vorteilhafte Ausfüh rungsformen und zweckmäßige Weiterbildungen sind Gegenstand der Unteransprüche. Ein erster Aspekt der Erfindung betrifft ein Verfahren zum Erkennen einer Inkompatibilität zwischen mehreren Funktions einheiten, wobei die voneinander unabhängigen, mehreren Funk tionseinheiten eine oder mehrere Steuerfunktionen zum Steuern und/oder Überwachen einer Gerätschaft gemeinsam bereitstellen und die mehreren Funktionseinheiten hierzu untereinander zur Kommunikation ausgebildet sind, mit den Schritten: b) Bestimmen, ob eine Änderung einer Funktionsweise eine Än derung einer Kommunikation einer ersten der mehreren Funk tionseinheiten herbeiführt,

c) Bestimmen einer zweiten der mehreren Funktionseinheiten, welche zur Kommunikation mit der ersten Funktionseinheit ausgebildet ist, und

d) Bestimmen anhand der Kommunikation zwischen der ersten

Funktionseinheit und der zweiten Funktionseinheit, ob eine Inkompatibilität zwischen der ersten Funktionseinheit und der zweiten Funktionseinheit vorliegt.

Die Schritte b) bis d) können in manchen Ausführungsformen exakt in der oben genannten Reihenfolge durchgeführt werden. Im Folgenden ist aus Gründen der Knappheit nur von einer Steuerfunktion zum Steuern und/oder Überwachen der Gerät schaft die Rede. Diese Formulierung schließt jedoch ausdrück lich auch mehrere Steuerfunktionen mit ein.

In dem Schritt b) kann untersucht werden, ob aus der Änderung der Funktionsweise eine Änderung der Art zu kommunizieren für die erste Funktionseinheit resultiert. Mit anderen Worten wird überprüft, ob die Änderung der Funktionsweise einen Ein fluss auf eine von der ersten Funktionseinheit abgehenden Kommunikation hat. Die Änderung der Funktionsweise kann bei spielsweise auf eine Änderung des Programmcodes der ersten Funktionseinheit zurückzuführen sein. Alternativ oder zusätz lich kann eine solche Änderung der Funktionsweise aufgrund von Änderungen auf Hardwareebene, beispielsweise bei einer Funktionsinstanz, welche mittels der Funktionseinheit pro grammiert wurde, oder an der Gerätschaft, entstehen. Bei- spielsweise können sich Daten, Signale, Inhalte und/oder Pro tokolle, welche Teil der Kommunikation sind, ändern. In einem konkreten Beispiel kann sich beispielsweise die Maßeinheit einer physikalischen Größe, welche im Rahmen der Kommunikati on übermittelt wird, verändert werden. In manchen Ausfüh rungsformen der vorliegenden Erfindung wird im Rahmen des Schritts b) ausschließlich überprüft, ob die Änderung der Funktionsweise eine Änderung einer von der ersten Funktions einheit abgehenden Kommunikation zur Folge hat. Mit anderen Worten wird in diesen Ausführungsformen beispielsweise aus schließlich überprüft, ob Signale verändert werden, welche von der ersten Funktionseinheit gesendet werden.

In dem, insbesondere nachfolgenden, Schritt c) wird die zwei te der mehreren Funktionseinheiten bestimmt, welche zur Kom munikation mit der ersten Funktionseinheit ausgebildet ist.

In diesem Kontext können selbstverständlich mehrere zweite Funktionseinheiten bestimmt werden. Vorteilhafterweise werden alle diejenigen der mehreren Funktionseinheiten, welche zur Kommunikation mit der ersten Funktionseinheit ausgebildet sind, als jeweilige zweite Funktionseinheiten ermittelt.

Sämtliche im Vorherigen und im Nachfolgenden offenbarte Merk male betreffend die zweite Funktionseinheit gelten somit auch für mehrere zweite Funktionseinheiten. Die zweite Funktions einheit kann durch eine Empfangsschnittstelle zum Empfangen von Steuersignalen aus der ersten Funktionseinheit gekenn zeichnet sein. Insbesondere werden alle diejenigen der mehre ren Funktionseinheiten als zweite Funktionseinheiten ermit telt, welche eine jeweilige Empfangsschnittstelle zum Empfan gen von Steuersignalen aus der ersten Funktionseinheit auf weisen. Die genannten Steuersignale können hierbei digitale oder analoge Steuersignale sein und insbesondere zum Aus tausch digitaler Daten vorgesehen sein.

Der Begriff Kommunikation umfasst im Rahmen der vorliegenden Anmeldung sowohl eine bidirektionale Kommunikation als auch eine unidirektionale Kommunikation. Die Kommunikation, zu welcher die zweite Kommunikationseinheit ausgebildet ist, kann beispielsweise unidirektional in Richtung der zweiten Funktionseinheit oder bidirektional zwischen der ersten Funk tionseinheit und der zweiten Funktionseinheit erfolgen. In manchen Ausführungsformen, werden nur diejenigen der mehreren Funktionseinheiten, welche zur Kommunikation mit der ersten Funktionseinheit in Richtung der jeweiligen zweiten Funkti onseinheit (also eine Kommunikation von der ersten Funktions einheit in Richtung der jeweiligen zweiten Funktionseinheit) ausgebildet sind, als jeweilige zweite Funktionseinheiten er mittelt. Dies kann unabhängig davon sein, ob von der jeweili gen zweiten Funktionseinheit in Richtung der ersten Funkti onseinheit auch eine Kommunikation vorgesehen ist.

In dem Schritt d) kann bestimmt werden, ob sich eine Inkompa tibilität zwischen der ersten Funktionseinheit und der zwei ten Funktionseinheit beziehungsweise den zweiten Funktions einheiten ergibt. Insbesondere kann bestimmt werden, ob sich eine solche Inkompatibilität aus der geänderten Funktionswei se der ersten Funktionseinheit ergibt. Vorteilhafterweise wird zum Bestimmen, ob die Inkompatibilität vorliegt, die Kommunikation zwischen der ersten Funktionseinheit und der zweiten Funktionseinheit überprüft. In diesem Fall kann ge prüft werden, ob der Einfluss, welchen die Änderung der Funk tionsweise auf die Kommunikation der ersten Funktionseinheit aufweist (wie in Schritt b) festgestellt) , eine solche Inkom patibilität in der Kommunikation zwischen der ersten Funkti onseinheit und der zweiten Funktionseinheit hervorruft bezie hungsweise induziert. Auf diese Weise kann eine solche Inkom patibilität auf besonders effektive beziehungsweise ressour censchonende Weise erkannt werden.

Gemäß einer Weiterbildung ist ein weiterer Schritt a) vorge sehen. In diesem wird insbesondere bestimmt, ob die erste Funktionseinheit beziehungsweise deren Funktionsweise verän dert wurde. Beispielweise wird bestimmt oder geprüft, ob sich die erste Funktionseinheit gegenüber einem früheren Zustand verändert hat beziehungsweise ob die Funktion der Funktions einheit gegenüber einem früheren Zustand verändert wurde. Da- bei ist das Bestimmen, ob eine solche Änderung der Funktions weise vorliegt, einfacher und/oder ressourcenschonender mög lich, als den Einfluss einer solchen Änderung auf die Kommu nikation der ersten Funktionseinheit zu bestimmen. Vorteil hafterweise wird der Schritt b) nur dann durchgeführt, wenn im Schritt a) die Änderung der Funktionsweise der ersten Funktionseinheit erkannt wird. Auf diese Weise können Res sourcen geschont werden.

Gemäß einer Weiterbildung ist vorgesehen, dass für das Be stimmen, ob eine Änderung der Funktionsweise bei der ersten Funktionseinheit vorliegt, zunächst Informationen über die Funktionsweise der ersten Funktionseinheit gesammelt wird. Insbesondere werden jeweilige Informationen über eine jewei lige Funktionsweise jeder der mehreren Funktionseinheiten ge sammelt. Derartige Informationen über die Funktionsweise kön nen technische Dokumentationen zur Kommunikation beziehungs weise zu Schnittstellen der jeweiligen Funktionseinheit um fassen .

Gemäß einer Weiterbildung ist vorgesehen, dass bei dem Be streben nach Schritt d) dann eine Inkompatibilität zwischen der ersten Funktionseinheit und der zweiten Funktionseinheit erkannt wird, wenn eine Inkompatibilität zwischen jeweiligen Schnittstellen der ersten Funktionseinheit und der zweiten Funktionseinheit und/oder einem Signalformat der Kommunikati on vorliegt. Es kann somit beispielsweise überprüft werden, ob ein Signalformat, insbesondere ein Datenformat, Maßeinhei ten übermittelter Daten, eine Syntax oder ein Protokoll, ei nes Signals, welches in einem Normalbetrieb der ersten Funk tionseinheit und der zweiten Funktionseinheit von der ersten Funktionseinheit an die zweite Funktionseinheit übermittelt wird, für die zweite Kommunikationseinheit inkompatibel ist. Dieses inkompatible Signalformat kann darauf zurückzuführen sein, dass sich dieses im Rahmen der Änderung der Funktions weise der ersten Funktionseinheit geändert hat. Beispielswei se war das Signalformat in dem früheren Zustand der ersten Funktionseinheit kompatibel zu der zweiten Funktionseinheit. Auf diese Weise kann die Inkompatibilität zwischen der ersten Funktionseinheit und der zweiten Funktionseinheit noch effi zienter erkannt werden.

Gemäß einer Weiterbildung ist vorgesehen, dass ein Erkennen der Änderung der Funktionsweise der ersten Funktionseinheit bei dem Bestimmen gemäß Schritt a) basierend auf Metadaten, insbesondere einer Versionsnummer, der ersten Funktionsein heit erfolgt. Insbesondere können die Metadaten hierzu vor Durchführen des Schrittes a) aus einer entsprechenden Daten bank abgerufen werden. Insbesondere erfolgt dieses Abrufen und Prüfen der Metadaten, insbesondere der Versionsnummer, wiederholt, vorteilhafterweise regelmäßig oder periodisch.

Auf diese Weise kann auf besonders einfache Art und Weise ge prüft werden, ob die Änderung der Funktionsweise bei der ers ten Funktionseinheit vorliegt. Alternativ oder zusätzlich können die Metadaten ein oder mehrere der folgenden Daten bzw. Informationen betreffend einen oder mehrere Verfasser einer Funktionseinheit, Abhängigkeiten zwischen mehreren Funktionseinheiten .

Alternativ oder zusätzlich kann vorgesehen sein, dass das Be stimmen, ob eine Änderung der Funktionsweise bei der ersten Funktionseinheit vorliegt, durch einen Parser erfolgt. Mit anderen Worten kann der Schritt a) , also das beschriebene Be stimmen, durch den Parser durchgeführt werden. Hierbei kann auf grundlegender Ebene, nämlich auf Programmcodeebene, über prüft werden, ob sich die Funktionsweise der ersten Funkti onseinheit geändert hat. Durch den Einsatz eines Parsers kann diese Prüfung besonders genau sein.

Gemäß einer Weiterbildung kann vorgesehen sein, dass das Be stimmen gemäß Schritt a) zweistufig durchgeführt wird. Hier bei kann gemäß einem ersten Schritt auf Basis der Metadaten, insbesondere der Versionsnummer, geprüft werden, ob eine Än derung vorliegt. Anschließend kann die Prüfung zusätzlich durch den Parser erfolgen. Dabei kann vorgesehen sein, dass die Prüfung durch den Parser nur dann erfolgt, wenn basierend auf den Metadaten, insbesondere der Versionsnummer, festge stellt wurde, dass eine Änderung der Funktionsweise der ers ten Funktionseinheit vorliegt.

Alternativ oder zusätzlich kann Schritt b) , also das Bestim men, ob die Änderung der Funktionsweise eine Änderung der Kommunikation der ersten Funktionseinheit herbeiführt, durch den Parser durchgeführt werden. Mit anderen Worten kann der Schritt b) durch den Parser durchgeführt werden. Hierbei kann auf grundlegender Ebene, nämlich auf Programmcodeebene, be stimmt werden, ob die Änderung der Funktionsweise einen Ein fluss auf die Kommunikation der ersten Funktionseinheit auf weist oder ob die Änderung der Funktionsweise eine Änderung der Kommunikation der ersten Funktionseinheit herbeiführt. Dies gilt unabhängig davon, ob das Bestimmen gemäß Schritt a) durch den Parser durchgeführt wird. Durch den Einsatz eines Parsers kann dieses Bestimmen besonders genau sein.

Es kann somit vorgesehen sein, dass der Schritt a) und/oder der Schritt b) zumindest teilweise durch einen Parser durch geführt wird. Hierzu können somit drei unterschiedliche Aus führungsformen vorgesehen sein: Ausschließlich Schritt a) wird ganz oder teilweise durch einen Parser durchgeführt, ausschließlich Schritt b) wird ganz oder teilweise durch ei nen Parser durchgeführt oder Schritt a) und Schritt b) werden jeweils zumindest teilweise durch einen Parser durchgeführt. Durch den Parser kann einerseits die Änderung der Funktions weise besonders zuverlässig erkannt werden und andererseits der Einfluss auf die Kommunikation der ersten Funktionsein heit zuverlässig bestimmt werden.

Gemäß einer Weiterbildung ist vorgesehen, dass eine Versions historie, welche zumindest eine Beschreibung der Funktions weise der ersten Funktionseinheit vor und nach der Änderung der Funktionsweise beinhaltet, in einer Versionsdatenbank ge speichert wird. Insbesondere wird eine jeweilige Beschreibung der Funktionsweise der ersten Funktionseinheit in dem frühe- ren Zustand und nach der Änderung der Funktionsweise gespei chert. Die jeweiligen Beschreibungen können dabei zu unter schiedlichen Zeitpunkten in der Versionsdatenbank gespeichert werden. Beispielsweise wurde die Beschreibung der Funktions weise vor der Änderung in der Versionsdatenbank gespeichert, bevor die Änderung der Funktionsweise stattgefunden hat. Mit der Versionshistorie können Änderungen der Funktionsweise be sonders gut nachvollzogen werden.

Insbesondere ist vorgesehen, dass in der Versionsdatenbank eine jeweilige Beschreibung einer jeweiligen Funktionsweise jeder der mehreren Funktionseinheiten gespeichert ist. Dabei kann nach jeder Änderung der Funktionsweise einer der mehre ren Funktionseinheiten eine neue Beschreibung in der Versi onsdatenbank gespeichert werden, wobei die neue Beschreibung die Funktionsweise der jeweiligen Funktionseinheit nach der Änderung beschreibt. Auf diese Weise ist die Nachvollziehbar keit von Änderungen an jeder der mehreren Funktionseinheiten gewährleistet .

Gemäß einer Weiterbildung ist vorgesehen, dass ein jeweiliger Programmcode für jede der mehreren Funktionseinheiten von ei ner Programmcodedatenbank wiederholt geladen wird und nach jedem Laden zumindest die Schritte b) bis d) durchgeführt werden. Mit anderen Worten sind die jeweiligen Programmcodes für jede der mehreren Funktionseinheiten in der Programmcode datenbank gespeichert beziehungsweise zur Programmierung von Funktionsinstanzen bereitgehalten. Aus dieser Programmcodeda tenbank können die jeweiligen Programmcodes zum Durchführen zumindest der Schritte b) bis d) wiederholt geladen werden. Auf diese Weise steht zum Durchführen der Schritte b) bis d) jeweils die aktuellste Version des jeweiligen Programmcodes für jede der mehreren Funktionseinheiten bereit.

Gemäß einer Weiterbildung ist vorgesehen, dass ein Programm code für die zweite Funktionseinheit nur dann von der Pro grammcodedatenbank geladen wird, wenn in Schritt a) erkannt wurde, dass eine Änderung der Funktionsweise der ersten Funk- tionseinheit vorliegt. Mit anderen Worten wird in dem Schritt a) geprüft, ob sich die Funktionsweise gegenüber dem früheren Zustand geändert hat. Nur wenn dies der Fall ist, wird an schließend der Programmcode für die zweite Funktionseinheit aus der Programmcodedatenbank geladen.

Gemäß einer Weiterbildung ist vorgesehen, dass im Schritt a) für jede der mehreren Funktionseinheiten überprüft wird, ob eine jeweilige Änderung der Funktionsweise gegenüber einem jeweiligen früheren Zustand vorliegt und ein jeweiliger Pro grammcode genau derer der mehreren Funktionseinheiten, bei welchen eine Änderung der Funktionsweise vorliegt, von der Programmcodedatenbank geladen wird. Dies ist insbesondere dann vorteilhaft, wenn in der Versionsdatenbank der jeweilige Programmcode für jede der Funktionseinheiten gespeichert ist. In diesem Fall kann vorgesehen sein, dass bei denjenigen der mehreren Funktionseinheiten, bei welchen eine Änderung der Funktionsweise vorliegt, der jeweilige Programmcode von der Programmcodedatenbank geladen wird und bei denjenigen der mehreren Funktionseinheiten, bei welchen keine Änderung der Funktionsweise vorliegt, der jeweilige Programmcode von der Versionsdatenbank geladen wird. Dies ist insbesondere dann sinnvoll, wenn es sich bei der Programmcodedatenbank um eine räumlich entfernte Datenbank handelt, welche insbesondere in einer räumlich entfernten Servereinrichtung gespeichert ist. Auf diese Weise kann ein Datenverkehrsaufkommen auf ein Mini mum reduziert werden.

Gemäß einer Weiterbildung ist vorgesehen, dass eine dritte der mehreren Funktionseinheiten bestimmt wird, welche zur Kommunikation mit der zweiten Funktionseinheit ausgebildet ist und bestimmt, ob eine Inkompatibilität zwischen der ers ten Funktionseinheit und der dritten Funktionseinheit oder der zweiten Funktionseinheit und der dritten Funktionseinheit vorliegt. Insbesondere ist vorgesehen, dass die dritte der mehreren Funktionseinheiten bestimmt wird, welche zur Kommu nikation mit der zweiten Funktionseinheit ausgebildet ist, und davon abhängig bestimmt wird, ob sich aus der geänderten Funktionsweise der ersten Funktionseinheit eine Inkompatibi lität zwischen der ersten Funktionseinheit und der dritten Funktionseinheit oder der zweiten Funktionseinheit und der dritten Funktionseinheit ergibt. Die dritte Funktionseinheit kann mittelbar, nämlich über die zweite Funktionseinheit, mit der ersten Funktionseinheit verbunden sein. Aus diesem Grund kann die Änderung der Funktionsweise der ersten Funktionsein heit auch eine Inkompatibilität bei der dritten Funktionsein heit zur Folge haben. Diese Inkompatibilität bei der dritten Funktionseinheit kann beispielsweise zwischen der ersten Funktionseinheit und der dritten Funktionseinheit und/oder zwischen der zweiten Funktionseinheit und der dritten Funkti onseinheit auftreten. Durch diese weiterführende Prüfung kann eine wellenartige Ausbreitung von Inkompatibilitäten („Rip- pels") besonders effizient vermieden werden. Selbstverständ lich können zur noch besseren Erkennung solche Inkompatibili täten auch vierte Funktionseinheit ermittelt werden, welche wiederum von den dritten Funktionseinheiten abhängig sind. Allgemein können jeweils n-te Funktionseinheiten bestimmt werden, welche jeweils von (n-l)-ten Funktionseinheiten ab hängig sind. Dabei kann n beliebig groß werden.

Gemäß einer Weiterbildung ist vorgesehen, dass der Schritt a) wiederholt, insbesondere periodisch, durchgeführt wird. Mit anderen Worten kann wiederholt, insbesondere regelmäßig oder periodisch, geprüft werden, ob eine Änderung der Funktions weise der ersten Funktionseinheit vorliegt. Insbesondere wer den die Schritte b) jeweils nur dann durchgeführt, wenn in dem Schritt a) eine veränderte Funktionsweise erkannt wurde. Auf diese Weise kann der ressourcenschonend durchzuführende Schritt a) regelmäßig durchgeführt werden, während die res sourcenintensiveren Schritte b) bis d) nur dann durchgeführt werden, wenn dies nötig ist.

Die mehreren Funktionseinheiten können zum Bereitstellen der Steuerfunktion jeweils als Datenquelle, Steuereinheit, War tungseinheit und/oder Überwachungseinheit genutzt werden. Mit anderen Worten können die mehreren Funktionseinheiten jeweils zum Bereitstellen von Daten, Ausgeben von Steuerbefehlen, Sammeln von Wartungsdaten beziehungsweise Betriebsdaten und/oder zum Überwachen der Gerätschaft vorgesehen sein be ziehungsweise ausgebildet sein. Allgemein können die Funkti onseinheiten jeweils zum Bereitstellen beliebiger Funktionen ausgebildet sein beziehungsweise genutzt werden.

Gemäß einer Weiterbildung ist vorgesehen, dass die genannten Schritte aus Sicht der ersten Funktionseinheit für jede der mehreren Funktionseinheiten durchgeführt werden. Mit anderen Worten wird jede der mehreren Funktionseinheiten als die ers te Funktionseinheit aufgefasst und die in Bezug auf die erste Funktionseinheit genannten Schritte durchgeführt. Dies gilt insbesondere für die Schritte a) bis d) , welche für alle der mehreren Funktionseinheiten aus durchgeführt werden. Dabei kann die jeweilige der mehreren Funktionseinheiten, für wel che die die Schritte a) bis d) gerade durchgeführt werden, als die erste Funktionseinheit aufgefasst werden. Auf diese Weise ergibt sich eine umfassendere Auswertung von Inkompati bilitäten zwischen den mehreren Funktionseinheiten.

Gemäß einer Weiterbildung ist vorgesehen, dass eine Übersicht über die jeweiligen Inkompatibilitäten jeder der mehreren Funktionseinheiten erzeugt wird und automatisch Maßnahmen zum Eindämmen jeweiliger Inkompatibilitäten getroffen werden, insbesondere ein Anpassen der jeweiligen Kommunikation, ein Einschränken der jeweiligen Kommunikation oder ein Erstellen von Brückenschnittstellen für die jeweilige Kommunikation. Diese jeweilige Kommunikation betrifft die Kommunikation zwi schen den als inkompatibel erkannten Funktionseinheiten. Al ternativ oder zusätzlich, ist vorgesehen, dass die Übersicht über die jeweiligen Inkompatibilitäten jeder der mehreren Funktionseinheiten erzeugt wird und einem Nutzer, insbesonde re in Verbindung mit Verbesserungsvorschlägen, bereitgestellt wird. In der Übersicht können die Ergebnisse des Durchführens der Schritte a) bis d) für jede der mehreren Funktionseinhei ten in der Übersicht zusammengefasst werden. In der Übersicht kann beispielsweise zusammengefasst werden, wie viele derar- tige Inkompatibilitäten mit direkt (zweite) oder indirekt (dritte, n-te) abhängigen Funktionseinheiten eine jeweilige der mehreren Funktionseinheit aufweist. Außerdem können dem Nutzer Verbesserungsvorschläge beziehungsweise Möglichkeiten unterbreitet werden, um diese Inkompatibilitäten zu beseiti gen. Die Maßnahmen zum Eindämmen jeweiliger Inkompatibilitä ten sind beispielsweise: Das Anpassen der jeweiligen Kommuni kation (beispielweise Anpassen einer Schnittstelle oder des Signalformats, insbesondere eines Datenformats, Maßeinheiten übermittelter Daten, einer Syntax oder eines Protokolls) be troffener Funktionseinheiten, das Einschränken der Kommunika tion zwischen den betroffenen Funktionseinheiten und das Er stellen der sogenannten Brückenschnittstellen zwischen den betroffenen Funktionseinheiten. Derartige Brückenschnittstel len (auch mit dem Fachbegriff „intermediates" bezeichnet) , können zwischen den betroffenen Funktionseinheiten angeordnet werden und deren Kommunikation anpassen. Dabei kann eine Brü ckenschnittstelle beispielsweise ein Signalformat der ausge henden Kommunikation der ersten Funktionseinheit an ein Sig nalformat der eingehenden Kommunikation der zweiten Funkti onseinheit anpassen. Durch das Einschränken der Kommunikation kann eine Abhängigkeit der Funktionseinheiten untereinander verringert werden und so der Inkompatibilität entgegengewirkt werden. Beim Anpassen der jeweiligen Kommunikation können die betroffenen Funktionseinheiten selbst angepasst werden.

Ein zweiter Aspekt der Erfindung betrifft eine Steuereinrich tung mit Mitteln zum Quantifizieren der Zuverlässigkeit einer Steuerfunktion für eine Gerätschaft, wobei die Mittel einge richtet sind, ein oben genanntes Verfahren zum Quantifizieren der Zuverlässigkeit einer Steuerfunktion durchzuführen. Dabei können die Mittel der Steuereinrichtung zur Durchführung von zuvor oder nachfolgend beschriebenen Verfahrensschritten in allen offenbarten und nicht offenbarten Kombinationen ausge bildet sein. Bei der Steuereinrichtung kann es sich um einen zentralen Server, eine Cloud, ein clientseitiges Rechengerät, insbesondere einen Personalcomputer oder einen tragbaren Com puter, ein Tabletcomputer oder ein Smartphone handeln. Alter- nativ kann die Steuereinrichtung durch ein Netzwerk aus meh reren unterschiedlichen oder gleichartigen Geräten, insbeson dere der genannten Geräte, gebildet sein. Die oben in Bezug auf das erfindungsgemäße Verfahren genannten Merkmale und Weiterbildungen sowie deren Vorteile sind auch auf die erfin dungsgemäße Steuereinrichtung übertragbar.

Ein weiterer Aspekt der Erfindung betrifft ein System umfas send

- eine Gerätschaft,

- zumindest eine Funktionsinstanz zum Bereitstellen von meh reren Funktionseinheiten, wobei die mehreren Funktionsein heiten dazu ausgebildet sind, eine Steuerfunktion zum Steu ern und/oder Überwachen der Gerätschaft gemeinsam bereitzu stellen und hierzu untereinander zu kommunizieren,

- einer Programmcodedatenbank, welche dazu ausgebildet ist, einen jeweiligen Programmcode für jede der mehreren Funkti onseinheiten zur Programmierung der zumindest einen Funkti onsinstanz bereitzuhalten, und

- der zuvor genannten Steuereinrichtung.

Bei der Gerätschaft handelt es sich insbesondere um eine in dustriell genutzte Produktionsgerätschaft im weitesten Sinne. Beispiele für Gerätschaften sind somit einzelne Produktions anlagen, Produktionsmaschinen, Sensoren und Aktoren bezie hungsweise Motoren.

Die mehreren Funktionseinheiten können zum Programmieren der zumindest einen Funktionsinstanz ausgebildet sein. Beispiele für Funktionsinstanzen sind Nutzergeräte (bspw. Endgeräte o- der Rechner (Computer) von Nutzern) , lokale Computer oder Server der Gerätschaft (bspw. ein Mikroprozessor oder eine Steuereinheit der jeweiligen Gerätschaft) und dezentrale Cloud-basierte beziehungsweise dezentrale Server (bspw. ein vom Ort der Gerätschaft entfernter Server) . Die Funktionsein heiten können beispielsweise durch unterschiedliche oder die selben Funktionsinstanzen bereitgestellt werden. Mit anderen Worten können die Funktionseinheiten in einem Normalbetriebs- zustand durch eine einzelne Funktionsinstanz oder durch meh rere Funktionsinstanzen bereitgestellt werden.

Zur Erfindung gehört außerdem ein Computerprogramm, welches direkt in einen Speicher einer erfindungsgemäßen Steuerein richtung ladbar ist, mit Programmcodemitteln, um die Schritte des erfindungsgemäßen Verfahrens auszuführen, wenn das Pro gramm in der Steuereinrichtung ausgeführt wird. Das erfin dungsgemäße Computerprogramm implementiert das erfindungsge mäße Verfahren auf einer erfindungsgemäßen Steuereinrichtung, wenn es auf der Steuereinrichtung ausgeführt wird. Dement sprechend gehört zur Erfindung außerdem ein Speichermedium mit darauf gespeicherten elektronisch lesbaren Steuerinforma tionen, welche zumindest das genannte Computerprogramm umfas sen und derart ausgestaltet sind, dass sie bei Verwendung des Speichermediums in einer erfindungsgemäßen Steuereinrichtung das erfindungsgemäße Verfahren durchführen. Das Speichermedi um kann beispielsweise zum digitalen oder analogen Speichern von Daten eingerichtet sein. Das Speichermedium kann, einfach oder mehrfach beschreibbar, flüchtig (volatil) oder nicht flüchtig sein.

Ein weiterer Aspekt der Erfindung betrifft einen Datenstrom an Daten zum Erkennen einer Inkompatibilität zwischen Funkti onseinheiten, wobei der Datenstrom zumindest teilweise mit tels eines erfindungsgemäßen Verfahrens gewonnen wurde.

Zur Erfindung gehört außerdem ein Verfahren zum Speichern von Daten, welche zumindest teilweise mittels eines erfindungsge mäßen Verfahrens gewonnen wurden, auf ein weiteres Speicher medium. Bei diesen Daten kann es sich um den obengenannten Datenstrom handeln. Das weitere Speichermedium kann bei spielsweise zum digitalen oder analogen Speichern von Daten eingerichtet sein. Das weitere Speichermedium kann, einfach oder mehrfach beschreibbar, flüchtig (volatil) oder nicht flüchtig sein. Die vorliegende Erfindung wird nun anhand der beigefügten Zeichnungen näher erläutert, in denen zeigen:

FIG 1 in einem Blockdiagramm mehrere Funktionseinheiten,

welche zur Kommunikation untereinander ausgebildet sind;

FIG 2 in einem Blockdiagramm einen Überblick über ein Sys tem, in welchem die Funktionseinheiten verwendet wer den; und

FIG 3 ein Ablaufdiagramm einer beispielhaften Ausführungs form des vorliegenden Verfahrens.

Die FIG 1 zeigt mehrere Funktionseinheiten 9, welche dazu ausgebildet sind, gemeinsam eine Steuerfunktion für eine Ge rätschaft 6 bereitzustellen. Die Funktionseinheiten 9 sind hierzu untereinander vernetzt. Die Funktionseinheiten 9 wei sen untereinander Verbindungen 4, 5 zur Kommunikation unter einander auf. Mit anderen Worten können die Funktionseinhei ten 9, insbesondere in einem Normalbetrieb der Funktionsein heiten 9, über die Verbindungen 4, 5 miteinander kommunizie ren. Dabei kann im Allgemeinen die Kommunikation über jede der Verbindungen 4,5 unidirektional oder bidirektional vorge sehen sein.

Die Funktionseinheiten 9 sind gemeinsam mit der Gerätschaft 6 vernetzt. Dabei kann/können nur eine einzelne der Funktions einheiten 9, mehrere der Funktionseinheiten 9 oder alle der Funktionseinheiten 9 über eine jeweilige Verbindung, insbe sondere Datenverbindung, mit der Gerätschaft 6 verbunden sein. Um die Vernetzung 7 der Funktionseinheiten 9 mit der Gerätschaft 6 kenntlich zu machen, sind die Funktionseinhei ten 9 in der FIG 1 umkreist und die Vernetzung 7 ist durch eine Verbindunglinie kenntlich gemacht.

Bei der Gerätschaft 6 handelt es sich beispielsweise um einen einzelnen Sensor und/oder Aktor beziehungsweise Motor einer Produktionsmaschine, eine Produktionsmaschine, mehrere Pro- duktionsmaschinen oder eine ganze Anlage, insbesondere Pro duktionsanlage .

Die Funktionseinheiten 9 stellen nun die Steuerfunktion für die Gerätschaft 6 bereit. Die Steuerfunktion kann beispiels weise eine oder mehrere der folgenden Aufgaben umfassen:

Steuerung, Überwachung, Wartung, Sammeln von Daten (aus der Gerätschaft 6 und/oder externer Daten) und/oder Bereitstellen einer Nutzerschnittstelle um eine Bedienung der Gerätschaft 6 durch einen Nutzer zu ermöglichen. Dabei können unterschied liche Aufgaben oder sogar gleiche Aufgaben auf unterschiedli che der Funktionseinheiten 9 aufgeteilt sein. Die Steuerfunk tion wird somit modular durch die Funktionseinheiten 9 ge leistet beziehungsweise bereitgestellt. Die Steuerfunktion kann an einen Nutzungsfall angepasst werden, indem den Funk tionseinheiten 9 neue Funktionseinheiten hinzugefügt werden und/oder einzelne Funktionseinheiten aus den mehreren Funkti onseinheiten 9 entfernt werden. Durch diesen modularen Aufbau ergibt sich eine große Anzahl unterschiedlicher Kombinations möglichkeiten für derartige Funktionseinheiten 9. Es ist da her von großem Interesse, ob Inkompatibilitäten zwischen den Funktionseinheiten 9 auftreten.

Die Kommunikation der Funktionseinheiten 9, beispielsweise über die Verbindungen 4, 5, kann nötig sein, um das gemeinsa me Erbringen beziehungsweise Bereitstellen der Steuerfunktion durch die Funktionseinheiten 9 zu ermöglichen. Treten Inkom patibilitäten zwischen den Funktionseinheiten 9 auf, so kann die Bereitstellung der Steuerfunktion teilweise oder voll ständig gestört werden. Inkompatibilitäten zwischen den Funk tionseinheiten 9 können insbesondere dann auftreten, wenn ei ne der Funktionseinheiten 9 verändert, erweitert oder aktua lisiert wird. Inkompatibilitäten treten dabei ausschließlich oder größtenteils zwischen Funktionseinheiten 9 auf, welche miteinander kommunizieren.

FIG 2 zeigt ein System 18, welches die Gerätschaft 6, zumin dest eine Funktionsinstanz 21 (vorliegend mehrere Funktions- instanzen 21), eine Programmcodedatenbank 22 sowie eine Steu ereinrichtung 19 aufweist. Die Funktionsinstanzen 21 können jeweils einen Computer beziehungsweise eine Recheneinheit, insbesondere einen Mikroprozessor, umfassen. Beispiele für Funktionsinstanzen 21 sind Nutzergeräte (bspw. mobile Endge räte, Laptops oder Rechner (Computer) von Nutzern) , lokale Computer oder Server der Gerätschaft 6 (bspw. ein Mikropro zessor oder eine Steuereinheit der Gerätschaft 6) und die zentrale Cloud-basierte beziehungsweise dezentrale Server (bspw. ein vom Ort der Gerätschaft 6 entfernter Server) . Die Funktionsinstanzen 21 können jeweils durch eine oder mehrere der Funktionseinheiten 9 programmiert werden. Die Kommunika tion zwischen zweier der Funktionseinheiten 9 (bspw. über ei ne der Verbindungen 4, 5) kann somit innerhalb derselben Funktionsinstanz 21 oder zwischen zwei Funktionsinstanzen 21 erfolgen. Mit anderen Worten können zwei Funktionseinheiten 9, welche in dieselbe Funktionsinstanz 21 oder in unter schiedliche Funktionsinstanzen 21 geladen sind, miteinander kommunizieren. Beispielsweise können einzelne der Verbindun gen 4, 5 jeweils innerhalb derselben Funktionsinstanz 21 oder zwischen zwei der Funktionsinstanzen 21 vorhanden sein.

Die Programmcodedatenbank 22 kann beispielsweise als ein/der Softwaremarktplatz ausgeführt sein. Die Programmcodedatenbank 22 kann zum Bereitstellen der Funktionseinheiten 9 für die Funktionsinstanzen 21 ausgebildet sein. Somit können die Funktionseinheiten 9 aus der Programmcodedatenbank 22 auf je weilige der Funktionsinstanzen 21 geladen beziehungsweise in stalliert werden.

Die Steuereinrichtung 19 weist eine Bereitstellungseinheit 25 auf. Die Bereitstellungseinheit 25 ist vorliegend dazu ausge bildet, jeweilige Programmcodes 26 und/oder jeweilige Metada ten 27 der Funktionseinheiten 9 aus der Programmcodedatenbank 22 abzurufen beziehungsweise zu laden.

Inkompatibilitäten zwischen den Funktionseinheiten 9 treten insbesondere nach der Änderung der Funktionsweise einer der mehreren Funktionseinheiten 9 auf. Eine solche Änderung der Funktionsweise kann aus einer Umprogrammierung, Aktualisie rung, Veränderung oder Erweiterung der jeweiligen Funktions einheit 9 resultieren. Aus diesem Grund wird zum Erkennen der Inkompatibilität zunächst geprüft, ob eine Änderung der Funk tionsweise gegenüber einem früheren Zustand bei einer ersten Funktionseinheit 1 der mehreren Funktionseinheiten 9 vor liegt. Dieses Bestimmen kann als Schritt a) bezeichnet werden und ist in FIG 3 als Schritt S1 dargestellt. Das Bestimmen gemäß Schritt a) kann beispielsweise auf Basis von Metadaten 27, insbesondere einer Versionsnummer, der ersten Funktions einheit 1 durchgeführt werden. In diesem Fall kann die Steu ereinrichtung 19, insbesondere die Bereitstellungseinheit 25, wiederholt, insbesondere regelmäßig oder periodisch, die Me tadaten 27, insbesondere die Versionsnummer, aus der Pro grammcodedatenbank 22 abrufen. Die abgerufenen Metadaten 27 können mit Metadaten 27 verglichen werden, welche in einer Versionsdatenbank 23 der Steuereinrichtung 19 gespeichert sind. Haben sich die Metadaten 27, insbesondere die Versions nummer, gegenüber einem früheren Zustand, insbesondere seit dem letzten Abrufen der Metadaten 27, insbesondere der Versi onsnummer verändert, so kann vorgegeben werden, dass sich die Funktionsweise geändert hat. Alternativ kann das Bestimmen gemäß Schritt a) durch einen Parser 24 der Steuereinrichtung 19 durchgeführt werden. In diesem Fall kann ein aktueller Programmcode 26 der ersten Funktionseinheit 1 durch die Steu ereinrichtung 19, insbesondere die Bereitstellungseinheit 25, aus der Programmcodedatenbank 22 abgerufen werden. Der abge rufene Programmcode 26 kann dann durch den Parser 24 analy siert werden. Zusätzlich kann durch den Parser 24 ein älterer Programmcode 26 der ersten Funktionseinheit 1 analysiert wer den, welcher in der Versionsdatenbank 23 gespeichert ist. Der ältere Programmcode 26 kann zu einem früheren Zeitpunkt durch die Steuereinrichtung 19, insbesondere die Bereitstellungs einheit 25, von der Programmcodedatenbank 22 abgerufen worden sein und in der Versionsdatenbank 23 gespeichert worden sein. Durch Vergleichen jeweiliger Ergebnisse des Analysierens des Programmcodes 26 der ersten Funktionseinheit 1 und des älte- ren Programmcodes 26 der ersten Funktionseinheit 1 kann be stimmt werden, ob eine Änderung der Funktionsweise der ersten Funktionseinheit 1 vorliegt.

Falls eine Änderung der Funktionsweise der ersten Funktions einheit 1 erkannt wurde, so wird in einem Schritt b) be stimmt, ob die Änderung der Funktionsweise eine Änderung der Kommunikation der ersten Funktionseinheit 1 herbeiführt. Der Schritt b) ist in FIG 3 als Schritt S2 dargestellt. Hierzu wird der Programmcode 26 der ersten Funktionseinheit 1 durch den Parser 24 dahingehend analysiert, ob die Änderung der Funktionsweise einen Einfluss auf die Kommunikation der ers ten Funktionseinheit 1 aufweist. Beispielsweise werden hier bei durch den Parser 24 Schnittstellen der ersten Funktions einheit dahingehend analysiert, ob sich diese gegenüber dem früheren Zustand verändert haben. Alternativ oder zusätzlich kann geprüft werden, ob sich ein Signalformat, insbesondere ein Datenformat, Maßeinheiten übermittelter Daten, eine Syn tax oder ein Protokoll, der Kommunikation durch die erste Funktionseinheit 1 gegenüber dem früheren Zustand verändert hat. Ist dies der Fall, so ist das Auftreten einer Inkompati bilität zwischen der ersten Funktionseinheit 1 und denjenigen der mehreren Funktionseinheiten 9, welche zur Kommunikation mit der ersten Funktionseinheit 1 ausgebildet sind, sehr wahrscheinlich .

Aus diesem Grund werden in einem nächsten Schritt c) diejeni gen der mehreren Funktionseinheiten 9, welche zur Kommunika tion mit der ersten Funktionseinheit 1 ausgebildet sind, be stimmt beziehungsweise ermittelt. Diese Funktionseinheiten werden vorliegend als zweite Funktionseinheiten 2 bezeichnet. Mit anderen Worten werden alle diejenigen der mehreren Funk tionseinheiten 9, welche zur Kommunikation mit der ersten Funktionseinheit 1 ausgebildet sind, als zweite Funktionsein heiten 2 bestimmt beziehungsweise ermittelt. Der Schritt c) ist in FIG 3 als Schritt S3 dargestellt. Gemäß FIG 1 weisen die zweiten Funktionseinheiten 2 eine je weilige Verbindung 4 zur Kommunikation mit der ersten Funkti onseinheit 1 auf. Mit anderen Worten können diejenigen der mehreren Funktionseinheiten 9, welche eine jeweilige Verbin dung 4 zur Kommunikation mit der ersten Funktionseinheit 1 aufweisen, als die zweiten Funktionseinheiten 2 bestimmt be ziehungsweise ermittelt werden.

Anschließend wird in einem Schritt d) ermittelt, ob eine In kompatibilität zwischen der ersten Funktionseinheit 1 und ei ner oder mehreren der zweiten Funktionseinheiten 2 vorliegt. Der Schritt d) ist in FIG 3 als Schritt S4 dargestellt. Ins besondere wird bestimmt, mit welchen der zweiten Funktions einheiten 2 eine Inkompatibilität der ersten Funktionseinheit 1 vorliegt. Vorteilhafterweise wird bestimmt, ob sich aus der geänderten Funktionsweise der ersten Funktionseinheit 1 eine Inkompatibilität zwischen der ersten Funktionseinheit 1 und zumindest einer der zweiten Funktionseinheiten 2 ergibt. Es kann in einer jeweiligen Prüfung zwischen jeder der zweiten Funktionseinheiten 2 und der ersten Funktionseinheit 1 für jede der zweiten Funktionseinheiten 2 einzeln bestimmt wer den, ob eine solche Inkompatibilität vorliegt.

In einem weiteren Schritt, welcher beispielsweise als Schritt e) bezeichnet werden kann, werden dritte Funktionseinheiten der mehreren Funktionseinheiten 9 bestimmt, welche zur Kommu nikation mit einer der zweiten Funktionseinheiten 2 ausgebil det sind. Der Schritt e) ist in FIG 3 als Schritt S5 darge stellt. Gemäß FIG 1 weisen die dritten Funktionseinheiten 3 jeweils eine Verbindung 5 zum Kommunizieren mit einer der zweiten Funktionseinheiten 2 auf. Dabei werden insbesondere alle diejenigen der mehreren Funktionseinheiten 9, welche zur Kommunikation mit zumindest einer der zweiten Funktionsein heiten 2 ausgebildet sind, als dritte Funktionseinheiten 3 bestimmt beziehungsweise ermittelt. Insbesondere werden alle diejenigen der mehreren Funktionseinheiten 9, welche eine je weilige Verbindung 5 zu einer der zweiten Funktionseinheiten 2 aufweisen, als dritte Funktionseinheiten 3 ermittelt bezie hungsweise bestimmt.

In einem weiteren Schritt, der auch als Schritt f) bezeichnet werden kann, wird für jede der dritten Funktionseinheiten 3 bestimmt, ob eine Inkompatibilität der jeweiligen dritten Funktionseinheit 3 und der ersten Funktionseinheit 1 oder der jeweiligen dritten Funktionseinheit 3 und einer der zweiten Funktionseinheiten 2 vorliegt. Dabei wird insbesondere nur zwischen der jeweiligen dritten Funktionseinheit 3 und denje nigen der Funktionseinheiten 2, mit welchen die jeweilige dritte Funktionseinheit 3 eine jeweilige Verbindung 5 auf weist, auf die Inkompatibilität geprüft. Der Schritt f) ist in FIG 3 als Schritt S6 dargestellt. Insbesondere wird in dem Schritt f) bestimmt, ob sich aus der geänderten Funktionswei se der ersten Funktionseinheit 1 eine Inkompatibilität zwi schen der ersten Funktionseinheit 1 und einer jeweiligen dritten Funktionseinheit 3 oder zwischen der jeweiligen drit ten Funktionseinheit 3 und einer der zweiten Funktionseinhei ten 2 ergibt. Auf diese Weise kann eine wellenförmige Aus breitung von Inkompatibilitäten, welche auf eine Funktionsän derung der ersten Funktionseinheit 1 zurückzuführen ist, ef fizient erkannt. Eine solche wellenartige Ausbreitung wird auch als Rippel-Effekt bezeichnet. Selbstverständlich kann die Prüfung noch um weitere Funktionseinheiten, beispielswei se vierte Funktionseinheiten, fünfte Funktionseinheiten oder sechste Funktionseinheiten, erweitert werden, wobei diese Prüfung analog abläuft, wie bei den dritten Funktionseinhei ten 3. Aus diesem Grunde ist dies hier nicht weiter beschrie ben .

Die vorliegend offenbarten Schritte a) bis f) werden vorlie gend für jede der mehreren Funktionseinheiten 9 aus Sicht der ersten Funktionseinheit 1 durchgeführt. Mit anderen Worten nimmt jede der mehreren Funktionseinheiten 9 bei einer jewei ligen Durchführung der Schritte a) bis f) für die jeweilige Funktionseinheit die Rolle der ersten Funktionseinheit 1 ein. Es wird somit jede der mehreren Funktionseinheiten 9 auf eine jeweilige Änderung ihrer jeweiligen Funktionsweise geprüft. Zudem wird jede der mehreren Funktionseinheiten 9, deren Funktionsweise sich geändert hat, auf eine jeweilige wellen förmige Ausbreitung von Inkompatibilitäten hin untersucht.

Ein Ergebnis beim Erkennen der Inkompatibilitäten zwischen den Funktionseinheiten 9 kann einem Nutzer ausgegeben werden. Beispielsweise kann im Rahmen dieses Ergebnisses ausgegeben werden, welche der mehreren Funktionseinheiten 9 eine Aktua lisierung beziehungsweise eine Anpassung an eine geändert Funktionseinheit 9 benötigen, um Inkompatibilitäten zu behe ben .

Außerdem können automatisch Maßnahmen zum Eindämmen der In kompatibilitäten getroffen werden. Die Maßnahmen zum Eindäm men jeweiliger Inkompatibilitäten sind beispielsweise: Das Anpassen der jeweiligen Kommunikation (beispielweise Anpassen einer Schnittstelle oder des Signalformats, insbesondere ei nes Datenformats, Maßeinheiten übermittelter Daten, einer Syntax oder eines Protokolls) betroffener Funktionseinheiten 9, das Einschränken der Kommunikation zwischen den betroffe nen Funktionseinheiten 9 und das Erstellen der sogenannten Brückenschnittstellen zwischen den betroffenen Funktionsein heiten 9. Derartige Brückenschnittstellen (auch mit dem Fach begriff „intermediates" bezeichnet) , können zwischen den be troffenen Funktionseinheiten 9 angeordnet werden und deren Kommunikation anpassen.

Die zuvor beschrieben Schritte a) bis f) sind in FIG 3 in ei nem beispielhaften Ablaufdiagramm gezeigt und sind darin durch die Schritte S1 bis S6 repräsentiert.

In der Versionsdatenbank 23 können Metadaten 27 und/oder Pro grammcodes 26 für jede der mehreren Funktionseinheiten 9 nach jeder Veränderung gespeichert werden. Beispielsweise wird durch die Steuereinrichtung 19 wiederholt, insbesondere peri odisch oder regelmäßig, überprüft, ob sich die Funktionsein heiten 9 gegenüber einem jeweiligen vorherigen Zustand geän dert haben. Jedes Mal, wenn eine Veränderung einer der Funk- tionseinheiten 9 vorliegt, kann der jeweils aktuelle Pro grammcode 26 und/oder die jeweils aktuellen Metadaten 27 durch die Bereitstellungseinheit 25 aus der Programmcodeda tenbank 22 abgerufen werden und in der Versionsdatenbank 23 gespeichert werden. Auf diese Weise ist es zum Durchführen der Schritte a) bis f) vorteilhafterweise nur ein inkremen- telles Abrufen der jeweiligen Programmcodes 26 der jeweils veränderten der Funktionseinheiten 9 nötig. Der jeweilige Programmcode 26 derer der Funktionseinheiten 9, die sich nicht verändert haben, kann in diesem Fall vorteilhafterweise aus der Versionsdatenbank 23 geladen werden. Auf diese Weise kann das Verfahren zum Erkennen der Inkompatibilität beson ders effizient gestaltet werden. Dies gilt insbesondere dann, wenn die Steuereinrichtung 19 und die Programmcodedatenbank 22, insbesondere der Softwaremarktplatz, räumlich voneinander getrennt sind.