DE102022203325A1 - Verfahren zur Überprüfung der Ausführbarkeit einer Softwareanwendung - Google Patents

Verfahren zur Überprüfung der Ausführbarkeit einer Softwareanwendung Download PDF

Info

Publication number
DE102022203325A1
DE102022203325A1 DE102022203325.6A DE102022203325A DE102022203325A1 DE 102022203325 A1 DE102022203325 A1 DE 102022203325A1 DE 102022203325 A DE102022203325 A DE 102022203325A DE 102022203325 A1 DE102022203325 A1 DE 102022203325A1
Authority
DE
Germany
Prior art keywords
application
software application
interfaces
software
application interfaces
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102022203325.6A
Other languages
English (en)
Inventor
Robert Schmitt
David Bell
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102022203325.6A priority Critical patent/DE102022203325A1/de
Publication of DE102022203325A1 publication Critical patent/DE102022203325A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • G06F11/0739Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function in a data processing system embedded in automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Überprüfen der Ausführbarkeit einer Softwareanwendung in einer zentralen Steuereinheit (150), wobei ein oder mehrere Vorrichtungen (110, 120, 130) mit der zentralen Steuereinheit (150) verbunden sind, umfassend ein Erfassen (210, 220) von aktuell verfügbaren Anwendungsschnittstellen (112, 114, 122, 124, 126, 132, 134) der ein oder mehreren Vorrichtungen (110, 120, 130), wobei die Anwendungsschnittstellen (112, 114, 122, 124, 126, 132, 134) eine Eingabe und/oder Ausgabe von Daten für ein oder mehrere Komponenten (125, 127, 133, 135) einer Vorrichtung (110, 120, 130) ermöglichen, ein Erfassen (240) von Informationen (245) über die Softwareanwendung, wobei die Informationen (245) mindestens eine Angabe über erforderliche Anwendungsschnittstellen für die Ausführung der Softwareanwendung umfassen, ein Abgleichen (250) der erforderlichen Anwendungsschnittstellen und der erfassten aktuell verfügbaren Anwendungsschnittstellen (112, 114, 122, 124, 126, 132, 134), und falls (260) die aktuell verfügbaren Anwendungsschnittstellen nicht alle erforderlichen Anwendungsschnittstellen für die Softwareanwendung umfassen, Definieren (270) der Softwareanwendung als nicht ausführbar.

