You are on page 1of 64

Revision B
July 2001
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 the Wonderware
Corporation. 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 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 Wonderware Corporation. 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.
Wonderware Allen-Bradley ControlLogix I/O Server User’s Guide
= 2001 Wonderware Corporation. All Rights Reserved.
100 Technology Drive
Irvine, CA 92618
U.S.A.
(949) 727-3200
http://www.wonderware.com
Trademarks
All terms mentioned in this book that are known to be trademarks or service marks have
been appropriately capitalized. Wonderware Corporation cannot attest to the accuracy
of this information. Use of a term in this book should not be regarded as affecting the
validity of any trademark or service mark.
Wonderware and InTouch are registered trademarks of Wonderware Corporation.
FactorySuite, Wonderware FactorySuite, WindowMaker, WindowViewer, SQL Access
Manager, Recipe Manager, SPCPro, DBDump, DBLoad, HDMerge, HistData,
Wonderware Logger, Alarm Logger, InControl, InTrack, InBatch, IndustrialSQL,
FactoryOffice, FactoryFocus, License Viewer, SuiteLink, SuiteVoyager and NetDDE are
trademarks of Wonderware Corporation.
Microsoft, Microsoft Excel, MS-DOS, Windows, Windows NT and Windows 2000 are
eigher registered trademarks or tradements of Microsoft Corporation.
Allen-Bradley, PLC, PLC-2, PLC-3, and PLC-5 are registered trademarks of Allen-Bradley
Company, Inc., A Rockwell International Company.
Data Highway, Data Highway Plus, DH, DH+, SLC 500, INTERCHANGE, and Pyramid
Integrator are trademarks of Allen-Bradley Company, Inc., A Rockwell International
Company.
Introduction ....................................................................................................................................1
Communication Protocols .....................................................................................................1
Accessing Remote Items via the I/O Server.......................................................................2

Getting Started Quickly with the I/O Server...............................................................................3


Using Windows NT and Windows 2000 ............................................................................3

ABCIP Main Window....................................................................................................................4

View Menu ......................................................................................................................................4

File Menu.........................................................................................................................................5

Configuring the I/O Server............................................................................................................6

Configuring a Topic Definition ....................................................................................................7


Topic Definition......................................................................................................................7
ABCIP - Topic Definition......................................................................................................8

Configuring the I/O Server Settings..........................................................................................11


Server Settings......................................................................................................................11

Configuring Security....................................................................................................................13
Security..................................................................................................................................13

Configuring Logger......................................................................................................................14
Set Logger Mode..................................................................................................................14

Data Menu.....................................................................................................................................15
ABCIP - Data Monitor.........................................................................................................15
Dump Active Data................................................................................................................17
Dump Topic Name Database..............................................................................................18

Accessing I/O Server Help .........................................................................................................19


Contents ................................................................................................................................19
How to Use Help ..................................................................................................................19
About ABCIP........................................................................................................................19

Unsolicited Message Handling..................................................................................................20


What is an Unsolicited Message?.....................................................................................20
Setting up the PLC ...............................................................................................................21
Setting up the I/O Server and InTouch.............................................................................23
Error Conditions Inside the PLC ........................................................................................24
Comments About Unsolicited Messages.........................................................................25
Item Names.................................................................................................................................... 26
PLC-5 Item Naming .............................................................................................................. 26
SLC-500 Item Naming .......................................................................................................... 34

Predefined Item/Point Names ..................................................................................................... 43


UPDATEINTERVAL Item...................................................................................................43
MAXINTERVAL Item......................................................................................................... 43
STORESETTINGS Item....................................................................................................... 44
ITEMCOUNT Item............................................................................................................... 44
ERRORCOUNT Item............................................................................................................ 44
WRITECOMPLETE Item..................................................................................................... 45
STATUS Item....................................................................................................................... 45

Monitoring the Status of Communications with a PLC.......................................................... 46


Using the Status Item in Excel............................................................................................ 46

Monitoring the Status of Communications with InTouch..................................................... 46


Using DDEStatus and IOStatus in Excel.......................................................................... 46

Reading Values from the I/O Server into Excel........................................................................ 47

Writing Values to the I/O Server from Excel............................................................................ 48

Troubleshooting I/O Server Communication Problems ......................................................... 49


Debugging Communication Between InTouch and an I/O Server............................... 49
Debugging Communication Between SuiteLink and an I/O Server.............................. 51
Debugging Communication Between an I/O Server and a PLC.................................... 52
The Wonderware โ Allen-Bradley ControlLogix I/O Server (referred to as the server
through the remainder of this user’s guide) is a Microsoft โ Windows โ application
program that acts as a communication protocol server. It allows other Windows
application programs access to data in PLCs (also referred to as devices) attached to the
DH+ไ and ControlNetไ networks through the ControlLogix Gateway. The server
requires the Rockwell Software RSLinxไ OEM package. It can access data in PLC-5,
SLC-500 and Logix-5000 Controller (emulating PLC-5 or SLC-500) from Ethernet
connected to the ControlLogix Gateway (is this a TM?). While the server is primarily
intended for use with Wonderware InTouchโ (version 3.01 and later), it may be used by
any Microsoft Windows program capable of acting as a DDE, FastDDE, or SuiteLinkไ
client.

Dynamic Data Exchange (DDE) is a communication 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.
NetDDEไ extends the standard Windows DDE functionality to include communication
over local area networks and through serial ports. Network extensions are available to
allow DDE links between applications running on different computers connected via
networks or modems. For example, NetDDE supports DDE between applications running
on IBM โ compatible computers connected via LAN or modem and DDE-aware
applications running on non-PC based platforms under operating environments such as
VMSไ and UNIXโ .
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 only supported on Microsoft Windows NT 4.0 or higher and Windows 2000.
SuiteLink is not a replacement for DDE, FastDDE, or NetDDE. 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 NT and Windows 2000 operating system Performance Monitor. This
feature is critical for the scheme and maintenance of distributed industrial networks.
ท 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 Microsoft’s standard WinSock
interface.

The communication protocol addresses an element of data in a conversation that uses a


three-part naming convention that includes the application name, topic name and item
name. The following briefly describes each portion of this naming convention:
application name The name of the Windows program (server) that will be accessing
the data element. In the case of data coming from or going to
Allen Bradley equipment via this server, the application portion of
the address is ABCIP.
topic name Meaningful names are configured in the server to identify specific
devices. These names are then used as the topic name in all
conversations to that device. For example, ABPLC.

You can define multiple topic names for the same device
(PLC) to poll different points at different rates.

item name A specific data element within the specified topic. For example,
when using this server, an item can be a relay, timer, counter,
register, etc., in the PLC.

The item/point names are predefined by the server. The


term "point" is used interchangeably with the term "item" in this
user's guide.

$ For more information on item/point names, see the "Item


Names" section in this user's guide.
This section briefly describes the procedure required to install and prepare the
Wonderware Allen-Bradley ControlLogix I/O Server for use. Detailed descriptions of
each step can be found in the user's guide provided by Allen-Bradley and in later
sections of this user's guide.

1. Install the Ethernet adapter and TCP/IP software following the instructions provided
by the manufacturer.

2. Install and configure the Rockwell Software RSLinx OEM package. This package is
provided by Rockwell Software, Inc.

3. Install the Wonderware Allen-Bradley ControlLogix I/O Server for Windows NT or


Windows 2000 by running the SETUP.EXE program on the server program disk.

4. Reboot the computer and restart Windows NT or Windows 2000.

5. Start the server. (Select the server icon from the server’s program group.)

6. On the Configure menu, click Topic Definition to configure topics for the PLCs.

