Professional Documents
Culture Documents
Aspen Cim-IO For OPC DA User's Guide
Aspen Cim-IO For OPC DA User's Guide
User’s Guide
Version: V12.2
Copyright (c) 2021 by Aspen Technology, Inc. All rights reserved.
Aspen InfoPlus.21, Aspen Process Explorer, Cim-IO, the aspen leaf logo, Plantelligence and Enterprise Optimization
are trademarks or registered trademarks of Aspen Technology, Inc., Bedford, MA.
All other brand and product names are trademarks or registered trademarks of their respective companies.
This document is intended as a guide to using AspenTech's software. This documentation contains AspenTech
proprietary and confidential information and may not be disclosed, used, or copied without the prior consent of
AspenTech or as set forth in the applicable license agreement. Users are solely responsible for the proper use of
the software and the application of the results obtained.
Although AspenTech has tested the software and reviewed the documentation, the sole warranty for the software
may be found in the applicable license agreement between AspenTech and the user. ASPENTECH MAKES NO
WARRANTY OR REPRESENTATION, EITHER EXPRESSED OR IMPLIED, WITH RESPECT TO THIS DOCUMENTATION,
ITS QUALITY, PERFORMANCE, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
Contents iii
7 Features for DA 3.0 Servers ...............................................................................37
Introduction .................................................................................................. 37
Deadbanding ................................................................................................. 37
DA 3.0 Data Access ........................................................................................ 38
8 Troubleshooting .................................................................................................39
Troubleshooting ............................................................................................. 39
Connectivity Issues .............................................................................. 39
DCOM UDP on Windows ........................................................................ 39
Isolating a Fault to the Device Level ....................................................... 40
Isolating a Fault to the OPC Server Level ................................................ 41
Isolating a Fault to the Cim-IO Components ............................................ 41
Isolating a Fault to the Client Level......................................................... 42
Failover and Redundancy ................................................................................ 42
Frequently Asked Questions............................................................................. 42
Error Codes ................................................................................................... 43
9 Glossary .............................................................................................................45
Client.................................................................................................. 45
DIOP .................................................................................................. 45
DLGP .................................................................................................. 45
Logical Device ...................................................................................... 45
Logical Device Name............................................................................. 45
OPC .................................................................................................... 45
OPC Group .......................................................................................... 45
OPC Cache .......................................................................................... 46
OPC Device ......................................................................................... 46
OPC Update Rate ................................................................................. 46
Service ............................................................................................... 46
Service Name ...................................................................................... 46
iv Contents
1 Introduction
Related Documentation
The following publications contain additional information that may be needed
to fully understand the Cim-IO for OPC DA Interface:
Aspen Cim-IO User’s Guide, AspenTech
OPC Data Access Specification versions 1.0a, 2.0, and 3.0
OPC Foundation
Technical Support
AspenTech customers with a valid license and software maintenance
agreement can register to access the online AspenTech Support Center at:
https://support.aspentech.com
This Web support site allows you to:
Access current product documentation
Search for tech tips, solutions and frequently asked questions (FAQs)
Search for and download application examples
1 Introduction 1
Search for and download service packs and product updates
Submit and track technical issues
Send suggestions
Report product defects
Review lists of known deficiencies and defects
Registered users can also subscribe to our Technical Support e-Bulletins.
These e-Bulletins are used to alert users to important technical support
information such as:
Technical advisories
Product updates and releases
Customer support is also available by phone, fax, and email. The most up-to-
date contact information is available at the AspenTech Support Center at
https://support.aspentech.com.
2 1 Introduction
2 Release Notes
This chapter describes known limitations and problems in the interface, recent
changes or fixes in the interface, and configuration and installation
comments.
Note: Beginning with aspenONE V8.0, known issues are recorded in the
Aspen InfoPlus.21 Product Family Release Notes.
Changes, fixes, and known issues in Cim-IO for OPC DA version 3.0.1
ID Description
2 Release Notes 3
ID Description
Changes, fixes, and known issues in Cim-IO for OPC DA version 3.0.0
ID Description
152912 OPC Server takes a very long time to Initialize all the
Enhancement points, during which time none of the points are
transmitting values.
An option has now been added to OPCProperties that
4 2 Release Notes
will allow the user to specify the initial read from the
CACHE of the OPC server, rather than a DEVICE read.
2 Release Notes 5
Changes and fixes made to Cim-IO for OPC DA version 2.35:
ID Description
132337 The Cim-IO for OPC interface can be started using NET
START.
132818 Fixed the problem where the interface was not using
the service name specified in the servicenames.txt file.
Enhancement This version of Cim-IO for OPC works with OPC servers
complying to version 1.0A or 2.0 of the OPC
specification.
Enhancement Support for the “description” and “engineering units”
smart data types were added.
131754 If the OPC server is not up when the Cim-IO for OPC
131441 interface manager starts up, the interface retries a few
times before the Cim-IO for OPC interface program
(asyncdlgp.exe) exits. A message saying that the OPC
server is not installed is logged to the
CIMIO_MSG.LOG file.
131381 The StartStop Utility will return to the dialog box
instead of exiting after an error occurs.
131380 The StartStop Utility input strings of "TCP Service
Name" and “Node Name” are now limited to 32
characters, and the "OPC Service Name" input string is
unlimited.
131378 When the StartStop Utility is launched, the “OK”
button is no longer active until data has been entered
into the input areas.
131377 The Start menu was referred to as "StartStop Utility"
and on the application dialog box, it was referred to as
"StartAndStop". This has been changed to be
consistent.
131376 When the user is in the "StartStop Utility" the Start
and Stop buttons are now accessible using the TAB
key.
6 2 Release Notes
Changes and fixes made to Cim-IO for OPC DA version 1.4:
ID Description
130808 If the Cim-IO client did not exit gracefully, OPC groups
were not properly released by the Cim-IO for OPC interface.
130809 After rebooting the system, the Cim-IO for OPC interface
service started before the OPC servers required for the
proper operation of the AsyncDLGP programs.
130811 When demand reads were made, the status of each point in
a Cim-IO list was set to the status of the first point in the
list.
130812 IO operation from/to OPC DEVICE (as opposed to OPC
CACHE) took at least one second.
129934 In certain circumstances, the program AsyncDlgp.exe
crashed when getting ASCII string data.
130813 Store and Forward could not be used if the service name
generated from OPC server name was longer than 15
characters.
NOTE: The solution to this problem required the generated
service name to be truncated to 15 characters.
Example: The Cim-IO service name for an OPC server name
called OPC.NAMELONGERTHAN15CHARS.1 will not be
CIOOPCNAMELONGE instead of
CIOOPCNAMELONGERTHAN15CHARS1
If for any reason the service name generated by the
interface is not acceptable, the user can specify what the
service name should be by adding a line to the file
ServiceNames.txt located where the interface was installed.
130814 When browsing the address space for some servers, the
DisplayTags Utility sometimes would crash.
2 Release Notes 7
Changes and fixes made to Cim-IO for OPC DA version 1.1:
ID Description
8 2 Release Notes
3 General Overview
OLE for Process Control (OPC™) provides a common method for applications
to access data from any data source (such as a device or a database) without
having to know about the specificity of the device or the database.
Applications communicate with OPC servers in a standard way, independent
from the data source.
The Cim-IO for OPC DA Interface is used to transfer data between OPC
servers and Cim-IO Client programs, such as InfoPlus.21™, DMCplus™, user-
written Cim-IO Client programs, and so on.
The Cim-IO for OPC DA Interface consists of a Manager program, which starts
and stops the Cim-IO for OPC DA Servers. Cim-IO for OPC DA Servers are
processes that communicate with OPC Servers. One Cim-IO for OPC DA
Server exists for each OPC Server installed on the system.
Cim-IO for OPC DA Servers receive Cim-IO requests from Cim-IO clients
(GET, PUT, UNSOLICITED GET) and send replies to these clients.
Cim-IO Client
3 General Overview 9
Data Types
These data types are associated with the Cim-IO for OPC DA interface:
Cim-IO-specific
Device-specific
Smart data types
10 3 General Overview
Control Block Anti-Windup
The CIMIO for OPC server supports the CONTROL BLOCK ANTI-WINDUP
(CBAW) status but not all OPC servers will. If the OPC server supports the
limit bit field described in the OPC specification then the CBAW can be used to
read it.
Unit Number
The interface does not use a device unit number specification.
Frequency
The interface does use a frequency specification. For GET requests, a
frequency of 0 specifies a single asynchronous device read. A frequency
greater than 0 specifies an OPC cache read, with the device updating at the
specified frequency. For performance reasons, it is recommended that you
use cache reads for most operations. For UNSOL requests, the frequency
specifies the rate at which the device is polled. 0 is an invalid frequency
for Unsolicited data transfer.
3 General Overview 11
12 3 General Overview
4 Software Installation
Beginning with aspenONE V7.1, Cim-IO server and Cim-IO for OPC DA
versions are matched. No restrictions so far are imposed on earlier versions.
As a general rule, the most recent version of Cim-IO or Cim-IO for OPC DA
should be compatible with at least two earlier versions. As a general practice,
earlier versions should be maintained at the latest patch revision level to
eliminate potential incompatibilities with subsequent, newer versions. In all
cases, the user must consult for compatibility restrictions on the AspenTech
Support web site.
For more information about Cim-IO client and server requirements, see the
Aspen Cim-IO User’s Guide.
4 Software Installation 13
14 4 Software Installation
5 Interface Configuration and
Startup
From the first wizard page, select Cim-IO for OPC from the list of supported
Cim-IO Interfaces and then click Next. The Give the interface a name and
description form displays.
Click Finish, which will automatically start the interface just defined and
bring the form showing all the interface’s processes and the configuration
form to define other properties.
From this form you can edit the Store and Forward fields, select a different
OPC server by clicking the Discover button, change the Start at boot and
Check health options.
OPC DA Properties
The Cim-IO Interface Manager will allow you to configure how Cim-IO for OPC
DA behaves.
To add a server, click Add and then enter the OPC server’s Program ID and
the delay you want into the appropriate boxes. Click OK to enter a server.
You will see that server appear in the OPC Servers box. To change or
remove a delay, select the OPC server and click the appropriate button. Click
Close to go back to the initial window.
Force Update (secs) This parameter specifies the number of seconds until a
changed is forced and reported by the Cim-IO for OPC DA server for
unsolicited values that not updated from the OPC server since the last time a
change was reported to Cim-IO clients. The forced update will report the
same value sent last time but with the current present time. If zero, values
are only updated when received from the OPC server. The default value is
3600 secs.
General Settings
Timezone: If you are reading or writing values of OPC type VT_DATE, you
may wish to specify your time zone so that the conversion to and from UCT is
performed appropriately. Simply select a time zone. The setting will default to
your computer’s current time zone. Note that time for Distributed Control
Systems is absolute as a timestamp identifies a particular absolute second of
time. It is not the result of a conversion to a time-of-day. If you wish to select
another, choose one from the pull-down menu.
Configure OPC Servers: If you want an OPC server to be automatically
available when the computer reboots, you use this feature to configure it to
do so. Click the Edit button to bring up the configuration window to select
OPC servers to connect to automatically. This brings up the OPC Manager
Configuration Window, below.
Note: In order for the utility to have any effect, the Cim-IO for OPC DA
Interface Manager must be running.
3. Create an IOGetDef record to receive the data from the Cim-IO for OPC DA
client using the information at the start of this chapter. For
IO_DEFAULT_DATA_TYPE select “Structure” if all tags in the get record
are of array data types. Select “default” as the IO_DEFAULT_DATA_TYPE
when tags of different data types are used in the same get record.
In the repeat area choose “Structure” as the IO_DATA_TYPE for all array
tags.
Note: For an example array definition file for IP.21, see SampleArrayDef.rld
located in %CIMIOROOT%\io\cio_opc_api
When IO_DATA_PROCESSING for all tags is set to ‘ON’ and
IO_RECORD_PROCESSING and IO_DEVICE_PROCESSING are ‘ON’ the value
data fields in the custom record will populate with array values.
Introduction
Cim-IO for OPC DA 3.0.0 contains extra features for OPC servers that support
the OPC DA 3.0 specification. This chapter covers these new features and how
to access them using InfoPlus.21. Please note that these features are only
useful if the OPC DA server you are using is DA 3.0 compliant.
Deadbanding
InfoPlus.21 unsolicited records feature a point-by-point device deadband.
Because OPC DA 3.0 supports relative deadbanding, any percent deadband
will be passed on to the OPC server. Since OPC DA 3.0 does not support
absolute deadbands, an absolute deadband will not be passed on to the OPC
server.
Because our Cim-IO for OPC DA client supports both specification DA 2.0 and
3.0, the handling of deadbands acquires the following characteristics in order
to specify them for OPC compliant servers:
For OPC servers that comply with the DA 2.0 specification, the group
deadband is specified in the field IO_DEVICE_DEADBAND of InfoPlus.21
CIM-IO group or transfer records for the first valid occurrence in the
group. The same deadband value will then be applied or will be in effect
for all the occurrences in the group. Technically speaking, the user only
needs to specify the deadband value of the first occurrence in the group.
However, AspenTech recommends that the same deadband value be
specified for all occurrences to avoid the situation in which any number of
leading occurrences become temporarily ‘invalid’ and therefore the first
valid deadband value will then prevail whether defined or not.
For OPC servers that comply with the DA 3.0 specification, the individual
point deadband is specified in the field IO_DEVICE_DEADBAND of
InfoPlus.21 CIM-IO group or transfer records for each and every
occurrence in the group. Each occurrence, therefore, can have its own
deadband value.
This chapter then describes troubleshooting for specific problems and defines
the error messages that the interface processes.
Troubleshooting
Troubleshooting helps to isolate a problem with either the interface or its
client. When a problem occurs, such as a database point having an invalid
status or having an incorrect value, the investigation starts at the device level
and moves upward to the application. This section describes the general steps
used to determine which part of the interface is causing a problem.
Connectivity Issues
If Cim-IO OPC cannot connect to the OPC server, you are likely having issues
with Microsoft Distributed COM (DCOM) permissions or with application IDs.
Call AspenTech Support for assistance.
8 Troubleshooting 39
The DCOM configuration panel will appear. Select the Default Protocols tab
as shown below.
If the protocol “Connectionless UDP” appears at the top of the list, select it,
select Remove, select OK, and reboot your computer. This protocol is not
generally beneficial for good DCOM communications and was removed from
the default list in Windows 2000 and later operating systems.
40 8 Troubleshooting
Isolating a Fault to the OPC Server Level
Use an OPC client tool, such as Matrikon’s OPC Explorer, to create OPC groups
similar to what you are creating using Cim-IO for OPC DA, and observer the
OPC server’s behavior. If the server is not returning the data correctly or is
not behaving properly, the problem resides with the OPC server. Further
information on what both Cim-IO for OPC DA and the OPC server are doing
can be obtained by using Matrikon’s OPC Sniffer. Matrikon OPC Explorer and
Matrikon OPC Sniffer are available as free downloads from
www.matrikon.com.
8 Troubleshooting 41
value Value of the return code.
timestamp Timestamp of the return code.
status One of the valid Cim-IO status codes,
discussed in "Error Messages."
facility number 77.
driver status Raw status returned by the interface,
described in "Error Messages."
If the error is with Cim-IO for OPC DA, contact AspenTech support. Please
retain any logs produced to assist AspenTech support in quickly locating your
problem.
42 8 Troubleshooting
the OPC server from the list and click on "Properties". Click on the "Identity"
tab and make sure "The interactive user" is selected rather than "The
launching user". DCOM settings connecting a client and server on different
domains or on a workgroup may involve further difficulties.
Error Codes
The following table lists the error codes and text that the interface may log in
the Cim-IO log file:
Code Description
0 Operation Succeeded
77001 Operation Failed
77002 Unsupported Data Type
77003 Unknown Data Type
77004 Failed to Allocate Memory
77005 Unsupported Output Type
77006 The AddGroup Method Failed
77007 The AddItems Method Failed
77008 The OPC QueryInterface Method Failed
77009 The Register function Failed
77010 Invalid Transaction Type
77011 The NewList function Failed
77012 The SyncRead function Failed
77013 The SyncWrite Function Failed
77014 The GetList Function Failed
77015 The BuildReply Function Failed
77016 The ServerTag Function Failed
77017 The ServerTemplate Function Failed
77018 The SeverIntID function Failed
77020 Unsupported Device Data Type
77021 Unsupported Data Type
77022 No OPC Server running
77023 The AsyncRead Function Failed
77024 The AsyncWrite Function Failed
77025 Failed to Connect Sink
77026 No callback was registered
77027 One of the arguments passed to the function was invalid
77028 Item Was Not Found in Internal List
77029 The BuildDummyResults Function Failed
77030 Output Type and Data Type Mismatched
77031 Invalid Item
77032 No Access Right
77033 The passed item handle was invalid
77034 The Item is no longer available in the Server Address Space
8 Troubleshooting 43
Code Description
44 8 Troubleshooting
9 Glossary
Client
A program capable of initiating communications with a service program. Cim-
IO clients talk to Cim-IO servers.
DIOP
Device Input/Output Process. A DIOP is a Cim-IO interface task that performs
low-level communications with external hardware devices or other databases.
DLGP
Device Logical Gateway Process. A DLGP is a Cim-IO interface task that
communicates with client tasks, forwards messages to DIOPs in the interface,
and returns messages to the client tasks that initiated the requests.
Logical Device
Representation of the interface supported by the Cim-IO interface platform.
Cim-IO can support several different interfaces at the same time.
OPC
Microsoft Object Linking and Embedding for Process Control. OPC is a
standard in the process control industry. Standards are set by the OPC
Foundation.
OPC Group
A collection of points to be read or written, similar to a Cim-IO Transfer
Record.
9 Glossary 45
OPC Cache
OPC Specification requires that an OPC server obtain data regularly if
requested, and store this in an internal cache. Reads requesting the cache as
the data source, and all unsolicited callbacks, come from data stored in this
cache.
OPC Device
An OPC Client may request that its data be directly read from the device. This
bypasses the OPC cache (see above). Writes are always to the device.
Service
A program that provides services to other programs. A service has a defined,
constant, TCP port number that it listens on for incoming connections. The
service’s name and port number must be defined in the operating systems’
Services file.
Service Name
A name for a particular service.
46 9 Glossary