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.