Beschreibung description
Verfahren und Vorrichtung zur Umsetzung eines Transaktionskonzepts bei OPC UA mittels Time-Out Mechanismus Method and device for implementing a transaction concept in OPC UA by means of a time-out mechanism
OPC UA (OPC Unified Architecture ) ist ein industrielles Standardprotokoll der OPC Foundation zur hersteller-unabhängigen Kommunikation für den Austausch von Maschinendaten insbesondere in der Prozessautomatisierung. OPC UA (OPC Unified Architecture) is an industrial standard protocol of the OPC Foundation for vendor-independent communication for the exchange of machine data, especially in process automation.
OPC UA ist ein relativ neuer Standard, bei dem der ursprüngliche Fokus nicht auf der Steuerung einer Industrieanlage lag, sondern vielmehr beim standardisierten Informationsaustausch insbesondere zwischen Geräten unterschiedlicher Hersteller . OPC UA is a relatively new standard, where the original focus was not on the control of an industrial plant, but rather on the standardized exchange of information, especially between devices from different manufacturers.
Inzwischen ist OPC UA auch direkt in automatisierungstechnischen Geräten integriert, sodass die Notwendigkeit zum konsistenten Schreiben von Daten entsteht. Meanwhile, OPC UA is also integrated directly into automation devices, creating the need for consistent data writing.
In automatisierungstechnischen Anlagen besteht die Notwendigkeit, zwischen unterschiedlichen Geräten Prozessinformationen (wie Prozesswerte, Messwerte, Parameter, Steuerungsbefehle) auszutauschen. Hierbei ist es wichtig, dass die Informationen konsistent und fehlersicher zwischen den Teilnehmern übertragen werden. Dies ist insbesondere bei datenverändernden Aufrufen (d. h. dem Schreiben von Variablen) wichtig. In automation systems, there is a need to exchange process information (such as process values, measured values, parameters, control commands) between different devices. It is important that the information is transmitted consistently and fail-safe between the participants. This is particularly important in data-altering calls (i.e., writing variables).
In der Praxis muss die Konsistenz über mehrere einzelne Aufrufe in der Anlage sichergestellt sein. So kann es sein, dass eine Veränderung im Prozess an mehreren Stellen in den Pro- zess eingreift, wobei die Ziele der Aufrufe unterschiedlich sind und durch unterschiedliche Aufrufe angesprochen werden müssen . In practice, the consistency must be ensured via several individual calls in the system. It may happen that a change in the process intervenes at several points in the process, whereby the goals of the calls are different and must be addressed by different calls.
Andere Gründe für die Notwendigkeit mehrerer unterschiedlicher, aber logisch zusammenhängender Aufrufe wären zum Beispiel : Other reasons for the need for several different but logically related calls would be for example:
• Unterschiedliche Sicherheitseinstellungen, • different security settings,
• Unterschiedliche Art des Aufrufs (Write/Schreiben , Methodenaufruf) ,
• Organisatorische Gründe. • Different type of call (write, method call), • Organizational reasons.
Bei OPC UA werden Variablen einzeln betrachtet (auch innerhalb eines Schreib-Aufrufs, eines sogenannten WRITE-Calls, mit mehreren Variablen) ; der Server teilt dies dem Client über einzelne Statuscodes (pro Variable) mit. Andere Möglichkeiten sind in der Spezifikation nicht vorgesehen. In OPC UA, variables are considered individually (even within a write call, a so-called WRITE call, with several variables); The server informs the client about individual status codes (per variable). Other options are not provided in the specification.
Das durch die OPC UA spezifizierte Informationsmodell ist nicht mehr nur eine Hierarchie aus Ordnern, Items und Properties. Es ist ein sogenanntes Full-Mesh-Network aus Knoten (Nodes) mit dem neben den Nutzdaten eines Nodes auch Meta- und Diagnoseinformationen repräsentiert werden. Ein Node ähnelt einem Objekt aus der objektorientierten Programmierung. Ein Node kann Attribute besitzen, die gelesen werden können (Data Access DA, Historical Data Access HDA) . Es ist möglich Methoden zu definieren und aufzurufen. Eine Methode besitzt Aufrufargumente und Rückgabewerte. Sie wird durch ein Command aufgerufen. Weiterhin werden Events unterstützt, die versendet werden können (AE, DA DataChange) , um bestimmte Informationen zwischen Geräten auszutauschen. Ein Event besitzt unter anderem einen Empfangszeitpunkt, eine Nachricht und einen Schweregrad. Die o. g. Nodes werden sowohl für die Nutzdaten als auch alle anderen Arten von Metadaten verwendet. Der damit modellierte OPC-Adressraum beinhaltet nun auch ein Typmodell, mit dem sämtliche Datentypen spezifiziert werden. The information model specified by OPC UA is no longer just a hierarchy of folders, items, and properties. It is a so-called full mesh network of nodes that, in addition to the payload of a node, also represents meta and diagnostic information. A node is similar to an object from object-oriented programming. A node can have attributes that can be read (Data Access DA, Historical Data Access HDA). It is possible to define and call methods. A method has call arguments and return values. It is called by a command. Furthermore, events that can be sent (AE, DA DataChange) are supported in order to exchange certain information between devices. An event has among other things a time of reception, a message and a severity level. The o. G. Nodes are used for both payload and all other types of metadata. The modeled OPC address space now includes a type model that specifies all data types.
Ohne den OPC UA Standard zu verletzen könnten ein Client und ein Server (die aufeinander zugeschnitten sind) vereinbaren, dass der Server einen Write-Call als EINE konsistente Without violating the OPC UA standard, a client and a server (which are tailored to each other) could agree that the server make a write call as a consistent one
Schreiboperation auffasst und diesen Aufruf nur im Ganzen akzeptiert oder im Ganzen ablehnt. Write operation understands and this call only as a whole accepted or rejected in the whole.
In OPC UA ist ein Sitzungskonzept bekannt (Session) , das mit speziellen Service-Calls (BeginSession, ActivateSession, End- Session) implementiert wird. Es kann mehrere Sessions geben, die simultan auf einem Server existieren. Innerhalb einer OPC UA Verbindung ist aber zu einem Zeitpunkt immer nur eine sol-
che Session aktiv. Unter anderem werden Sessions dazu verwendet, einen Benutzer bzw. eine Rolle eindeutig zuzuordnen. In OPC UA, a session concept is known (session), which is implemented with special service calls (BeginSession, ActivateSession, EndSession). There may be several sessions that exist simultaneously on a server. Within an OPC UA connection, however, only one solu- active session. Among other things, sessions are used to uniquely assign a user or a role.
Ohne den OPC UA Standard zu verletzen könnten ein Client und ein Server (die aufeinander zugeschnitten sind) vereinbaren, dass der Server einen Write-Call als genau eine konsistente Schreiboperation auffasst und diesen Aufruf nur im Ganzen akzeptiert oder im Ganzen ablehnt. Without violating the OPC UA standard, a client and a server (which are tailored to each other) could agree that the server perceives a write call as just one consistent write and only accepts or rejects this call as a whole.
Dieser Mechanismus ist jedoch nicht - wie oben beschrieben - allgemeingültig, sondern funktioniert nur However, this mechanism is not universal, as described above, but only works
- wenn Client und Server aufeinander zugeschnitten sind. - if client and server are tailored to each other.
Client und Server müssen die Information austauschen, dass sie aufeinander zugeschnitten sind, d. h. diese Information muss z. B. im Anmeldeprotokoll übertragen werden. Client and server must exchange the information that they are tailored to each other, d. H. this information must be z. B. in the log.
- Wenn es sich um genau einen verändernden Aufruf handelt und/oder - If it is just a changing call and / or
- wenn die Ziele der Schreiboperationen auf demselben Zielsystem liegen (aggregierende Server könnten hiermit nicht behandelt werden) . - if the destinations of the write operations are on the same target system (aggregating servers could not be handled here).
Wie bereits weiter oben ausgeführt reicht dies in der Praxis nicht aus, da konsistente Operationen häufig nicht mit einem einzigen verändernden Aufruf abgedeckt werden können. As stated above, this is not enough in practice, as consistent operations often can not be covered by a single, changing call.
Es ist daher Aufgabe der Erfindung, ein Verfahren und eine Vorrichtung anzugeben, die die oben beschriebenen Probleme behebt . It is therefore an object of the invention to provide a method and a device which overcomes the problems described above.
Die beschriebene Aufgabe wird gelöst durch ein Verfahren und eine Vorrichtung gemäß einem der unabhängigen Patentansprüche . The described object is achieved by a method and a device according to one of the independent patent claims.
Beansprucht wird ein Verfahren zur Kommunikation zwischen einem OPC-UA Client und einem OPC-UA Server eines A method for communication between an OPC UA client and an OPC UA server is required
Client/Server-Systems unter Verwendung des Kommunikationsprotokolls OPC-UA wobei zur Interaktion des Clients mit dem Server OPC-UA Aufrufe verwendet werden.
Die Ausführung der OPC-UA Aufrufe soll dabei transaktionsba- siert ausgeführt werden, wobei der OPC-UA Aufrufe eine Angabe enthält über einen frühesten Zeitpunkt der Ausführung des OPC-UA Aufrufs auf dem Server und der zumindest eine OPC-UA Aufruf vom Server empfangen und zunächst gespeichert werden. Client / server system using the OPC-UA communication protocol, calls being used to interact with the client with the OPC-UA server. The execution of the OPC-UA calls is thereby to be carried out transaction-based, wherein the OPC-UA calls contain an indication of an earliest time of execution of the OPC-UA call on the server and the at least one OPC-UA call is received by the server and initially saved.
Beansprucht werden auch die geeigneten Vorrichtung zur Durchführung des Verfahrens, nämlich ein Client und ein Server. Also claimed are the appropriate apparatus for performing the method, namely a client and a server.
Im OPC UA Request Header existiert das Feld „TimeoutHint" , mit dem der Client angeben kann, ab wann er am Ergebnis einer Operation nicht mehr interessiert ist oder die Dauer, nachdem der Server eine (vermutlich "im Kreis laufende") Nachricht löschen darf. The "TimeoutHint" field exists in the OPC UA request header, with which the client can specify when it is no longer interested in the result of an operation or the duration after which the server is allowed to delete a message (presumably "circulating").
Wenn diese Zeit abgelaufen ist, sendet der Server eine Antwort, dass die Ausführung der Operation abgebrochen wurde. When this time has expired, the server sends a response that the operation was aborted.
Erfindungsgemäß wird die Semantik des Feldes „TimeoutHint" im OPC UA Request Header anders verwendet, als es im Standard ursprünglich vorgesehen ist. Die Bedeutung des „TimeoutHint" wird dabei so geändert, dass er nicht mehr den spätesten Zeitpunkt angibt, zu dem eine Operation ausgeführt werden soll, sondern den frühesten. According to the invention, the semantics of the "TimeoutHint" field in the OPC UA request header are used differently than originally provided in the standard.The meaning of the "TimeoutHint" is changed so that it no longer specifies the latest time at which an operation is executed should be, but the earliest.
Damit eine Operation ausgeführt wird, muss innerhalb der Zeit, die im „TimeoutHint" angegeben ist, eine spezielle Information (Trigger) vom Client zum Server übertragen werden, die die Ausführung der Operation auslöst. For an operation to be performed, within the time specified in the "TimeoutHint", special information (triggers) must be transmitted from the client to the server, which triggers the execution of the operation.
Durch diesen Mechanismus können mehrere Operationen im Server gespeichert werden, die dann gleichzeitig beim Eintreffen des Triggers ausgeführt werden. Die vom Client gelieferten Informationen in den „TimeoutHints" und Zeitangaben (Timestamps) müssen korrelieren, um einen exakten Ausführungszeitpunkt zu definieren . This mechanism allows multiple operations to be stored in the server, which are then executed concurrently upon the arrival of the trigger. The information provided by the client in the "TimeoutHints" and timestamps must correlate to define an exact execution time.
Trifft innerhalb der durch den „TimeoutHint" angegebenen Zeit kein passender Trigger ein, so werden die gespeicherten Operationen verworfen .
Eine erste vorteilhafte Ausführungsform arbeitet in einem „Verzögerte-Antwort"-Modus . If no suitable trigger arrives within the time specified by the "TimeoutHint", the stored operations are discarded. A first advantageous embodiment operates in a "delayed response" mode.
Dabei hält der Server bis zum Eintreffen des Triggers die Anforderungen (Requests) fest und gibt dem Client erst dann ei- ne Antwort, wenn entweder der in „TimeoutHint" angegebene Zeitraum abgelaufen ist oder wenn vom Client ein geeigneter Trigger gesendet wird. The server keeps the requests until the trigger arrives and only gives the client an answer when either the time period specified in "TimeoutHint" has expired or when a suitable trigger is sent by the client.
Dadurch erhält der Client für jedes Item, das er ändert, einen eigenen Statuscode. Die Antwort (Response) auf den Trig- ger, die vom Server zum Client geht , enthält das Gesamtergebnis der Operation. Zum Zeitpunkt der Trigger-Antworten werden auch die Antworten mit dem Detail-Informationen auf die vorher aufgesammelten Anforderungen (Requests) zum Client geschickt . This gives the client its own status code for each item that it modifies. The response to the trigger that goes from the server to the client contains the overall result of the operation. At the time of the trigger responses, the responses with the detail information are also sent to the previously collected requests to the client.
Die Operationen werden beim Eintreffen auf dem Server formal überprüft (existieren beispielsweise die gewünschten Netz- Knoten) . Im Fehlerfall erhält der Client sofort eine Antwort mit der Information über die aufgetretenen formalen Fehler. Der Preview-Modus wird als zweite vorteilhafte Ausführungsform vorgestellt. The operations are formally checked when they arrive on the server (for example, the desired network nodes exist). In the event of an error, the client immediately receives a response with the information about the formal errors that have occurred. The preview mode is presented as a second advantageous embodiment.
Der Client erhält für jede gespeicherte Operation unmittelbar, d. h. nicht erst nach Eintreffen des Triggers, eine Antwort vom Server über den voraussichtlichen Ausgang der Opera- tion, unabhängig davon, ob die Operation erfolgreich wein wird oder nicht. Er erhält also eine Vorschau, was passieren würde, wenn die Operationen ausgeführt würden. The client receives for each stored operation immediately, d. H. not only after the arrival of the trigger, a response from the server about the expected outcome of the operation, irrespective of whether the operation is successful or not. So he gets a preview of what would happen if the operations were done.
Wenn der Client feststellt, dass eine der durchgeführten Ope- rationen nicht zum gewünschten Ergebnis führen würde, kann er die Operationen verwerfen, indem er keinen Trigger sendet. Will der Client, dass die Operationen ausgeführt werden, so sendet er den Trigger. In der Antwort auf den Trigger erhält der Client die Information über das Gesamtergebnis aller aus- geführten Operationen.
In einer vorteilhaften Ausführungsform können die tatsächli- chen Detailergebnisse der ausgeführten Operationen vom Server über den Event-Mechanismus gesendet werden. If the client determines that one of the operations performed would not produce the desired result, it can discard the operations by not sending a trigger. If the client wants the operations to be executed, it sends the trigger. In response to the trigger, the client receives the information about the overall result of all executed operations. In an advantageous embodiment, the actual detailed results of the executed operations can be sent by the server via the event mechanism.
Als weitere vorteilhafte Ausführungsform kann der Client über eine Abbruchnachricht vorzeitig die Operation abbrechen. Er muss so nicht den Timeout abwarten . As a further advantageous embodiment, the client can prematurely abort the operation via an abort message. He does not have to wait for the timeout.
Der Ausführungszeitpunkt kann vorteilhafterweise entweder über einen Zeitpunkt, der mithilfe der Trigger-Operation mitgeteilt wird oder über den Timeout-Zeitpunkt der vorhergehenden Operationen festgelegt. The execution time may advantageously be set either over a time notified by means of the trigger operation or over the timeout time of the preceding operations.
Wie oben ausgeführt, wird das Problem der konsistenten datenverändernden Mengenoperation heute von OPC UA nicht adressiert. Dies wird vermehrt in der Zukunft eine wichtige Anforderung sein, insbesondere in der Kommunikation zwischen Automatisierungssystemen . As stated above, the problem of consistent data-changing set operation today is not addressed by OPC UA. This will increasingly be an important requirement in the future, especially in the communication between automation systems.
Die Nutzung des Timeout-Mechanismus ist eine einfach zu implementierende und zu verwaltende Möglichkeit, Operationen in einer Transaktion zusammenzufassen. Die aufwändige Verwaltung einer Transaktion durch Transaktionskontexte etc. entfällt, da der Zusammenhalt der Operationen über einen Zeitpunkt synchronisiert wird. Using the time-out mechanism is an easy way to implement and manage operations in a single transaction. The complex management of a transaction by transaction contexts, etc. is eliminated, since the cohesion of operations is synchronized over a time.
Als nachteilig erscheint zunächst die fehlende Möglichkeit eines Rollbacks, wie er aus dem Transaktionskontext bekannt ist (und für diese elementar ist) . Bei genauerer Betrachtung - insbesondere im Umfeld von automatisierungstechnischen Lösungen - stellt man fest, dass diese Funktionalität nicht notwendig und oftmals auch nicht erreichbar ist. Wenn ein Ventil geöffnet wurde und hierfür ein Rollback gemacht werden soll, ist das physikalische Ereignis der Ventilöffnung bereits eingetroffen und kann nicht rückwirkungsfrei rückgängig gemacht werden. The disadvantage is the missing possibility of a rollback, as it is known from the transaction context (and is fundamental for this). On closer examination - especially in the field of automation solutions - one realizes that this functionality is not necessary and often not attainable. If a valve has been opened and a rollback is to be made for this purpose, the physical event of the valve opening has already arrived and can not be reversed without reaction.
Für die Kommunikation von Server und Client gemäß der Erfindung muss das OPC UA Protokoll nicht geändert werden. Allerdings müssen Client und Server dasselbe Verständnis über die Verwendung des „TimeoutHint"-Feldes haben. Die Synchronisati-
on hierzu kann z. B. im Verbindungsaufbau ausgetauscht werden . For the communication of server and client according to the invention, the OPC UA protocol does not have to be changed. However, the client and server must have the same understanding of how to use the TimeoutHint field. on this can z. B. be replaced in the connection setup.
Im Folgenden wird die Erfindung durch Figuren dargestellt und weiter erläutert. Dabei zeigt In the following the invention is represented by figures and further explained. It shows
Figur 1 eine beispielhafte Anwendung der Erfindung im Automatisierungsumfeld, FIG. 1 shows an exemplary application of the invention in the automation environment,
Figur 2 eine beispielhafte Kommunikation zwischen Client und Server gemäß dem ersten Ausführungsbeispiel, FIG. 2 shows an exemplary communication between client and server according to the first exemplary embodiment,
Figur 3 ein beispielhafte Kommunikation zwischen Client und Server gemäß dem zweiten Ausführungsbeispiel und Figure 3 shows an exemplary communication between client and server according to the second embodiment and
Figur 4 eine weitere beispielhafte Kommunikation mit simulierten Zwischenergebnissen. FIG. 4 shows another exemplary communication with simulated intermediate results.
Im Weiteren werden die bevorzugten Ausführungsbeispiele erläutert. Diese Beispiele sollen die Erfindung nur weiter klarstellen, jedoch nicht einschränkend wirken. In the following, the preferred embodiments will be explained. These examples are intended to further clarify the invention, but not to limit it.
Die beispielhafte Aufgabe, die die Automatisierungsanlage ausführen soll, sei das Mischen von grüner Farbe aus gelben und blauen Flüssigkeiten, siehe Figur 1. In der Anlage gibt es drei OPC-UA Server: einen Server UA-S3 am blauen Tank B, einen Server UA-S2 am gelben Tank Y und einen Server UA-Sl am Mischtank G, in dem die grüne Farbe gemischt wird. Für die richtige Grün-Mischung müssen die Ventile VI, V2 vom gelben und blauen Tank gleichzeitig geöffnet werden. Wenn nun folgender Fehler auftritt, dass eines der Ventile VI, V2 nicht korrekt geöffnet oder geschlossen, V3, V4 werden kann, müssen zuerst alle geöffneten Zulaufventile VI, V2 wieder geschlossen werden, und dann am Mischtank G das Ventil V4 in Richtung Entsorgung R geöffnet werden, um die gesammelte Flüssigkeit zu entsorgen. Die Ansteuerung der Server UA-Sl, UA-S2 und UA- S3 erfolgt durch den Client UA-C . The exemplary task which the automation system is to perform is the mixing of green color from yellow and blue liquids, see FIG. 1. There are three OPC UA servers in the plant: a server UA-S3 at the blue tank B, a server UA -S2 at the yellow tank Y and a server UA-Sl at the mixing tank G, in which the green color is mixed. For the correct green mix, valves VI, V2 must be opened simultaneously from the yellow and blue tanks. Now, if the following error occurs that one of the valves VI, V2 can not be properly opened or closed, V3, V4, first all open inlet valves VI, V2 must be closed again, and then open the mixing tank G, the valve V4 in the direction of disposal R. to dispose of the collected liquid. The control of the servers UA-Sl, UA-S2 and UA-S3 is performed by the client UA-C.
Hier wäre ein Rollback zwar wünschenswert, er ist aber nicht möglich. Durch das Öffnen der Ventile ist aus den beiden oberen Tanks B, Y bereits Flüssigkeit ausgetreten und in dem unteren Tank G geflossen. Es kann nur ein definierter Zustand
für die Ventile VI, V2 wieder hergestellt werden. Zusätzliche Arbeitsschritte, um den Ursprungszustand wiederherzustellen, also beispielsweise die Entsorgung der in den unteren Tank G eingetretenen Flüssigkeit, sind nicht abbildbar und müssen programmtechnisch gelöst werden. Rollback would be desirable here, but it is not possible. By opening the valves, liquid has already leaked out of the two upper tanks B, Y and flowed into the lower tank G. It can only be a defined state be restored for the valves VI, V2. Additional steps to restore the original state, so for example, the disposal of the occurred in the lower tank G liquid, are not mapped and must be solved programmatically.
In den Figuren 2 bis 4 sind nun beispielhafte Kommunikationsvorgänge zwischen Client UA-C und den Servern UA-Sl, UA-S2, UA-S3 gemäß der Erfindung aufgezeigt. Exemplary communication processes between client UA-C and servers UA-Sl, UA-S2, UA-S3 according to the invention are now shown in FIGS.
Figur 2 zeigt eine Kommunikation, bei dem die Ausführung der Operationen durch einen Trigger ausgelöst wird. Ein Client UA-C sendet eine erste Operation „Öffne Ventil-Blau", Figure 2 shows a communication in which the execution of the operations is triggered by a trigger. A client UA-C sends a first operation "open valve blue",
01(OPEN_Vl, T) mit einem Timeout-Zeitpunkt T an den Server UA-S . 01 (OPEN_Vl, T) with a timeout T to the server UA-S.
In einer Ausgestaltung der Erfindung überprüft der Server UA- S zunächst formal die Gültigkeit der Operation. Im Fehlerfall wird eine entsprechende Nachricht an den Client gesendet. An- derenfalls wird die Operation im Server gespeichert. In one embodiment of the invention, the server UA-S first formally checks the validity of the operation. In the event of an error, a corresponding message is sent to the client. Otherwise, the operation is stored in the server.
Der Client UA-C sendet eine zweite Operation „Öffne Ventil- Gelb", 02(OPEN_V2, T) mit demselben Timeout-Zeitpunkt T an den Server UA-S. Client UA-C sends a second operation "Open Valve Yellow", 02 (OPEN_V2, T) to server UA-S at the same timeout point T.
Bei der oben genannten Ausgestaltung wird nach Empfang der zweiten Operation 02 vom Server formal wiederum die Gültigkeit der Operation 02 überprüft. Im Fehlerfall wird eine entsprechende Nachricht an den Client gesendet. Anderenfalls wird die Operation ebenfalls im Server gespeichert. In the embodiment mentioned above, the validity of the operation 02 is formally checked again after reception of the second operation 02 by the server. In the event of an error, a corresponding message is sent to the client. Otherwise, the operation is also stored in the server.
Will der Client UA-C nun die beiden Operationen ausführen, sendet er die Trigger-Nachricht TRIGGER (T) an den Server UA- S. Der Server führt die Operationen aus und sendet zur Bestätigung eine Antwort RESULT(01, 02) an den Client zurück. If the client UA-C now wants to perform the two operations, it sends the trigger message TRIGGER (T) to the server UA-S. The server carries out the operations and sends a response RESULT (01, 02) to the client for confirmation back.
Figur 3 zeigt zunächst das gleiche Vorgehen: FIG. 3 initially shows the same procedure:
UA-C sendet eine erste Operation „Öffne Ventil-Blau", UA-C sends a first operation "open valve blue",
01(OPEN_Vl, T) mit einem Timeout-Zeitpunkt T an den Server
UA-S. Dann sendet der Client UA-C eine zweite Operation „Öffne Ventil-Gelb", 02(OPEN_V2, T) mit demselben Timeout- Zeitpunkt T an den Server UA-S. Wird keine Trigger-Nachricht vom Client innerhalb des Zeitraums T gesendet, so werden nach Ablauf des im Feld 01 (OPEN_Vl, T) with a timeout T to the server UA-S. Then, the client UA-C sends a second operation "Open Valve Yellow", 02 (OPEN_V2, T) to the server UA-S at the same timeout point T. If no trigger message is sent by the client within the time period T, then will be after expiration of the box
„TimeoutHint" des Operationsbefehls angegebenen Zeitraums die in den Servern gespeicherten Operationen verworfen und gegebenenfalls eine Fehler-Meldung RESULT(01, 02) an den Client UA-C zurück gesendet. "TimeoutHint" of the operation command specified period discarded the operations stored in the servers and, if necessary, sent an error message RESULT (01, 02) back to the client UA-C.
Figur 4 zeigt noch ein weiteres Ausführungsbeispiel. Nach Empfang der ersten Operation 01(OPEN_Vl, T) überprüft der Server UA-S gegebenenfalls formal die Gültigkeit der Operation und simuliert dann die angeforderte Operation. Der Client UA-C erhält als Antwort auf die Operation das Ergebnis dieser Simulation als Vorschau, SIM_RESULT (Ol ) . Es kann später nicht mehr das tatsächliche Ergebnis der Operation an den Client geliefert werden, da er die Antwort auf den Request bereits erhalten hat. Figure 4 shows yet another embodiment. After receiving the first operation 01 (OPEN_Vl, T), the server UA-S optionally checks formally the validity of the operation and then simulates the requested operation. The client UA-C receives in response to the operation the result of this simulation as a preview, SIM_RESULT (Ol). The actual result of the operation can not be delivered to the client later because it has already received the response to the request.
Nach Empfang der zweiten Operation 02(OPEN_V2, T) überprüft der Server UA-S formal die Gültigkeit der Operation und „simuliert" die Operation 02. Der Client UA-C erhält als Antwort auf die Operation das Ergebnis dieser Simulation als Vorschau, SIM_RESULT (02 ) . Es kann später nicht mehr das tatsächliche Ergebnis der Operation an den Client UA-C geliefert werden, da er die Antwort auf den Request ja bereits erhalten hat. After receiving the second operation 02 (OPEN_V2, T), the server UA-S formally checks the validity of the operation and "simulates" the operation 02. The client UA-C receives in response to the operation the result of this simulation as a preview, SIM_RESULT (FIG. 02) It is no longer possible to deliver the actual result of the operation to the client UA-C since it has already received the response to the request.
Ist der Client UA-C mit einem der gelieferten Vorschauergebnisse nicht zufrieden, kann er die Gesamtoperation durch Verstreichen der Timeoutzeit abbrechen. If the client UA-C is not satisfied with any of the preview results provided, it may abort the overall operation by elapsing the timeout period.
Der Ausführungszeitpunkt kann entweder durch die Timeoutzeit oder durch eine Zeit T, die mit dem Trigger geliefert wird, vom Client UA-C festgelegt werden.
The execution time can be set by the client UA-C either by the timeout time or by a time T delivered with the trigger.