7. The server is now ready for use.


Double-click on the server’s icon to start.

When the server starts, the main window will appear:

The current configuration file and its full path are displayed in the main window title bar.
If any topics are active, they will appear in the client area of this window.View Menu
The View menu has two options that change the appearance of the main window, both
are enabled or disabled by selecting the respective menu item. A check next to the
option indicates the option is enabled.
The Toolbar option adds (when enabled) or removes the toolbar (small buttons) located
below the server menus.
The Status Bar option adds (when enabled) or removes the status indication bar
located at bottom of window.
The main window shown above has both options enabled. The main window shown
below has both options disabled.
File menu options deal with loading and saving the internal topic configuration
database.

Clears the internal topic database for a new topic configuration. This menu is disabled
when the server is active.

Replaces the internal topic database with the information contained in the user selected
topic configuration file. This file is automatically loaded the next time the server is
started. This menu is disabled when the server is active.

Saves the internal topic database under a new name. This command 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 the server is active.

Terminates the server.


Once the server has been installed, some configuration is required. Configuring the
server automatically saves the data in a configuration file. If no configuration file is
selected, the user is prompted to select a filename.
To access the options used for the various configurations, open the Configure menu:

If any of the options appear grayed, then these options are not available with this
software version.
Use the Topic Definition option from the Configure menu to create new, modify, or
delete topic definitions. One or more topic definitions must exist for each PLC that the
server will communicate with. Each topic definition must contain a unique name for the
PLC associated with it. When this option is selected, the Topic Definition dialog box
will appear:

Once topics have been defined, their names will be listed in the Topics section of
this dialog box.

Click this button to close the dialog box and accept any new definitions, modifications or
deletions made.

To modify or view an existing topic definition, select its name in the list and click on this
button. The ABCIP - Topic Definition dialog box (described below) will appear
displaying the selected topic definition.

To delete an existing topic definition, select its name in the list and click on this button.
A message box will appear prompting you to confirm the deletion.

To add a new topic definition, click on this button. The ABCIP - Topic Definition dialog
box will appear:
If any of the options appear grayed, then these options may not be available with
this software version.

Enter a unique name for the PLC in this field, for example ABPLC.

When communicating with InTouch, this exact name is used as the topic name in
the Access Name definition.

Select the PLC type for this topic definition.


Select the Connect Type for this topic definition. Available connection types are as
follows:
1756-ENETเ1756-CNB: Connect to PLCs on ControlNet from Ethernet.
1756-ENETเ1756-DHRIO: Connect to PLCs on DH+ from Ethernet.
1756-ENETเLogix5550: Connect to Logix5550 Controller from Ethernet.
Remote ControlNet: Connect to remote ControlNet port from Ethernet.

This connect type is similar to the 1756-ENETเ1756-CNB type but allows the
user to manually construct the ControlNet path.

Select or type in the driver name configured in RSLinx for the selected Connect Type. If
RSLinx has not been loaded and the select button is pressed, the user will be prompted
to load RSLinx for browsing.

Select the station number of the ControlNet module or PLC on the local ControlNet
network.

Configure the Gateway outbound module (for example, 1756-CNB, 1756-DHRIO) or


Logix5550 Controller in the ControlLogix Gateway. Link ID is needed if the outbound
network is DH+ and unsolicited messages are expected.

Select the station number of the PLC on the remote network.

Enter the ControlNet Path if “Remote ControlNet” is specified as the Connect Type,
otherwise this field is read only.
Check this box to enable client access to the update interval. If this box is checked, a
client can read and write the update interval on this topic through the predefined item
name UPDATEINTERVAL. If this box is not checked, the client can only read the
update interval.

The actual update interval for the slowest item on this topic can be read through
the predefined item name MAXINTERVAL. This gives you an indication of the
performance of your configuration during operation.

Enter the maximum number of consecutive discrete values to be read at one time. The
Discrete Read Block Size value can be any integer between 8 and 1920 that is a multiple
of 8, for example, 8, 24, 32, 80, etc. The maximum for a SLC-500 is 320.

Enter the maximum number of consecutive registers to be read at one time. The Register
Read Block Size value can be any integer between 1 and 120. The maximum for a SLC-
500 is 40.

Enter the frequency (in milliseconds) that the server will read (poll) the items/points
associated with this topic. (Enter a zero in this field when configuring a topic for
Unsolicited Messages, this in effect disables periodic polling.)

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.

Enter the amount of time (in seconds) that the PLC will be given to reply to commands
from the server.

This timeout is sustained only when the PLC fails to respond. When the PLC is
responding normally, there is no penalty. The default value of 12 seconds should be
sufficient for most configurations.
Use the Server Settings option from the Configure menu to change the protocol timer,
network using Wonderware NetDDE, change the default configuration file path, or to
enable the server to start automatically as a Windows NT or Windows 2000 service.

When configuring the server on Windows NT or Windows 2000, the user must be
logged on with system administrator privileges. This will ensure that updates to the
system registry may be performed.

When the Server Settings option is selected, the Server Settings dialog box will appear:

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.

The default protocol timer tick value will vary between servers.

Select this option if you are networking using Wonderware NetDDE.

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. 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.
Enabling this option will cause the server to start as a Windows NT or Windows 2000
service.
Windows NT and Windows 2000 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 rebooting the system will
cause the server to run as a Windows NT or Windows 2000 service. However, to view
configuration information or to reconfigure the server, the user 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 the user until a log
on is performed. Disabling this option and rebooting the system will cause the server to
run as a Windows NT or Windows 2000 application program once again.

It is highly recommended that the server is configured and communicating


successfully prior to running it as a Windows NT or Windows 2000 service.

Click Cancel to close the dialog box without saving changes.


Click OK to close the dialog box.

You must restart the server for the changes to take effect.
Use the Security option from the configure menu to control server configuration
changes.

When the server is not active (no clients connected), all server configuration options are
available for modification.
The default setting for Allow configuration while topics are active is disabled. When
disabled, all topics are viewable (but locked against changes) via the ABCIP - Topic
Definition dialog box while the server is active (a client is connected).
Enable Allow configuration while topics are active to allow write access to some
parameters of the topic configuration while the server is active. This server supports
write access to the Update Interval, Reply Timeout, and Enable Access to Update Interval
parameters. You cannot add, delete, rename or change other parameters of a topic
configuration.
Click OK to save changes and close the dialog box.
Click Cancel to close the dialog box without saving changes.
Use the Logger option from the configure menu to set the working logger mode of the
server. The options controlled by this dialog box are NOT retained in the configuration
file.

Each time the server starts, the logger mode will default to Errors.

Select Off to disable normal server logging.


Select Errors for normal operation logging to the Wonderware Logger.
Select Trace to log errors and all activation/deactivation activities.
Select All to log all activities including single item value updates.
Enable Show protocol to add PLC communication message data to the selected logger
mode.
Click OK to use changes and close the dialog box.
Click Cancel to close the dialog box without changing current settings.

When logging activity increases, the server’s performance degrades.


The Data menu contains two commands, Monitor and Dump Active Data, that are used
for diagnostic purposes during runtime (when a client is attached). The remaining
command, DB Dump, is used to transfer the internal topic database to InTouch.

If any of the options appear grayed, then these options may not be available with
this software version.

Use the Monitor option from the data menu to display and record topic and item
statistics for a single, active topic. The information is updated as it changes. This is a
useful tool for tracking down errors, for determining performance and to validate item
values. When the Monitor option is selected, the ABCIP - Data Monitor window will
appear.
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 communication status.

