What is the relation between _original, _online and _offline?
In WinCC OA / PVSS three different configs are used when a value is written.
_original: This config can be set to store a value, e.g. by a driver, CTRL-manager, UI, …
_online: Normally the _online-value is the same like the _original-value. The _online-value can be different when a _default-config is added to the DP-element. The configured _default-value is written to the _online-value when the rules (invalid original-value or value-range violation) for the _default-config are fulfilled or when the status bit to use the default-value was set explicitly (attribute _original.._exp_default).
_offline: The _offline-config is a virtual config. It is computed “on-the-fly” when reading historical values using the _offline-attribute. It is a combination of the _online- and the _corr-attribute.
If the dp-element is archived in the database the _original-value and the _online-value will be saved in the database when using the value-archives.
If the RDB archivation is used only the _online-value is saved in the database.
Also the information is saved if a correction value was set (_corr-attribute).
With the CTRL-function dpSetTimed and the _corr-attribute (correction value) it is possible to set a correction-value. When writing a correction value the status-information is saved that a correction value was set (attribute _offline.._corr).
A correction value can be used to modify an existing online-value (compensating correction value) or to add a new value in the database (additional correction value).
As the _online-, _offline-value cannot be set directly they are not displayed at the para-module.
To get the current value in the system normally the _online-config is used (dpGet(), dpConnect()).
For reading historical values from the database (dpGetPeriod(), dpGetAsynch(), SQL + TIMERANGE-option) the config _offline is used.
To make a comparison between the _original (only for value-archives), _online and _offline-value you can read all different configs from the database within one historical request.
If you make a historical query using the _original- or _online-attribute you’ll get only those values where an _online-value is existing. Additional correction-values will not be returned as result for this query.
To get all values saved in the database you have to use the _offline-config.