METHOD AND DEVICE FOR IMPLEMENTING A TRANSACTION CONCEPT IN OPC UA BY MEANS OF A TIMEOUT MECHANISM

20170161122 · 2017-06-08

Assignee

Inventors

Cpc classification

International classification

Abstract

In the OPC UA request header, there exists the field TimeoutHint, by means of which the client can indicate the point in time from which the client is no longer interested in the result of an operation. When this time has expired, the server sends a response that the execution of the operation has been terminated. According to the invention, the semantics of the field TimeoutHint in the OPC UA request header are used differently. The meaning of the TimeoutHint is changed in such a way that the TimeoutHint no longer indicates the latest point in time at which an operation should be executed, but rather the earliest point in time.

Claims

1.-10. (canceled)

11. A method of communication between a client and a server in a client/server system using the OPC UA communication protocol, said method comprising: the server receiving at least one OPC UA call from the client after opening a communication session with the client, said call containing an indication of an earliest time at which to execute the OPC UA call on the server; and the server storing the at least one OPC UA call.

12. The method of claim 11, wherein a TimeoutHint field defined in the OPC UA standard as indicating a latest execution time is changed so that it indicates the earliest execution time

13. The method of claim 11, further comprising: the server initially simulating the execution of the at least one OPC UA call; and the server transmitting the result of the simulation to the client.

14. The method of claim 11, further comprising: the server receiving and time stamping a message adapted to trigger said at least one OPC UA call; and the server initiating execution of said OPC UA call only if the time stamp on said trigger message correlates with the time of said execution.

15. The method of claim 11, wherein the at least one OPC UA call indicates an execution time, further comprising the server initiating execution of at least one OPC UA call when the execution time indicated in the OPC UA call has been reached.

16. The method of claim 11, further comprising: the at least one OPC UA call received by the server is first formally checked; and the server transmits an error message to the client when the check reveals an error.

17. The method of claim 11, wherein the server has opened a session, further comprising the server transmitting a result call to the client after executing the at least one OPC UA call, said result call containing the collected results of all calls executed in said session.

18. The method of claim 11, further comprising transmitting an abort message to prevent the execution of at least said at least one OPC UA call by the server.

19. A client device adapted for communicating with a server in a client/server system using the OPC UA communication protocol for communication between a client and a server, at least one OPC UA call transmitted by the client device to the server being executed on the server in a transaction-based manner, said client device comprising: a client, said client being adapted for transmitting and receiving calls in a client/server system using the OPC UA communication protocol; and a transaction processor, said transaction processor being adapted for receiving at least a first OPC UA service call transmitted by the client to the server, said transaction processor forwarding said first OPC UA service call to the server with an indication of an earliest time at which to execute the OPC UA call on the server, said transaction processor transmitting said at least one OPC UA call to the server and storing it on the server.

20. The client device of claim 19, wherein the transaction processor changes a TimeoutHint field defined in the OPC UA standard as indicating a latest execution time so that it indicates the earliest execution time

21. The client device of claim 19, wherein the client transmits a message adapted to trigger said at least one OPC UA call and the server initiates execution of said OPC UA call only when the time stamp provided on said trigger message by the server when that trigger message was received by the server correlates with said earliest time of execution of said call.

22. The client device of claim 19, wherein the at least one OPC UA call received by the server from the client is formally checked and the client receives an error message from the server when the check reveals an error.

23. The client device of claim 19, wherein the client receives a result call from the server after the at least one OPC UA call is executed, said server having opened a session with the client before the at least one OPC UA call was executed, said result call containing the collected results of all calls executed in said session.

24. The client device of claim 19, wherein an abort message is produced and transmitted by the client that prevents the execution of said at least one OPC UA call by the server.

25. A server device adapted for communicating with a client in a client/server system using the OPC UA communication protocol for communication between the client and the server, at least one OPC UA call transmitted by the client to the server device being executed on the server in a transaction-based manner, said server device comprising: a server, said server being adapted for transmitting, executing and receiving calls in a client/server system using the OPC UA communication protocol; and a transaction processor, said transaction processor being adapted to indicate an earliest time at which to execute the at least one OPC UA call on the server, said transaction processor storing said at least one OPC UA call and earliest time on the server.

26. The server device of claim 25, wherein a TimeoutHint field defined in the OPC UA standard as indicating a latest execution time is changed so that it indicates the earliest execution time to the transaction processor.

27. The server device of claim 25, wherein the server initially simulates the execution of the at least one OPC UA call; and transmits the result of the simulation to the client.

28. The server device of claim 25, wherein the transaction processor time stamps a message adapted to trigger said at least one OPC UA call that is received by the server and the transaction processor initiates execution of said OPC UA call by the server only when the time stamp on said trigger message correlates with said earliest time of execution of said call.

29. The server device of claim 25, wherein the at least one OPC UA call indicates an execution time, and the transaction processor initiates execution of said at least one OPC UA call by server when the execution time indicated in said OPC UA call has been reached.

30. The server device of claim 25, wherein the at least one OPC UA call received by the server is first formally checked by the transaction processor and the server transmits an error message to the client when the check by the transaction processor reveals an error.

31. The server device of claim 25, wherein the server transmits a result call to the client after executing the at least one OPC UA call, said server having opened a session with the client before the at least one OPC UA call was executed, said result call containing the collected results of all calls executed in said session.