This field displays the current configured update interval of the topic. This value
changes whenever the value is modified. The displayed value is the predefined
UPDATEINTERVAL item value.

This field displays the current update interval of the slowest item of the topic. This
value is measured for each poll cycle and each received cyclic service indication. If this
value drastically differs from the desired update interval the communication media is not
fast enough to satisfy the load.

You can create an InTouch performance meter by displaying the predefined


UPDATEINTERVAL and MAXINTERVAL (Longest Interval) item values. graphically
for each topic. If the topic is configured to “Enable access to update interval”, then you
can even tune the bus performance conveniently from InTouch.

This field 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.

The item list box displays the quality, time, value, and name of each active item.
Click on an item line to view additional item properties:

Click OK to return to the ABCIP - Data Monitor dialog box.


Click Dump to dump the contents of the ABCIP - Data 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.

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. The server increments the number
each time a file is dumped.

Existing files with the same name are erased.

Click OK to return to the ABCIP - Data Monitor dialog box.

Monitoring the items might affect the server performance.

Use the Dump Active Data option from the data menu to dump server, topic, and item
statistics for all topics with active items into an ASCII text file. The resulting file can be
loaded into Excel or any standard text editor. All columns are separated by tabs.
When the Dump Active Data option is selected, the Dump Active Data dialog box will
appear.

Enable Errors only option to dump topics with errors.


Click OK to start the dump.
Click Cancel to close dialog without creating a dump file.
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. The server increments the number
each time a file is dumped.

Existing files with the same name are erased.

Use the DB Dump option from the data menu to dump the internal topic name database
into a CSV format file. Wonderware’s DBLoad utility can use the resulting file to
automatically generate InTouch Access Names.
Create the file by selecting a directory and filename using the standard dialog shown
below:
The Help menu contains three options that are used to access help for the server.

The following briefly describes the Help menu options.

This option is used to display the table of contents for the Help file.

This option is used to access a list of basic instructions for using the Help file.

This option is used to access miscellaneous information regarding the server, such as
the software version, the copyright information, license information, etc.
Your FactorySuite system license information can be viewed through the license viewing
utility that is launched from the About dialog box.
$ For more information on the licensing viewing utility, see your online FactorySuite
System Administrator’s Guide .
Wonderware's servers are based on the concept of polling a hardware device for
information. This polling is driven by a need, which is expressed in the form of a
requests from one or more clients. Once a particular piece of information has been
requested by a client, the server formulates its own request and sends that request to
the hardware device. The server then waits for a response to its request. Once the
information has been received, the server passes that information back to the client, and
repeats the process until all clients have ceased requesting information.
The rate at which the server will poll a particular device for a specific piece of information
is defined in the topic definition, inside the server, using a parameter called the Update
Interval. When setting this parameter, there is always a trade-off between the update
speed of the topic and the resulting decrease in system responsiveness.
Since you more than likely want very fast response, the temptation is to set the Update
Interval to a value close to 0 milliseconds. However, if every point is polled at this rate,
the entire system will suffer due to slow response time. Therefore, you should
compromise, and set the Update Interval to a more reasonable value. You could also
create multiple topics for each device, setting the Update Interval to different values,
then assign different items to different topics depending on how quickly the values
change, and how quickly you want to see an update of those changes.
An item may be very important, but change very infrequently, e.g., alarm bits. You may
require very fast updates of alarms when they do change, but realistically you may only
see them change once a week, or once a day at best. Because you do not know when
this may happen, you are forced to set the Update Interval to some small value,
approaching 0 milliseconds. That is, until now!

In the world of PLCs and servers it is obvious, to even the most casual user, that a PLC
will know when a critical event has occurred before the server will have a chance to poll
for that data. Therefore, it would seem natural that if a critical event occurs, the PLC
should have the capability to inform the server immediately, without having to wait for
the server to poll it.
This is the role of an unsolicited message. Once a PLC has determined that a critical
condition exists, it can generate a "reply" message to a poll which never occurred. In
other words, it can answer the server's question before the server has a chance to ask it.
The following Allen-Bradley processors are capable of producing unsolicited messages
that the Wonderware I/O Servers can understand. Specifically, the PLC-5 and SLC-500.
This section explains how to set up the PLC to send unsolicited messages. To illustrate
the ladder logic required to perform this function, we will use the example below. This
was tested with a PLC 5/10 processor, connected to a Data Highway Plus with the 5/10
and a S-S Technologies 5136-SD card connected to it.

The text and illustrations below provide you with one example of how a
Wonderware Allen-Bradley I/O Server and the Allen-Bradley hardware need to be
configured to get unsolicited messages from the PLC to the server. This same concept,
changed only slightly, is compatible with any of the Wonderware Allen-Bradley I/O
Servers.

Inside Station 02 (the PLC 5/10) the following rungs were entered:

When viewing the MSG instruction (second line, last instruction in diagram above) with
the Allen-Bradley 6200 software, the MSG instruction parameters have the following
values:

Parameter Select

Communications Command: PLC-5 Typed Write


PLC Data Table Address: N12:190
Size in Elements: 1
Local/Remote: Local
Remote Station: N/A
Link ID: N/A
Remote Link Type: N/A
Local Node Address: 1
Destination Data Table Address: N12:190
This must be a Write. A Read would not make sense here.

The memory address of the value that will be sent to the Wonderware I/O Server. This
address refers to the location inside the PLC. (For more information, see the
"Destination Data Table Address".)

Indicates how many elements will be moved per message, starting at the PLC Data Table
Address previously defined. An element's actual size depends on the type of data being
handled. For example, a single element of type N (Integer) is 16 bits (two bytes) long.
Whereas, a single element of type F (Floating Point) is 32 bits (two words) long.

Defines if the destination DH+ station (in this case, the server) is on the same DH+ as
this PLC. If the server is on the same DH+ as the PLC, then the addressing is Local,
otherwise, the message must be sent via a Bridge. If this is the case, then Remote
addressing would be selected.

These settings specify the type of Data Highway the Remote Link is. Typical settings
include DH, DH+, DHII, etc. This link must have a number associated with it, this
number is referred to as the Link ID, or the Link Number. Typical settings are 0, 1, 2 or 3.
The Remote Station is the station number on the Remote Link to which this message
will be sent.

Defines the Destination station's address on the DH+, in both Local and Remote
situations.
The address into which the value defined by the PLC Data Table Address will be placed.
In the case of unsolicited messages to the server, this is the address that has been
entered into the Item field of a particular Tagname inside InTouch. For example, you
may have a tag called: TankLevel with the item, N12:190. The item specified would be
the address used for this parameter. In most cases, the PLC Data Table Address and the
Destination Data Table Address do not need to be the same. To reduce confusion when
debugging the system, we recommend that they be identical.

This section briefly describes how to set up the server and InTouch to accept
unsolicited messages.
The following topic was defined in the server:
Topic Name: Unsolicited_PLC2
Card: SD:0
PLC Station Address: 02 (Octal)
Update Interval: 0
The following Access Name was defined in InTouch:
Access Name: Unsolicited_PLC2
Application/Server: SS5136SD
Topic: Unsolicited_PLC2
Wait For Change: Checked
Advise All Items: Checked

If a PLC generates an unsolicited message and the destination tagname is not


advised (active inside InTouch), the server will generate an error message. To avoid
this, create a separate Access Name with the Advise all items option enabled, and
associate only those tags that will be receiving unsolicited messages to it. By doing
this, all unsolicited message items will be advised and will receive the unsolicited data,
even if the tagname is not used in a visible window.

The following tagname was defined in InTouch:


