Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

AVEVA Enterprise SCADA

Write data

  • Last UpdatedApr 24, 2025
  • 3 minute read

The Open Platform Communications (OPC) Server can be configured to perform writes in two ways: via Business Logic Tier (BLT) and via High Performance Database (HPDB). BLT is the process that is used by default. Its use is described in the examples below. HPDB is the process that can be used when your OPC Server instance requires high-throughput writing. Should you wish to used HPDB, you will need to set this writing behavior in the OPCDAServerConfig.json file. Allowlists can be used to restrict this access.

Embedded Image (65% Scaling) (LIVE)

HPDB allows the server to write to RealTime database (RTDB) points as quickly as is possible. HPDB performs faster writes because it does not use security or Area of Responsibility (AOR) checks. HPDB should only be used when security is not a significant concern for the OPC Server instance. All OPC clients of an instance using HPDB as its write method are authorized to perform writes so long as "ACCESSPERMISSION": "READWRITE" appears in the %DNADataRoot%\RealTime\config\Settings\OPCDAServerConfig.json file. For example:

{

"RealTime":{

"OPCDAServer":{

"OASySDNA.OPCDAServer.1":{

"ACCESSPERMISSION": "READWRITE"

}

}

}

}

With a default OPC Server configuration, all RealTime items are marked as writable, and OPC clients may attempt to write to any of them. Although writes are possible, they may not always succeed since fields within the RTDB have complex rules as to what can be modified.

For example, attempting to modify the flag.fresh field of an actively telemetered analog record always fails, even though the OPC server attempts this operation when requested. The OPC server takes any write request and attempts to modify the database via a virtual fieldput operation. The result of the v_fldput call will be returned to the client.

Even when the write succeeds, the resulting change depends on the virtual layer routine that services the write request. For example, writing a value to a telemetered analog’s setpoint field would result in a setpoint command being sent out to the Programmable Logic Controller (PLC). Another example would be writing a value to the curval of an analog that is in manual mode; the write succeeds, but alarm limits are not checked, nor are alarms created as a side effect of this change.

To change the way your OPC Server performs writes from BLT to HPDB, open the OPCDAServerConfig.json file and change the value of the HPDB key from false to true. The OPC Server needs to be restarted to apply the change. The best way to switch write methods is to change the OPCServer on standby first, and then failover so the change can be made on the new standby. If the change is successfully applied, a message will appear in the OPCServer.log that states HPDB enabled for non-override writes.

Items that are not contained within RTDB cannot be modified. These items exist in PubSub and cannot be modified by anyone except the original publisher of the message. All items outside of the .realtime.db. data source are marked as read-only.

All of the RTDB fields that end in @raw are not writable fields. For example, you may read main.realtime.db.status.cursta@raw, but you may only write to main.realtime.db.status.cursta. This is due to the vdb layer processing.

Note: Writing data back to the RTDB is a much slower operation than reading. Use the HPDB option for OPC Server instances that need to perform a high amount of RTDB writes.