Description

  • Die vorliegende Erfindung betrifft ein Verfahren der Ausführbarkeit einer Softwareanwendung in einer zentralen Steuereinheit sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung.
  • Hintergrund der Erfindung
  • In sämtlichen Bereichen der Industrie, insbesondere im Automobilbereich, in der Fertigungstechnik oder im Maschinenbau, aber auch in Bereichen wie Landwirtschaft und Heimautomatisierung (Smart Home) spielt die Vernetzung verschiedener Funktionen und Geräte eine zunehmend große Rolle.
  • In all diesen Fällen ergeben sich besondere Vorteile daraus, dass die verschiedenen Geräte und Einrichtungen gemeinsam angesteuert werden können und beispielsweise vorgegebene Abläufe unter Einbindung mehrerer Vorrichtungen durchgeführt werden können. Häufig werden zu diesem Zweck eine oder mehrere zentrale oder dezentrale Steuerungen verwendet, die über geeignete Schnittstellen mit mehreren Geräten und ihren unterschiedlichen Funktionselementen verbunden sind. Jedoch sind dabei oft Vorrichtungen verschiedener Hersteller, verschiedener Architekturen und mit verschiedenen Einzelfunktionen miteinander verknüpft, die jeweils vorgesehene Aufgaben übernehmen sollen. Eine direkte Ansteuerung der einzelnen Vorrichtungen würde daher erforderlich machen, dass alle Einzelheiten dieser Vorrichtung bei der Entwicklung einer entsprechenden Softwareanwendung berücksichtigt werden und von Anfang an bekannt ist, welche Vorrichtungen und Komponenten in einem System überhaupt zur Verfügung stehen. Für zentral installierte Software besteht ansonsten das Problem, dass notwendige Funktionen möglicherweise nicht ausführbar sind, weil die entsprechende Komponente fehlt, was die Bedienbarkeit für den Benutzer erschwert und umfangreiche Fehlerbehandlungen bei der Entwicklung der Anwendung erforderlich macht.
  • Offenbarung der Erfindung
  • Erfindungsgemäß werden ein Verfahren zum Überprüfen der Ausführbarkeit einer Softwareanwendung sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.
  • Im Einzelnen wird ein Verfahren zum Überprüfen der Ausführbarkeit einer Softwareanwendung in einer zentralen Steuereinheit vorgeschlagen, wobei ein oder mehrere Vorrichtungen mit der zentralen Steuereinheit verbunden sind. Dabei werden zunächst von aktuell verfügbaren Anwendungsschnittstellen der einen oder mehreren Vorrichtungen erfasst, wobei die Anwendungsschnittstellen eine Eingabe und/oder Ausgabe von Daten für ein oder mehrere Komponenten einer Vorrichtung ermöglichen. Außerdem werden Informationen über die Softwareanwendung erfasst, wobei die Informationen mindestens eine Angabe über erforderliche Anwendungsschnittstellen für die Ausführung der Softwareanwendung umfassen. Dann werden diese erforderlichen Anwendungsschnittstellen und die erfassten aktuell verfügbaren Anwendungsschnittstellen abgeglichen, und falls die aktuell verfügbaren Anwendungsschnittstellen nicht alle erforderlichen Anwendungsschnittstellen für die Softwareanwendung umfassen, wird die Softwareanwendung als nicht ausführbar markiert. Auf diese Weise kann in einem System aus mehreren Vorrichtungen oder Peripheriegeräten, das sich mit der Zeit auch verändern kann, die Ausführbarkeit von Software im Voraus geprüft werden, ohne dass bei der Entwicklung der Softwareanwendung alle Daten zu den kompatiblen Vorrichtungen bekannt sein oder berücksichtigt werden müssen. Dies bietet sich insbesondere in z.B. einem Gespann mit mehreren möglichen Anbaugeräten oder bei Anbaugeräten mit mehreren möglichen Funktionen an, wie sie im Bereich der Land- und Forstwirtschaft oder auch für Baugeräte häufig verwendet werden. Fehlt eine benötigte Anwendungsschnittstelle, können weitere Schritte vor dem Start der Software durchgeführt werden.
  • Das Erfassen von aktuell verfügbaren Anwendungsschnittstellen und/oder das Abgleichen können in vorgegebenen Zeitabständen und/oder zyklisch und/oder in Reaktion auf einen Benutzerbefehl und/oder in Abhängigkeit von einer Bedingung durchgeführt werden. Damit kann sichergestellt werden, dass immer die aktuelle Systemkonfiguration und die dadurch gebotenen Anwendungsschnittstellen bekannt sind und im Abgleich verwendet werden. Von Vorteil ist dies insbesondere, wenn sich die vorhandenen Schnittstellen über die Lebenszeit einer Maschine häufig verändern können, z.B. durch Hinzufügen von neuer Hardware oder durch Softwareupdates, die neue Funktionen, Signalverarbeitungen oder ähnliches bereitstellen. Dabei kann das Erfassen der verfügbaren Anwendungsschnittstellen mit dem Abgleichen verknüpft werden oder unabhängig davon stattfinden.
  • Eine solche Bedingung für das Erfassen der verfügbaren Schnittstellen oder das Abgleichen der Schnittstellen kann beispielsweise mindestens eines der folgenden umfassen: einen Benutzerbefehl zum Ausführen der Softwareanwendung, einen Installationsvorgang für die Softwareanwendung, ein Systemstart, eine Veränderung der mit der Steuereinheit verbundenen Vorrichtungen, eine Veränderung der erfassten aktuell verfügbaren Anwendungsschnittstellen.
  • Das Definieren der Softwareanwendung als nicht ausführbar kann unter anderem eine Anzeige über die nicht ausführbare Softwareanwendung mittels einer Benutzerschnittstelle umfassen. Eine solche Anzeige kann beispielsweise durch Ausgrauen oder Markieren der Softwareanwendung in einer graphischen Darstellung erfolgen, durch geeignete Gruppierung auf dem Bildschirm oder durch Anzeigen einer Fehlermeldung.
  • Darüber hinaus kann das Verfahren das Abspeichern eines Parameters für die Softwareanwendung umfassen, wobei der Parameter eine Angabe darüber umfasst, ob die Softwareanwendung bei einem Abgleichen als nicht ausführbar definiert wurde. Beispielsweise kann in einer Datei oder auf andere Weise jeweils das aktuelle Ergebnis des Abgleichs abgelegt werden, so dass bei einer Anforderung z.B. zur Ausführung einer Anwendung auf diese Ergebnisse zurückgegriffen werden kann.
  • Zusätzlich oder alternativ können Informationen über die fehlenden erforderlichen Anwendungsschnittstellen, welche nicht in den aktuell verfügbaren Anwendungsschnittstellen umfasst sind, angezeigt werden. Beispielsweise könnten die Typen oder Kennungen der fehlenden Schnittstellen angezeigt werden, oder es können Hinweise an einen Benutzer ausgegeben werden, wie er das Fehlen der Schnittstellen beheben kann (z.B. Einschalten oder Hinzufügen eines Zusatzgeräts wie eines GPS-Moduls).
  • In allen Fällen ist es auch möglich, dass eine Ausführung der Softwareanwendung auf der Steuereinheit verhindert wird, falls die Softwareanwendung derzeit als nicht ausführbar definiert ist. Damit kann bei der Entwicklung der Softwareanwendung diese Prüfung auf Schnittstellen bei jeder Ausführung oder z.B. eine entsprechende Fehlerbehandlung ausgelassen werden, da die Anwendung nur ausgeführt wird, wenn alle benötigten Signale und Anwendungsschnittstellen vorhanden sind.
  • Für jede Anwendungsschnittstelle können die Informationen über die Anwendungsschnittstellen beispielsweise mindestens einen der folgenden Parameter umfassen: eine Schnittstellenkennung, einen Datenzugriffstyp, einen verwendeten Standard, eine verwendete Maßeinheit, eine Dimensionierung einer Komponente einer Vorrichtung, eine räumliche Anordnung einer Komponente einer Vorrichtung, einen Ausgabe-Datentyp, eine Auslösebedingung, eine mittels der Schnittstelle ansprechbare Vorrichtung.
  • Solche und andere Informationen über die erforderlichen Anwendungsschnittstellen können für den Abgleich beispielswiese aus einer zu der Softwareanwendung gehörigen Beschreibungsdatei erfasst werden. Diese kann z.B. im xml-Format oder auf andere Weise abgespeichert sein und kann zusammen mit der Anwendungssoftware bereitgestellt werden.
  • Eine erfindungsgemäße Recheneinheit, z.B. ein Steuergerät eines Kraftfahrzeugs oder einer Maschine, ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen. Dabei kann es sich bei der Recheneinheit um die Steuereinheit handeln, auf der die Softwareanwendung ausgeführt werden soll; ebenso können die Schritte grundsätzlich aber auch durch eine andere Recheneinheit durchgeführt werden.
  • Auch die Implementierung eines erfindungsgemäßen Verfahrens in Form eines Computerprogramms oder Computerprogrammprodukts mit Programmcode zur Durchführung aller Verfahrensschritte ist vorteilhaft, da dies besonders geringe Kosten verursacht, insbesondere wenn ein ausführendes Steuergerät noch für weitere Aufgaben genutzt wird und daher ohnehin vorhanden ist. Schließlich ist ein maschinenlesbares Speichermedium vorgesehen mit einem darauf gespeicherten Computerprogramm wie oben beschrieben. Geeignete Speichermedien bzw. Datenträger zur Bereitstellung des Computerprogramms sind insbesondere magnetische, optische und elektrische Speicher, wie z.B. Festplatten, Flash-Speicher, EEPROMs, DVDs u.a.m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) ist möglich. Ein solcher Download kann dabei drahtgebunden bzw. kabelgebunden oder drahtlos (z.B. über ein WLAN-Netz, eine 3G-, 4G-, 5G- oder 6G-Verbindung, etc.) erfolgen.
  • Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.
  • Die Erfindung ist anhand von Ausführungsbeispielen in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung beschrieben.
  • Kurze Beschreibung der Zeichnungen
    • 1 zeigt schematisch ein beispielhaftes System mit mehreren Vorrichtungen, in dem Ausführungsformen der Erfindung angewendet werden können; und
    • 2 zeigt beispielhafte Verfahrensschritte von Ausführungsformen der Erfindung.
  • Ausführungsformen der Erfindung
  • 1 zeigt beispielhaft ein System 100 aus mehreren Komponenten, in dem die bevorzugte Ausführungsformen der Erfindung eingesetzt werden können. Dabei kann es sich insbesondere um ein industrielles oder landwirtschaftliches Gerät bzw. System mit mehreren eigenständigen Komponenten handeln, die zumindest teilweise zentral und/oder gemeinsam angesteuert werden sollen.
  • Unter einem System 100 kann als Beispiel ein landwirtschaftliches Gespann aus zwei oder mehreren eigenständigen Vorrichtungen 110, 120, 130 verstanden werden, wie etwa einem Traktor und einem oder mehreren Anbaugeräten wie etwa einer Feldspritze. Eine Steuereinheit wie etwa ein Steuergerät 150 kann auf einer der Vorrichtungen 110 (z.B. dem Traktor) zur Steuerung des Gesamtsystems installiert sein, während sich die Vorrichtungen bzw. Anbaugeräte 120, 130 im Gespann, die mit diesem Steuergerät 150 angesteuert werden, immer wieder ändern können. Ebenso ist es aber auch möglich, dass ein externes Steuergerät 150 verwendet wird, das mit sämtlichen anzusteuernden Vorrichtungen 110, 120, 130 verbunden ist und dabei keiner der Vorrichtungen speziell zugeordnet ist. Außerdem ist auch möglich, dass auf mehreren Vorrichtungen Steuereinheiten bzw. Steuergeräte 150, 128 vorhanden sind, die zur Steuerung des Gesamtsystems 100 dienen können.
  • Zur Steuerung und Kommunikation zwischen den Vorrichtungen und einer oder mehreren Steuereinheiten kann eine geeignete Datenverbindung 160 vorgesehen sein, die drahtlos und/oder drahtgebunden eingerichtet sein kann. Über die Datenverbindung 160 können die angebundenen Vorrichtungen zumindest mit einer zentralen Steuereinheit kommunizieren und/oder auch mit den übrigen Vorrichtungen im System oder weiteren Geräten, die nicht für die hier beschriebenen Verfahren genutzt werden. Als Beispiel kann ein Bussystem nach dem ISOBUS-Standard (ISO 11783) genannt werden, der im landwirtschaftlichen Bereich zur Vernetzung von Komponenten auf der Grundlage eines CAN-Bus verwendet wird, und/oder eine Verbindung gemäß dem Netzwerkprotokoll SAE J1939, welches häufig in Nutzfahrzeugen auf einem CAN-Bus z.B. zur Übermittlung von Steuerungsinformationen und Diagnosedaten verwendet wird. Grundsätzlich können aber sowohl die physische Vernetzung der Vorrichtungen und Steuereinheiten als auch die verwendeten Kommunikationsprotokolle und Netzwerkmodelle bzw. -topologien frei gewählt werden.
  • Um mehrere verschiedene Vorrichtungen oder Komponenten von Vorrichtungen über eine gemeinsame Softwareplattform anzusteuern, kann Anwendungssoftware genutzt werden, die in der Form von „App-like Software“ oder Anwendungsmodulen auf einer Steuereinheit 150 ausgeführt wird. Als Vorrichtung 110, 120, 130 kann dabei ein vollständiges multifunktionales Gerät (z.B. ein Fahrzeug oder ein Anbaugerät mit vielen verschiedenen Unterelementen) ebenso betrachtet werden wie eine Teilkomponente oder ein einzelner Sensor oder Aktor, der in eine übergeordnete Vorrichtung integriert ist, z.B. eine Düse oder ein Motor. Zur Ausführung der Anwendungsmodule können Steuereinheiten wie beispielsweise dedizierte Maschinencontroller, Steuergeräte, Computer, Mobilgeräte wie Smartphones und Tablets oder auch andere prozessor- oder controllerbasierte Vorrichtungen genutzt werden. Es versteht sich, dass solche Vorrichtungen mit verschiedenen üblichen Komponenten ausgestattet sein können, insbesondere mit Prozessoren, verschiedenen Schnittstellen, flüchtigen und/oder nichtflüchtigen Speicherelementen 155 zur Speicherung von Daten und ausführbaren Anwendungen, einem geeigneten Betriebssystem und sonstigem. Dabei werden bevorzugt Anwendungsschnittstellen 112, 114, 122, 124, 126, 132, 134 (API, engl.: „application programming interface“) genutzt, um die Softwareanwendungen mit der Softwareplattform sowie mit den ansteuerbaren Vorrichtungsfunktionen programmtechnisch zu verknüpfen und gleichzeitig ein agnostisches Verhalten zu ermöglichen.
  • Eine Softwareanwendung zur Ansteuerung von einer oder mehreren Vorrichtungen kann dabei so ausgelegt sein, dass sie auf diese Anwendungsschnittstellen 112, 114, 122, 124, 126, 132, 134 zugreift, ohne für jede einzelne Vorrichtung speziell entwickelt zu sein und damit auch ohne zwingendes Wissen über die weiteren Merkmale der Vorrichtung. Auf diese Weise können Anwendungen und darin enthaltene Funktionen zunächst vorrichtungsunabhängig entwickelt und bereitgestellt werden. Durch die Anwendung werden dabei allgemeine, abstrahierte Schnittstellen für diese Eigenschaften und Funktionen angesprochen anstelle von konkreten Anbindungen der Softwareanwendungen an spezifische Vorrichtungskomponenten. Durch Verknüpfung der abstrakten Schnittstellen mit den tatsächlich vorhandenen spezifischen Vorrichtungskomponenten 125, 127, 133, 135 können dann die Anwendungsbefehle im System von einem geeigneten Modul zur Ansteuerung übersetzt werden.
  • Als Anwendungsschnittstellen sind dabei im Wesentlichen alle Möglichkeiten der Interaktion zwischen einer Vorrichtung bzw. Vorrichtungskomponente und der Anwendungssoftware zu verstehen, wie etwa Messwerte von Sensoren und übermittelte Signale von Komponenten aller Art, oder ansteuerbare Aktoren und Komponenten. Nur beispielhaft sind in 1 in den angebundenen Vorrichtungen 120 und 130 Anwendungsschnittstellen 122, 124, 126, 132, 134 gezeigt, die jeweils mit Gerätekomponenten oder Gerätefunktionen 125, 127, 133, 135 verbunden sind. Dabei kann es sich bei den Gerätefunktionen um Signal-Ein- oder Ausgänge handeln, z.B. Ausgabesignale eines GPS-Moduls, einen Signaleingang eines Verstellmotors oder beliebige andere. Ebenso können Gerätefunktionen auch z.B. Ergebnisse von Berechnungen und Modellierungen oder bereits in einer lokalen Steuereinheit 128 verarbeitete Signale umfassen, die über eine Anwendungsschnittstelle 122 lesend erfasst und/oder schreibend an die Komponente übermittelt werden können. Auf diese Weise können einzelne Funktionen, die in verschiedenen Vorrichtungen unterschiedlich umgesetzt werden, als einzelne ansprechbare Anwendungsschnittstellen 112, 114, 122, 124, 126, 132, 134 vorgegeben sein und in Softwareanwendungen eingebunden werden. Beispielsweise könnte für eine Bewegungssteuerung eines Elements in einer Vorrichtung die Geschwindigkeit und die Beschleunigung jeder Achse (z.B. x-, y-, z-Achse) jeweils separat als Schnittstellenelement mit den verwendeten Einheiten vorgegeben sein. Auch Messwerte von Sensoren oder abstrakte Vorgänge wie zeitliche Auswertungen können so definiert sein und dann in dem späteren Anwendungsmodul geeignet angesprochen oder für weitere Funktionen ausgewertet werden. Als weiteres Beispiel könnte eine Schnittstelle mit der Bezeichnung „Motordrehzahl“ vorgegeben sein, bei der es sich um eine dynamische CANJ1939-Schnittstelle handelt, die einen Lesezugriff ermöglicht und die Standard-Kennung PGN63500 nutzt. Als weitere Anwendungsschnittstellen können auch solche Schnittstellen vorgesehen sein, die von externen Anbietern bereitgestellt werden, um die von ihnen angebotenen Dienste zu definieren und in den Softwareanwendungen zu integrieren, z.B. Zugriffe auf Cloud-Dienste zur Datenspeicherung über eine geeignete Kommunikationsverbindung.
  • Beispielsweise kann eine Softwareanwendung dafür vorgesehen sein, eine Optimierung des Spritzmittelverbrauchs in landwirtschaftlichen Geräten zu erreichen. Dabei soll diese Funktion für eine Vielzahl unterschiedlicher Feldspritzen (unterschiedliche Typen, Hersteller und Funktionalitäten) zugänglich sein. Eine erste Feldspritze könnte 20 Düsen aufweisen, während eine zweite Feldspritze 40 Düsen und eine andere Aufteilung der Düsen in verschiedene Sektionen aufweisen könnte. Ebenso könnten die Düsen je nach Feldspritze unterschiedlich angesteuert werden. Während eine einfache Variante vielleicht nur eine getrennte Ansteuerung für das linke und das rechte Spritzgestänge erlaubt, könnte eine komplexere Feldspritze eine Einzelansteuerung aller Düsen ermöglichen. Dennoch soll die Softwareanwendung mit diesen und weiteren Varianten funktionsfähig sein. Falls z.B. in der Softwareanwendung vorgesehen ist, dass Spritzmittel nur dann ausgebracht werden sollen, wenn die Luftfeuchtigkeit über 50% liegt, benötigt die Anwendung mindestens das Ergebnis einer Sensormessung zur Luftfeuchtigkeit als eine erste Anwendungsschnittstelle und eine Schnittstelle zur Ansteuerung der Spritzmitteldüsen bzw. allgemein der Spritzfunktionen der Feldspritze als eine zweite Anwendungsschnittstelle. Auch die ausgebrachte Spritzmittelmenge kann beispielsweise in Abhängigkeit von solchen Faktoren in der Anwendung bestimmt oder festgelegt sein. Dabei kann abstrakt in der Softwareanwendung vorgegeben sein, dass eine bestimmte Menge an Spritzmittel ausgegeben werden soll; die konkrete Umsetzung dieser Funktion in verschiedenen Vorrichtungen kann dann aber unterschiedlich interpretiert und umgesetzt werden, z.B. in einer Vorrichtung über eine Regelung der Drehzahl einer Spritzmittelpumpe, in einer anderen dagegen über eine Ansteuerung der Spritzmitteldüsen. Zur korrekten Ausführung dieser Anwendung muss also sichergestellt sein, dass in dem aktuellen System Vorrichtungen vorhanden sind, welche die erforderlichen Anwendungsschnittstellen bereitstellen. Dazu kann ein Abgleichverfahren genutzt werden, bei dem die tatsächlich vorhandenen Anwendungsschnittstellen im System mit Angaben über die erforderlichen Anwendungsschnittstellen abgeglichen werden, die für die Anwendung abgespeichert sind.
  • Um eine Verbindung zwischen den vorrichtungsspezifischen physischen Schnittstellen und Signalen 125, 127, 133, 135 und den abstrahierten Anwendungsschnittstellen 112, 114, 122, 124, 126, 132, 134 zu bilden, kann vorgesehen sein, dass bei der Entwicklung der Softwareanwendung Informationen über die für die Anwendung erforderlichen Schnittstellen in standardisierter Form zusammengefasst werden. Zu diesem Zweck können beispielsweise Datensätze mit mehreren Parametern festgelegt werden, welche die Anwendungsschnittstellen, mögliche Abhängigkeiten und/oder Interaktionspunkte von Anwendungsschnittstellen identifizieren.
  • Zu jeder Softwareanwendung, die auf einer Steuereinheit 150 installiert ist oder installiert werden soll, können damit zugehörige Informationen über die Anwendungsschnittstellen, die von dieser Softwareanwendung verwendet werden, vorgegeben sein und auf der Steuereinheit 150 bzw. zugehörigen Speicherelementen 155 gespeichert werden. Beispielsweise können diese Informationen in einer Beschreibungsdatei abgespeichert sein, die zusammen mit der Programmdatei der Softwareanwendung bzw. in einem Installationspaket übermittelt werden kann oder auf andere Weise auf dem System eingerichtet wird, z.B. durch Download von einem entfernten Server oder durch Erzeugung der Datei bei Installation der Softwareanwendung. Die erforderlichen Anwendungsschnittstellen können beispielsweise in einer sogenannten Manifest-Datei definiert sein, die in einer Auszeichnungssprache wie etwa im xml-Format gespeichert sein kann. Alternativ können Metadaten oder generell Parameter der ausgewählten Schnittstellen aber auch auf andere Weise abgespeichert sein.
  • Die Anwendungsschnittstellen 112, 114, 122, 124, 126, 132, 134 können in diesen Informationen beispielsweise über eine oder mehrere der folgenden Eigenschaften definiert werden, die z.B. in Form einer Datenbank oder Tabelle abgespeichert sein können:
    • - eine Kennung oder Bezeichnung für die Schnittstelle, die auch als Referenz verwendet werden kann;
    • - eine Beschreibung der Schnittstelle und ihres Zwecks zur Dokumentation;
    • - Maschinen/Vorrichtungen, welche diese Schnittstelle verwenden können;
    • - die Zugriffsart für die jeweilige Schnittstelle, also z. B. Lese- und/oder Schreibzugriff; damit kann definiert werden, ob die Schnittstelle zum Auslesen von Parametern und Daten und/oder zum Übermitteln von Steuerbefehlen oder Parametern an die Vorrichtung genutzt werden soll;
    • - eine Angabe darüber, ob es sich um eine statische Schnittstelle handelt, die zur Laufzeit nur einmal ausgelesen bzw. angesprochen wird, oder um eine dynamische Schnittstelle, die sich abhängig von veränderten Parametern oder zu vorgegebenen Zeiten ändert;
    • - Informationen über die Aktualisierung, z.B. ob eine dynamische Schnittstellenfunktion in Reaktion auf ein Ereignis oder getaktet zu einer vorgegebenen Zeit aktualisiert wird;
    • - Maßeinheiten der Parameter, die von der Schnittstelle ausgegeben bzw. verwendet werden, z. B. mm/s, g, mg
    • - verwendete Standards, z.B. Kommunikations- oder Netzwerkstandards des verwendeten Maschinennetzwerks, wie etwa ISOBUS, CAN, IO oder andere;
    • - zu den Standards gehörige Kennungen zur näheren Identifikation;
    • - eine Angabe über den von der Schnittstelle verwendeten bzw. ausgegebenen Datentyp, z.B. Integer, Gleitkommazahl, Boolean.
  • Dabei kann optional auch unterschieden werden zwischen notwendigen Anwendungsschnittstellen, die für die Ausführung der Softwareanwendung zwingend erforderlich sind, und erweiterten Anwendungsschnittstellen, die in bestimmten Funktionen einer Softwareanwendung genutzt werden können und möglicherweise einen erweiterten Funktionsumfang für die Anwendung bieten, die aber für die grundsätzliche Funktion der Softwareanwendung nicht zwingend vorhanden sein müssen. Die Information, ob eine Schnittstelle zwingend erforderlich oder optional vorhanden sein soll, kann ebenfalls in der Beschreibungsdatei lokal abgespeichert sein.
  • Die Beschreibungsdatei, welche Informationen über die erforderlichen Anwendungsschnittstellen für eine Softwareanwendung bereitstellt, könnte dabei vollständig beschreibende Parameter für jede Schnittstelle angeben, insbesondere durch Definition von einem oder mehreren der obenstehenden Parameter. Für einen Abgleich, ob eine erforderliche Schnittstelle im System verfügbar ist, kann dann mindestens einer der angegebenen Parameter oder auch alle vorhandenen Parameter abgeglichen werden.
  • Ebenso ist es aber auch möglich, dass in der Beschreibungsdatei nur reduzierte Metadaten gespeichert sind, die zur eindeutigen Identifikation einer Anwendungsschnittstelle ausreichend sind, z.B. eine eindeutige Referenzkennung oder auch ein hierarchisches System von mehreren Kennungen (z.B. für Gruppen von ähnlichen Anwendungsschnittstellen oder für Anwendungsschnittstellen, die unterschiedlich angesprochen werden, aber gleiche Funktionen bieten). Für einen Abgleich, ob erforderliche Anwendungsschnittstellen im System verfügbar sind, ist grundsätzlich ausreichend, dass die Schnittstellen passend identifiziert werden können, ohne dass zwingend weitere Details der Schnittstellen berücksichtigt werden müssen oder für den hier beschriebenen Prüfdienst vorliegen müssen.
  • In 2 sind mögliche Ausführungsschritte eines beispielhaften Abgleichverfahrens gemäß einer bevorzugten Ausführungsform der Erfindung dargestellt, die im Folgenden näher beschrieben werden. Diese Schritte können beispielsweise von einem Softwaremodul der übergreifenden Softwareplattform auf einem Steuergerät 150 oder Steuerrechner durchgeführt werden, welches zur Überprüfung der Kompatibilität vorgesehen ist; ebenso können die Verfahrensschritte auch von einem Untermodul eines Betriebssystems durchgeführt werden oder auf andere Weise als Dienst auf dem Steuergerät ausgeführt werden.
  • Zu diesem Zweck kann zunächst in Schritt 210 geprüft werden, ob bzw. welche Anwendungsschnittstellen im System 100 verfügbar sind, d.h. welche Anwendungsschnittstellen durch Vorrichtungen 110, 120, 130 und Komponenten bereitgestellt werden, die mit der ausführenden Steuereinrichtung verbunden sind. Dies kann beispielsweise durch Auswertung von einmaligen oder zyklischen Nachrichten geschehen, die von den eingebundenen Vorrichtungen über das verbindende Netzwerk 160 (z.B. ein Bussystem) übermittelt werden, wie etwa über CAN-Nachrichten, die für diesen Zweck definiert sein können. Optional können in diesem Schritt auch mehrere Nachrichten ausgetauscht werden. Es ist auch möglich, dass der Dienst auf der Steuereinheit 150, der die Prüfung der vorhandenen Schnittstellen vornimmt, zu diesem Zweck eine Anforderungsnachricht über das Bussystem 160 an die Vorrichtungen 110, 120, 130 sendet und als Antwort von kompatiblen Vorrichtungen Informationen über die verfügbaren Anwendungsschnittstellen erhält, also z.B. über die möglichen Eingabe- und Ausgabesignale, ansteuerbare Elemente, Datenverbindungen, Sensoren, Aktoren, Berechnungsfunktionen und andere. Es versteht sich, dass die Art und Weise der Übermittlung der Informationen über die vorhandenen bzw. verfügbaren Anwendungsschnittstellen dabei auch von dem verwendeten Kommunikationssystem und den angewendeten Standards für den Datenaustausch abhängt.
  • Falls in 220 mindestens eine Anwendungsschnittstelle im System gefunden wurde, können die so erhaltenen Informationen unmittelbar für einen Abgleich in Schritt 250 weiterverwendet werden und/oder zunächst in Schritt 230 als Daten 235 abgespeichert werden. Dabei kann optional auch anhand von bereits gespeicherten Daten geprüft werden, ob sich seit dem letzten Prüfvorgang Änderungen ergeben haben. Solche Änderungen können sich beispielsweise durch das Hinzufügen oder Verändern von Vorrichtungen, d.h. hardwareseitige Veränderungen, ebenso ergeben wie durch Veränderungen an der Software einer Vorrichtung oder einer Vorrichtungskomponente, z.B. durch Softwareaktualisierungen oder neue Steuerprogramme. Es kann vorgesehen sein, dass die Informationen über die aktuell verfügbaren Anwendungsschnittstellen immer vollständig abgespeichert 230 werden; alternativ ist auch möglich, dass nur erkannte Veränderungen gespeichert werden.
  • Optional kann den gespeicherten Daten 235 über die aktuell verfügbaren Anwendungsschnittstellen ein Zeitstempel hinzugefügt werden, der den Zeitpunkt der Prüfung angibt, so dass sichergestellt werden kann, dass jeweils aktuelle Daten verwendet werden.
  • Die Erfassung der Anwendungsschnittstellen 210, 220 und die Aktualisierung bzw. Speicherung 230 der erfassten Anwendungsschnittstellen kann dann regelmäßig wiederholt werden, etwa in vorgegebenen Zeitabständen und/oder bei Eintreten einer vordefinierten Bedingung (z. B. Anmeldung eines neuen Geräts am Bussystem).
  • Anhand der so gewonnenen Daten 235 kann dann für eine Softwareanwendung geprüft werden, ob alle Anwendungsschnittstellen im System verfügbar sind, die für die Ausführung der Softwareanwendung erforderlich sind.
  • Wie bereits beschrieben wurde, sollen dazu zugehörig zu der zu prüfenden Softwareanwendung Daten 245 vorliegen, die angeben, welche Anwendungsschnittstellen oder welche Typen bzw. Gruppen von Anwendungsschnittstellen zur Ausführung erforderlich sind. Diese können in Schritt 240 aus einer zugehörigen Beschreibungsdatei 245 oder auf andere Weise erfasst werden. Nun können in Schritt 250 die beiden erfassten Datensätze 235 und 245, also die im System 100 aktuell verfügbaren Anwendungsschnittstellen 235 und die für die Softwareanwendung erforderlichen Anwendungsschnittstellen 245, miteinander verglichen werden. Für eine fehlerfreie Ausführung müssen alle Anwendungsschnittstellen, die für die Softwareanwendung als „erforderlich“ angegeben sind, auch im System aktuell verfügbar sein.
  • Falls in Schritt 260 festgestellt wird, dass eine oder mehrere der Anwendungsschnittstellen, die für die Softwareanwendung erforderlich sind, nicht aktuell im System verfügbar sind, falls also eine Angabe über ein Schnittstellenelement, das in der Beschreibungsdatei als erforderlich angegeben ist, nicht in den in Schritt 210 erfassten Daten 235 vorhanden ist, wird diese Softwareanwendung vom System in Schritt 270 als „aktuell nicht ausführbar“ definiert. Falls sich dagegen als Ergebnis des Abgleichs herausstellt, dass alle als erforderlich angegebenen Anwendungsschnittstellen auch aktuell im System vorhanden sind, kann das Abgleichverfahren beendet werden oder optional die geprüfte Softwareanwendung im System in Schritt 280 als „ausführbar“ definiert werden.
  • Das Ergebnis des Abgleichs kann dann auf verschiedene Weise in Schritt 275 verwendet werden; es kann beispielsweise in einer geeigneten Konfigurationsdatei abgespeichert werden, so dass mindestens eine Kennung oder Bezeichnung der geprüften Softwareanwendung und das Ergebnis des Abgleichs („ausführbar“ oder „nicht ausführbar“) gespeichert wird. Dabei ist auch denkbar, dass nur Ergebnisse für „nicht ausführbare“ Softwareanwendungen weiterverarbeitet, z.B. abgespeichert werden, da bei einer ausführbaren Anwendung keine weiteren Eingriffe für das System erforderlich sind. Optional kann in der Konfigurationsdatei (oder bei einer vergleichbaren Speicherung des Ergebnisses des Abgleichs) auch ein Zeitstempel hinzugefügt werden, der angibt, zu welchem Zeitpunkt der Abgleich der Anwendungsschnittstellendaten stattgefunden hat. Ebenso können optional auch Details der fehlenden Anwendungsschnittstellen abgespeichert werden, also der Anwendungsschnittstellen, die für die Softwareanwendung erforderlich sind, aber im System derzeit nicht verfügbar sind.
  • Eine solche Konfigurationsdatei oder eine vergleichbare Speicherung des Abgleichergebnisses kann für jede Software einzeln und/oder für mehrere Softwareanwendungen gemeinsam vorgesehen sein. Ebenso ist es auch denkbar, Informationen über die Ausführbarkeit der Softwareanwendung im aktuellen System in der zu der Softwareanwendung gehörigen Beschreibungsdatei abzuspeichern, welche die Informationen über die erforderlichen Schnittstellen umfasst.
  • Das Steuersystem kann auch so ausgelegt sein, dass bei Erhalt eines Benutzerbefehls, der das Starten bzw. Ausführen einer Softwareanwendung auslösen soll (z.B. ein Betätigen einer graphischen Bedienoberfläche wie das Anklicken eines Icons), zunächst das Ergebnis des letzten Abgleichs für diese Softwareanwendung aus der Konfigurationsdatei abgerufen wird. Falls kein Abgleichergebnis für diese Softwareanwendung vorliegt, kann vor dem Starten der Software das oben beschriebene Verfahren zum Abgleich der Anwendungsschnittstellen durchgeführt werden. Falls die Softwareanwendung in der Konfigurationsdatei als ausführbar abgespeichert ist (oder, wenn nur Informationen zu nicht ausführbaren Anwendungen abgespeichert werden, falls die Softwareanwendung nicht als „nicht ausführbar“ definiert ist), kann die Ausführung wie üblich in Schritt 285 durchgeführt werden. Falls jedoch in der Konfigurationsdatei für diese Softwareanwendung abgespeichert ist, dass im System aktuell nicht alle erforderlichen Anwendungsschnittstellen verfügbar sind, kann die Ausführung der Softwareanwendung in Schritt 275 verhindert werden. Bevorzugt kann einem Benutzer dann eine entsprechende Fehlermeldung angezeigt werden; optional kann in der Fehlermeldung auch angegeben sein, welche Schnittstellen für eine Ausführbarkeit dieser Softwareanwendung fehlen.
  • Zusätzlich oder alternativ kann ein Ergebnis des Abgleichs einem Benutzer angezeigt werden. Dabei kann die Art und Weise der Anzeige an die jeweils auf der Steuereinheit verfügbare Benutzeroberfläche angepasst werden. Bei einer graphischen Bedienoberfläche, in der die installierten Softwareanwendungen als Icon oder als Text dargestellt sind, kann beispielsweise für eine ausführbare Softwareanwendung eine andere Farbe oder Darstellungsweise gewählt werden wie für eine nicht ausführbare Softwareanwendung. In einer möglichen Ausführungsform kann ein auf gewohnte Weise farbig dargestelltes Icon als Anzeige für ausführbare Softwareanwendungen dienen, während nicht ausführbare Softwareanwendungen durch ausgegraute oder anders gefärbte Icons dargestellt werden, so dass ein Benutzer sofort erfassen kann, welche der installierten Softwareanwendungen nicht ausführbar sind. Als weitere Möglichkeit können die Softwareanwendungen bzw. ihre Anzeigeelemente in einer Bedienoberfläche abhängig von ihrer Ausführbarkeit gruppiert werden, so dass beispielsweise alle ausführbaren Softwareanwendungen in einem festgelegten Bereich angezeigt werden, während die Anzeigeelemente der nicht ausführbaren Softwareanwendungen in einen anderen Bereich oder an das Ende der Gruppe verschoben werden.
  • Außerdem kann auch die Interaktion über eine Bedienoberfläche abhängig von der Ausführbarkeit der Softwareanwendung verändert werden. Während bei einer Anwendung, die als ausführbar angezeigt wird, ein Klick oder eine Berührung eines Touchscreens den Start der Softwareanwendung auslöst, kann dieselbe Interaktion für eine als nicht ausführbar angezeigte Anwendung z.B. die Anzeige einer Fehlermeldung und/oder eine Angabe aller fehlenden Anwendungsschnittstellen auf einer geeigneten Anzeigeeinheit (z.B. einem Display der Steuereinheit) auslösen. Alternativ oder zusätzlich kann auch eine andere Benutzereingabe verwendet werden, um die fehlenden Anwendungsschnittstellen anzuzeigen.
  • Die beschriebenen Möglichkeiten, einen Benutzer über die Ausführbarkeit der Softwareanwendung zu informieren, können natürlich auch auf beliebige andere Bedienelemente und Benutzerschnittstellen übertragen werden. Beispielsweise kann dem Benutzer durch eine entsprechende Sprachausgabe mitgeteilt werden, falls eine Softwareanwendung aufgrund von fehlenden Schnittstellen nicht ausführbar ist. Ebenso können für den Fall einer nicht ausführbaren Anwendung beispielsweise Nachrichten an andere Benutzergeräte übermittelt werden, die dort eine entsprechende Meldung an den Benutzer oder eine Anzeigemöglichkeit auslösen.
  • Es ist auch möglich, dass Softwareanwendungen in Systemen automatisiert oder teilautomatisiert gestartet werden oder in Abhängigkeit von anderen Prozessen initialisiert werden, so dass dem angeforderten Anwendungsstart keine spezielle Benutzerinteraktion vorausgehen muss. Falls bei oder zu einem beliebigen Zeitpunkt vor der gewünschten Ausführung der Softwareanwendung festgestellt wird, dass für die Ausführung nicht alle erforderlichen Anwendungsschnittstellen im System verfügbar sind, kann eine entsprechende Meldung an einen Benutzer übermittelt werden, z.B. durch Anzeige einer Nachricht auf einem Benutzerterminal oder durch Senden einer Nachricht an ein mobiles Benutzergerät über einen geeigneten Kommunikationskanal. Damit kann der Benutzer rechtzeitig überprüfen, ob alle notwendigen Vorrichtungen, Komponenten und Anwendungen vorhanden sind und gegebenenfalls Änderungen an der Hardware oder der Software des Systems vornehmen, um eine korrekte Ausführung des automatisierten Prozesses zu ermöglichen.
  • Bevorzugt sind alle Softwareanwendungen eines solchen Systems auf diese Weise überprüfbar und sind mit zugehörigen Schnittstellendaten versehen. Es ist jedoch auch möglich, dass Anwendungen, die mit diesem Abgleichverfahren nicht kompatibel sind, in demselben System installiert sind und ausgeführt werden können. Optional kann in diesem Fall dem Benutzer zusätzlich angezeigt werden, dass die Verfügbarkeit der Schnittstellen bzw. die fehlerfreie Ausführbarkeit einer bestimmten Softwareanwendung nicht oder nicht vollständig geprüft werden konnte. Die Art und Weise der Anzeige kann dabei auch an die Wiedergabeoptionen angepasst werden, die für die geprüften Softwareanwendungen genutzt werden.
  • Der Abgleich der verfügbaren und erforderlichen Anwendungsschnittstellen kann grundsätzlich zu jedem beliebigen Zeitpunkt stattfinden; insbesondere kann dieser bei Veränderungen der angebundenen Vorrichtungen, bei (d.h. während, vor oder nach) einer Installation oder Aktualisierung einer Softwareanwendung, beim Aufruf bzw. Start der ausführbaren Softwareanwendungen (automatisch oder durch einen Benutzer), und/oder beim Start des Gesamtsystems ausgeführt werden. Auch ein zyklischer Abgleich in vorgegebenen Zeitabständen ist möglich, wobei die Zeitabstände vorgegeben sein können oder auch durch einen Benutzer eingestellt werden können. Falls die im System verfügbaren Schnittstellen zyklisch geprüft werden, kann der Abgleich mit den erforderlichen Schnittstellen im gleichen Vorgang stattfinden oder kann alternativ separat zu anderen Zeiten und/oder mit anderen Zeitabständen eingeplant werden.
  • Es ist darüber hinaus auch möglich, dass die beschriebene Prüfung auf das Vorhandensein erforderlicher Anwendungsschnittstellen schon vor der Installation einer Softwareanwendung vorgenommen wird, falls die zugehörigen Informationen über die erforderlichen Anwendungsschnittstellen vorliegen. Beispielsweise kann eine Datei, welche wie bereits beschrieben die Informationen über die erforderlichen Anwendungsschnittstellen enthält, zusammen mit einem Installationspaket für die Softwareanwendung übermittelt werden. Sobald diese Datei im System verfügbar ist, kann die Prüfung manuell oder automatisch ausgelöst werden. Falls sich dabei ergibt, dass nicht alle erforderlichen Anwendungsschnittstellen verfügbar sind, kann eine entsprechende Meldung an einen Benutzer ausgegeben werden. Die Meldung kann insbesondere eine Angabe über die fehlenden Anwendungsschnittstellen umfassen. Auf diese Weise hat der Benutzer beispielsweise die Möglichkeit, eine passendere aus mehreren Softwareanwendungen zu wählen, oder kann die Installation der Software wahlweise dennoch fortsetzen, z.B. falls weitere Vorrichtungen und Komponenten mit den fehlenden Anwendungsschnittstellen später hinzugefügt werden sollen.
  • Es versteht sich, dass die beschriebene Kombination aus Vorrichtungen nur beispielhaft genannt ist und dass sich das vorliegende Verfahren zum Abgleich der erforderlichen Schnittstellen nicht auf landwirtschaftliche Gespanne oder Fahrzeuge beschränkt. Vielmehr kann eine solches Verfahren überall eingesetzt werden, wo eine zentrale Steuerung für mehrere Vorrichtungen genutzt werden kann, die variabel zusammengestellt werden können, z.B. mehrere Fertigungsautomaten oder Roboter in einer Fertigungsstraße, verschiedene Sensoren und Regler in einem Kraftfahrzeug, oder eine zentrale Steuerung für vernetzte Haustechnik. Die oben genannten Verfahrensschritte können entsprechend auf jede andere Kombination von Vorrichtungen und Steuerungen übertragen werden.