TagName: TankLevel
TagType: Integer
AccessName: Unsolicited_PLC2
Item: N12:190

If Advise only active items is checked and the tag is displayed on the screen, it will
be advised. When this occurs, the server will store that tagname as an item that needs
to be polled regularly from the PLC. For example, if the update interval was set to five
minutes (configured in the topic definition), then every five minutes the server will send
out a request for the current value of N12:190 to the PLC. The PLC will respond,
returning the value inside N12:190, in our example above. This is a Normal Polling Cycle.
At the same time, the PLC is constantly monitoring the value of the TankLevel, stored in
register N12:190. If this value grows larger than 128, the PLC logic will initiate the MSG
instruction. The MSG instruction will take the value of N12:190 and write it to the server.
The server will see the incoming message and attempt to match the PLC station address
defined in the server. It will also try to match the Destination Data Table Address to one
that is currently being polled for that particular PLC address. If this matching procedure
succeeds, the value of that tag will be updated with the value sent from the PLC's MSG
instruction.

The Allen-Bradley 1785 PLC-5 processors have a separate CPU to handle Data Highway
Plus communications. This processor works independently of the program scan. This is
an advantage, since the program scan is not inhibited by lengthy Data Highway Plus
command queues. This means that the status bits and words associated with the MSG
instruction will be updated synchronously to the program scan. If an error bit is false
when the program begins to scan, half way through the rungs, the bit may go high.
Inside the Allen-Bradley PLC, it is important to properly handle error conditions with a
MSG instruction.
If a MSG instruction's .ER bit goes high, it is advisable to stop sending MSGs for a
period of 15 to 60 seconds. Then, send another MSG, waiting for a .DN bit before
attempting to resume normal communication. If this is not done, the MSG instruction
will default to a "slow mode" of one MSG every 15 seconds. If these MSGs continue to
be unacknowledged by the server, there is a chance the PLC will halt communication
with the server until the MSG instruction is reset. This is something that cannot be done
from the Wonderware I/O Server since the PLC may no longer be communicating with it.
1. In general, unsolicited messages should be used only on rare occasions, not as the
normal mode of data transmission.
2. A MSG instruction inside a PLC should never be placed in 'continuous' mode. This
will cause the MSG instruction to generate outgoing messages as quickly as
possible, continuously, regardless of the state of the instructions ahead of it.
Therefore, even if the Bit B10:0/14 is FALSE, if the .CO bit (Continuous Bit) is set in
the MSG instruction, the MSG instruction will continue to generate messages as
quickly as possible until either the processor has been placed into PROGRAM
mode, or the .CO bit is toggled off.
3. Read the Allen-Bradley manual, publication 6200-6.4.11, April 1992 for more
information about the MSG instruction inside the 1785 PLC-5’s. Other PLC’s
manuals also have specific information regarding generating a MSG instruction in
the Ladder Logic.

The PLC-2 was never designed to allow communication on the DH. It has a
communications module, the 1771-KA2, which allows the PLC-2 to sit on the DH.
The PLC-2 manual therefore has no mention of the messaging capabilities of the
PLC-2. The manual for the 1771-KA2 has all the information you’ll need to set up an
unsolicited message from the PLC-2.

4. If a PLC generates an unsolicited message and the destination tagname is not


advised (active inside InTouch), the server will generate an error message. To avoid
this, create a separate Access Name with the Advise all items option enabled, and
associate only those tagnames that will be receiving unsolicited messages. By
doing this, all items will be advised and will receive the unsolicited data, even if the
tagname is not used in a visible window.
The Wonderware Allen-Bradley ControlLogix I/O Server supports item names that follow
the conventions described for PLC-5 and SLC-500 PLCs.

The general format of item names for data from 1785 PLC-5 controllers matches the
naming convention used by the programming software. The format is shown below.
The parts of the name shown in square brackets ([]) are optional.

[$] X [file] : element [.field] [/bit]

$
Purely optional.

X
Identifies the file type. The table below summarizes the valid file types, the default file
number for each type and the fields allowed (if any):

X File Type Default File # .Fields


O Output 0
I Input 1
S Status 2
B Binary 3
T Timer 4 .PRE .ACC .EN .TT .DN
C Counter 5 .PRE .ACC .CU .CD .DN .OV .UN
R Control 6 .LEN .POS .EN .EU .DN .EM .ER .UL .IN .FD
N Integer 7
F Floating Point 8
A ASCII none
D BCD none
ST ASCII String* none .LEN
PD PID* none .ADRF .ADRE .BIAS .CA .CL .CT .DB .DO
.DVDB .DVN .DVNA .DVP .DVPA .EN .ERR
.EWD .INI .KD .KI .KP .MAXI .MAXO .MAXS
.MINI .MINO .MINS .MO .OLH .OLL .OUT .PE
.PV .PVDB .PVH .PVHA .PVL .PVLA .PVT
.SO .SP .SPOR .SWM .TIE .UPD
SC SFC Status* none .DN .ER .FS .LS .OV .PRE .SA .TIM
BT Block Transfer*
(Read Only) none .EN .ST .DN .ER .CO .EW .NR .RW .TO
.RLEN .DLEN .FILE .ELEM
* Available only on certain PLC-5 models. Check the Processor Manual for the model being used.
file
File number (0-999 decimal). File 0 must be Output, file 1 must be Input and file 2 must be
Status.

element
Element number within the file. For Input and Output files it must be between 0 and 777
octal. For all other file types, it must be between 0 and 999 decimal.

.field
Valid only for Counter, Timer, Control, ASCII String, PID, SFC Status, and Block Transfer
files. Refer to the previous table.

/bit
Valid for all file types except ASCII String and Floating Point. For Input and Output files
it must be between 0 and 17 octal. For all other file types it must be between 0 and 15
decimal.

O[n]:rg[/b] "n" represents the file number is optional and if specified, must be
zero.
"r" indicates the rack number (octal).
"g" indicates the I/O group (octal).
"b" specifies the bit (0 - 17 octal). "/b" may be omitted if
necessary to treat the I/O group as a numeric value.

Examples:
O0:0/0
$O:37/17
O:3 4BCD (for 16-bit 7-segment display)

I[n]:rg[/b] "n" represents the file number is optional and, if specified, must
be one.
"r" indicates the rack number (octal).
"g" indicates the I/O group (octal).
"b" specifies the bit (0 - 17 octal). "/b" may be omitted if
necessary to treat the I/O group as a numeric value.

Examples:
I1:0/0
I:37/17
I:3 4BCD (for 16-bit thumbwheel input)
S[n]:e[/b] "n" represents the file number is optional and, if specified, must
be two.
"e" indicates the element number in the file.
"b" is optional. If specified, indicates the bit (0-15 decimal).

Refer to the 1785 PLC-5 Family Processor Manual (Allen-


Bradley Publication 1785-6.8.2) for a complete description of
status file information.

Examples:
$S:18 low status bit)

B[n]:e/b
or
B[n]/m 2 may be between 0 and 15999.

Examples:
B3/15999 (same bit as B:999/15)
B:6/4 (same bit as B/100)

T[n]:e[.f][/b] "n" represents the file number and is optional. If not specified, it
is assumed to be four. If specified, the file number must be
between 3 and 999 decimal.
"e" specifies the element number (three words per element) within
the Timer file. It must be between 0 and 999 decimal.
"f" identifies one of the valid Timer fields. The valid fields for
Timer Files are listed in the table. If ".f" is omitted, it is assumed to
be the word containing the status bits.
"b" is optional and is normally not used. All of the fields of a
timer can be accessed by specifying the ".f" fields. However, it is
possible to use "/b" to single out a bit in the .PRE or .ACC fields
(which are words). For Timer files, the bit number must be
between 0 and 15 decimal.

