Please enable JavaScript to view this site.

DAQFactory User's Guide

Navigation: 17 Devices

17.12 OPC-DA device

Scroll Prev Top Next More

The OPC device allows you to communicate with any OPC server either locally or on a remote computer.  An OPC server is a piece of software that translates the proprietary protocols used by PLC's and other devices into a standard language called OPC that DAQFactory can communicate.  OPC servers are not included with DAQFactory, but a large selection is available separately from AzeoTech.  DAQFactory also has some native support for PLC's and other devices included in the Connectivity pack.  This includes the generic Modbus protocols and many specific manufacturer protocols.

Device Configurator:

DAQFactory offers a configurator for very quickly selecting OPC tags and creating channels to access these tags from within DAQFactory.  You can access the configurator by selecting Quick – Device Configuration... from the main menu.  If you do not have any OPC channels yet, you will be prompted with a window to find your OPC server:

OPCBrowser

If you are trying to find a remote server, Windows sometimes does not keep an accurate listing of the available networked computers.  If the remote computer you need does not appear, you can click on the Add Host button to manually enter the name of the remote host.

After selecting, the configurator window will appear:

image38

At top of the wizard dialog is displayed the currently selected server.  You can change the selected server by clicking the Find Server button to the right.  In order to support remote connections, the server is indicated using a GUID.  Although not that human friendly, this unique identifier works well over a network.  

The rest of the window is split into two tables that display the input tags and output tags for the currently selected server.  Above each table is the Browse button that allows you to browse for tags on the currently selected server.  This will open up another dialog box with the tags on the server.  Simply double click on the desired tags and they are added to the list.  You do not need to close the browse dialog box with each tag. You can add multiple tags very quickly this way.  When a new tag is added a channel name is produced from the tag name by removing invalid characters (such as the period that is typically in OPC tags).  You can use this default channel name, or enter your own in the table.  

For your convenience, the most recently polled value for each Channel is displayed in the Value column of the Input Tags table.  You can also set output tags by entering the output value in the Value column of the Output Tags table.

Device Details:

It is strongly recommended that you use the device configurator for specify OPC tags.  There are a few details that need to be mentioned though about the channels that are created:

By default, all input tags are setup in asynchronous mode.  This means that the OPC server only sends a new value to DAQFactory when that value changes up to a maximum rate of 10 updates per second.  If the value does not change, no new data is created.  This may result in a blank space in the data log.  To avoid this, specify Duplicate Last Value in your logging set.

Async tags also can act as output tags.  Simply set the channel to a value and the value will be sent to the OPC server as an output.

Async mode is definitely the preferred mode as it is more efficient.  For fast changing systems where you do not need 10 hz update speeds, you may want to set your channels into synchronous mode.  In this mode, the Timing parameter of each channel determines when the value is read.  The value is read whether it has changed or not.  You can switch any channels to sync mode by changing the I/O type of the channels.  Remember to set the Timing parameter as well to the desired polling interval.

For string tags, you will need to change the I/O type of the channel to String Read.  String reading is async only.

For array tags, you will need to change the I/O type of the channel to Array Read.  Array reading is async only.