Server-specific settings for the OPC client
[opc_<symbolic_servername>] addItemsSingle
- Type
- string
- Default
- no
- Range
- yes|no
When starting the client the items of groups can be added either single or all together.
This entry defines, how to add items to a group:
[opc_server1]
addItemsSingle = "yes"
Adds the items in single mode to the group. With "No" (default) all items are added at
once to the group. If all items are added at once, the client start more quickly,
otherwise some server have problems. Without an entry in the config-file, are added at
once. The debug info -dbg 2 issues the mode in the Log Viewer.
[opc_<symbolic_servername>] browseOnStart
- Type
- string
- Default
- yes
- Range
- yes|no
If this config entry is not set or is set with browseOnStart = "yes" in the config file,
the address space of the server is browsed and the items of the server are written to
the internal datapoint of the server (_OPC Server -> _ETM.ItemIds) each time the
client was stopped and restarted. If the entry is set to browseOnStart = "no", no info
is written to the internal datapoint of the server after client start-up. It is simply:
'no browse info available'.
[opc_<symbolic_servername>] enableAddrBrowsing
- Type
- string
- Default
- yes
- Range
- yes|no
This entry allows or forbids the request to the items parameterized in the server.
Usually the entry is "yes". If this entry is not set, the default value "yes" is
used.
[opc_<symbolic_servername>] enableCALLR
- Type
- string
- Default
- no
- Range
- yes|no
You can use this entry for connections with Festo and WSK (not content of standard WinCC
OA). If the server is expanded with the CALL-R interfaces, this must be disclosed to the
client through this entry. The items that are added to the groups are then created by
the client in the server with ICallrItemConfig::CreateCallrItems. If this entry is not
set, the default value "no" is used.
[opc_<symbolic_servername>] gaBitOnStart
- Type
- string
- Default
- yes
- Range
- yes|no
If an item is announced at the OPC server, the server sends a callback message (as
spontaneous response). This case is treated like a general query. This is only valid, if
at the time of announcing the OPC group concerned is active and callbacks enabled. (see
also Panel OPC group). With this config entry you can define whether the GQ bit should
be with the first callback.
[opc_<symbolic_servername>] hierarchySeparator
- Type
- string
- Default
- .
You can set the entry
[opc_server1]
hierarchySeparator = "/"
in the config file. Default: "."; This entry defines a separator. If this character is
contained in the item name, the item is divided into an additional sub level at
hierarchical browsing., e.g. for Tag22/test results:
Tag22
test
Since dots are contained in the item names of some OPC servers, the config entry has to
be provided with a sign which is not contained in the item name. This has to be done to
present the display of the items correctly.
[opc_<symbolic_servername>] invertPrefix
- Type
- string
- Default
- no
- Range
- yes|no
Inverts the behavior of permanent and nonpermanent groups, if invertPrefix = "yes".
Example:
[opc_ABB]
nonpermanentKey = "PERMANENT"
invertPrefix = "yes"
[opc_<symbolic_servername>] ioTimeout
- Type
- unsigned
- Default
- 2000 [msec]
- Range
- > 0
The driver calls readData, writeData und refreshData, meaning reading, writing and
general request, in a single thread to avoid the blocking of the server. This entry
defines the time range in milliseconds during the call has to be executed. If the call
is not ready in this time range, it is presumed the OPC server blocks and the tread is
stopped. A blocking server can result as an error of the software in the OPC server, or
when the request needs more time than supposed. So try first to increase the timeout to
check, whether the request needs more time. For example, you can increase it if it is
known that the connection to the server is very slow.
[opc_<symbolic_servername>] nonpermanentKey
- Type
- string
Non-permanent OPC groups are those which whose OPC items are registered on the OPC
server only if needed. With these groups it is possible to avoid the limitations of the
OPC server related to the number of registered items. Items from non-permanent groups
are registered on the server only if a value must be written or if a user interface or
CTRL script in the local or distributed system has an upright dpConnect() to the
corresponding DPEs. I.e. for example that items are registered only then if the
corresponding DPE will be shown in a panel. When closing the panel, the items will be
unregistered on the server again. Non-permanent groups should only be used if there is a
limitation regarding the number of items on the server, since the registration and
unregistration my cause an increased load at runtime. In addition, items that are
archived or alert-handled may not be added to non-permanent groups as they are read only
under the above described conditions. "nonpermanentKey" is the name prefix for
nonpermanent groups. Another config entry ("invertPrefix") can be used to invert this
behavior.
[opc_ABB]
nonpermanentKey = "PERMANENT"
invertPrefix = "yes"
[opc_<symbolic_servername>] reconnectOnFailedState
- Type
- bool
- Default
- 1
- Range
- 0|1
Defines whether the client tries to reconnect if the server state is FAILED. 0:Only the
state change is indicated. The server state displayed in the WinCC OA configuration
panel changes to 2 (status text = OPC_STATUS_FAILED). 1: The server state displayed in
the WinCC OA configuration panel changes to 0 and the client tries to reconnect.
[opc_<symbolic_servername>] sendNoValueForQuality
- Type
- string
- Range
- 8 digits
The value for this entry has to be an 8-digit string in the following form: "1100????".
- 1 means: the entry at this point must be 1.
- 0 means: the entry at this point must be 0.
Every other character means that this bit is not considered. Values that are received
from an OPC server and contain this here entered quality information are not sent to the
Event Manager. In this case only the driver sets the invalid bit, i.e. the old value at
the datapoint still the same. You can define several entries of this type for one
server.
[opc_<symbolic_servername>] setInvalidForConnLoss
- Type
- uint
- Default
- 0
- Range
- 0..2
The OPC client is able to set the DPE invalid bit (_auth_inv Attribut) of all intput or
input/output addresses if the connection to the OPC server is lost or cannot be
established. The invalid bits are reset when the next valid values are received.
Caution:
The invalid bits are not set if the OPC client is terminated.
This feature can be activated individually for each server by setting the config entry
setInvalidForConnLoss = 1
in the config file section of the concerned OPC Server (e.g. [opc_ServerX]). Default of
the config entry is 0, which means that the invalid bit will not be set.
[opc_<symbolic_servername>] vtEmptyArrayRead
- Type
- bool
- Default
- 0
- Range
- 1|0
Some OPC server do not accept explicit type selection by the OPC client for array data
types. If this entry is set to 1 the OPC client registers array OPC items with the
VT_EMPTY type. This means the client does not request a specific type, which is normally
derived from DPE type and address config transformation type. Furthermore, the OPC
client is able to receive array data where the array index is starting at 1 instead of
0. Caution: The user is responsible to select the address config transformation type
properly since no type conversation is done in OPC server.
[opc_<symbolic_servername>] watchdogGroup
- Type
- string int int
- Range
- <watchdog group> <mult: >= 1> <validToReset6gt;
Watchdog groups each only contain one item and they expect their item to send a value
every n seconds (the interval is calculated from the second parameter of the config
entry and from the actual update rate of the OPC group (in milliseconds): mult *
ActualUpdateRate Example: [opc_server1] watchdogGroup = "ABB_Watch" 3 10 Note: ABB_Watch
is a Watchdog group. Expected change interval n: 3 (mult) * 1000 (ActualUpdateRate) =
3000 ms The actual update rate is displayed in the corresponding OPC Group DP. If for
instance a counter is used in the periphery, it must be set to an increment time that is
less than 3000 msec. The minimum value for mult is 1 milliseconds. Note: If an item in a
watchdog group does not send a value within 3*n milliseconds the group sets its allItems
Invalid bit. If the watchdog was triggerd due to not receiving a watchdog signal, the
driver will not reset the watchdog upon receiving the first watchdog signal but only
after receiving a watchdog signals for at least validToReset seconds without
interruption. If (as in our example) this period is ten seconds and the client receives
signals for only 8 seconds, it resets an internal counter and starts from the beginning.
This feature was introduced to prevent the watch dog from continuously being set and
reset (flutter). There are some additional limitations to watchdog groups: If the update
rate granted by the server is lesser than the watchdog interval, the group will signal
this by setting the AllItems Invalid state. Watchdog groups are always permanent groups.
Being identified in the config file as a watchdog group is stronger than being a
nonpermanent group. Watchdog groups will only accept one item since they monitor one
connection. It is not possible to create a new watchdog group at runtime, the client
must be restarted. In case of a redundant system the actual value of the item has no
meaning since it can be overwritten by the active system on the passive system. Note:
The DPT _OPCGroup contains a datapoint element of type bool, which is set true by the
group if the group is a watchdog group. The mechanism described above can also be used
for items that do not send values spontaneously. e.g. a script starts a refresh or read
operation for the item in this group every n-2 seconds and the group records the
received values. Again, if there are not enough values received, AllItems Invalid is set
and thus the communication error is detected. (Attention: reading processes must be
performed to DEVICE or this mechanism will not work, since there will be values from
cache available all the time.) Caution: If more than one watchdog group is used, the
entries have to be set alternately.