Examples:
T4:0.ACC
T4:0.DN
T4:1.PRE
C[n]:e[.f][/b] "n" represents the file number and is optional. If not specified, it
is 0 and 15 decimal.

Examples:
C5:0.ACC
C5:3.OV
C5:1.PRE

R[n]:e[.f][/b] "n" represents the file number and is optional. If not specified, it
is assumed to be six. If specified, the file number must be between
3 and 999 decimal.
"e" specifies the element number (three words per element) within
the Control file. It must be between 3 and 999 decimal.
"f" identifies one of the valid Control fields. The valid fields for
Control files are listed in the table. If ".f" is omitted, it is assumed
to be the word containing the status bits.
"b" is optional and is normally not used. All of the fields of a
Control file can be accessed by specifying the ".f" fields.
However, it is possible to use "/b" to single out a bit in the .LEN
or .POS fields (which are words). If specified, it indicates the bit (0
- 15 decimal).

Examples:
R6:0.LEN
R6:3.EM
R6:1.POS

N[n]:e[/b] "n" represents the file number (optional). If not


specified, it is assumed to be seven. If specified, the file
number must be between 3 and 999 decimal.
"e" specifies the element number within the Integer file.
It must be between 0 and 999 decimal.
"b" is optional. If specified, it indicates the bit (0 - 15
decimal).
Examples:
N7:0
N7:0/15
N7:3
F[n]:e "n" represents the file number (optional). If not
specified, it is assumed to be eight. If specified, the file
number must be between 3 and 999 decimal.
"e" specifies the element number within the Floating
Point file. It must be between 0 and 999 decimal.
Examples:
F8:0
F8:3

An:e[/b] "n" represents the file number (NOT optional) and must
be between 3 and 999 decimal.
"e" specifies the element number within the ASCII file. It
must be between 0 and 999 decimal. Each element in an
ASCII file contains two ASCII characters.
"b" is optional. If specified, indicates bit (0-15 decimal).
An:x-y "x" and " y" also specify element numbers. In this form,
the item is an ASCII string occupying element "x"
through element "y". Each element contains two ASCII
characters. The first character is the high order byte and
the second is the low order, etc.

If reading only one word as a two-character string,


the range must be "x-x." For example, A20:3-3.

Examples:
A20:3
A10:0/0
A9:0-19 (40-character ASCII string)
Dn:e[/b] "n" represents the file number (NOT optional) and must
be between 3 and 999 decimal.
"e" specifies the element number within the BCD file. It
must be between 0 and 999 decimal. Each element in a
BCD file contains a number between 0 and 9999.
"b" is optional. If specified, it indicates the bit (0 - 15
decimal).
Examples:
D20:3
D10:0/3

STn:e[.f]
"n" represents the file number (NOT optional) and must
be between 9 and 999 decimal.
"e" specifies the element number within the String file. It
must be between 0 and 999 decimal. Each element in a
String file contains an ASCII string with a maximum
length of 82 characters.
"f" identifies the following ASCII string field: .LEN. If
".f" is omitted, it is assumed to be the string.
Examples:
ST9:0
ST9:900
ST9:900.LEN
BTn:e[.f][/b]
"n" represents the file number (NOT optional) and must
be between 9 and 999 decimal.
"e" specifies the element number (three words per
element) within the Block Transfer file (0 to 999 decimal).
"f" identifies one of the valid Block Transfer fields. The
valid fields for Block Transfer items are listed in the table.
If ".f" is omitted, it is assumed to be the word containing
the status bits.
"b" is optional and is normally not used. All of the fields
of a Block Transfer can be accessed by specifying the
".f" fields. However, it is possible to use "/b" to single
out a bit in the .FILE or .ELEM fields (which are words).
For Block Transfer files, the bit number must be between
0 and 15 decimal.

Block Transfer files are read only.

Examples:
BT9:0.EN
BT9:3.RLEN
BT9:3.FILE
PDn:e[.f][/b]
"n" represents the file number (NOT optional) and must
be between 9 and 999 decimal.
"e" specifies the element number within the PID file. It
must be between 0 and 999 decimal.

"f" identifies one of the valid PID fields. The valid fields
for PID files are listed in the table. If PID field .ADDR is
needed, use .ADRE for element and .ADRF for file.
"b" is optional and is normally not used. All of the fields
of a PID can be accessed by specifying the ".f" fields. If
specified, it indicates the bit (0 - 15 decimal).

Access to PID files may degrade the server's


performance due to the extreme size of the PID element
(82 words each). If accessing only a few PIDs at a time,
performance will not be greatly affected. If accessing a
few fields of many PIDs at once, it may be faster to move
the needed fields to an intermediate file (Floating Point or
Binary) and let the server access the intermediate files.

Examples:
PD9:2.SP
PD9:3.OLH
PD9:0.INI

SCn:e[.f][/b]
"n" represents the file number (NOT optional) and must
be between 5 and 999 decimal.
"e" specifies the element number within the SFC Status
file. It must be between 0 and 999 decimal.
"f" identifies one of the valid SFC fields. The valid fields
for SFC files are listed in the table.
"b" is optional and is normally not used. All of the fields
of a SFC can be accessed by specifying the ".f" fields.
For SFC Status items, the bit number must be between 0
and 15 decimal.
Examples:
SC9:0
SC9:0.PRE
SC9:0.SA
The general format of item names for data from SLC-500 controllers matches the naming
convention used by the programming software. The format is shown below. (The parts
of the name shown in square brackets ([]) are optional).

[$] X [file] : element [.field] [/bit]

$
Purely optional.

X
Identifies the file type. The table below summarizes the valid file types, the default file
number for each type and the .fields allowed (if any):

X File Type Default File .Fields


O Output 0
I Input 1
S Status 2
B Binary 3
T Timer 4 .PRE .ACC .EN .TT .DN
C Counter 5 .PRE .ACC. CU .CD .DN .OV .UN .UA
R Control 6 .LEN .POS .EN .DN .ER .UL .IN .FD
N Integer 7
F Floating Point* 8
A ASCII* none
ST ASCII String* none
* Available only on certain SLC500 models. Check the Processor Manual for the model being
used.

file
File number must be 0-255 decimal. File 0 must be Output, file 1 must be Input, file 2 must
be Status.

element
Element number within the file. For Input and Output files it must be between 0and 30
decimal. All other file types, it must be between 0 and 255 decimal.

.field
Valid only for Counter, Timer and Control files, see table above.

/bit
Valid for all file types except ASCII String and Floating Point. Must be 0-15 decimal.
O[n]:e.s[/b] "n" represents the file number and is optional. If not
specified, it is assumed to be zero.
"e" indicates the element number in the file.
"s" indicates the sub-element number (0 - 255).
"b" specifies the bit (0 - 15 decimal.) "/b" may be omitted
if necessary to treat the I/O group as a numeric value.
Examples:
O0:0/0
$O:2/15
O:3 4BCD (for 16-bit 7-segment display)

I[n]:e.s[/b] "n" represents the file number and is optional. If not


specified, it is assumed to be one.
"e" indicates the element number in the file.
"s" indicates the sub-element number (0 - 255).
"b" specifies the bit (0 - 15 decimal.) "/b" may be omitted
if necessary to treat the I/O group as a numeric value.
Examples:
I1:0/0
I:2/15
I:3 4BCD (for 16-bit thumbwheel input)
The elements (words) in I/O modules are mapped into a memory table. If the Analog I/O
modules are being used, then the point naming will differ from the point naming in the
programming software. The server item name must be computed from the sum total of
words used by the previous input or output blocks. The operator can use the
programming software to look at the memory map of the I file or O file to verify your
address. If the address is unsure, or if the PLC configuration is likely to change, copy
the points in question to the N table or B table and access the data from there.