32. The server device of claim 25, wherein an abort message received by the server from the client prevents the execution of the at least one OPC UA call by the server.

33. A transaction processor, said transaction processor being adapted for providing execution of at least a first OPC UA service call transmitted between a server and a client in a client/server system using the OPC UA communication protocol in a transaction-based manner, when connected between the server and the client, said processor comprising: a communication routine adapted to receive and transmit OPC UA calls between a server and a client in the client/server system; and a transaction specification routine adapted to indicate an earliest time at which to execute the at least one OPC UA call on the server and to store said at least one OPC UA call and said earliest time on the server.

34. A transaction specification program fixed in a machine-readable medium, said program providing execution of at least a first OPC UA service call transmitted between a server and a client in a client/server system using the OPC UA communication protocol in a transaction-based manner, said program comprising: a communication routine adapted to receive and transmit OPC UA calls between a server and a client in the client/server system; and a transaction specification routine adapted to indicate an earliest time at which to execute the at least one OPC UA call on the server and to store said at least one OPC UA call and said earliest time on the server.

Description

[0046] The invention is represented by figures and is explained in more detail below. In the drawing

[0047] FIG. 1 shows an exemplary use of the invention in the automation environment,

[0048] FIG. 2 shows exemplary communication between the client and the server according to the first exemplary embodiment,

[0049] FIG. 3 shows exemplary communication between the client and the server according to the second exemplary embodiment, and

[0050] FIG. 4 shows further exemplary communication with simulated intermediate results.

[0051] The preferred exemplary embodiments are explained below. These examples are intended only to further clarify the invention, but are not intended to have a restrictive effect.

[0052] The exemplary task which is intended to be executed by the automation installation is that of mixing the color green from yellow and blue liquids, see FIG. 1. The installation contains three OPC UA servers: a server UA-S3 on the blue tank B, a server UA-S2 on the yellow tank Y and a server UA-S1 on the mixing tank G in which the green color is mixed. For the correct green mixture, the valves V1, V2 of the yellow and blue tanks must be opened at the same time. If the following error now occurs, whereby one of the valves V1, V2 cannot be correctly opened or closed (V3, V4), all open feed valves V1, V2 must first of all be closed again and the valve V4 on the mixing tank G must then be opened in the direction of disposal R in order to dispose of the collected liquid. The servers UA-S1, UA-S2 and US-S3 are controlled by the client UA-C.

[0053] Although a rollback would be desirable here, it is not possible. As a result of the valves being opened, liquid has already emerged from the two upper tanks B, Y and has flowed into the lower tank G. Only a defined state can be restored for the valves V1, V2. Additional work steps for restoring the original state, that is to say the disposal of the liquid which has entered the lower tank G for example, cannot be reproduced and must be tackled using programming.

[0054] FIGS. 2 to 4 now show exemplary communication operations between the client UA-C and the servers UA-S1, UA-S2, UA-S3 according to the invention.

[0055] FIG. 2 shows communication in which the execution of the operations is triggered by a trigger. A client UA-C transmits a first operation open blue valve O1(OPEN_V1, T) with a timeout time T to the server UA-S.

[0056] In one configuration of the invention, the server UA-S first of all formally checks the validity of the operation. In the event of an error, a corresponding message is transmitted to the client. Otherwise, the operation is stored in the server.

[0057] The client UA-C transmits a second operation open yellow valve O2(OPEN_V2, T) with the same timeout time T to the server UA-S.

[0058] In the above-mentioned configuration, the server again formally checks the validity of the operation O2 after receiving the second operation O2. In the event of an error, a corresponding message is transmitted to the client. Otherwise, the operation is likewise stored in the server.

[0059] If the client UA-C now wishes to execute the two operations, it transmits the trigger message TRIGGER(T) to the server UA-S. The server executes the operations and transmits a response RESULT(O1, O2) back to the client for confirmation.

[0060] FIG. 3 initially shows the same procedure: UA-C transmits a first operation open blue valve O1(OPEN_V1, T) with a timeout time T to the server UA-S. The client UA-C then transmits a second operation open yellow valve O2(OPEN_V2, T) with the same timeout time T to the server UA-S.

[0061] If a trigger message is not transmitted by the client within the period T, the operations stored in the servers are rejected after expiry of the period indicated in the TimeoutHint field of the operation command and an error message RESULT(O1, O2) is possibly transmitted back to the client UA-C.

[0062] FIG. 4 shows yet another exemplary embodiment. After receiving the first operation O1(OPEN_V1, T), the server UA-S possibly formally checks the validity of the operation and then simulates the requested operation. As a response to the operation, the client UA-C receives the result of this simulation as a preview SIM_RESULT(O1). The actual result of the operation can no longer be delivered to the client later since it has already received the response to the request.

[0063] After receiving the second operation O2(OPEN_V2, T), the server UA-S formally checks the validity of the operation and simulates the operation O2. As a response to the operation, the client UA-C receives the result of this simulation as a preview SIM_RESULT(O2). The actual result of the operation can longer be delivered to the client UA-C later since it has already received the response to the. request.

[0064] If the client UA-C is not satisfied with one of the delivered preview results, it can abort the entire operation by allowing the timeout time to elapse.

[0065] The execution time can be stipulated by the client UA-C either by the timeout time or by a time T delivered with the trigger.