Claims (13)

  1. Verfahren zum Überprüfen der Ausführbarkeit einer Softwareanwendung in einer zentralen Steuereinheit (150), wobei ein oder mehrere Vorrichtungen (110, 120, 130) mit der zentralen Steuereinheit (150) verbunden sind, umfassend: Erfassen (210, 220) von aktuell verfügbaren Anwendungsschnittstellen (112, 114, 122, 124, 126, 132, 134) der ein oder mehreren Vorrichtungen (110, 120, 130), wobei die Anwendungsschnittstellen (112, 114, 122, 124, 126, 132, 134) eine Eingabe und/oder Ausgabe von Daten für ein oder mehrere Komponenten (125, 127, 133, 135) einer Vorrichtung (110, 120, 130) ermöglichen, Erfassen (240) von Informationen (245) über die Softwareanwendung, wobei die Informationen (245) mindestens eine Angabe über erforderliche Anwendungsschnittstellen für die Ausführung der Softwareanwendung umfassen, Abgleichen (250) der erforderlichen Anwendungsschnittstellen und der erfassten aktuell verfügbaren Anwendungsschnittstellen (112, 114, 122, 124, 126, 132, 134), und falls (260) die aktuell verfügbaren Anwendungsschnittstellen nicht alle erforderlichen Anwendungsschnittstellen für die Softwareanwendung umfassen, Definieren (270) der Softwareanwendung als nicht ausführbar.
  2. Verfahren nach Anspruch 1, wobei das Erfassen (210, 220) von aktuell verfügbaren Anwendungsschnittstellen in vorgegebenen Zeitabständen und/oder zyklisch und/oder in Reaktion auf einen Benutzerbefehl und/oder in Abhängigkeit von einer Bedingung durchgeführt wird.
  3. Verfahren nach Anspruch 1 oder 2, wobei das Abgleichen (250) in vorgegebenen Zeitabständen und/oder zyklisch und/oder in Reaktion auf einen Benutzerbefehl und/oder in Abhängigkeit von einer Bedingung durchgeführt wird.
  4. Verfahren nach Anspruch 2 oder 3, wobei die Bedingung mindestens eines der folgenden umfasst: einen Benutzerbefehl zum Ausführen der Softwareanwendung, einen Installationsvorgang für die Softwareanwendung, ein Systemstart, eine Veränderung der mit der Steuereinheit (150) verbundenen Vorrichtungen (110, 120, 130), eine Veränderung der erfassten aktuell verfügbaren Anwendungsschnittstellen.
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Definieren (270) der Softwareanwendung als nicht ausführbar eine Anzeige über die nicht ausführbare Softwareanwendung über eine Benutzerschnittstelle umfasst.
  6. Verfahren nach einem der vorhergehenden Ansprüche, weiter umfassend ein Abspeichern eines Parameters für die Softwareanwendung, wobei der Parameter eine Angabe darüber umfasst, ob die Softwareanwendung bei einem Abgleichen (250, 260) als nicht ausführbar definiert wurde.
  7. Verfahren nach einem der vorhergehenden Ansprüche, weiter umfassend ein Anzeigen (275) von Informationen über die fehlenden erforderlichen Anwendungsschnittstellen, welche nicht in den aktuell verfügbaren Anwendungsschnittstellen umfasst sind.
  8. Verfahren nach einem der vorhergehenden Ansprüche, wobei eine Ausführung der Softwareanwendung auf der Steuereinheit verhindert (275) wird, falls die Softwareanwendung derzeit als nicht ausführbar definiert ist.
  9. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Informationen (245) über die Anwendungsschnittstellen für jede Anwendungsschnittstelle mindestens einen der folgenden Parameter umfassen: eine Schnittstellenkennung, einen Datenzugriffstyp, einen verwendeten Standard, eine verwendete Maßeinheit, eine Dimensionierung einer Komponente einer Vorrichtung, eine räumliche Anordnung einer Komponente einer Vorrichtung, einen Ausgabe-Datentyp, eine Auslösebedingung, eine mittels der Schnittstelle ansprechbare Vorrichtung.
  10. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Informationen (245) über die erforderlichen Anwendungsschnittstellen aus einer zu der Softwareanwendung gehörigen Beschreibungsdatei erfasst werden.
  11. Recheneinheit, die dazu eingerichtet ist, alle Verfahrensschritte eines Verfahrens nach einem der vorstehenden Ansprüche durchzuführen.
  12. Computerprogramm, das eine Recheneinheit dazu veranlasst, alle Verfahrensschritte eines Verfahrens nach einem der Ansprüche 1 bis 10 durchzuführen, wenn es auf der Recheneinheit ausgeführt wird.
  13. Maschinenlesbares Speichermedium mit einem darauf gespeicherten Computerprogramm nach Anspruch 12.