The naming conventions used in the Allen-Bradley programming software are not
supported by the Wonderware โ Allen-Bradley ControlLogix I/O Server. The addressing
convention is similar to that of the PLC-5 family processors. To derive the correct
address for each I/O point, use the following.

Addressing of the I/O points begins by drawing a schematic of the system. The figure
below is a diagram of the SLC 5/02 system.

The far left unit is the power supply. From left to right, the modules are:

1747-L524 SLC 5/02 Module Processor


1746-IA8 8 point 120VAC input module
1746-OA16 16 Point 120VAC output module
1746-IA16 16 point 120VAC input module
1746-NI4 4 point 20mA analog input module
1746-NO4I 4 point 20mA analog output module
1746-0A8 8 point 120VAC input module
1746-IB32 32 point DC input module
The address of any point within the I/O datatable space, in a SLC processor, is the sum
of the words occupied by previous modules (to the left in the rack) of the same type.
Therefore, to determine the correct address for any particular point in the I/O datatable,
one must know the number of words each module will consume. Refer to the list below:
Number of Words Module
0 1747-L524 SLC 5/02 Module Processor
1 1746-IA8 8 point 120VAC input module
1 1746-OA16 16 Point 120VAC output module
1 1746-IA16 16 point 120VAC input module
4 1746-NI4 4 point 20mA analog input module
4 1746-NO4I 4 point 20mA analog output module
1 1746-0A8 8 point 120VAC input module
2 1746-IB32 32 point DC input module

In the table above, the minimum amount of words which can be consumed by a
module is 1 (16-bits). This is due to the memory scheme of all Allen-Bradley processors.
In the I/O diagram below, the first input module's addressing should start with "I:0".
Previously noted, this module consumes one datatable word. Therefore, the addressing
of the next INPUT module encounter, moving from left to right, will begin with "I:1",
regardless of the module's physical location.

In the I/O diagram below, the first output card encountered is the OA16. Although it is
not in the first slot, its address will be "O:0" ('OHH, colon ZERO"). This module
consumes one datatable word. Therefore, the addressing of the next OUTPUT module;
moving from left to right, will begin with "O:1", regardless of the module's physical
location.
S[n]:e[/b] "n" represents the file number and is optional. If not
specified, it is assumed to be two.
"e" indicates the element number in the file
"b" is optional. If specified, it indicates the bit (0 - 15
decimal).

Refer to the SLC-500 Family Processor Manual


(Allen-Bradley Publication) for a complete description of
Status file information.

Examples:
S2:6 (major error fault)
S2:13 (math register)
S:1/5 (forces enabled)

B[n]:e/b
or
B[n]/m "n" represents the file number and is optional. If not
specified, it is assumed to be three. If specified, the file
number must be between 10 and 255 decimal.
"e" specifies the element (word) number within the
Binary file. It must be between 0 and 255 decimal.
"b" specifies the bit number within the word. In the first
form (where ":e" is present,) the bit number must be
between 0 and 15 decimal.
"m" also represents the bit number. However, in the
second form, no word number is specified and the bit
number may be between 0 and 4095.
Examples:
B3/4095 (same bit as B:255/15)
B:6/4 (same bit as B/100)
B3
T[n]:e[.f][/b] "n" represents the file number and is optional. If not
specified, it is assumed to be four. If specified, the file
number must be between 3 and 255 decimal.
"e" specifies the element number (three words per
element) within the Timer file. It must be between 0 and
255 decimal.
"f" identifies one of the valid Timer fields. The valid
fields for Timer Files are listed in the table. If "f" is
omitted, it is assumed to be the word containing the
status bits.
"b" is optional and is normally not used. All of the fields
of a timer can be accessed by specifying the ".f" fields.
However, it is possible to use "/b" to single out a bit in
the .PRE or .ACC fields (which are words).
Examples:
T4:0.ACC
T4:3.DN
T4:1.PRE

C[n]:e[.f][/b] "n" represents the file number and is optional. If not


specified, it is assumed to be five. If specified, the file
number must be between 3 and 255 decimal.
"e" specifies the element number (three words per
element) within the Counter file. It must be between 0
and 255 decimal.
"f" identifies one of the valid Counter fields. The valid
fields for the Counter Files are listed in the table. If "f" is
omitted, it is assumed to be the word containing the
status bits.
"b" is optional and is normally not used. All of the fields
of a counter can be accessed by specifying the ".f"
fields. However, it is possible to use "/b" to single out a
bit in the .PRE or .ACC fields (which are words).
Examples:
C5:0.ACC
C5:3.OV
C5:1.PRE
R[n]:e[.f][/b] "n" represents the file number and is optional. If not
specified, it is assumed to be six. If specified, the file
number must be between 3 and 255 decimal.
"e" specifies the element number (three words per
element) within the Control file. It must be between 0
and 255 decimal.
"f" identifies one of the valid Control fields. The valid
fields for the Control files are listed in the table. If "f" is
omitted, it is assumed to be the word containing the
status bits.
"b" is optional and is normally not used. All of the fields
of a Control file can be accessed by specifying the ".f"
fields. However, it is possible to use "/b" to single out a
bit in the .LEN or .POS fields (which are words).
Examples:
R6:0.LEN
R6:3.EN
R6:1.POS

N[n]:e[/b] "n" represents the file number and is optional. If not


specified, it is assumed to be seven. If specified, the file
number must be between 3 and 255 decimal.
"e" specifies the element number within the Integer file.
It must be between 0 and 255 decimal.
"b" is optional. If specified, it indicates the bit (0 - 15
decimal).
Examples:
N7:0
N7:0/15
N7:3

F[n]:e "n" represents the file number and is optional. If not


specified, it is assumed to be eight. If specified, the file
number must be between 3 and 255 decimal.
"e" specifies the element number within the Floating
Point file. It must be between 0 and 255 decimal.
Examples:
F8:0
F8:3
An:e[/b] "n" represents the file number (NOT optional).
"e" specifies the element number within the ASCII file. It
must be between 0 and 255 decimal. Each element in an
ASCII file contains two ASCII characters.
"b" is optional. If specified, indicates bit (0-15 decimal).
Examples:
A20:3
A10:0/0

STn:e
"n" represents the file number (NOT optional).
"e" specifies the element number within the String file. It
must be between 0 and 255 decimal. Each element in a
String file contains an ASCII string with a maximum
length of 78 characters.
Examples:
ST9:0
ST9:900
All topics have predefined item/point names to monitor and control communication
properties.

The UPDATEINTERVAL item is used to access the currently set update interval. It is
the same value displayed in the ABCIP - Data Monitor window. It indicates the
currently set update interval in milliseconds. If the corresponding topic is configured to
"Enable access to update interval", a client can poke new values into this item. In any
case, the value can always be read through DDE or SuiteLink. The range of valid values
differs with respect to the topic configuration settings. The value of zero indicates that
no items on that topic are polled.
DATA TYPE: INTEGER
ACCESS: READ, WRITE (if enabled)
RANGE: 0..2147483647
0 (no items are polled, unsolicited messages can be received)

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.

The MAXINTERVAL item is used to access the measured maximum update interval in
milliseconds of all items of the corresponding topic for the last completed poll cycle. It is
the same value displayed in the ABCIP - Data Monitor window next to "Longest
Interval". This item is read only.
Type: INTEGER
ACCESS: READ
RANGE: 0..2147483647

Use the UPDATEINTERVAL and MAXINTERVAL items to conveniently tune the


performance of the communication from a client application.
The STORESETTINGS item is used to make the UPDATEINTERVAL item changes
permanent. If the client pokes a value of 1 into the STORESETTINGS item the currently
set update interval is written to the servers configuration file. If the update interval has
been changed using UPDATEINTERVAL and STORESETTINGS is not poked to 1, the
server will use the original update interval for that topic the next time it is started.
Reading the item will always give 0.
DATA TYPE: DISCRETE
ACCESS: READ, WRITE
RANGE: 0, 1

Use this item to conveniently store your client optimized configuration.

The ITEMCOUNT item is used to access the number of active items in the
corresponding topic. It is the same value displayed in the ABCIP - Data Monitor
window under "Items". This item is read only.
DATA TYPE: INTEGER
ACCESS: READ
RANGE: 0..2147483647

Use the ITEMCOUNT item to monitor the number of currently active items.

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 ABCIP - Data Monitor
window under "errors ( ) only". If the communication status of a topic is bad, all items
have errors (item count equals error count). This item is read only.
DATA TYPE: INTEGER
ACCESS: READ
RANGE: 0..2147483647

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 good (1) and
ERRORCOUNT is not zero.
The WRITECOMPLETE item is used to access the state of pending write activities on
the corresponding topic. When 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 (pending) indicating write activity is currently in
progress. If the server has completed all write activities the value of the
WRITECOMPLETE item changes to 1 (complete) if all pokes were successful or to -1
(error) if at least one poke has failed. 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).
DATA TYPE: INTEGER
ACCESS: READ/WRITE
RANGE: -1,0,1

