Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
GENERATING A USER INTERFACE ON A DISPLAY
Document Type and Number:
WIPO Patent Application WO/2013/029190
Kind Code:
A1
Abstract:
In order to generate a graphical user interface for a programme application on a display, multiple plug-ins for said programme application are registered (S1) in a plug-in catalogue. The plug-ins comprise a main window plug-in and multiple window area plug-ins. When the programme application is started, the main window plug-in (S31) is started, said plug-in representing a main window on the display and defining (S35) multiple sub-areas of the main window. The defined sub-areas of the main window are registered (S4) in an area manager. In addition, the window area plug-ins are started (S32) and each plug-in is registered (S36) in the area manager and linked (S5) by the area manager to one of the defined sub-areas of the main window. Each window area plug-in represents a window area on the display in the sub-area of the main window to which the plug-in is linked (S6).

Inventors:
SCHUEEPP MICHAEL (CH)
Application Number:
PCT/CH2012/000198
Publication Date:
March 07, 2013
Filing Date:
August 22, 2012
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
FERAG AG (CH)
SCHUEEPP MICHAEL (CH)
International Classes:
G06F9/44
Foreign References:
US20090031252A12009-01-29
US20110072376A12011-03-24
US20110107244A12011-05-05
US20060224992A12006-10-05
US6683629B12004-01-27
US6313854B12001-11-06
US20070240128A12007-10-11
Other References:
None
Attorney, Agent or Firm:
RENTSCH PARTNER AG (CH)
Download PDF:
Claims:
Patentansprüche

1 . Ein computerimplementiertes Verfahren zum Generieren einer grafischen Benutzerschnittstelle ( 6) für eine Programmapplikation (34) auf einer Anzeige (4), umfassend: Registrieren (S 1 ) von mehreren Plugins für die Programmapplikation ( 34) in einem Plugin-Katalog (35 ), wobei die Plugins ein Hauptfenster-Plugin und mehrere Fensterbereich-Plugins umfassen, beim Aufstarten der Programmapplikation ( 34) Aufstarten des Hauptfenster-Plugins (S3 1 ), welches auf der Anzeige (4) ein Hauptfenster ( 60) darstellt und mehrere Teilbereiche (6 V, 62', 63', 64', 65') des

Hauptfensters (60) definiert,

Registrieren (S4) der definierten Teilbereiche ( 6 V, 62', 63', 64', 65') des Hauptfensters ( 60) bei einem Bereich-Manager (33 ), und

Aufstarten der Fensterbereich-Plugins (S32 ) , welche sich jeweils beim Bereich-Manager (33 ) registrieren und vom Bereich-Manager (33 ) jeweils mit einem der definierten Teilbereiche (6 1 ', 62', 63', 64', 65') des Hauptfensters ( 60) verknüpft werden, und welche jeweils auf der Anzeige (4) einen Fensterbereich (6 1 , 62, 63, 64, 65 ) in demjenigen Teilbereich (61 ', 62', 63', 64', 65') des Hauptfensters (60) darstellen, mit dem sie verknüpft sind.

Das Verfahren nach Anspruch 1 , dadurch gekennzeichnet, dass im Plugin- Katalog ( 35 ) zudem eines oder mehrere Widget-Plugins und ein Widget- Manager-Plugin registriert werden; und dass beim Aufstarten der Programmapplikation (34) zudem das Widget-Manager-Plugin aufgestartet (S33 ) wird, welches Widget-Kontexte bestimmt, die jeweils einem der Fensterbereich-Plugins zugeordnet sind, und die Widget-Plugins aufgestartet werden, welche jeweils Schnittstelleneingabelemente und/oder Schnittstellenausgabelemente erzeugen und auf der Anzeige (4) in denjenigen Fensterbereich (61 , 62, 63, 64, 65) einfügen, an den sie durch die bestimmten Widget-Kontexte angeknüpft sind.

Das Verfahren nach einem der Ansprüche 1 oder 2 , dadurch gekennzeichnet, dass im Plugin-Katalog ( 35) zudem ein Login-Plugin registriert wird, dass beim Aufstarten der Programmapplikation ( 34) zudem das Login-Plugin (S34) aufgestartet wird, welches vom Benutzer Identifizierungsdaten und Zugangsdaten entgegennimmt, dass basierend auf den Identifizierungsdaten und Zugangsdaten benutzerspezifisch gespeicherte Widget-Konfigurationen (S9) bestimmt werden, und dass die benutzerspezifischen Widget-Konfigurationen (36) auf die den Fensterbereich-Plugins zugeordneten Widget-Kontexte angewandt werden.

4. Das Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass vor dem Aufstarten von Plugins jeweils eine Plugin-spezifische Lizenzüberprüfung durchgeführt (S2 ) wird, und dass das Aufstarten eines Plugins bei ungenügender respektive fehlender Lizenz verhindert wird .

5. Das Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass die Plugins vor dem Aufstarten sprachspezifisch gefiltert (S2 ) werden, und dass das Aufstarten von sprachspezifischen Plugins auf eine definierte Sollsprache ausgerichtet ist.