DE102022203325.6A 2022-04-04 2022-04-04 Verfahren zur Überprüfung der Ausführbarkeit einer Softwareanwendung Pending DE102022203325A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102022203325.6A DE102022203325A1 (de) 2022-04-04 2022-04-04 Verfahren zur Überprüfung der Ausführbarkeit einer Softwareanwendung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102022203325.6A DE102022203325A1 (de) 2022-04-04 2022-04-04 Verfahren zur Überprüfung der Ausführbarkeit einer Softwareanwendung

Publications (1)

Publication Number Publication Date
DE102022203325A1 true DE102022203325A1 (de) 2023-10-05

Family

ID=88018874

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022203325.6A Pending DE102022203325A1 (de) 2022-04-04 2022-04-04 Verfahren zur Überprüfung der Ausführbarkeit einer Softwareanwendung

Country Status (1)

Country Link
DE (1) DE102022203325A1 (de)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210406103A1 (en) 2020-06-26 2021-12-30 Salesforce.Com, Inc. Controlling location-based features with usage maps

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210406103A1 (en) 2020-06-26 2021-12-30 Salesforce.Com, Inc. Controlling location-based features with usage maps

Similar Documents

Publication Publication Date Title
EP2425333B1 (de) Verfahren zur aktualisierung von softwarekomponenten
EP3612900B1 (de) Verfahren zum überwachen einer anlage der automatisierungstechnik
DE10026918B4 (de) Virtueller Netzwerkadapter
EP2789145B1 (de) Vorrichtung zur bedienung von mindestens einem feldgerät der automatisierungstechnik
DE102008010864A1 (de) Verfahren zum Betreiben eines Feldgerätes
WO2014095411A1 (de) System und verfahren zum einsatz in der automatisierungstechnik
DE102015203766A1 (de) Teilsystem für ein Fahrzeug und entsprechendes Fahrzeug
DE10343963A1 (de) Bereitstellung von Diagnoseinformationen
EP3688937B1 (de) Datenstruktur für die übermittilung von daten aus einem feldbusnetzwerk in eine cloud
DE102010063164A1 (de) Verfahren zum Integrieren von mindestens einem Feldgerät in ein Netzwerk der Automatisierungstechnik
DE102020204714A1 (de) Verfahren und Vorrichtung zum Prüfen der Kompatibilität zwischen einer Anwendungssoftware und einer mobilen Arbeitsmaschine
DE102010038458A1 (de) System zur Bedienung von Feldgeräten in einer Prozessanlage
DE102022203325A1 (de) Verfahren zur Überprüfung der Ausführbarkeit einer Softwareanwendung
WO2012028366A1 (de) Verfahren zur sicherstellung der korrekten funktionsweise einer automatisierungsanlage
WO2011131752A1 (de) Aufzeichnung von history-informationen in einem feldgerät
EP1814763B1 (de) Verfahren und System zur Bereitstellung von internen diagnoserelevanten Informationen in einem Fahrzeug
DE102016216728A1 (de) Fehlerdiagnose in einem Bordnetz
CN115668130A (zh) 用于管理机动车辆的电子控制单元的设备和方法
DE102015221936A1 (de) Verfahren und Vorrichtung zum Herstellen eines Zielgerätetreibers
WO2005001582A1 (de) Elektronische steuereinheit und verfahren zur spezifikation einer software-architektur für eine elektronische steuereinheit
DE102022204016A1 (de) Verfahren zum Erzeugen eines Softwaregerüsts
DE102022001254B4 (de) Verfahren zur Durchführung einer Funktionsdiagnose zumindest einer Fahrzeugkomponente und Diagnosesystem
DE10332113A1 (de) Steuergerät und Netzwerk für eine Mehrzahl von Vorrichtungen
DE102012218665B4 (de) Applikationssystem für Steuergeräte
DE102021202412A1 (de) Verfahren zur Bereitstellung einer oder mehrerer Anwendungen an wenigstens eine Maschine

Legal Events

Date Code Title Description
R163 Identified publications notified