Use the WRITECOMPLETE item to serialize a sequence of poke values into a


single item or to monitor success or failure of poking one or more items.

The STATUS item is used to access the state of communication between the server and
PLC. The discrete item, STATUS , is set to 0 when communication with the PLC fails and
is set to 1 when communication is successful.
DATA TYPE: DISCRETE
ACCESS: READ ONLY
RANGE: 0,1
For each topic name (PLC), there is a built-in discrete item that can be used to monitor
the status of communications with the PLC. The discrete item, Status, is set to 0 when
communication with the PLC fails and is set to 1 when communication is successful.

The status of the PLC communications can be read into Excel by entering the following
DDE reference formula in a cell on a spreadsheet:
=ABCIP|ABPLC!Status
where:
ABCIP Is the name of the server application.
ABPLC Is the exact topic name defined in the server for the PLC.
Status Built-in discrete item used to monitor the status of
communications with the PLC.

InTouch supports built-in topic names called DDEStatus and IOStatus that are used to
monitor the status of communications between the server and InTouch. For more
information on the built-in topic names DDEStatus and IOStatus, see your online
“InTouch User’s Guide”.

The status of communication between the server and InTouch can be read into Excel by
entering the following DDE reference formula in a cell on a spreadsheet:
=view|DDEStatus!ABPLC
or
=view|IOStatus!ABPLC
where:
view Is the name of the InTouch application.
[DDE][IO]Status Built-in topic name used to monitor the status of
communications between the server and InTouch.
ABPLC The exact topic name defined in the server for the PLC.
Values may be read directly into Excel spreadsheets from the server by entering a DDE
formula into a cell using the following format:
=applicationname|topicname!itemname
Example formula:
= ABCIP|ABPLC!N7:0
where:
ABCIP Is the name of the server application.
ABPLC Is the exact topic name defined in the server for the PLC.
N7:0 Is the actual location in the PLC that contains the data value.
This is the item name
In this example, each time the value of N7:0 changes in the PLC, the server will
automatically send the new value to the cell containing the formula in Excel.

Refer to the Microsoft Excel manual for complete details on entering Remote
Reference formulas for cells.
Values may be written to the server from Microsoft Excel by creating an Excel macro that
uses the POKE command. The proper command is entered in Excel as follows:
channel=INITIATE("applicationname","topicname")
=POKE(channel,"itemname",Data_Reference)
=TERMINATE(channel)
=RETURN()
The following describes each of the above POKE macro statements:
channel=INITIATE("applicationname","topicname")
Opens a channel to a specific topic name (defined in the server) in a particular
application name (the executable name less the .EXE) and assigns the number of that
opened channel to channel.

By using the channel=INITIATE statement the word channel must be used in the
=POKE statement instead of the actual cell reference. The "applicationname" and
"topicname" portions of the formula must be enclosed in quotation marks.

=POKE(channel,"itemname",Data_Reference)
POKEs the value contained in the Data_Reference to the specified item name (actual
location in the PLC) via the channel number returned by the previously executed
INITIATE function. Data_Reference is the row/column ID of the cell containing the
data value.
=TERMINATE(channel)
Closes the channel at the end of the macro. 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.

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.
This section provides you with some simple steps that can be taken to ascertain and
correct communication problems. The problems described here represent the most
probable causes of communication failure.

This is a general troubleshooting guide and for the sake of brevity we cannot
cover every possible source of communication problems.

This section explains the most common error situations that can occur when attempting
to establish communication between InTouch and a server.
Servers are Window applications that communicate with I/O, PLCs, and/or other data
sources. If a server supports either the Microsoft Dynamic Data Exchange (DDE) or the
Wonderware SuiteLink protocol, it is capable of communicating with the Wonderware
InTouch program.

All Wonderware version 7.0 or later servers support both DDE and SuiteLink.
However, the SuiteLink protocol is only supported on the Windows NT (version 4.0 or
later) and Windows 2000 operating system.

Servers respond to data requests made by other applications. Requesting applications


are called clients. When WindowViewer acts as a client and requires the value of an
item, it contacts the server and requests the item’s value. The server will report the
value and update WindowViewer only if a change occurs. All WindowViewer data
requests provide information relating an item to a register, coil number, or I/O data point
understood by the server. The server uses the information to automatically handle all
messages to and from I/O, hardware devices (PLC), and/or other data sources.

We highly recommend starting all the servers required by the InTouch application
before starting WindowViewer. InTouch (versions prior to 7.0) will display the Initiating
DDE Conversation message box for each uninitiated conversation.

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.
8 This example only applies when using a version of InTouch prior to InTouch
7.0.
To troubleshoot communication problems between WindowViewer and the server,
perform the following steps as listed below.

ุ Verify the I/O Server is running.


1. Start the server program.
2. Verify the server is running by checking to see if it is in the Windows Task List.
On Windows NT and Windows 2000, 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. Switch to (or start) WindowMaker. Select Access Names from the Special Menu,
the Access Name Definitions dialog box appears listing all Access Names defined in
the WindowMaker.
2. In the Access Names list, select the Access Name referencing the server and click
Modify. The Modify Access Name dialog box will appear.
3. 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.
8 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.
8 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.
4. Repeat steps 2 & 3 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. The server cannot be configured if


WindowViewer is running.
2. Start the server program.
3. From the server’s Configure menu select Topic Definition. The Topic Definition
dialog box appears listing all topic names defined in the server.
4. Verify that the topic name exists and is spelled exactly the same (including spaces)
as the topic name referenced in the WindowMaker Access Name definition.
8 Blank spaces cannot follow the topic name in either the server's Topic
Definition or the Access Name definition.
5. If the topic name is different, either correct it in the server or switch to
WindowMaker and correct it in the Access Name definition.
6. Once you performed the above procedure, restart WindowViewer and switch to the
server program. Data should now appear in the server’s program window to
indicate that WindowViewer and the server are communicating.
8 The data in the server’s 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 server’s program window.
7. If no data appears in the server’s 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.
8 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.