6. Ein Computersystem zum Generieren einer grafischen Benutzerschnittstelle ( 6 ) für eine Programmapplikation (34) auf einer Anzeige (4), umfassend: einen Plugin-Katalog (35 ) zum Registrieren von mehreren Plugins für die Programmapplikation ( 34), wobei die Plugins ein Hauptfenster-Plugin und mehrere Fensterbereich-Plugins umfassen, einen Plugin-Manager (32 ) , der eingerichtet ist beim Aufstarten der Programmapplikation (34) das Hauptfenster-Plugin und die Fensterbereich- Plugins aufzustarten, wobei das Hauptfenster-Plugin eingerichtet ist, auf der Anzeige (4) ein Hauptfenster ( 60) darzustellen und mehrere Teilbereiche ( 6 V, 62', 63', 64', 65') des Hauptfensters ( 60) zu definieren, und einen Bereich-Manager (33 ) zum Registrieren der definierten Teilbereiche ( 6 V, 62', 63', 64', 65') des Hauptfensters ( 60), wobei die Fensterbereich-Plugins eingerichtet sind, sich jeweils beim Bereich-Manager (33 ) zu registrieren um vom Bereich-Manager (33 ) jeweils mit einem der definierten Teilbereiche ( 61 ', 62', 63', 64', 65') des Hauptfensters (60) verknüpft zu werden, und welche jeweils auf der Anzeige (4) einen Fensterbereich (61 , 62, 63 , 64, 65 ) in demjenigen Teilbereich (6 V, 62', 63', 64', 65') des Hauptfensters (60) darstellen , mit dem sie verknüpft sind.

Das Computersystem nach Anspruch 6, dadurch gekennzeichnet, dass im Plugin-Katalog ( 35 ) zudem eines oder mehrere Widget-Plugins und ein Widget-Manager-Plugin registriert sind; und dass der Plugin-Manager (32 ) eingerichtet ist beim Aufstarten der Programmapplikation (34) zudem das Widget-Manager-Plugin aufzustarten, welches eingerichtet ist Widget- Kontexte zu bestimmen, die jeweils einem der Fensterbereich-Plugins zugeordnet sind, und die Widget-Plugins aufzustarten, welche jeweils eingerichtet sind Schnittstelleneingabelemente und/oder Schnittstellenausgabelemente zu erzeugen und auf der Anzeige (4) in denjenigen Fensterbereich ( 61 , 62, 63 , 64, 65 ) einzufügen, an den sie durch die bestimmten Widget-Kontexte angeknüpft sind.

8. Das Computersystem nach einem der Ansprüche 6 oder 7, dadurch gekennzeichnet, dass im Plugin-Katalog ( 35 ) zudem ein Login-Plugin registriert ist, dass der Plugin-Manager (32 ) eingerichtet ist beim Aufstarten der Programmapplikation (34) zudem das Login-Plugin aufzustarten, welches eingerichtet ist, vom Benutzer Identifizierungsdaten und

Zugangsdaten entgegenzunehmen, dass das Widget-Manager-Plugin eingerichtet ist, basierend auf den Identifizierungsdaten und Zugangsdaten benutzerspezifisch gespeicherte Widget-Konfigurationen ( 36) zu bestimmen und die benutzerspezifischen Widget-Konfigurationen ( 36) auf die den Fensterbereich-Plugins zugeordneten Widget- Kontexte anzuwenden .

9. Das Computersystem nach einem der Ansprüche 6 bis 8, gekennzeichnet durch einen Lizenz-Manager (31 ), der eingerichtet ist, vor dem Aufstarten von Plugins jeweils eine Plugin-spezifische Lizenzüberprüfung durchzuführen, um das Aufstarten eines Plugins bei ungenügender respektive fehlender Lizenz zu verhindern .

1 0. Das Computersystem nach einem der Ansprüche 6 bis 9, dadurch gekennzeichnet, dass der Plugin-Katalog ( 35 ) eingerichtet ist, die Plugins vor dem Aufstarten sprachspezifisch zu filtern, um das Aufstarten von sprachspezifischen Plugins auf eine definierte Sollsprache auszurichten. Ein Computerprogrammprodukt umfassend ein computerlesbares Medium mit darauf gespeichertem Computerprogrammcode zur Steuerung eines oder mehrerer Prozessoren eines Computersystems zum Generieren einer grafischen Benutzerschnittstelle (6) für eine Programmapplikation (34) auf einer Anzeige (4), derart, dass das Computersystem folgende Schritte ausführt:

Registrieren (S 1 ) von mehreren Plugins für die Programmapplikation (34) in einem Plugin-Katalog (35 ), wobei die Plugins ein Hauptfenster-Plugin und mehrere Fensterbereich-Plugins umfassen, beim Aufstarten der Programmapplikation ( 34) Aufstarten des Hauptfenster-Plugins (S3 1 ), welches auf der Anzeige (4) ein Hauptfenster ( 60) darstellt und mehrere Teilbereiche (61 ', 62', 63', 64', 65') des Hauptfensters ( 60) definiert,

Registrieren (S4) der definierten Teilbereiche ( 6 V, 62', 63', 64', 65') des Hauptfensters (60 ) bei einem Bereich-Manager (33 ), und

Aufstarten der Fensterbereich-Plugins (S32 ), welche sich jeweils beim Bereich-Manager (33 ) registrieren und vom Bereich-Manager ( 33 ) jeweils mit einem der definierten Teilbereiche (6 1 ', 62', 63', 64', 65') des Hauptfensters (60) verknüpft werden, und welche jeweils auf der Anzeige (4) einen Fensterbereich (6 1 , 62, 63, 64, 65 ) in demjenigen Teilbereich (6 V, 62', 63', 64', 65') des Hauptfensters (60 ) darstellen , mit dem sie verknüpft sind.

1 2. Das Computerprogrammprodukt nach Anspruch 1 1 , gekennzeichnet durch Computerprogrammcode zur Steuerung der Prozessoren, derart, dass das

Computersystem im Plugin-Katalog (35 ) zudem eines oder mehrere Widget-Plugins und ein Widget-Manager-Plugin registriert, und beim Aufstarten der Programmapplikation (34) zudem das Widget-Manager- Plugin aufstartet (S33 ), welches Widget-Kontexte bestimmt, die jeweils einem der Fensterbereich-Plugins zugeordnet sind, und die Widget-Plugins aufstartet, welche jeweils Schnittstelleneingabelemente und/oder Schnittstellenausgabelemente erzeugen und auf der Anzeige (4) in denjenigen Fensterbereich (61 , 62 , 63, 64, 65 ) einfügen, an den sie durch die bestimmten Widget-Kontexte angeknüpft sind. 1 3. Das Computerprogrammprodukt nach einem der Ansprüche 1 1 oder 1 2, gekennzeichnet durch Computerprogrammcode zur Steuerung der Prozessoren, derart, dass das Computersystem im Plugin-Katalog (35 ) zudem ein Login-Plugin registriert, beim Aufstarten der Programmapplikation (34) zudem das Login-Plugin aufstartet (S34), welches vom Benutzer Identifizierungsdaten und Zugangsdaten entgegennimmt, basierend auf den Identifizierungsdaten und Zugangsdaten benutzerspezifisch gespeicherte Widget-Konfigurationen bestimmt, und die benutzerspezifischen Widget-Konfigurationen auf die den Fensterbereich-Plugins zugeordneten Widget-Kontexte anwendet.

1 4. Das Computerprogrammprodukt nach einem der Ansprüche 1 1 bis 1 3, gekennzeichnet durch Computerprogrammcode zur Steuerung der

Prozessoren, derart, dass das Computersystem vor dem Aufstarten von Plugins jeweils eine Plugin-spezifische Lizenzüberprüfung durchführt (S2 ), und das Aufstarten eines Plugins bei ungenügender respektive fehlender Lizenz verhindert. 1 5. Das Computerprogrammprodukt nach einem der Ansprüche 1 1 bis 1 3 , gekennzeichnet durch Computerprogrammcode zur Steuerung der Prozessoren, derart, dass das Computersystem die Plugins vor dem Aufstarten sprachspezifisch filtert (S2), und das Aufstarten von sprachspezifischen Plugins auf eine definierte Sollsprache ausrichtet.

Description:
GENERIEREN EINER BENUTZERSCHNITTSTELLE AUF EINER ANZEIGE

Technisches Gebiet

Die vorliegende Erfindung betrifft eine Vorrichtung und ein Verfahren zum Generieren einer Benutzerschnittstelle auf einer Anzeige. Die vorliegende Erfindung betrifft insbesondere eine Vorrichtung und ein computerimplementiertes Verfahren zum Generieren einer grafischen Benutzerschnittstelle für eine Programmapplikation auf einer Anzeige.

Stand der Technik

Bei bekannten Systemen und Verfahren zum Erzeugen von grafischen Benutzerschnittstellen auf Anzeigen werden Fensterbereiche der Benutzerschnittstelle direkt in der betreffenden Programmapplikation definiert oder sie werden in einer vordefinierten Form von einer Konfigurationsdatei eingelesen. Die Konfiguration enthält verschiedene von der Applikation hart codierte, vordefinierte Fenstertypen, deren Position und Erscheinungsbild über die Konfiguration beeinflussbar ist. Allerdings ist es nicht möglich neue Fenster hinzuzufügen. Falls programmierte Erweiterungsmodule zur Laufzeit dynamisch hinzugefügt werden , sind sie entweder in losgelösten, völlig frei „fliegenden" Fenstern angeordnet oder an ein von der Applikation vordefihiertes Fenster gebunden . Eine dynamische, und örtlich sowie vom Erscheinungsbild her flexible Integration von Fenstern in die Benutzerschnittstelle ist jedoch nicht möglich.

BESTÄTIGUNGSKOPIE Darstellung der Erfindung

Es ist eine Aufgabe der vorliegenden Erfindung eine Vorrichtung und ein Verfahren zum Generieren von grafischen Benutzerschnittstellen auf einer Anzeige vorzuschlagen, welche zumindest einige Nachteile der bekannten Systeme und Verfahren nicht aufweisen. Es ist insbesondere eine Aufgabe der vorliegenden Erfindung eine Vorrichtung und ein Verfahren zum Generieren einer grafischen Benutzerschnittstelle auf einer Anzeige vorzuschlagen, welche eine dynamische, und örtlich sowie vom Erscheinungsbild her flexible Integration von Fenstern in die Benutzerschnittstelle ermöglichen.

Gemäss der vorliegenden Erfindung werden diese Ziele durch die Merkmale der unabhängigen Ansprüche erreicht. Weitere vorteilhafte Ausführungsformen gehen ausserdem aus den abhängigen Ansprüchen und der Beschreibung hervor.

Die oben genannten Ziele werden durch die vorliegende Erfindung insbesondere dadurch erreicht, dass zum Generieren einer grafischen Benutzerschnittstelle für eine Programmapplikation auf einer Anzeige, mehrere Plugins für die Programmapplikation in einem Plugin-Katalog registriert werden, wobei die Plugins ein Hauptfenster-Plugin und mehrere Fensterbereich-Plugins umfassen. Beim Aufstarten der Programmapplikation wird das Hauptfenster-Plugin aufgestartet, welches auf der Anzeige ein Hauptfenster darstellt und mehrere Teilbereiche des Hauptfensters definiert. Die definierten Teilbereiche des Hauptfensters werden bei einem Bereich-Manager registriert. Die Fensterbereich- Plugins werden aufgestartet. Die Fensterbereich-Plugins registrieren sich jeweils beim Bereich-Manager und werden vom Bereich-Manager jeweils mit einem der definierten Teilbereiche des Hauptfensters verknüpft. Die Fensterbereich-Plugins stellen jeweils auf der Anzeige einen Fensterbereich in demjenigen Teilbereich des Hauptfensters dar, mit dem sie verknüpft sind .

In einer Ausführungsvariante werden im Plugin-Katalog zudem eines oder mehrere Widget-Plugins und ein Widget-Manager-Plugin registriert. Beim Aufstarten der Programmapplikation wird zudem das Widget-Manager-Plugin aufgestartet, welches Widget-Kontexte bestimmt, die jeweils einem der Fensterbereich-Plugins zugeordnet sind. Die Widget-Plugins werden aufgestartet und erzeugen jeweils Schnittstelleneingabelemente und/oder Schnittstellenausgabelemente und fügen diese auf der Anzeige in denjenigen Fensterbereich ein, an den sie durch die bestimmten Widget-Kontexte angeknüpft sind.

In einer weiteren Ausführungsvariante wird im Plugin-Katalog zudem ein Login- Plugin registriert. Beim Aufstarten der Programmapplikation wird zudem das Login-Plugin aufgestartet, welches vom Benutzer Identifizierungsdaten und Zugangsdaten entgegennimmt. Basierend auf den Identifizierungsdaten und Zugangsdaten werden benutzerspezifisch gespeicherte Widget-Konfigurationen bestimmt. Die benutzerspezifischen Widget-Konfigurationen werden auf die den Fensterbereich-Plugins zugeordneten Widget-Kontexte angewandt.

In einer Ausführungsvariante wird vor dem Aufstarten von Plugins jeweils eine Plugin-spezifische Lizenzüberprüfung durchgeführt und das Aufstarten eines Plugins wird bei ungenügender respektive fehlender Lizenz verhindert. In einer weiteren Ausführungsvariante werden die Plugins vor dem Aufstarten sprachspezifisch gefiltert und das Aufstarten von sprachspezifischen Plugins wird auf eine definierte Sollsprache ausgerichtet.

Neben dem computerimplementierten Verfahren betrifft die vorliegende Erfindung zudem ein Computersystem zum Generieren einer grafischen Benutzerschnittstelle für eine Programmapplikation auf einer Anzeige und ein Computerprogrammprodukt zur Steuerung des Computersystems. Vorzugsweise umfasst das Computerprogrammprodukt ein computerlesbares Medium mit darauf gespeichertem Computerprogrammcode zur Steuerung eines oder mehrerer Prozessoren des Computersystems, derart dass das Computersystem das Verfahren zum Generieren einer grafischen Benutzerschnittstelle für eine Programmapplikation auf einer Anzeige ausführt.

Kurze Beschreibung der Zeichnungen

Nachfolgend wird eine Ausführung der vorliegenden Erfindung anhand eines Beispieles beschrieben . Das Beispiel der Ausführung wird durch die folgenden beigelegten Figuren illustriert:

Figur 1 : zeigt ein Blockdiagram , welches schematisch ein computerisiertes

Maschinensteuerungssystem illustriert, das einen anwendungsunabhängigen, maschinenspezifischen Teil und einen maschinenunabhängigen , anwendungsspezifischen Teil umfasst, um auf Datenpunkte einer Maschine zuzugreifen. Figur 2: zeigt ein Blockdiagram, welches schematisch mehrere computerisierte Maschinensteuerungssysteme und übergeordnete Leit- und Bediensysteme illustriert, welche über eine dienstorientierte Architekturplattform kommunikationsfähig miteinander verbunden sind.

Figur 3: zeigt ein Blockdiagram, welches schematisch ein computerisiertes

Maschinensteuerungssystem illustriert, in welchem zum Zugreifen auf Datenpunkte einer Maschine ein anwendungsunabhängiger, maschinenspezifischer Teil und ein maschinenunabhängiger, anwendungsspezifischer Teil auf verschiedenen Computersystemen ausgeführt und über eine dienstorientierte Architekturplattform kommunikationsfähig miteinander verbunden sind.

Figur 4: zeigt ein Blockdiagram , welches schematisch mehrere computerisierte

Maschinensteuerungssysteme und übergeordnete Leit- und Bediensysteme illustriert, bei welchen die anwendungsunabhängigen, maschinenspezifischen Teile und die maschinenunabhängigen, anwendungsspezifischen Teile auf verschiedenen Computersystemen ausgeführt und über eine dienstorientierte Architekturplattform kommunikationsfähig miteinander verbunden sind. Figur 5: zeigt ein Blockdiagramm eines Computersystems zum Erzeugen einer grafischen Benutzerschnittstelle auf einer Anzeige. Figur 6: zeigt ein Flussdiagramm , welches schematisch ein Beispiel einer Sequenz von Schritten für die Erzeugung einer grafischen Benutzerschnittstelle auf einer Anzeige illustriert.

Figur 7a: zeigt ein Beispiel eines auf einer Anzeige dargestellten Hauptfensters.

Figur 7b: zeigt ein Beispiel mehrerer auf der Anzeige dargestellter

Fensterbereiche des Hauptfensters.

Figur 7c: zeigt ein Beispiel des auf der Anzeige dargestellten Hauptfensters mit mehreren Fensterbereichen und einem dargestellten Login-Bereich.

Figur 7d: zeigt ein Beispiel des auf der Anzeige dargestellten Hauptfensters mit einem dargestellten Login-Bereich sowie mehreren Fensterbereichen und darin dargestellten Widgets.

Wege zur Ausführung der Erfindung

In den Figuren 1 , 2 und 3 bezieht sich das Bezugszeichen 1 auf ein computerisiertes Maschinensteuerungssystem zur Steuerung von Maschinen 1 5 , beispielsweise Druckmaschinen, Druckproduktverarbeitungsmaschinen, Fördermaschinen, etc. Die Steuerung der Maschine 1 5 erfolgt über eine programmierbare Vorrichtung, beispielsweise über eine speicherprogrammierbare Steuerung , ein so genannter Programmable Logic Controller ( PLC) 1 4, welche mit Sensoren und Aktoren der Maschine 1 5 (elektrisch) verbunden ist. Je nach Ausführungsvariante ist die programmierbare Vorrichtung 1 5 direkt oder über einen M icrocontroller der Maschine 1 5 mit der Maschine 1 5 respektive deren Sensoren und Aktoren verbunden.

In den Figuren 1 und 3 bezieht sich das Bezugszeichen 2 auf ein computerisiertes Leit- oder Bediensystem. Das Leit- oder Bediensystem 2 ist auf einem betriebsfähigen Computersystem 2' mit einem oder mehreren Prozessoren ausgeführt, welche mit einer oder mehreren Anzeigen verbunden sind, beispielsweise berührungsempfindliche Anzeigen, insbesondere so genannte M ultitouch Anzeigen.

Wie in den Figuren 1 und 3 schematisch dargestellt ist, umfasst das Leit- oder Bediensystem 2 mehrere funktionale Module, beispielsweise eine Benutzerschnittstelle 2 1 zur Konfiguration, Überwachung und Bedienung der Produktion auf einer oder mehreren Maschinen 1 5, 1 5a, 1 5b, 1 5c, 1 5d; eine Benutzerschnittstelle 23 zur Wartung und Diagnose einer oder mehreren Maschinen 1 5 , 1 5a, 1 5b, 1 5c, 1 5d; und ein Dienstmodul 22 mit mehreren übergeordneten Diensten, so genannte High Level Services wie beispielsweise Kommandos zum Starten, Stoppen oder Abrechen der Produktion, die für Dienstkonsumenten wie die Benutzerschnittstellen 2 1 , 23 zugreifbar und ausführbar sind. Wie später detaillierter beschrieben wird, basieren die Benutzerschnittstellen 2 1 , 23 vorzugsweise auf so genannten Plugins und umfassen mehrere selektierbare und aktivierbare Widget-Plugins. Das Dienstmodul 22 ist vorzugsweise als Plugin und Dienst einer dienstorientierten Architekturplattform 1 00 ausgeführt, beispielsweise die Windows Communication Foundation (WCF) in . Net von Microsoft Corporation. Wie in den Figuren 1 und 3 dargestellt ist, umfasst das Maschinensteuerungssystem 1 funktionale Module, die in einen anwendungsunabhängigen, maschinenspezifischen Teil 1 0 und einen maschinenunabhängigen, anwendungsspezifischen Teil 1 1 aufgeteilt sind. Abhängig von der Ausführungsvariante und/oder Konfiguration umfassen die funktionalen Module des Maschinensteuerungssystems 1 zudem eine Benutzerschnittstelle 1 2 zur Konfiguration, Überwachung und Bedienung der Produktion auf einer oder mehreren Maschinen 1 5, 1 5a, 1 5b, 1 5c, 1 5d und/oder eine Benutzerschnittstelle 1 3 zur Wartung und Diagnose einer oder mehrerer Maschinen 1 5, 1 5a, 1 5b, 1 5c, 1 5d. Die Benutzerschnittstellen 1 2, 1 3 basieren vorzugsweise auf so genannten Plugins und umfassen mehrere selektierbare und aktivierbare Widget-Plugins, wie später detaillierter beschrieben wird.

In der Ausführungsvariante gemäss Figur 1 sind der maschinenspezifische Teil 1 0 und der anwendungsspezifische Teil 1 1 auf dem selben betriebsfähigen Computersystem 1 ' ausgeführt, beispielsweise auf einem oder mehreren separaten Prozessoren, die mit dem PLC 1 4 verbunden sind, oder auf einem oder mehreren Prozessoren des PLC 1 4. Das Computersystem 1 ' mit dem Maschinensteuerungssystem 1 ist als Teil der Maschine 1 5 ausgeführt, direkt ah der Maschine 1 5 angebracht oder getrennt und entfernt davon angeordnet. Das Computersystem 1 ' ist beispielsweise als so genannter Embedded PC ausgeführt.

In der Ausführungsvariante gemäss Figur 3 sind der maschinenspezifische Teil 1 0 und der anwendungsspezifische Teil 1 1 auf verschiedenen Computersystemen 1 ", 2" ausgeführt. Dabei ist der maschinenspezifische Teil 1 0 auf dem Computersystem 1 " ausgeführt, beispielsweise auf einem oder mehreren separaten Prozessoren, die mit dem PLC 1 4 verbunden sind, oder auf einem oder mehreren Prozessoren des PLC 1 4. Das Computersystem 1 " mit dem maschinenspezifischen Teil 1 0 ist als Teil der Maschine 1 5 ausgeführt, direkt an der Maschine 1 5 angebracht oder getrennt und entfernt davon angeordnet. Der anwendungsspezifische Teil 1 1 hingegen ist auf dem Computersystem 2" des Leit- oder Bediensystems 2 ausgeführt.

Der maschinenspezifische Teil 1 0 umfasst ein Steuermodul 1 01 und ein maschinenspezifisches Domänenmodell (Domain Model) 1 02. Das Steuermodul 1 01 ist eingerichtet, über ein maschinenspezifisches Kommunikationsprotokoll, z.B. TCP/IP, Profibus, oder ADS (Automation Device Specification) von der Firma Beckhoff, auf die Datenpunkte der Maschine 1 5 zuzugreifen, um den aktuellen Wert eines oder mehrerer Datenpunkte zu lesen oder zu schreiben.

Dabei ist ein Datenpunkt ein Wert der von der Maschine 1 5 ausgegeben wird, zum Beispiel ein Mess- oder Zählerwert eines Sensors oder Zählers der Maschine 1 5, oder in die Maschine 1 5 eingegeben wird, beispielsweise ein Steuerbefehl, Steuerparameter oder Stellwert. Datenpunkte umfassen insbesondere auch (aktuelle) Statuswerte und Zustandsinformationen der Maschine 1 5. Ein Datenpunkt repräsentiert die Eingabe- oder Ausgabe von Werten der Maschine 1 5, insbesondere über einen Prozessor der Maschine 1 5. Das maschinenspezifische Domänenmodell 1 02 umfasst maschinenspezifische Datenpunkt-Objekte. Dabei sind die maschinenspezifischen Datenpunkt-Objekte Datenobjekte, die jeweils einen oder mehrere Datenpunkte der Maschine 1 5 abbilden . Wenn das Steuermodul 1 01 über den PLC 1 4 auf die Datenpunkte der Maschine 1 5 zugreift, ist das maschinenspezifische Kommunikationsprotokoll spezifisch auf den betreffenden PLC 1 4 ausgerichtet, und das maschinenspezifische Domänenmodell 1 02 weist ausschliesslich Datenpunkt- Objekte auf, die über den PLC 1 4 verfügbar sind. Der Lesevorgang erfolgt periodisch und zudem aufgrund eines expliziten Lesebefehls. Aktuelle Werte von gelesenen Datenpunkten werden vom Steuermodul 1 01 in ein entsprechendes Datenpunkt-Objekt des maschinenspezifischen Domänenmodells 1 02 geschrieben. Der Schreibvorgang erfolgt in der Regel aufgrund eines expliziten Schreib- oder Dienstbefehls an das maschinenspezifische Domänenmodell 1 02. Dabei wird der aktuelle Wert des betreffenden Datenpunkt-Objekts im maschinenspezifischen Domänenmodell 1 02 vom Steuermodul 1 01 in den entsprechenden Datenpunkt der Maschine 1 5 respektive des PLC 1 4 geschrieben. Überdies soll hier festgehalten werden, dass ein Datenpunkt - und entsprechend auch ei n Datenpunkt-Objekt - mehrere Datenwerte umfassen kann, beispielsweise eine Tabelle oder Matrix von Datenwerten, die in einer (strukturierten ) Datei angeordnet sind.

In einer Ausführungsvariante, legt das Steuermodul 1 01 die unmittelbar von der Maschine 1 5 oder über den PLC 1 4 erfassten Datenpunkte in einem Zwischenspeicher ab und aktualisiert die entsprechenden Datenpunkt-Objekte im maschinenspezifischen Domänenmodell 1 02 erst dann, wenn sämtliche oder zumindest ein definierter Teil der Datenpunkte einen konsistenten Zustand aufweisen, also keine der betreffenden Datenpunkte einen Wert eines alten Zustands oder eines instabilen Zwischenzustands aufweisen. Somit werden Snapshots mit aktuellen und zustandskonsistenten Datenpunkten der Maschine 1 5 respektive von definierten Teilen der Maschine 1 5 erzeugt.

In einer weiteren Variante, prüft das Steuermodul 1 01 periodisch, ob die Maschine 1 5 respektive der PLC 1 4 verfügbar, d.h. verbunden, betriebsbereit und zugreifbar, ist. Dazu sendet das Steuermodul 1 01 periodisch entsprechende Anfragemeldungen an die Maschine 1 5 respektive den PLC 1 4. Wenn innerhalb einer definierten Zeitdauer im Steuermodul 1 01 keine Rückmeldung von der Maschine 1 5 respektive dem PLC 14 empfangen wird , setzt das Steuermodul 1 01 einen dem maschinenspezifischen Domänenmodell 1 02 zugeordneten Status auf einen Wert, der angibt, dass das Domänenmodell 1 02 nicht mit der Maschine 1 5 verbunden ist.

Der anwendungsspezifische Teil 1 1 umfasst ein anwendungsspezifisches Domänenmodell ( Domain Model) 1 1 2 und ein Abbildungsmodul 1 1 1 . Das anwendungsspezifische Domänenmodell 1 1 2 umfasst anwendungsspezifische Datenobjekte. Das Abbildungsmodul 1 1 1 ist eingerichtet, über den entsprechenden Dienst 1 03 der dienstorientierten Architekturplattform 1 00 auf das maschinenspezifische Domänenmodell 1 02 zuzugreifen. In einer Schreibfunktion werden anwendungsspezifische Datenobjekte auf maschinenspezifische Datenpunkt-Objekte abgebildet, dabei schreibt das Abbildungsmodul 1 1 1 aktuelle Werte von anwendungsspezifischen Datenobjekten in zugeordnete Datenpunkt-Objekte des maschinenspezifischen Domänenmodells 1 02. In einer Lesefunktion werden maschinenspezifische Datenpunkt-Objekte auf anwendungsspezifische Datenobjekte abgebildet, dabei liest das Abbildungsmodul 1 1 1 aktuelle Werte von einem oder mehreren maschinenspezifischen Datenpunkt-Objekten und schreibt diese in zugeordnete Datenobjekte des anwendungsspezifischen Domänenmodells 1 1 2. Sowohl der Lesevorgang als auch der Schreibvorgang erfolgen ausschliesslich aufgrund von expliziten Schreib-, Lese- oder Dienstbefehlen an das anwendungsspezifische Domänenmodell 1 1 2.

Das maschinenspezifische Domänenmodell 1 02 und das anwendungsspezifische Domänenmodel 1 1 2 sind vorzugsweise als verfügbare Dienste 1 03 respektive 1 1 3 der dienstorientierten Architekturplattform 1 00, z. B. WCF, ausgeführt. Dabei sind die verfügbaren Funktionen, z.B. Schreiben oder Lesen, und Datenpunkt- Objekte respektive anwendungsspezifische Datenobjekte der Domänenmodelle 1 02 , 1 1 2 über eine für Dienstkonsumenten zugreifbare Schnittstelle der dienstorientierten Architekturplattform 1 00 definiert und abrufbar. Die definierten Dienste 1 03 , 1 1 3 sind für Dienstkonsumenten über die dienstorientierte Architekturplattform 1 00 zugreifbar, wie in den Figuren 1 und 3 schematisch durch die Pfeile 1 04 und 1 05 respektive 1 1 4, 1 1 5 und 1 1 6 angedeutet ist. Die Domänenmodelle 1 02, 1 1 2 liefern ihren Dienstkonsumenten maschinenspezifische Datenpunkt-Objekte respektive anwendungsspezifische Datenobjekte nur auf Anfrage, d.h. wenn der Dienstkonsument auf den entsprechenden Dienst 1 03, 1 1 3 zugreift und das betreffende Datenpunkt- Objekt respektive Datenobjekt anfordert. Beispielsweise erhält der anwendungsspezifische Teil 1 1 nur dann Datenpunkt-Objekte vom maschinenspezifischen Domänenmodell 1 02, wenn er diese explizit über den entsprechenden Dienst 1 03 anfordert, und die Benutzerschnittstellen 1 2 , 1 3, 21 und das Dienstmodul 22 erhalten vom anwendungsspezifische Teil 1 1 nur dann Datenobjekte vom anwendungsspezifischen Domänenmodell 1 1 2, wenn sie diese explizit über den entsprechenden Dienst 1 1 3 anfordern.

Wie mit den Pfeilen 1 1 7, 1 1 8 und 1 1 9 schematisch angedeutet ist, sind das Dienstmodul 22 und die Benutzerschnittstellen 23 und 1 3 in einer Variante eingerichtet direkt über den Dienst 1 03 auf das maschinenspezifische Domänenmodell 1 02 zuzugreifen. Dazu sind maschinenspezifische Anpassungen von Dienstmodul 22 und Benutzerschnittstellen 23, 1 3 erforderlich.

Für den Datenaustausch sind die Computersystem 1 ', 1 ", 2', 2" über eine Kommunikationsverbindung verbunden, beispielsweise über einen Datenbus oder ein lokales Netzwerk ( LAN). Die Kommunikation unter den funktionalen Modulen, die als Dienste der dienstorientierten Architekturplattform 1 00 ausgeführt sind, erfolgt vorzugsweise über Kommunikationsfunktionen der dienstorientierten Architekturplattform 1 00, z.B. WCF, die beispielsweise als Teil einer Laufzeitumgebung der dienstorientierten Architekturplattform 1 00 verfügbar sind. Um zu verhindern, dass Verbindungen zwischen Diensten der dienstorientierten Architekturplattform 1 00 wegen Inaktivität innerhalb einer definierten Zeitdauer (timeout) beendet werden, sind die als Dienste ausgeführten funktionalen Module eingerichtet, periodisch Wachhalteanfragen an diejenigen Dienste zu übermitteln, von denen sie Dienstkonsumenten sind, respektive von ihren Dienstkonsumenten periodische Wachhalteanfragen zu empfangen und unmittelbar mit einer Wachhalteantwort zu beantworten. Die Figur 2 illustriert eine Anlage mit mehreren Maschinen 15, 15a, 15b, 15c, 15d, die jeweils von einem Maschinensteuerungssystem 1, 1a, 1b, 1c, 1d angesteuert werden, dessen funktionale Module, wie in der Figur 1 illustriert, auf einem gemeinsamen Computersystem V, 1'a, 1'b, 1'c, 1'd ausgeführt sind. Wie in der Figur 2 ersichtlich ist, ist das Leit- oder Bediensystem 2 auf mehreren betriebsfähigen Computersystemen 2', 2'a, 2'b ausgeführt, und umfasst mehrere sich ergänzende und/oder redundante Programmapplikationen (Anwendung). Wie in der Figur 2 schematisch illustriert ist, kommunizieren und interagieren die auf den Computersystemen V, 1'a, 1'b, 1'c, 1'd, 2', 2'a, 2'b ausgeführten funktionalen Module der Maschinensteuerungssysteme 1 , 1a, 1b, 1c, 1 d und des Leit- oder Bediensystems 2 über die dienstorientierte Architekturplattform 100, z.B. WCF, und deren Kommunikationsfunktionen.

Die Figur 4 illustriert eine Anlage mit mehreren Maschinen 15, 15a, 15b, 15c, 15d, die jeweils von einem Maschinensteuerungssystem 1 angesteuert werden, dessen funktionale Module, wie in der Figur 3 illustriert, jeweils auf verschiedenen Computersystemen ausgeführt sind. Die maschinenspezifischen Teile 10, 10a, 10b, 10c, 10d sind jeweils auf dem mit der betreffenden Maschine 15, 15a, 15b, 15c, 15d verbundenen Computersystem 1", 1"a, 1"b, 1"d ausgeführt. Die anwendungsspezifischen Teile 11, 11a, 11b hingegen sind auf den Computersystemen 2", 2"a, 2"b des Leit- oder Bediensystems 2 ausgeführt, welches mehrere sich ergänzende und/oder redundante Programmapplikationen umfasst. Wie in der Figur 4 schematisch illustriert ist, kommunizieren und interagieren die auf den Computersystemen 1", 1"a, 1"b, 1"c, 1"d, 2", 2"a, 2"b ausgeführten funktionalen Module der maschinenspezifischen Teile 10, 10a, 1 0b, 1 0c, 1 Od, der anwendungsspezifischen Teile 1 1 , 1 1 a, 1 1 b und des Leitoder Bediensystems 2 über die dienstorientierte Architekturplattform 1 00, z.B. WCF, und deren Kommunikationsfunktionen.

In der Figur 5 bezieht sich das Bezugszeichen 3 auf ein Computersystem mit einem oder mehreren betriebsfähigen Computern und jeweils einem oder mehreren Prozessoren, welche mit einer oder mehreren Anzeigen 4 verbunden sind, beispielsweise berührungsempfindliche Anzeigen, insbesondere so genannte Multitouch Anzeigen. Das Computersystem 4 umfasst beispielsweise eines oder mehrere der oben beschriebenen Computersysteme 1 ', 1 'a, Tb, 1 'c, 1 'd, 1 ", 1 "a, 1 "b, 1 "c, 1 "d, 2', 2'a, 2'b, 2", 2"a und/oder 2"b.

Wie in der Figur 5 schematisch dargestellt ist umfasst das Computersystem 3 mehrere funktionale Module, insbesondere eine Plattform 30, einen Lizenz- Manager 3 1 , einen Plugin-Manager 32 , einen Bereich-Manager 33 , mindestens eine Programmapplikation 34, ein Plugin-Katalog 35 und gespeicherte (benutzerspezifische) Widget-Konfigurationen 36. Die Widget-Konfigurationen 36 definieren die Ansichten und anzuzeigenden Dateninhalte eines Widgets, die für einen bestimmten Benutzer zu verwenden sind . Widget-Konfigurationen 36 werden beispielsweise anfänglich in einer Benutzergrundkonfiguration definiert und später jeweils beim Herunterfahren der Applikation und/oder Logout des Benutzers aufgrund der aktuellen Ansichten und angezeigten Dateninhalte der Widgets bestimmt und gespeichert. Die Plattform 30 umfasst mehrere Komponenten, insbesondere Komponenten einer Laufzeitumgebung zur Unterstützung einer dienstorientierten Architekturplattform, einer dynamischen Applikationserweiterung und Grafikfunktionen, beispielsweise .NET Kom ponenten von Microsoft Corp. für WCF, M EF ( Managed Extensibility Framework) und WPF (Windows Presentation Foundation ).

Der Plugin-Katalog 35 ist beispielsweise in M EF ausgeführt und umfasst mehrere Plugins respektive Referenzen auf gespeicherte Plugins. Plugins sind Softwarekomponenten (Computerprogramme), die eine bestehende softwarebasierte Programmapplikation erweitern, so dass die Programmapplikation mit den durch das Plugin bereitgestellten Funktionen erweitert wird. Die Plugins sind beispielsweise beim Aufstarten oder zur Laufzeit einer Programmapplikation (Anwendung ) dynamisch als Ergänzung zur Programmapplikation ladbar und ausführbar. Der Plugin-Katalog 35 umfasst insbesondere ein Hauptfenster- Plugin, mehrere Fensterbereich-Plugins, ein Login-Plugin, ein Widget-Manager- Plugin und mehrere Widget-Plugins.

In den folgenden Abschnitten wird mit Bezug auf die Figur 6 beispielhaft eine Sequenz von Schritten zum Generieren einer grafischen Benutzerschnittstelle 6 für eine Programmapplikation 34 auf einer Anzeige 4 beschrieben .

Im Schritt S 1 , werden ladbare gespeicherte Plugins respektive Referenzen auf diese Plugins in den Plugin-Katalog 35 geladen, beispielsweise per MEF. Schritt S 1 wird beispielsweise als vorbereitender Schritt als Teil einer Systemkonfiguration ausgeführt. Jedes Plugin ist mit verschiedenen Attributen versehen. Diese Plugin- Attribute definieren zumindest Aufstarterfordernisse und Aufstarteinschränkungen und umfassen insbesondere auch Sprachattribute und Lizenzattribute.

Im Schritt S2, werden die Plugins im Plugin-Katalog 35 basierend auf ihren Attributen gefiltert nachdem die Programmapplikation 34 gestartet wurde. Dabei überprüft der Lizenz-Manager 31 für jedes Plugin ob eine gültige Lizenz vorliegt. Zudem wird die Sprache überprüft, die bei Plugins mit Schnittstellenfunktion für die Interaktion mit einem Benutzer verwendet wird.

Im Schritt S3 startet der Plugin-Manager 32 die Plugins entsprechend ihrer Auf Starterfordernisse und Aufstarteinschränkungen in der erforderlichen, beispielsweise benutzerspezifischen Sprache, wenn dafür jeweils eine ausreichende Lizenz vorliegt. Die Plugins werden beispielsweise per M EF gestartet.

Im Schritt S31 wird das Hauptfenster-Plugin gestartet. Wie mit dem Bezugszeichen S35 angedeutet wird, stellt das Hauptfenster-Plugin auf der Anzeige 4 ein Hauptfenster dar und definiert im Hauptfenster mehrere Teilbereiche. Wie in der Figur 7a dargestellt ist, ist das Hauptfenster 60 im Wesentlichen bloss ein auf der Anzeige 4 dargestellter Rahmen (Shell) , für welchen auf der Anzeige 4 nicht ersichtlich mehrere Teilbereiche 61 ', 62', 63', 64', 65' definiert werden. Die Teilbereiche 61 ', 62', 63', 64', 65' werden vom Hauptfenster-Plugin beispielsweise in WPF definiert. Im Schritt S32 werden zudem die Fensterbereich-Plugins gestartet. Wie mit dem Bezugszeichen S36 angedeutet wird, registrieren sich die Hauptfenster-Plugins jeweils beim Bereich-Manager 33.

Im Schritt S33 wird das Widget-Manager-Plugin gestartet. Wie mit dem Bezugszeichen S37 angedeutet wird, importiert das Widget-Manager-Plugin Widget-Kontexte, die jeweils den Fensterbereich-Plugins zugeordnet gespeichert sind, beispielsweise per MEF. Die Widget-Kontexte definieren mögliche, zulässige Widgets, die beispielsweise in einem zugeordneten Fensterbereich einfügbar sind.

Im Schritt S34 wird das Login-Plugin gestartet. Wie mit dem Bezugszeichen S38 angedeutet wird, registriert sich das Login-Plugin beim Bereich-Manager 33.

In der Figur 6 wird im Zusammenhang mit Schritt S3 nur eine Auswahl von Plugins angezeigt, die aufgestartet werden, die im Zusammenhang mit der Erzeugung der grafischen Benutzerschnittstelle 6 von besonderem Interesse sind. Der Fachmann wird verstehen, dass jedoch auch weitere Plugins aufgestartet werden, beispielsweise die Widget-Plugins.

Im Schritt S4 werden die, beispielsweise in WPF definierten Teilbereiche 61 ', 62', 63', 64', 65' beim Bereich-Manager 33 angemeldet (registriert), beispielsweise durch WPF, das zudem sämtliche definierten Teilbereiche 61 ', 62', 63', 64', 65' initialisiert.

Im Schritt S5 verknüpft der Bereich-Manager 33 die angemeldeten (registrierten) Teilbereiche 61 ', 62', 63', 64', 65' mit den Fensterbereich-Plugins, die jeweils für die Teilbereiche 61 ', 62', 63', 64', 65' vorgesehen sind. Dabei wird insbesondere auch das Login-Plugin mit dem dafür vorgesehenen Teilbereich 63' verknüpft.

Im Schritt S6 stellen die Fensterbereich-Plugins auf der Anzeige 4 jeweils im Teilbereich 61 ', 62', 64', 65' des Hauptfensters 60 mit dem sie verknüpft sind, ihren Fensterbereich dar. Wie in der Figur 7b dargestellt ist, sind nun auf der Anzeige 4 die Fensterbereiche 61 , 62, 64, 65 im Hauptfenster 60 der Benutzerschnittstelle 6 sichtbar dargestellt.

Im Schritt S7 stellt das Login-Plugin auf der Anzeige 4 im Teilbereich 63 ' des Hauptfensters 60 mit dem es verknüpft ist, seinen Login-Bereich dar. Wie in der Figur 7c dargestellt ist, ist nun auf der Anzeige 4 zusätzlich zu den Fensterbereichen 61 , 62, 64, 65 im Hauptfenster 60 der Benutzerschnittstelle 6 auch der Login-Bereich 63 mit entsprechenden Login-Eingabefeldern 66 sichtbar dargestellt.

Im Schritt S8, nimmt das Login-Plugin vom Benutzer Login-Daten über die Login- Eingabefelder 66 entgegen, beispielsweise ein Benutzername und ein Passwort oder Zugangscode.

Im Schritt S9, lädt das Widget-Manager-Plugin gemäss dem Login des (berechtigten) Benutzers die gespeicherten benutzerspezifischen Widget- Konfigurationen 36.

Im Schritt S 1 0, verknüpft das Widget-Manager-Plugin die Widget- Konfigurationen 36 des Benutzers mit den zuvor importierten Widget- Kontexten, die den Fensterbereich-Plugins zugeordnet sind . Dabei werden die durch die benutzerspezifischen Widget- onfigurationen 36 definierten Ansichten mit den Widget-Kontexten der Fensterbereiche verknüpft.

Im Schritt S 1 1 , erzeugen die Widget-Plugins jeweils ihre Schnittstelleneingabelemente und/oder Schnittstellenausgabelemente und fügen sie auf der Anzeige 4 jeweils in denjenigen Fensterbereich ein, mit dem sie durch die bestimmten Widget-Kontexte verknüpft sind und zwar in der durch die benutzerspezifischen Widget-Konfigurationen 36 definierten Ansicht und den darin anzuzeigenden Dateninhalten. Wie in der Figur 7d dargestellt ist, sind nun auf der Anzeige 4 in den Fensterbereichen 61 , 62, 64, 65 des Hauptfensters 60 der Benutzerschnittstelle 6 zusätzlich auch die Widgets W 1 , W2, W3 , W4 sichtbar dargestellt.

Abschliessend soll angeführt werden , dass die oben angeführten funktionalen Module vorzugsweise als programmierte Softwaremodule ausgeführt sind, welche Programmcode zur Steuerung von jeweils einem oder mehreren Prozessoren eines Computers umfassen und auf einem Computerprogrammprodukt gespeichert sind, das fest oder entfernbar mit den Prozessoren verbunden ist und ein nicht-flüchtiges, greifbares computerlesbares Medium umfasst. Der Fachmann wird jedoch verstehen, dass die funktionalen Module in alternativen Ausführungsvarianten teilweise oder vollständig mittels Hardwarekomponenten ausgeführt sein kön nen . Zudem sei hier festgehalten, dass in der Beschreibung zwar Computerprogrammcode spezifischen funktionalen Modulen zugeordnet wurde und dass die Ausführung von Schritten in einer bestimmten Reihenfolge dargestellt wurde, dass der Fachmann jedoch verstehen wird, dass der Computerprogrammcode unterschiedlich strukturiert und die Reihenfolge von mindestens gewissen Schritten geändert werden kann, ohne dabei vom Schutzgegenstand abzuweichen.