Op Clink
Op Clink
Op Clink
All rights reserved. No part of this documentation shall be reproduced, stored in a retrieval system, or transmitted by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior written permission of Invensys Systems, Inc. No copyright or patent liability is assumed with respect to the use of the information contained herein. Although every precaution has been taken in the preparation of this documentation, the publisher and the author assume no responsibility for errors or omissions. Neither is any liability assumed for damages resulting from the use of the information contained herein. The information in this documentation is subject to change without notice and does not represent a commitment on the part of Invensys Systems, Inc. The software described in this documentation is furnished under a license or nondisclosure agreement. This software may be used or copied only in accordance with the terms of these agreements.
2003, 2004 Invensys Systems, Inc. All Rights Reserved. Invensys Systems, Inc. 26561 Rancho Parkway South Lake Forest, CA 92630 U.S.A. (949) 727-3200 http://www.wonderware.com Trademarks All terms mentioned in this documentation that are known to be trademarks or service marks have been appropriately capitalized. Invensys Systems, Inc. cannot attest to the accuracy of this information. Use of a term in this documentation should not be regarded as affecting the validity of any trademark or service mark. Alarm Logger, ActiveFactory, ArchestrA, Avantis, DBDump, DBLoad, DT Analyst, FactoryFocus, FactoryOffice, FactorySuite, FactorySuite A2, InBatch, InControl, IndustrialRAD, IndustrialSQL Server, InTouch, InTrack, MaintenanceSuite, MuniSuite, QI Analyst, SCADAlarm, SCADASuite, SuiteLink, SuiteVoyager, WindowMaker, WindowViewer, Wonderware, and Wonderware Logger are trademarks of Invensys plc, its subsidiaries and affiliates. All other brands may be trademarks of their respective owners.
Contents
Contents
Wonderware OPCLink.........................................5
Introduction ............................................................................................ 5 Communications Protocols................................................................. 5 Accessing Remote Items via OPCLink .............................................. 6 Optimizing an OPCLink Network.......................................................... 7 OPCLink Main Window ........................................................................ 8 File Menu ............................................................................................... 9 New..................................................................................................... 9 Open.................................................................................................... 9 Save As ............................................................................................... 9 Exit...................................................................................................... 9 Configuring OPCLink .......................................................................... 10 Configuring a Topic Definition .............................................................11 Topic Definition.................................................................................11 OPCLink Topic Definition ............................................................... 12 Configuration File Format ................................................................ 18 Saving Multiple Configuration Files ................................................ 19 Configuring OPCLink (Server) Settings .............................................. 20 Server Settings .................................................................................. 20 OPC Servers ......................................................................................... 22 The Synchronous OPC Server Activation ........................................ 22 Local Server CoCreate Option ......................................................... 23 Poke Retries ...................................................................................... 23 Reconnect to OPC Server after......................................................... 23 Configuring the Logger........................................................................ 24 Configuring Security ............................................................................ 25 Data Menu ............................................................................................ 26 Data Monitor..................................................................................... 26 Dump Active Data ............................................................................ 29 DB Dump.......................................................................................... 30 OPC Server Status ............................................................................ 30 Help Menu............................................................................................ 32 Contents ............................................................................................ 32 How to Use Help .............................................................................. 32 About OPCLink ................................................................................ 32 Item Names .......................................................................................... 33 Predefined Item/Point Names............................................................... 34 UPDATEINTERVAL Item ............................................................... 34 STORESETTINGS Item .................................................................. 34 ITEMCOUNT Item .......................................................................... 35 ERRORCOUNT Item....................................................................... 35 WRITECOMPLETE Item ................................................................ 35 STATUS Item.................................................................................... 36 READCOMPLETE Item .................................................................. 36
Contents
POLLNOW Item ...............................................................................37 Monitoring OPCLink Communications to OPC Servers......................38 Using the Status Item in Excel ..........................................................38 Monitoring the Status of an InTouch I/O Conversation........................39 Using DDEStatus and IOStatus in Excel...........................................39 Reading Values from OPCLink into Excel ...........................................40 Writing Values to OPCLink from Excel ...............................................41 Troubleshooting I/O Server Communications Problems ......................42 Debugging Communications Between InTouch and an I/O Server ..42 Debugging Communications Between SuiteLink and an I/O Server 45 Debugging Communications Between an I/O Server and a PLC......45 Special Wonderware Logger Messages ................................................53
Wonderware OPCLink
Wonderware OPCLink
Introduction
The Wonderware OPCLink is a Microsoft Windows application program that acts as a communications protocol converter. This allows other Windows application programs access to data from local or remote OPC servers. OPCLink detects automatically which OPC data access version is implemented in OPC servers (up to version 2.05) and uses the latest version available. OPCLink connects to OPC servers, converts client commands to OPC protocol and transfers data back to clients using DDE, FastDDE, or SuiteLink.
Communications Protocols
Dynamic Data Exchange (DDE) is a communications protocol developed by Microsoft to allow applications in the Windows environment to send/receive data and instructions to/from each other. It implements a client-server relationship between two concurrently running applications. The server application provides the data and accepts requests from any other application interested in its data. Requesting applications are called clients. Some applications such as InTouch and Microsoft Excel can simultaneously be both a client and a server. FastDDE provides a means of packing many proprietary Wonderware DDE messages into a single Microsoft DDE message. This packing improves efficiency and performance by reducing the total number of DDE transactions required between a client and a server. Although Wonderware's FastDDE has extended the usefulness of DDE for our industry, this extension is being pushed to its performance constraints in distributed environments. SuiteLink uses a TCP/IP-based protocol and is designed specifically to meet industrial needs such as data integrity, high-throughput, and easier diagnostics. This protocol standard is supported on Microsoft Windows 2000, Windows XP, and Windows 2003. SuiteLink is not a replacement for DDE or FastDDE. The protocol used between a client and a server depends on your network connections and configurations. SuiteLink was designed to be the industrial data network distribution standard and provides the following features:
Value Time Quality (VTQ) places a time stamp and quality indicator on all data values delivered to VTQ-aware clients. Extensive diagnostics of the data throughput, server loading, computer resource consumption, and network transport are made accessible through the Microsoft Windows 2000, Windows XP, and Windows 2003 operating systems performance monitor. This feature is critical for the scheme and maintenance of distributed industrial networks.
Wonderware OPCLink
Consistent high data volumes can be maintained between applications regardless if the applications are on a single node or distributed over a large node count. The network transport protocol is TCP/IP using Microsofts standard WinSock interface.
topic name
Wonderware OPCLink
Wonderware OPCLink
The current configuration file and its full path are displayed in the main window title bar. If any topic is active, it will appear in the client area of the main window called the topic monitor list.
Wonderware OPCLink
File Menu
The File menu options deal with loading and saving the internal topic configuration database.
New
Clears the internal topic database for a new topic configuration.
Open
Replaces the internal topic database with the information contained in the new topic configuration file.
This file is automatically loaded the next time OPCLink is started. This menu is disabled when OPCLink is active.
Save As
Saves the internal topic database under a new name.
This option is only needed if you want to save the configuration under a different name. If you edit the internal topic database, the data is stored automatically in the current configuration file. This menu is disabled when OPCLink is active.
Exit
Terminates OPCLink.
10
Wonderware OPCLink
Configuring OPCLink
Once OPCLink has been installed, some configuration is required. Configuring OPCLink automatically saves the data in a configuration file. If no configuration file is selected, the user is prompted to select a file name.
To access the options used for the various configurations, open the Configure menu.
Note If any of the options appear dimmed, then these options are not available with this software version.
Wonderware OPCLink
11
One or more topic definitions must exist for each OPC server for communicating with OPCLink. Each topic definition must contain a unique name. When this option is selected, the Topic Definition dialog box will appear:
Topic Definition
Note Once topics have been defined, their names will be listed in the Topics section of this dialog box.
1.
Click this Done button to close the dialog box and accept any new definitions, modificationss or deletions made.
2.
To modify or view an existing topic definition, select its name in the list and click on the Modify button.
The OPCLINK Topic Definition dialog box (described below) will appear displaying the selected topic definition.
3.
To delete an existing topic definition, select its name in the list and click on this button.
12
Wonderware OPCLink
4.
1.
Note When communicating with InTouch, this exact name is used as the topic name in the Access Name definition.
2.
If you want to use DCOM for connecting to a remote OPC server, you must specify the name of the computer where the remote OPC server resides.
Note You have to execute DCOMCNFG by clicking on the Start button on the taskbar and selecting the Run option of the remote OPC server computer to allow OPCLink or other OPC clients to access.
3.
Select the name of the OPC server that will be used by this topic.
Wonderware OPCLink
13
The list box shows the registered OPC servers in the system.
4.
This OPC Path is the first part of a full OPC item name string common to all items used in this topic. In a hierarchical address space, it usually is the item name without the leaf section. OPCLink combines the OPC Path and I/O name to construct the fully qualified OPC name.
Note If the OPC server supports browsing, you can view its exposed address space via the Browse button.
5.
Enter the frequency (in milliseconds) that OPCLink will acquire data for the items/points associated with this topic.
If you enter zero, OPCLink will not gather data from the OPC server.
Note Different items/points can be polled at different rates by defining multiple topic names for the same PLC and setting different update rates for each topic.
6.
If this box is checked, a client can read and write this topics update interval through the I/O item name: UPDATEINTERVAL. If this box is not checked, the client only reads the update interval.
7.
Select this option to process all pokes within this topic as asynchronous pokes.
All OPC servers should support both synchronous and asynchronous pokes.
8.
In OPC, reading and poking are absolutely independent from each other. However, to avoid inconsistencies in your client showing the value, you can select how OPCLink will process reading after a poke occurred. None: Standard behavior as suggested by the OPC Foundation.
This is the fastest way to read and poke values. Wonderware OPCLink Users Guide
14
Wonderware OPCLink
Select this option if you need fast updates of reading values and flickering of poked values in the client is not important for you. Note that with some OPC servers (the minority of them) the client may not show the correct value of the device after the poke. This selection will process the poke only.
Refresh after poke: Selecting this option forces OPCLink to refresh all values on that topic after a poke occurred.
This guarantees that the latest values in the device will be seen in the client. Nevertheless, there may be a flickering of the values because in the meantime regular-read messages may arrive.
Demand read after poke: Selecting this option forces OPCLink to refresh all the poked values after the poke has been processed.
During this time, all-read messages from the OPC server, related to the poked items, will be blocked. This prevents the client from flickering and will show the latest values of the device in the client.
For example: OPC server value = 5. Client pokes a value of 3. OPC server value initially changes to 3. But the OPC server value is rapidly reset to a value of 5 by some other method. OPC server may not report the transition of value from 3 to 5. Results will be, the OPC server value is 5, but the client value is still 3.
With Refresh after poke or Demand read after poke enabled, both the OPC server and the client will show the same value as 5 afterwards.
9.
OPCLink will monitor all transactions (pokes, demand reads, and so on) for completion with respect to this timeout.
Note Transactions are finite operations on a fixed list of items. Transaction timeouts should never occur. Every OPC server is required to complete transactions with or without errors. This timeout is a safety procedure designed to avoid leaving any items in the pending state when transactions are not completed due to a malfunctioning OPC server. This timeout should be set to a value, which allows the OPC server to complete any transaction within this time frame (including large recipe downloads, and so on).
Wonderware OPCLink
15
10. Select any of these three option buttons to tune the poking behavior to the PLC. The three modes behave as follows. Control mode: This mode makes no folding of write values.
This should be selected when using this topic with control clients like InBatch and InControl. If selected the server processes all poked values in the order they are received from a client and makes no folding of poke values.
Transition mode: This mode implements poke optimization except the server receives more than one value per item in one timeslice.
If this happens only the first, the second, and the last value is poked. This is the default selection and preserves InTouch sliders from stuttering.
Full optimization: This mode tells the server that it should build poke messages regardless of folding and poke-order aspects. Note The highest performance can be achieved with the Full optimization mode. But if you must be aware of the poke order and that no intermediate poke value is lost, you have to choose the Control mode.
OPC and the underlying COM layer do not notify clients if a server has exited or has ceased to supply data.
When the Lifecheck option is enabled, OPCLink checks regularly if it receives data from an OPC server. If data does not arrive in a certain timeout interval, OPCLink forces a refresh through an asynchronous call. If this call fails or the OPC server fails to respond in a timeout interval, the topic status is set to 0 (BAD) and all items are set to bad quality (communications failure).
16
Wonderware OPCLink
Timeout interval is calculated according to the following formula: timeout = updateinterval + OPC communications timeout where, OPC communications timeout is set to the value specified in the Timeout:' edit box (in milliseconds).
This dialog box allows you to browse through exposed address spaces of the OPC servers.
If the OPC server has a flat address space, the Browser window is not divided.
Wonderware OPCLink
17
This box shows you in which PC the currently connected OPC server resides.
The OPC Path edit box is automatically filled while browsing through the OPC servers address space.
12. You can override it by manually entering a string. Note The OPC Path is the first part of a full OPC item name string common to all items that will be used in this topic. In a hierarchical address space, it usually is the item name without the leaf section (combined branches in the Browse OPC items tree view). OPCLink will combine the OPC Path and the I/O name to construct the fully qualified OPC name passed to an OPC server.
The filter allows you to display only names that match the filter string. Use wildcards for missing characters!
For example: For filtering of items beginning with MB, type in MB*. Note Not all OPC servers support filtering.
The data types selection allows you to display only names that match the data type.
18
Wonderware OPCLink
This is the tree view of the OPC servers hierarchical address space with the branches on the left side and the leaves on the right side. Note Not all OPC servers have a hierarchical address space and/or support browsing.
13. Click OK to close the dialog box. Note If a filename has not been defined, the OPCLink server prompts you to enter a filename for saving the configuration.
It complies with the Windows profile format having a section for each topic and a general section for server information.
Note However, in order to avoid damage to the internal structure of the configuration file, it is recommended not to manually edit this file.
Wonderware OPCLink
19
Example of an OPCLINK configuration file: [GENERAL_SETTINGS] ALLOW_ACTIVE_TOPIC_MODIFICATION=1 [S7400_EMU] UPDATEINTERVAL=1000 ENABLE_ACCESS_TO_UPDATE_INTERVAL=0 OPC_SERVERNODE= OPC_SERVERNAME=OPC.SimaticNet OPC_PATH=[S7:EcoscreenEMU|EMU|S7TCPIP] POKE_ASYNCHRONOUSLY=1 LIFECHECKTIMEOUT=0 REFRESH_AFTER_POKE=0 POKEMODE=1
20
Wonderware OPCLink
When the Server Settings option is selected, the Server Settings dialog box will be displayed.
Server Settings
1.
Enter the frequency (in milliseconds) that the server is to check for data to process.
This should be approximately two to four times faster than the fastest rate desired to update data from the equipment.
Note The default protocol timer tick value will vary between servers. Note For OPCLink, the protocol timer tick only effects activations, deactivations, and pokes. All updates are done immediately after new data has been received from an OPC server.
2.
To create a new default configuration file, enter the complete path for the directory in which the file is to be saved in this field.
Wonderware OPCLink
21
This new path will automatically be written to the WIN.INI file and the server will use this path to load its configuration file the next time it is started.
Note There is no limit to the number of configuration files created. When using the server with InTouch, we recommend that you save the configuration file in your application directory.
3.
Windows 2000, Windows XP, or Windows 2003 offers the capability of running applications even when a user is not logged on to the system. This is valuable when systems must operate in an unattended mode. Enabling this option and restarting the system will cause OPCLink to run as a Windows 2000, Windows XP, or Windows 2003 service.
Note However, to view configuration information or to reconfigure the server, you must log on to the system. Any server-related problems that may arise such as missing adapter cards, licensing failures, or device drivers not loading will not be visible to you until a logon is performed.
Disabling this option and restarting the system will cause OPCLink to run as a Windows application program once again.
Note It is highly recommended that both OPCLink and its OPC servers are configured and communicating successfully prior to running them as Windows NT services. Also, both OPCLink and its OPC servers should be running as Windows 2000, or Windows XP, or Windows 2003 services at the same time, especially when they are remote from each other. 4. 5. Click Cancel to close the dialog box without saving changes. Click OK to accept OPCLink settings.
6.
Note You must restart OPCLink for the changes to take effect.
22
Wonderware OPCLink
OPC Servers
Use the OPC Servers option from the Configure menu to access the OPC Server Configuration window.
This window lists all OPC Servers alphabetically, referenced by configured topics.
To configure the settings for a listed server name 1. 2. Double-click the server name, or select the server name. Click Configure.
Wonderware OPCLink
23
Leaving this check box unchecked allows OPCLink to perform different tasks (data acquisition and so on), while starting up and activating an OPC server. However, some OPC servers work in a 'Handler' mode, requiring this box to be checked to work correctly. In this mode, the OPC server is activated synchronously making OPCLink wait for the completion of the startup. Asynchronous operation of the OPC settings will enhance performance. This is a desired behavior.
Poke Retries
When there are Poke errors, OPCLINK will try single pokes; the number of retries is configurable.
Note If several pokes have been processed within the same time (example: recipe download), only pokes with errors are retried.
You can enter a latency time (in seconds) to wait on reconnecting. Entering 0 sec instructs OPCLink to immediately reconnect after detecting the connection failure.
Note In normal operation mode, OPCLink should always be configured to reconnect to an OPC server after a connection failure. To allow manual shutdown of OPC servers, disable this setting or configure a timeout that allows the OPC server to complete the shutdown before OPCLink attempts to restart.
24
Wonderware OPCLink
Select ERRORS for normal operation message and error logging to the Wonderware Logger. Select TRACE to log errors and all activation/deactivation activities including calls to OPCLink. If you select ALL, the server will log all activities including single-item value updates. Selecting OFF disables all message logging. The option Show protocol, enables logging of further interactions with connected OPC servers.
Note When logging activity increases, OPCLinks performance degrades. Note The logger mode defaults to ERRORS and deselects Show protocol whenever OPCLink is started.
Wonderware OPCLink
25
Configuring Security
This option is used to lock the servers configuration against changes during runtime.
1.
This dialog box shows the default state of this option. All topics are locked against changes while the server is active (a client is connected). You can still view the topic configurations.
Select the Allow configuration while topics are active check box to access some elements of the topic configuration while the topics are active.
2. 3.
You can change the Update Interval, Refresh after poke, and Enable access to update interval. You cannot add, delete, rename, or change other properties of a topic.
Click OK to close the dialog box. To close the Security dialog box without saving the changes, click Cancel.
26
Wonderware OPCLink
Data Menu
The Data menu offers functionalities, Data Monitor, Dump Active Data, and OPC Server Status for diagnostic purposes during runtime (when a client is attached). Also, it provides capability, DB Dump, to transfer the internal topic database to InTouch.
Data Monitor
1. Select the Data Monitor option from the Data menu to display information about a selected topic with active items or errors.
The information is updated as it changes. This is a useful tool for tracking down errors, determining performance, and validating item values. When the Data Monitor option is selected, the OPCLink Data Monitor dialog box is displayed.
Wonderware OPCLink
27
The Data Monitor dialog box displays information of any topic with active items or errors. The data is updated as it changes.
This drop-down list box allows you to select any of the active topics.
A preceding * indicates that at least one item in this topic has an error while a preceding # indicates bad status.
This box displays the current configured update interval of the topic.
This box displays the current configured update interval of the corresponding group from the OPC server.
This box displays the number of active items and the number of items with errors (in parenthesis).
If you check this box, only items with errors will be displayed in the Item Data list box.
The Item Data list box adapts to the size of the dialog box.
28
Wonderware OPCLink
The Item Data list box displays information about each item. The box is divided into 5 columns.
The first column displays the data quality. The second column shows the timestamp of the last update of that item. The third column indicates the type enumerator (VARIANT type). The fourth column shows the item value (represented as Hexadecimal value or as String). The last column contains the item name.
Note For further information of the Quality value and the VARIANT type, refer to the OPC documentation provided by the vendor of your OPC server. 2. Click on an item line to generate a dialog box displaying the item properties:
3.
Click the Dump button to dump the contents of the monitor window into an ASCII text file.
The resulting file can be loaded into Excel or any standard text editor. All columns are separated by tabs.
After the dump is complete, a message box containing the newly created ASCII text file name is displayed.
Wonderware OPCLink
29
The server automatically generates the ASCII text file name and sets the files location using the following pattern: <current working directory>\datmonXX.txt Where XX is a two-digit number between 00 and 99.
OPCLink increments the number each time a file is dumped. When this number reaches 99, it will restart again from 00 in a cyclic fashion.
Note Existing files with the same name are erased. 4. Click OK to return to the Data Monitor dialog box.
The resulting file can be loaded into Excel or any standard text editor. All columns are separated by tabs.
After the dump is complete, a message box containing the newly created ASCII text file name is displayed:
The server automatically generates the ASCII text file name and sets the files location using the following pattern: <current working directory>\datdmpXX.txt Where XX is a two digit number between 00 and 99.
30
Wonderware OPCLink
When this number reaches 99, it will restart again from 00 in a cyclic fashion.
DB Dump
This command is used to dump the internal topic database into a CSV file.
The resulting file can be loaded into InTouch using Wonderwares DbLoad utility.
An OPC server will provide the time it was started, time of last update, current time, its status (OPCLink adds a string which displays the version of OPC data access used by this OPC server), vendor information, version information, number of connected groups, and bandwidth it is consuming. This dialog box is only available if there are OPC servers connected.
Wonderware OPCLink
31
32
Wonderware OPCLink
Help Menu
The Help menu contains three options that are used to access help for the server.
Contents
This option is used to display the table of contents for the Help file.
About OPCLink
This option provides the product name, software version , copyright, and licensing information.
Wonderware OPCLink
33
Item Names
The OPCLink item syntax is based on the following rules.
Each item name must start with a prefix: d i r m discrete value integer value real value message value
The item names added to the OPC path of the topic without the prefix must give a fully qualified OPC item name for the OPC server of the topic.
Example: item name: topic: OPC path: OPC server: results in the OPC item: itemperature Slave0 PROFIboard DP_0.Master0.Slave0. Softing.OPC_DP PROFIboard DP_0.Master0.Slave0.temperature
The example shows that every slave/updateinterval combination has its own topic.
If you choose to have fewer topics, you can also configure the follwoing: iSlave0.temperature Master0 PROFIboard DP_0.Master0 Softing.OPC_DP PROFIboard DP_0.Master0.Slave0.temperature
item name: topic: OPC path: OPC server: results in the OPC item:
The slave information is part of the item name and each Master/updateinterval combination has its own topic.
34
Wonderware OPCLink
UPDATEINTERVAL Item
The UPDATEINTERVAL item is used to access the currently set update interval.
It is the same value displayed in the monitor window of OPCLink. It indicates the currently requested update interval in milliseconds. If the corresponding topic is configured for "Enable I/O access to update interval," a client can poke new values into this item. In any case, the value can always be read through the I/O. The range of valid values differs with respect to the topic settings. The value of zero indicates that no items on that topic are updated. I/O Type: ACCESS: RANGE: INTEGER READ/WRITE (if configured) 1..2147483647 0 (topic inactive, no items are updated)
Note By poking a value of zero into the update interval item, a client can conveniently stop all update activities on the corresponding topic without having to deactivate the items.
STORESETTINGS Item
The STORESETTINGS item is used to make the temporary update interval changes via I/O permanent.
If the client pokes a value of 1 into the STORESETTINGS item, the currently set update interval is written to OPCLinks configuration file. If the update interval has been changed via I/O and STORESETTINGS is not poked to 1, OPCLink will use the original update interval for that topic the next time it is started. Reading the item will always give 0. I/O Type: ACCESS: RANGE: DISCRETE READ/WRITE 0, 1
Note Use this item to conveniently store your optimized configuration via I/O.
Wonderware OPCLink
35
ITEMCOUNT Item
The ITEMCOUNT item is used to access the number of active items in the corresponding topic.
It is the same value displayed in the data monitor window of OPCLink under "Items." This item is read-only. I/O Type: ACCESS: RANGE: INTEGER READ 0..2147483647
Note Use the ITEMCOUNT item monitor the number of currently active items.
ERRORCOUNT Item
The ERRORCOUNT item is used to access the number of active items that have errors in the corresponding topic.
It is the same value displayed in the data monitor window of OPCLink under "errors ( ) only." If the communications status of a topic is bad, all items have errors (item count equals error count). This item is read-only. I/O Type: ACCESS: RANGE: INTEGER READ 0..2147483647
Note Use the ERRORCOUNT item to monitor if there are any badly configured items or invalid item values. This is the case if the topic status is 1 and ERRORCOUNT is not zero.
WRITECOMPLETE Item
The WRITECOMPLETE item is used to access the state of pending write activities on the corresponding topic.
If the topic is opened, the value of the WRITECOMPLETE item is initially 1 indicating all write activities are complete - no pokes are pending. If values are poked into any items of the topic, the value of the WRITECOMPLETE item changes to 0 indicating write activity is currently in progress. If the server has completed all write activities, the value of the WRITECOMPLETE item changes to 1 if all pokes were successful or to 1 if at least one poke has failed.
36
Wonderware OPCLink
If the value of the WRITECOMPLETE item is not zero, the client can poke 1 or -1 to it ( poke a 1 to clear errors or a -1 to test a client reaction on write errors). I/O Type: ACCESS: RANGE: INTEGER READ/WRITE -1,0,1
Note Use the WRITECOMPLETE item to serialize a sequence of poke value into a single item, or to monitor success or failure of poking into one or more items.
STATUS Item
The STATUS item is used to access the state of communications between OPCLink and an OPC server.
The discrete item, STATUS, is set to 1 when communications is successful, or is set to 0 when communications with the OPC server fails. I/O Type: ACCESS: RANGE: DISCRETE READ 0,1
READCOMPLETE Item
The READCOMPLETE item is used to access the state of initial reads on all items in the corresponding topic.
If the topic is opened and no item is advised, the value of the READCOMPLETE item is 0. After all activated items have been read once, the READCOMPLETE item changes to 1. If at least one item could not be read, the READCOMPLETE item alters to -1 indicating there have been read errors. If at least one new item is advised, now READCOMPLETE changes to 0 and after this/these item(s) has/have been read it changes to 1 or -1 again. Poking a 0 to this item resets the internal read states of all items in this topic. This resets the READCOMPLETE item to 0. If all items are read again after this poke, the READCOMPLETE item changes back to 1 or -1. I/O Type: ACCESS: RANGE: INTEGER READ/WRITE -1,0,1
Wonderware OPCLink
37
POLLNOW Item
Poking a 1 to the predefined POLLNOW item forces all items within this topic to be read immediately.
This is useful if you want to get the newest values from the device, regardless of its update interval. You can use this if you want to trigger the reads within a topic on your own. I/O Type: ACCESS: RANGE: DISCRETE READ/WRITE 0,1
Note You can use POLLNOW and READCOMPLETE for measuring of the longest interval. Create a topic with update interval 0. Poke POLLNOW to 1 and READCOMPLETE to 0 and store the actual time. Then wait until "READCOMPLETE" changes back to 1. The difference between the current time and the stored time equals the update interval.
38
Wonderware OPCLink
The discrete item, Status, is set to 0 when communications fails and is set to 1 when communications is successful.
Wonderware OPCLink
39
40
Wonderware OPCLink
Note In this example, each time the value of iMB001,1 changes in the PLC, the OPC Server will automatically send the new value to OPCLink which will update the cell containing the formula in Excel.
Wonderware OPCLink
41
Data_Reference is the row/column ID of the cell containing the data value. =TERMINATE(channel)
Some applications have a limited number of channels, therefore they should be closed when finished. Channel is the channel number returned by the previously executed INITIATE function. =RETURN()
Marks the end of the macro. Note Refer to the .XLM sample Excel poke macro provided on the server program disk. Also refer to the Microsoft Excel manual for complete details on entering Remote Reference formulas for cells.
42
Wonderware OPCLink
Wonderware OPCLink
43
For example: If you start up WindowViewer and cannot successfully establish a conversation with a server, the following Initiating DDE Conversation dialog box will appear:
The information in the second line indicates that you have at least one I/O type tagname defined in your Tagname Dictionary that is associated with an Access Name that defines OMRONFO as the Application Name, and HLPLC as the Topic Name. Make note of exactly how the application and topic names are spelled.
Note This example only applies when using a version of InTouch prior to InTouch 7.0. To troubleshoot communications problems between WindowViewer and the server, perform the following steps as listed. Verify the I/O Server is running. 1. 2. 3. 4. Start the server program. Verify the server is running by checking to see if it is in the Windows Task List. Click the right mouse button on the Windows taskbar and select Task Manager from the menu. Click the Applications tab to view all currently running applications. Or, press the CTRL+SHIFT+ESC keys.
If the I/O Server is running, verify the I/O Server's program name is correct in all WindowMaker Access Name definitions. 1. 2. Switch to (or start) WindowMaker. Select Access Names from the Special menu
3.
The Access Name Definitions dialog box appears listing all Access Names defined in the WindowMaker.
In the Access Names list, select the Access Name referencing the server and click Modify.
4. 5.
Verify the server's program name in the Application Name box is correct. If it is wrong then correct it and click OK , else click Cancel.
44
Wonderware OPCLink
Note The server's exact "executable name" must be typed in the Application Name box in all Access Name definitions. The ".exe" extension is not used. Note If you are debugging a remote tagname reference, also verify that the node name for the remote computer in the Node Name box is correct. 6. Repeat steps 3 through 5, and verify the server program name is correct in all Access Names that use it.
If you still cannot establish a conversation, verify the exact topic name used in the WindowMaker Access Name definitions are defined in the I/O Server program. 1. Close WindowViewer if it is running.
Note The server cannot be configured if WindowViewer is running. 2. 3. Start the server program. From the servers Configure menu select Topic Definition.
4.
The Topic Definition dialog box appears listing all topic names defined in the server.
Verify that the topic name exists and is spelled exactly the same (including spaces) as the topic name referenced in the WindowMaker Access Name Definitions dialog box.
Note Blank spaces cannot follow the topic name in either the server's Topic Definition or the Access Name definition. 5. 6. If the topic name is different, either correct it in the server or switch to WindowMaker and correct it in the Access Name Definitions dialog box. Once you performed the above procedure, restart WindowViewer and switch to the server program.
Data should now appear in the servers program window to indicate that WindowViewer and the server are communicating.
Note The data in the servers program window indicates the read and write messages the server is sending to and receiving from the PLC. These are not error messages; only status messages are written to the servers program window. 7. If no data appears in the servers program window, switch to the Wonderware Logger to check for error messages. For example, a common error message is: "Error for DDE: OMRONFO|HLPLC!<null>("item") Advise failed"
This message appears when the item defined in one or more tagnames is invalid for the server.
Wonderware OPCLink
45
Note InTouch tagnames use specific naming conventions when accessing data from a server. The valid item names for all Wonderware servers are documented in their respective User's Guides. Typically, the item naming conventions used by each server are consistent with the names used by the equipment manufacturer. For more information on the Wonderware Logger, see your online FactorySuite System Administrator's Guide. If you are still experiencing problems, continue with the following troubleshooting section.
Note SuiteLink uses the Microsoft TCP/IP stack for its communications even if the client application and the server reside on the same node. 2. 3. If you do not have an Ethernet card to bind to the TCP/IP stack, install the Microsoft Loop Back Adapter. Install the Microsoft TCP/IP stack.
46
Wonderware OPCLink
For example, some of the most common errors that may appear in the Wonderware Logger for serial servers are: Response Timeout WCRET = -2 WakeUp = -2 Receive Overrun Framing Errors Note Unless specified otherwise, most serial-communications-based servers are full duplex. If you require a server for half duplex (one that monitors the CTS and RTS lines) or if you are not sure whether the PLC's protocol is full or half duplex, call your PLC supplier. Also, during in-house server testing, it has been found that the communications cards that use the National 16450 and 16550 UARTs seem to be less susceptible to level and timing problems. Cards based on other chips may work, but it is recommended that the National cards be used. Some of the highly integrated UART chips (most notably, Winbond and UMC) have a tendency for their transmitters to stop responding, requiring re-initialization of the UART. If this occurs, you may have to restart the server or execute the Reinitialize I/O command from the Special menu in WindowViewer. Check your cabling to the PLC.
Is it wired correctly? Check for shorts, loose wires, broken wires, crossed wires, and so on.
Note A continuity tester can be helpful here. Verify the I/O Servers serial configuration settings (Parity, Stop Bits, Baud Rate, Handshaking, and so on) against the settings in the hardware device. Verify the communications port is working properly in Windows. 1. Close the server program.
Note If you are using a server that requires a TSR, you will not be able to verify that the port is functioning properly while the TSR is running. Stop all TSRs then continue with this procedure. If you confirm that the port functions properly without the TSR running, change your software interrupt (IRQ) to another number. For example, change 60 to 62. Note Also, if you are using an AT-type computer, two devices cannot share interrupts. Verify that the communications port you are using has a unique interrupt setting. 2. 3. On Windows 2000, Windows XP, or Windows 2003, start the HyperTerminal program. Configure the HyperTerminal program to use the same communications port with the same settings (baud rate, parity, stop bits, and so on) as the hardware device.
Wonderware OPCLink
47
4. 5. 6.
Connect a null modem cable to a second computer's port. On the second computer, start and configure the HyperTerminal program with the same settings as the first computer. Verify that you can send data between the two computers.
Note If you do not have two computers and the computer you are using has another port, start two instances of the HyperTerminal program with each configured to their own port. Then try communicating between them. Note If you have an external modem, connect the modem to the communications port that you are testing to see if you can dial out. 7. If the communications port does not appear to be functioning properly, check your environment files (AUTOEXEC.BAT, CONFIG.SYS, SYSTEM.INI, and WIN.INI).
8.
Look for suspicious programs or drivers that might be taking control of the port or its interrupt before the server is loaded. Always keep your environment files as clean as possible. If you are in doubt about an entry, comment it out.
If the previous step was unsuccessful, try another communications port or another computer.
Note A common misconception of connecting to a PLC with a DOS program and the same communications port will work in Windows is not the case! Windows is an entirely different environment than DOS. What type of UART is on the COM port? If it is not a 16550, then you must lower your baud rate to 9600 or slower.
Only the 16550 UART can sustain continuous, error-free communications at speeds higher than 9600 baud. Other UARTs may work at speeds faster than 9600 baud, but errors may be written to the Wonderware Logger. For example, "Receive Overruns."
To determine which UART you have, enter MSD at a DOS prompt, then choose COM Ports from the MSD menu. Verify the parameters for WWCOMTSR.
For example: Correct: COM1:0 COM2:1,2048,2048 COM1:0 COM2:1 Incorrect: COM1:0 COM2:1,8,8
48
Wonderware OPCLink
Does your computer stop responding when trying to communicate through the COM port?
Note A utility, ShowSoft, is available on the Knowledge Base CD that can assist in determining the available software interrupts. Does your computer lock up?
Verify the COM port's IRQs do not conflict with each other or with other communications boards in the computer.
If the PLC or field device has more than one COM port, verify the connection to the correct port. The COM port on your computer uses the RS-232 hardware communications standard and connects the cable from the COM port to an RS-232-compliant device. Note To connect to an RS-422 or RS-485 port on the PLC, you need an RS232 to RS-422/485 conversion device. If possible, use an external converter instead of a board-based converter that plugs into a slot in the computer. A board-based converter is difficult to get working for inexperienced users. If a board-based converter is not set up properly, it can conflict with other communications boards in the computer such as, internal modems. If you are using the Windows 2000, Windows XP, or Windows 2003 operating system, verify the following: 1. Click Start on the Windows task bar. Point to Settings, then click Control Panel in the menu.
2. 3.
Click on Administrative Tools. In the Administrative Tools dialog box, double-click the Computer Management icon.
Wonderware OPCLink
49
4.
Click on Device Manager and select the COM port you are using for the server. For example:
5.
6.
Fifteen meters (fifty feet) is the maximum practical length for the RS-232 standard.
50
Wonderware OPCLink
Try using a different COM port for the I/O Server. If you are installing an I/O Server or configuring a board-based I/O Server on a computer running on the Windows 2000, Windows XP, or Windows 2003 operating system, log on with Administrator privileges. Note Without Administrator privileges, the server and Server Install program cannot make the necessary edits to the Windows Registry during installation or board configuration of the server. 1. 2. 3. From the Windows taskbar, click on Start. Point to Settings, then Control Panel. In the Control Panel, double-lick on Administrative Tools.
4.
5.
6.
Wonderware OPCLink
51
If you experience occasional or random communications errors in the Wonderware Logger, such as "Response Timeouts," check for noise.
Do the physical cables run past any known noise sources such as photocopiers, fluorescent lamps, fans, pumps, motors, or generators? Are the cables properly shielded from its environment? With radio modems and satellite link-ups, occasional communications errors in the Wonderware Logger are normal and to be expected as long as they do not adversely impact the flow of data.
Increase the Reply Timeout setting in the I/O Server to a value between 5 and 10 seconds.
Not allowing the PLC or field device enough time to respond to the servers request for data may result in communications errors.
Verify the PLC is properly configured and the cable is good by using the programming software for the PLC. 1. Connect to the PLC with the programming software.
2. 3. 4. 5.
The connection must be through the same port and cable. Go into the programming software configuration and write down what the communications parameters are (baud rates, routes, node number, error checking, and so on).
Close the programming software. Open the I/O Server and verify the communications settings are the same. Poke data into the PLC with InTouch or WWClient. Shut down the server and use the programming software to verify that the values were correctly poked.
Note Performance of this test depends upon the type of PLC you are using. Reinstall the I/O Server and verify that you are using the latest version.
Wonderware is continually improving our servers and using the latest version will guarantee the best results.
Note New versions of the Wonderware I/O Servers are released regularly on the Knowledge Base CD. These are available to Comprehensive Support customers from the Wonderware Web site at: http://www.wonderware.com. Move the I/O Servers configuration file to another location on the computers hard drive; this will clear all configuration for the I/O Server. Reconfigure the I/O Server. Note Wonderware server configuration files are typically the exact same name as the servers executable name with the .cfg extension. For example, OMRONFO.cfg. Refer to the Configuration File section of the specific server Users Guide for the exact name of the configuration file.
52
Wonderware OPCLink
Files installed earlier on your computer or the Windows registry may have been corrupted or accidentally modified.
If these troubleshooting suggestions do not solve your problem, there may be a problem with your computer. There are many subtle differences between the various computer hardware brands. Using a computer that is a different brand and meets the following criteria: 1. 2. Select a different PC manufacturer. If this is not possible, try a different PC model from the same manufacturer.
The computer cannot use an OEM (Original Equipment Manufacturer) version of Microsoft Windows. It is highly recommended that only a Microsoft Windows product be used. Contact your vendor to determine if installing an off-the-shelf copy of Microsoft Windows will cause any problems.
If you feel you have tested all possible situations that may be causing your failed I/O communications, contact your local Wonderware distributor for technical support. For more information on obtaining technical support, see your online FactorySuite System Administrators Guide.
Wonderware OPCLink
53
POKE: invalid value, clamp at An invalid value has been specified for high limit for item: <item name> poking data. Value is clamped and on <topic name> transferred to the PLC. POKE: invalid value, clamp at low limit for item: <item name> on <topic name> POKE ERROR: invalid value, cannot convert for item : <item name> on <topic name> An invalid value has been specified for poking data. Value cannot be converted and write operation is aborted. After all write operations are completed, the "writecomplete" item will go to -1. Topic name does not exist. Change topic name or configure the correct topic. Item name does not exist. Check for correct item name.
Error invalid topic name: <topic name> Invalid item name: <item name> (<topic name>)
Write complete (ERROR) item: A write operation has failed on item with <item name> on <topic name> <item name>. New status (<topic name>): 0 (ERROR) New status (<topic name>): 1 (GOOD) ERROR: (hr=<function result>) cannot create OPC server instance of <OPC server>. Connection to the OPC server has gone bad. Connection to the OPC server has gone good again. OPCLink could not create an instance of the OPC server. Check DCOM settings if the OPC server is on a remote computer and check whether the OPC server was installed properly. Look up the system message for <function result> to get a detailed error message. Something went wrong in calling the needed interfaces for an OPC connection. Check the installation of the OPC server and whether the opcproxy.dll was registered correctly.
ERROR: (hr=<function result>) attaching the OPC server failed. You may not have registered the Proxy dll of <OPC server>
54
Wonderware OPCLink
Logger Message
Explanation
ERROR: (hr=<function result>) The OPC server could not add the OPC adding OPC group <topic name> group <topic name>. Some OPC servers do not allow non-alphanumeric characters in their groupnames. Choose another topic name for this topic. ERROR: cannot add OPC item: <OPC item name> to group on topic: <topic name> The OPC server cannot advise the item <OPC item name> within the connected OPC server. This message is followed by a more detailed error message. One reason could be that the specified <OPC item name> is not known in the OPC servers address space.
The following logger messages can occur in normal operation mode if log trace is selected in the logger settings. These messages show the general activity of OPCLink. Note This can slow down the performance of OPCLink. Logger Message TRACE: Topic allocated: <topic name> TRACE: Free topic: <topic name> TRACE: Item <item name> created on <topic name> Activating item <item name> on <topic name> Deactivating item <item name> on <topic name New value for device - item: <item name> on: <topic name> Write complete (OK) - item: <item name> on: <topic name> Explanation A topic has been created (client has connected on this topic). A topic has been freed (client has disconnected on this topic). An item has been created in OPCLink. An item has been activated in OPCLink. A client has advised/requested data. An item has been deactivated in OPCLink. A client has unadvised data A client performed a write operation on an item. The write operation was completed successfully on the protocol. The OPC server has confirmed the reception of data. The sequence for connecting OPC server <OPC server> was successful.
Wonderware OPCLink
55
The following logger messages can occur in normal operation mode if log all is selected in the logger settings. These messages show all of OPCLinks activities. Note This can slow down the performance of OPCLink. Logger Message New <data type> value: <value> for item: <item name> on <topic name> Write complete item: 0 Explanation An item was updated with a new value from the OPC server. A client has initiated write operation, and OPCLink signals the processing of poke values by setting the "write complete" item to zero. All requested pokes from clients have been processed and there were no errors. OPCLink signals the successful processing of poke values by setting the "write complete" item to one. All requested pokes from clients have been processed and there were errors. OPCLink signals that there were at least one item that could not be poked by setting the "write complete" item to minus one.
The following logger messages can occur in normal operation mode if "show protocol" is selected in the logger settings. These messages show the sent and received messages. Note This can slow down the performance of OPCLink. Logger Message OPC Data Access 2.0: TRACE: OPCCallback:: OnDataChange called from "<OPC server>" (dwTransactionID=<transaction id> grphandle=<grouphandle> masterquality=<masterquality> mastererror=<mastererror> count=<itemcount>) TRACE: processing datatime (DA 2.0) from "<OPC server>" (dwTransactionID=<transaction id> grphandle=<grouphandle> masterquality=<masterquality> mastererror=<mastererror> count=<itemcount>) The OPC server sent changed data to OPCLink. Explanation
The received data from an OPC server was processed (used to update all served items).
56
Wonderware OPCLink
Logger Message TRACE: OPCCallback: OnWriteComplete called from "<OPC server>" (dwTransactionID=<transaction id> grphandle=<grouphandle> mastererror=<mastererror> count=<itemcount>) TRACE: processing writecomplete (DA 2.0) from "<OPC server>" (dwTransactionID=<transaction id> grphandle=<grouphandle> mastererror=<mastererror> count=<itemcount>) OPC Data Access 1.0a: TRACE: datatime (DA 1.0a) received from "<OPC server>" (dwSize=<input stream size> dwItemCount=<itemcount> hClientGroup=<client group handle> dwTransactionID=<transaction id> hrStatus=<function result>) TRACE: processing datatime (DA 1.0a) from "<OPC server>" (dwSize=<input stream size> dwItemCount=<itemcount> hClientGroup=<client group handle> dwTransactionID=<transaction id> hrStatus=<function result>) TRACE: writecomplete (DA 1.0a) received from "<OPC server>" (dwItemCount=<itemcount> hClientGroup=<client group handle> dwTransactionID=<transaction id> hrStatus=<function result>)
The received data from an OPC server was processed (used to update all served items).
Wonderware OPCLink
57
Logger Message TRACE: processing writecomplete (DA 1.0a) from "<OPC server>" (dwItemCount=<itemcount> hClientGroup=<client group handle> dwTransactionID=<transaction id> hrStatus=<function result>)
confirmation received for poking A writecomplete notification for item item: <OPC item name> <OPC item name> has been received. (<topicname>) Declarations: <OPC item name> is the full name of an OPC item (including the OPC path). <item name> is the name of the item which could be advised in a topic (including the prefix but not the OPC path).
58
Wonderware OPCLink