OPC Errors

Server does not appear in selection list

There may be times when you configure a group that the server you want does not appear in the select list.

If this is a local server, it is likely not installed or registered correctly. In this case, consult the server’s documentation on how to correct this. In some cases, it can also help to start the server once, possibly with special parameters in the command line (e.g. “/RegServer“).

If you don’t see a server that’s installed on another machine, there may be several reasons:

  • The server conforms to OPC specification 1.0. Such servers cannot be listed over the network.     
  • On the computer of the server is the program for enumerating the servers OPCENUM. EXE not installed.
    You can copy the program from the system directory of the VisXpert machine to the server machine
    and register it there (run “OPCENUM /RegServer“).
  • The DCOM configuration on the server’s computer does not allow you to access OPCENUM.
    Change this using the DCOM configuration (DCOMCNFG. EXE).

Problems exchanging data with specific OPC 2.0 servers

By default, VisXpert always uses the latest version of the OPC specification that a server supports. It has been shown that some servers are not yet fully implementing the newer features. In this case, there is the option “Use OPC version 1 only” in the “Group Properties” dialog box. This allows you to cause VisXpert to use only version 1 calls.

Note: You should only use this option if you really need it. Communication according to version 2 of the OPC specification is preferable.

Data is being updated too late

Some servers do not immediately send a value to the client (as required by the OPC specification) for a newly logged-on variable (OPC Item), but only after its value has changed. The corresponding values are available in VisXpert® accordingly only then available (e.g. for display).

To work around this error in the server, visXpert has the option “Read value after activation” in the Group Properties dialog. When it is turned on, VisXpert places an explicit read job for it immediately after logging in to an update variable (activating the OPC item).

Note: You should only use this option if it is really unavoidable. It can greatly slow down startup and image setup and even cause some servers that are sensitive to increased load to crash.

Error

OPC Error Messages – Standards

0xC0040001

OPC_E_INVALIDHANDLE

The value of the handle is not valid.

An addressed object does not exist (more).

0xC0040004

OPC_E_BADTYPE

Server cannot convert client’s data format.

The configuration of the VisXpert variables is incorrect or out of date.

0xC0040005

OPC_E_PUBLIC

Operation not possible for public groups.

VisXpert does not use public groups of OPC servers, so this message should never occur.

0xC0040006

OPC_E_BADRIGHTS

Insufficient access rights for operation

The OPC item in question can only be read or written. VisXpert attempts the unauthorized operation

0xC0040007

OPC_E_UNKNOWNITEMID

Item not known (more)

The server does not know the OPC item addressed by VisXpert. The configuration of the VisXpert variables is incorrect or out of date.

0xC0040008

OPC_E_INVALIDITEMID

Item name syntax is invalid.

The name of the item does not have the structure required by the server or contains invalid characters from the server’s point of view. The configuration of the VisXpert variables is incorrect or out of date.

0xC0040009

OPC_E_INVALIDFILTER

Filter string invalid

Should never occur because VisXpert does not use filters when querying the items.

0xC004000A

OPC_E_UNKNOWNPATH

Access path of the item unknown

The access path is not valid. This can only happen if you have entered one in the configuration of the item in question. Correct or delete the value (an empty access path is always allowed).

0xC004000B

OPC_E_RANGE

Value out of range

The written value is not allowed. This can happen if the server uses a less accurate or large data type than VisXpert (e.g. always uses 64 bits for floating point numbers, but many servers only 32 bits).

0xC004000C

OPC_E_DUPLICATENAME

Duplicate names not allowed

The name signed for the OPC client or group that VisXpert has signed in is not unique. Can only occur as a follow-up error after other problems. Restart VisXpert and, if possible, the OPC server.

0xC004000D

Server can’t accurately meet required update time

No mistake. The server simply reports that it will not be able to meet the requested update time.

0xC004000F

OPC_S_INUSE

Operation cannot be completed because the object is still being referenced.

No mistake. The server will finish the operation later.

0xC0040010

OPC_E_INVALIDCONFIGFILE

Bad server configuration file

The server is unable to read its configuration. To resolve this error, consult the server’s documentation.

0xC0040011

OPC_E_NOTFOUND

The server could not find the requested object.

The configuration of the VisXpert OPC client and the OPC server does not fit together; possibly as a result of interactions with other clients or changes in the bus structure.

0xC0040203

OPC_E_INVALID_PID

Property ID is unknown to the server

VisXpert does not use properties, so this error should never occur.

Messages derived from OPC quality information

The OPC specification provides that the server provides a quality specification for each value it provides. For servers working according to version 1 of the specification, this is the only way to report certain errors to its clients.

The following messages are generated by VisXpert when it discards a value because the server does not specify sufficient quality for it.

Note: Servers that support version 2 of the OPC specification can provide each value with its own status code (error number). VisXpert then evaluates this more precise specification.

0xC1070008

ERR_VAL_UNCERTAIN

