Various OPC calls explicitly make use of asynchronous communication. When an OPC Client application issues an asynchronous call, the OPC Server acknowledges receipt of the call itself. The OPC Server then “calls” the OPC Client application back with the result using a callback. The OPC Client application does not know when it will receive the callback, and therefore the call is said to be asynchronous, or without time.
Developers and Integrators use asynchronous calls when they do not require a specific order of operations. Suppose that an operator must close two valves, but the order is not important. Furthermore, suppose that the first valve takes 5 seconds to close, and the second valve takes 1 second to close. Using an asynchronous call, the operator could issue both calls simultaneously, but the second call would actually complete first! However, if it is indeed necessary to complete the first action before the second begins, Developers and Integrators must ensure that they use Synchronous communication.
Asynchronous calls can provide a significant performance boost when an order of operations is not required. As well, developers use asynchronous calls to implement OPC Item subscription.
Using asynchronous communication, an OPC Server relies on callbacks to deliver data back to an OPC Client application. Integrators must configure the PC with the OPC Client application to accept the callbacks. Failure to do so will cause callbacks to fail and consequently any asynchronous communication will fail. This is a common cause for OPC Item Subscriptions to fail. Integrators often use synchronous communication to compensate for poor security configuration. However, this will have other undesirable affects.
See also: Callback, Subscription, Synchronous