There is no easy way to determine when tags will be required with this driver due to the ability to set a default datatype within the device properties.
During the device creation process, the wizard prompts the user to define a default data type for all tags requested from the device. If this is left unchanged (and set to 'Default') then the driver will not know what the data type of the symbolic tag name is until the tag is first read by the driver (unless it is defined in a static tag within the project manually or through the use of Automatic Tag Generation).
OPC Clients, when issuing a dynamic address request to the server, will be notified of the updated data type for future use in both read and write operations. It is up to the client to act upon that notification and update the item reference accordingly. Our OPC Quick Client has this feature.
Non-OPC client applications (such as Wonderware InTouch) do not receive the data type modification notification, so the client may not have the correct data type when issuing a write request to the server. Subsequently, the server will reject the write request due to the data type mismatch.
The error code indicating a data type mismatch is returned to OPC client applications in the WriteResponse() notification and this can be seen in OPC Diagnostics, however non-OPC client applications do not have a visible diagnostics layer, so no error code can be seen and the write attempt appears to fail for no valid reason.
There are two options to prevent this from happening.
First: Set the default data type in the Device Properties to the most common data type programmed in the controller for all symbolic tag items. That gives the driver a data type to use when attempting to complete the dynamic item write request operation. Most of the time there is a chance that it will succeed.
Second (preferred): Append the item definition in the WonderWare/InTouch Tagname Dictionary with the @[Data Type] modifier of the item that is being called from the server's address space. This is common practice and is recommended with all non-OPC client applications.
Example:
Channel1.Device1.Tag1@Float
or
Channel1.Device1.Tag2@Boolean
For Wonderware/InTouch, the channel name and device name are typically aliased to match the Topics defined, so all you should need to modify in the Tagname Dictionary is the Item syntax to contain the @[Data Type] modifier.
Best regards,
Andy Servetas
Principal Technical Support Engineer | Kepware Technologies