=========================================================================
			 (c) ICONICS,Inc. 1986-2005
			      MODBUS OPC Server
				 VERSION 3.12
 			       March, 2005
=========================================================================



============================================================
 New features and issues (mainly bug fixs) in version  3.11
============================================================

- Made the COPCEventCategory::RegisterEventAttribute method an interface method,
  so that it can be accessed from related objects.

- Fixed "NamesCaseSensitive" problem. Added IOPCTKAddressSpace::OnCreateAddressSpace
  method - implemented on COPCAddressSpace, on COPCMemoryAS, and possibly also in
  server's specialization of this method (e.g. for Modbus servers). Removed
  FinalConstruct method from these classes, and moved the code from FinalConstruct
  into the OnCreateAddressSpace.

- Removed an input parameter (IOPCTKMemoryNode*) from IOPCTKTag::OnConfigurationChanged(),
  IOPCTKScanner::OnLeafConfigurationChanged, IOPCTKMemoryBranch::SetTagOnLeafConfigurationChanged,
  and IOPCTKMemoryLeaf::SetTagOnLeafConfigurationChanged methods.

- Added COPCSubscription::FlushItemCacheMap method.

- Fixed a memory leak on COPCSubscription (sometimes not properly clearing variants in m_ItemCacheMap).

- Changed COPCTag/COPCMemoryTag refreshing mechanism to utilize the SequenceIDs. Removed
  these methods that are now obsolete: IOPCTKMemoryBranch::SetTagOnLeafConfigurationChanged,
  IOPCTKMemoryLeaf::SetTagOnLeafConfigurationChanged, IOPCTKScanner::OnLeafConfigurationChanged,
  IOPCTKTag::OnLeafConfigurationChanged.

- Changed default values for filters' and item names' NamesCaseSensitive switches
  (COPCComponent::m_NamesCaseSensitive, COPCEventSubscription::m_FilterCaseSensitive)
  (COPCAddressSpace::m_NamesCaseSensitive, COPCAddressSpace::m_FilterCaseSensitive)

- Changed default value for "DebugWatchEnable" switch (COPCComponent, CWatch classes).

- Changed default value for "DebugWatchEnable" and "NamesCaseSensitive" switches also in
  OPCAdmin application.

- Manual Value parameter can now be an array.

