[opc_<symbolic_servername>]

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>] pollCount

Type
unsigned integer
Default
32
Range
>0

Defines the number of data points that can be polled at once. If several polling requests are queued they will be processed in the next driver cycle.

[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.