If you have successfully applied the debug techniques listed in the previous section and
are still experiencing communication problems to a server that is attempting to
communicate using the SuiteLink protocol, perform the following steps as listed below:

ุ Verify the I/O Server supports the Wonderware SuiteLink protocol, that is, the I/O
Server is version 7.0 or above.

ุ Try communicating to the I/O Server using the DDE protocol. If this is not possible,
then proceed to the next troubleshooting section otherwise continue with the following
steps:
1. Verify Microsoft's TCP/IP stack is installed and configured properly.
8 SuiteLink uses the Microsoft TCP/IP stack for its communications even if the
client application and the server reside on the same node.
2. If you do not have an Ethernet card to bind to the TCP/IP stack, install the
Microsoft Loop Back Adapter.
3. Install the Microsoft TCP/IP stack.
This section provides you with simple steps to diagnose and correct server to PLC
communication problems. The debug techniques listed below address both serial and
board servers. Disregard any information that is not applicable to the server type that
you are using.
When attempting to establish communication between a server and a PLC, if no data
appears in the server's program window and the data items are not updating in
WindowViewer, switch to the Wonderware Logger and check for error messages.
$ For more information on the Wonderware Logger, see your online FactorySuite
System Administrator's Guide.
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

Unless specified otherwise, most serial communication 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, we have found that the communication 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 we recommend using the National
cards. Some of the highly integrated UART chips (most notably, Winbond and UMC)
have a tendency for their transmitters to hang, 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.
8 A continuity tester can be helpful here.

ุ Verify the I/O Server’s serial configuration settings (Parity, Stop Bits, Baud Rate,
Handshaking and so on) against the settings in the hardware device.

ุ Verify the communication port is working properly in Windows.


1. Close the server program.
8 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.
8 Also, if you are using an AT type computer, two devices cannot share
interrupts. Verify that the communication port you are using has a unique
interrupt setting.
2. On Windows NT or Windows 2000, start the HyperTerminal program.
3. Configure the Terminal (or HyperTerminal) program to use the same communication
port with the same settings (baud rate, parity, stop bits and so on) as the hardware
device.
4. Connect a null modem cable to a second computer's port.
5. On the second computer, start and configure the Terminal (or HyperTerminal)
program with the same settings as the first computer.
6. Verify that you can send data between the two computers.
8 If you do not have two computers and the computer you are using has another
port, start two instances of the Terminal (or HyperTerminal) program with each
configured to their own port. Then try communicating between them.
8 If you have an external modem, connect the modem to the communication port
that you are testing to see if you can dial out.
7. If the communication port does not appear to be functioning properly, check your
environment files (AUTOEXE.BAT, CONFIG.SYS, SYSTEM.INI, and WIN.INI).
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.
8. If the previous step was unsuccessful, try another communication port or another
computer.

A common misconception of connecting to a PLC with a DOS program and the


same communication 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’s 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.

ุ If you are running Windows for Workgroups, verify the following:


1. Add these lines to the [386Enh] section of your SYSTEM.INI file which is located in
your \Windows directory:
EMMEXCLUDE=A000-EFFF
COMxFIFO=0
where x specifies the COM port number. You need to add a separate COMxFIFO
line for each serial port using a 16550 UART chip.
2. If you are running Windows for Workgroups (version 3.1 or later), download
SERIAL.386 (this fixes a Microsoft bug) from the Wonderware Bulletin Board system
(949-727-0726) or from the Wonderware WEB site at:
http://wondertech.wonderware.com.
8 The size of this file is 10620 bytes, has a date of 2/17/94 and is a self-extracting
zip file called wg1001.exe. It’s located in the "PatchFix Library" on the
Wonderware BBS in the File Transfers / Patchfix area.
8 You must be registered to access the Wonderware Web site.
3. If the above numbers, 1. and 2., do not work, verify the value of the ComBoostTime
parameter in your SYSTEM.INI file. This parameter represents the number of
milliseconds a virtual machine processes a COM interrupt. (The default value is 2.)
It is not recommended that you change this setting. However, if you are receiving
errors such as "Receive Overruns" or "WCRE=-2", try increasing the value to 20.

ุ Verify the parameters for WWCOMTSR.


Do not specify a receive and/or transmit buffer size of 8!
For example:
Correct:
COM1:0 COM2:1,2048,2048
COM1:0 COM2:1
Incorrect:
COM1:0 COM2:1,8,8

ุ Does your computer crash when trying to communicate through the COM port?
If so, verify that each TSR has a unique software interrupt.
8 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 IRQ’s do not conflict with each other or with other communication
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 communication standard
and connects the cable from the COM port to an RS-232 compliant device.

To connect to an RS-422 or RS-485 port on the PLC, you need an RS-232 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 communication boards in the computer such as, internal modems.
1.

ุ If you are using the Windows NT and Windows 2000 operating system, verify the
following:

1. Click Start on the Windows taskbar. Point to Settings, then click Control Panel in
the menu. The Control Panel dialog box will appear.
2. Double-click the Ports icon, the Ports dialog box will appear.
3. Select a port and click the Settings button. The Settings for COMx dialog box
appears:

4. Click Advanced. The Advanced Settings for COMx dialog box appears:

5. Lowering the setting for the Interrupt Request Line (IRQ) value to the minimum may
solve I/O communication problems for portable computers (notebook or laptops)
and framing errors for standard computers.
6. If you are using a 16550 UART chip, select the FIFO Enabled option. If you are not
using a UART chip, make sure this option is not selected.
ุ How long is your RS-232 cable?
Fifteen meters (fifty feet) is the maximum practical length for the RS-232 standard.

ุ 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 NT or Windows 2000 operating system, log on with
Administrator privileges.
8 Without Administrator privileges, the server and Server Install program cannot
make the necessary edits to the Windows NT or Windows 2000 Registry during
installation or board configuration of the server.

1. Click Start on the Windows taskbar. Point to Programs, then to Administrative


Tools (Common), and click User Manager in the menu. The User Manager dialog
box will appear:

2. Double-click the Username you typed in during log on.


3. If the User Properties dialog box does not appear, you do not have Administrator
privileges.
4. If the User Properties dialog box does appear, click on the Groups button and verify
“Administrators” is in the “Member of” list.

ุ If you experience occasional or random communication 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 server’s request for
data may result in communication 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. 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, etc.).
2. Close the programming software. Open the I/O Server and verify the
communications settings are the same.
3. Poke data into the PLC with InTouch or WWClient.
4. Shut down the server and use the programming software to verify that the values
were correctly poked.
8 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.
8 New versions of the Wonderware I/O Servers are released regularly on the I/O
Server CD included in Comprehensive Support Shipments and they are also
available from the Wonderware WEB site at: http://www.wonderware.com.

ุ Move the I/O Server’s configuration file to another location on the computer’s hard
drive. This will clear all configuration for the I/O Server, then reconfigure the I/O
Server.
8 Wonderware server configuration files are typically the exact same name as the
server’s executable name with the .cfg extension. For example, OMRONFO.cfg .
Refer to the Configuration File section of the specific server user’s guide for the
exact name of the configuration file.

ุ If possible, reinstall the Windows operating system.


Files installed earlier on your computer or the NT 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. Select a different PC manufacturer and if this is not possible, try a different PC model
from the same manufacturer.
2. The computer can not use an OEM (Original Equipment Manufacturer) version of
Microsoft Windows. We highly recommend using only a Microsoft Windows
product. 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 Administrator’s Guide .

You might also like