- Added WriteAutoUpdateCache registry setting. Based on the setting a tag object will
  (or will not) automatically update its cache after a successful write operation.
  The default value is FALSE (no automatic update) as the automatic update can inflict
  the value of the tag to oscilate several times (some devices, even after successful write
  action, are still giving the "old" value for some more time).
  (#14098)

- Fixed a bug in COPCItem::UpdateCache (if there was an item set as Manual, but with
  Manual Value not specified, servers were sending updates to OPC clients).

- Fixed a bug in COPCItem::UpdateCache (if there was an item set as Manual, but with
  Manual Value not specified, servers were sending updates to OPC clients).
  More carefully evaluating the ExceptionLimitExceeded call return value.
  (#14169)

- Changes an implementation of 'NamesCaseSensitive' switch. Now not converting item
  names to uppercase (when NamesCaseSensitive is FALSE, i.e. default), but using
  different map's "less" operator implementation (faster code, better implementation).
  (#14182)

- Fixed a possible problem in CThreadScheduler::TimeChangeDetected() method.
  In case a system time was set backwards, tasks in the ThreadScheduler wouldn't be
  executed until a system time comes up to the previous value.
  (#14212)

- Fixed a case when a simulation signal is changed/set/reset while a tag is being
  monitored. Also fixed a case when 'simulated' attribute is set to True,
  but no simulation signal is set (returning OPC_QUALITY_CONFIG_ERROR bad quality).
  (#14221)

- Changed COPCTag/COPCMemoryTag refreshing mechanism. Made Refresh() method an interface
  method. The IOPCTKTag::Refresh() is now called from COPCReadOperation and
  COPCWriteOperation objetcs before any ExecuteDeviceRead() or ExecuteDeviceWrite()
  method to refresh the state of the tag.
  (#14163)

- COPCComponent::GetVersionInfo -> 3.11.0000




============================================================
New features and issues in version  3.1
============================================================

The OPC ToolWorX 3.1 (and then also the Modbus OPC Server 3.1)
is considered to be a major release.
There is a lot of changes in the 3.1 release. These changes
can be categorized into some categories:

- New code, i.e. new features provided by OPC ToolWorX 3.1
  (see the main tasks listed below).
- New implementation of internal routines and algorithms
  (see the main tasks listed below).
- Bug fixes.


New features in version 3.1: 
--------------------------------------------
- OPC DA3 interfaces added
- OPC AE 1.10 interfaces added
- OPC ComplexData support/documentation added
- TraceWorX support added (logging data into XML file)
- Address Space Online configuration
- Simple Alarms and Events supported
- Tracking Alarms and Events supported
- New Event Categories supported (OperatorProcessChange, SystemConfiguration, AdvancedControl, SystemMessage, BatchStatus, DeviceFailure)
- Recursive address space possible
- OPC-XML-DA wrapper installs with Modbus OPC Server / OPC ToolWorX (also as a redistributable)
- Lightweighted MemoryAS classes (COPCMemoryLightLeaf, COPCMemoryLightDataItem)
- ClassBranch concept to reduce/optimize memory consumption of server's address space stored in its memory
- Toolkit's/Server's internal counters and statistical info now accessible via COM interfaces
- OPC Admin utility installed as part of OPC ToolWorX 3.1 installation


New internal features in version 3.1: 
--------------------------------------------
- new internal update method on COPCSubscription class to improve responsivness (and OPC throughput) of OPC servers.
- new internal scanning algorithm to improve "device scanning" throughput of OPC servers.
- new internal concept of grouping Tag objects together to make the "burst read" as effective as possible (COPCChannel class involved in this concept)
- OPC Foundation files updated




============================================================
Version 3.0
============================================================
New features and bugs fixes:
----------------------------
- Added Registry clean-up code.  No registry entry is left when the user unregisters the server.
- Initial timestamp is set to PC current timestamp when server is started.


============================================================
Introduction
============================================================
The ICONICS Modbus OPC Server is an OPC compliant Server able to communicate with real 
time I/O device and serve data to OPC clients. This Modbus OPC servers was implemented 
using advanced programming concepts of the most current version of the OPC specification 
(Version 2.0) for use in developing next generation industrial software 
applications. 

The ICONICS Modbus OPC Server communicates with OPC clients and real time Modbus RTU 
and ASCII I/O devices. This Modbus OPC server is based on the popular Modbus protocol 
and can be connected to real world Modbus compatible I/O hardware. The Modbus OPC 
Server/Client is an ideal way to learn about the new emerging OPC standard and can 
also be used to test other OPC compliant Clients.

 
============================================================
Contents
============================================================

	- INTRODUCTION			
	- MODBUS OPC SERVER FEATURES	
	- OPC CLIENT APPLICATION		
	- OPC MODBUS SERVER DISK CONTENTS	
	- INSTALLING THE MODBUS OPC SERVER
	- RUNNING THE MODBUS SERVER	
	- RUNNING THE OPC CLIENT		
	- HOW THE CLIENT CONNECTS TO AND GETS DATA FROM A SERVER	
	- CONTACTING ICONICS		

/*************************************************************************/
/*			    MODBUS OPC Server				 */
/*************************************************************************/
 

============================================================
Modbus OPC Server features
============================================================
The OPC Server is extremely flexible, and can be utilized and used with DCOM for intranet 
and internet applications.

Key features of the Modbus OPC Server.
	- Advanced OPC data Quality and data conversion to client's request
	- OPC Modbus server utilizes advanced free-threading capability 
	  of the Modbus Server
	- Supports multiple multidrop I/O Devices
	- Supports Multiple Groups (folders) for easy configuration and manageability
	- Supports all popular PLC and RTU data types
	- Internal Simulation capabilities for configuration and testing
	- Tag Multiplier lets you create hundreds of tags quickly
	- Sample OPC Client for rapid testing of your OPC data connections
	- GUI interface for viewing tag, groups, and Realtime Signals
	- Full online help
	- Flexible engineering units and signal ranges


============================================================
OPC Client application
============================================================

An OPC Client application, provided with the Modbus OPC Server, which has a rapid method
for testing your Server's configuration.  The OPC Client is able to browse the registry
of PC and display the complete list of installed OPC Servers. It also provides real live 
data feedback and OPC Server browsing capabilities.
OPC test Client is also helpful for verifying results and testing other OPC 3rd 
party applications connected to same server.


============================================================
System Requirements
============================================================
The following are system requirements for installing The Modbus OPC Server and OPC test 
Client application:
- Windows NT 4.0 or Windows 95 with DCOM version xx or greater is required to use the 
  Modbus local server. 
- Hardware requirements 
- Pentium 166 
- 32 Mb RAM 
- 50 Mb HDD 
- Serial Port or Network for device communication.
- Installed Internet Explorer 3.02 or greater.

Note: If you have installed Internet Explorer 4.0 or wish to install, it is required
to read installation notes of IE4.0, since DCOM is a part of IE4.0 and may have an old 
version of DCOM.


============================================================
OPC Modbus Server Disk Contents
============================================================

The ICONICS Modbus OPC Server comes on CD or on relatively large disk set.  
Later versions can be obtained by downloading them from the ICONICS OPC WEB site.  
Visit the ICONICS WEB site at www.ICONICS.com for up to date information on this 
as well as other popular OPC Servers.


============================================================
Installing the Modbus OPC Server
============================================================

1. Insert the ICONICS Modbus OPC disk#1 in the 3.5-inch disk drive. If you have a CD installation, follow the instructions that appear on screen, and later continue with Step 4.

2. Windows NT 4.0 or Windows 95: click Start, and choose Run.

3. In the Run dialog box, type the following:
A:/Setup
(replacing "A" with the actual location of the 3.5-inch disk drive).

4. Enter the Serial Number for installation as provided by ICONICS.  This number is shipped with your Modbus doc.  Or call Iconics for technical support at 1-800-winworx
 
5. Follow the instructions of the setup program.  

6. The setup will ask you to select the components to be installed.
 
7. The setup program will also ask you for the program folder.
 
8. At the end of installation, click OK to view readme and launch OPC client application.

 
Note:	As explained in the installation section of this manual, Windows NT 4.0 or Windows 95 
with the DCOM is required to run the Modbus OPC server.

Note:  	Internet Explorer 4.0 installs DCOM automatically.  
However, if using Internet Explorer 3.0, DCOM is not provided and can be 
downloaded from Microsoft.com


============================================================
Running the Sample OPC Client
============================================================
The OPC Client is used as a test case to debug an OPC Compliant Server and access 
various some of the OPC variables and parameter configuration.
- Start the OPC Client. 
- From the OPC menu, Choose Connect. The OPC Server menu appears showing all registered 
	OPC servers. 
- From the OPC menu, choose Server Status to view the Modbus Server status window.



============================================================
How the client connects to and gets data from a server
============================================================

When OPC servers are installed on the system, they are registered so that clients can 
find them and users can view them in a list. To make a client/server connection, user 
must first choose a server. The server name selected (for example, "ICONICS.ModbusOPCServer")
is used to get a class ID which, in turn, is used to create a COM object. If the user
selects a server that is not currently running, the system starts the server and then
creates the object in that server on behalf of the client.

Once the COM object is created, the client application has an IOPCServer interface,
as defined in the OPC specification. This is the main interface to the OPC server and
this document refers to this as a Server interface. (The other interface is Group.)
This OPC client always creates a group and registers an advise interface with it to get
asynchronous data notification.

When an item is added, the dialog displays either a hierarchy or a flat list of names,
depending on the server. The names are queried from the Server object using the filter
string and requested data type. When the user either types or selects a name, an item 
of that name is added to the Group object. This item is also read immediately to get 
an initial value.

Items in a group are scanned by the server; when their values change, the advise 
interface in the client is notified. A data structure containing the data for each
item whose value or quality has changed (and only those items) is passed to the 
client's advise interface. The client unpacks and uses (displays) the data.


============================================================
Server status and Group parameters
============================================================

The Server status dialog periodically queries the Server object for status and displays
the results. The Group Parameters dialog queries the group state and displays the results.
The OK or Apply buttons in the Group Parameters dialog box write the parameters from the
dialog to the Group object and read the parameters back. This primarily controls the
scanning and updating of data. When a group is inactive, it does not send data notifications
to the client and, typically there is no reason to scan the items when the group is inactive.
The Update Rate in the Group Parameters dialog box specifies the rate at which data notifications
should be sent back to the client, assuming that data has changed. This is also the rate at 
which items are scanned on behalf of this client.

To write a value to an item, select the item in the OPC Client windows and choose 
Writer Value to Item from the OPC menu, The client writes the value typed in the Write 
Item Value dialog box to the correct item in the Group object. The method of writing data
is determined by the "Asynchronous" checkbox. When data is written synchronously, the call
to the server blocks until the operation has completed, which may take a long time. When 
data is written asynchronously, the call to the server returns quickly and the operation is
carried out on another thread. When the write has finished, the client's advise interface is
notified with the results.

The user can disconnect from the selected server by choosing Disconnect from the OPC menu.
The Disconnect command unregisters the advise interface, releases the Group object, and 
then releases the Server object. Releasing an object means that the client is no longer 
interested in the object, so the system can delete the object in the server.


============================================================
Contacting ICONICS
============================================================


For more information, you can contact ICONICS as follows:
Mail:	ICONICS, Inc.
	100 Foxboro Blvd.
	Foxboro, MA 02035 USA
Phone:	508-543-8600
Fax:	508-543-1503
WEB:	www.iconics.com

Email:	support@iconics.com. Use this address, in addition to the ftp site, 
for OPC questions and answers introduction.