uncertain value, reason: not specified

The server does not specify why it could not reliably determine this value.

0xC1070009

ERR_VAL_INACCURATE

uncertain value, reason: inaccurate

The server indicates that the value is inaccurate.

0xC107000A

ERR_VAL_LOLIMIT

uncertain value, reason: at lower range limit

The value cannot be reliably determined because it has left the range of values at the lower limit.

0xC107000B

ERR_VAL_HILIMIT

uncertain value, reason: at the upper range limit

The value cannot be reliably determined because it has left the range of values at the upper limit.

0xC107000C

ERR_VAL_SUBNORMAL

uncertain value, reason: not reliably determined

The value could not be determined reliably (e.g. conflicting information from several sources).

0xC107000D

ERR_VAL_INVSUBQA

uncertain value, OPC server indicates invalid reason

The server classifies the value as uncertain, but specifies a reason not defined in the specification.

0xC107000E

ERR_BADQ_NONSPEC

no value, reason: not specified

The server cannot determine the value and does not specify a reason for it. Many servers primarily deliver this status while they are still busy getting the first value for an item.

0xC107000F

ERR_BADQ_CFGERR

no value, reason: configuration error

The server cannot determine the value because its configuration for this item is incorrect.

0xC1070010

ERR_BADQ_NOTCONN

no value, reason: not connected

The input from which this value is to be read is not connected

0xC1070011

ERR_BADQ_DEVFAIL

no value, reason: device error

The device from which the server is reading this value is not working properly.

0xC1070012

ERR_BADQ_SENSORFAIL

no value, reason: sensor error

The sensor from which this value is read is not working properly.

0xC1070013

ERR_BADQ_SENSORLOLIM

no value, reason: lower limit of the sensor

The value cannot be read because it is below the measurement range of the sensor.

0xC1070014

ERR_BADQ_SENSORHILIM

no value, reason: upper limit of the sensor

The value cannot be read because it is above the measurement range of the sensor.

0xC1070015

ERR_BADQ_SENSORCONST

no value, reason: Sensor can only provide constant value

The value cannot be determined, the output of the responsible sensor is constant.

0xC1070016

ERR_BADQ_LASTKNOWN

no value, reason: value not current

This is the last known value of this item before communication to the source was interrupted.

0xC1070017

ERR_BADQ_COMMFAIL

no value, reason: communication error

The value cannot be read because of a communication error.

0xC1070018

ERR_BADQ_OUTOFSERVICE

no value, reason: not in access

The value is not in the server’s access for some reason.

0xC1070019

ERR_BADQ_INVSUBQA

no value, OPC server specifies invalid reason

The server classifies the value as invalid, but specifies a reason not defined in the specification.

0xC107001A

ERR_VAL_INVQA

no value, quality (status) specification of the OPC server is invalid.

The quality level reported by the server is undefined.

OPC-related messages of the VisXpert communication module

0xC1070007

ERR_OPC_NORESULTRETURN

OPC server did not provide a result

The OPC server did not report an error or produce a result when calling a function where this is not allowed. This is a violation of the OPC specification. Contact the manufacturer of the server for a bug-cleaned version.

0xC107001B

ERR_CNV_OPCTOGP

Conversion OPC to VisXpert unknown

The conversion between the VisXpert data type supplied by the server and the desired VisXpert data type is not possible.

0xC107001C

ERR_CNV_ARREBYREF

Array element passed as reference

The OPC server sent a value that consists of an array of references to other values. Such fields are not generally allowed and are not supported by VisXpert.

0xC107001D

ERR_CNV_ARREARR

Array Elements as Array Elements

The OPC server sent a value consisting of nested arrays. Such fields are not generally allowed and are not supported by VisXpert.

0xC107001E

ERR_CNV_ARREUNK

Unknown type in Varriant array

The server sent a value that consists of an array that contains elements of a VisXpert unknown type.

0xC107001F

ERR_CNV_VARARR

VARIANT array not yet supported

The server sent a value consisting of an array of VARIANTs. Such fields are not generally allowed and are not yet supported by VisXpert.

0xC1070020

ERR_CNV_BYREF

Value transfer as a reference not allowed in OPC

The server has sent a value that must be addressed as a reference. This is not allowed by the OPC specification and is not supported by VisXpert.

0xC1070021

ERR_CNV_GPTOOPC

Conversion VisXpert to OPC unknown

It is not possible to convert the VisXpert variables to the type of The OPC item (when writing).

0xC1070022

ERR_OPC_ZEROTRANSID

Transaction ID 0 prevents job assignment

According to version 1 of the OPC specification, the OPC server assigns transaction identifiers. The ID 0 is not allowed.

0xC2000013

ERR_KOMM_NOTOPCDASRV

COM object is not an OPCDA server

The entry under “OPC Server” in the group configuration refers to a program that is not a server after OPC DA (Data Access) version 1 or 2.