Observed Failure
The Communicator logs Ошибка при создании подписки на чтение данных: E_FAIL when it attempts to create a data-read subscription. OPCDataStore reports that the client disconnected, and data acquisition stops. The failure appears after closing the device-properties window in the Communicator.
Most Likely Cause
Treat access rights as the leading hypothesis. The Communicator shell and the Communicator service are separate applications that run under different user accounts. A connection that works from the interactive shell therefore does not prove that the service account can create and maintain the same OPC subscription.
| Execution context | Identity | Diagnostic significance |
|---|---|---|
| Communicator shell | Interactive user | May have sufficient OPC server access |
| Communicator service | Service user | May lack the rights required to create the read subscription |
Diagnostic Procedure
- Identify the user account running the Communicator shell and the account running the Communicator service.
- Compare the access granted to both accounts for OPCDataStore. Correct any difference that prevents the service account from connecting or creating a read subscription.
- Restart or reconnect the affected components as required, then repeat the operation that previously produced
E_FAIL.
Do not treat closing the properties window as the confirmed root cause until the test succeeds under equivalent account permissions. The timing establishes the trigger sequence, while the different execution identities provide the supported cause hypothesis.
Verification Criteria
Confirm the correction by closing the device-properties window and checking that the Communicator no longer logs the subscription-creation error. OPCDataStore must keep the client connected, and the expected data must continue updating. If E_FAIL remains after permissions are aligned, the evidence does not identify another cause; capture both application logs and escalate through the relevant product support channels.
FAQ
Why does Rapid SCADA log E_FAIL when creating an OPC subscription?
The leading evidence-supported cause is an access-rights difference between the interactive Communicator shell account and the Communicator service account.
Why can the OPC connection work in the Communicator window but fail as a service?
The shell and service are separate applications running under different users. The interactive user may have OPCDataStore access that the service user does not.
How do I verify that the OPC E_FAIL problem is fixed?
Close the device-properties window, confirm that no subscription-creation E_FAIL appears, verify that OPCDataStore keeps the client connected, and check that data continues updating.