CIMPLICITY HMI Interface to the PI System V 1.1.0 Or Greater

CIMPLICITY HMI Interface to the PI System V 1.1.0 Or Greater

CIMPLICITY HMI
Interface to the PI System
V 1.1.0 or Greater

How to Contact Us

Phone / (510) 297-5800 (main number)
(510) 297-5828 (technical support)
Fax / (510) 357-8136
Internet /
World Wide Web /
Bulletin Board / (510) 895-9423
Telebit WorldBlazer modem (Hayes, MNP, or PEP compatible)
8 data bits, 1 stop bit, no parity, up to 14400 bps download
protocols: Xmodem, Ymodem, Zmodem, Kermit
Mail / OSI Software, Inc.
P.O. Box 727
San Leandro, CA 94577-0427
USA
OSI Software GmbH
Hauptstrae 30
D-63674 Altenstadt 1
Deutschland /
OSI Software, LTD
P. O. Box 8256
Level One, 6-8 Nugent Street
Auckland 3, New Zealand

Unpublished -- rights reserved under the copyright laws of the United States.
RESTRICTED RIGHTS LEGEND
Use, duplication, or disclosure by the Government is subject to restrictions as set forth in subparagraph (c)(1)(ii)
of the Rights in Technical Data and Computer Software clause at DFARS 252.227-7013

Trademark statement—PI is a registered trademark of OSI Software, Inc. Microsoft Windows, Microsoft Windows for Workgroups, and Microsoft NT are registered trademarks of Microsoft Corporation. Solaris is a registered trademark of Sun Microsystems. HPUX is a registered trademark of Hewlett Packard Corp.. IBM AIX RS/6000 is a registered trademark of the IBM Corporation. DUX, DEC VAX and DEC Alpha are registered trademarks of the Digital Equipment Corporation.

 1997 OSI Software, Inc. All rights reserved
777 Davis Street, Suite 250, San Leandro, CA 94577

01/19/00 12:59 PM1

Table of Contents

Introduction

PI Point Configuration......

Startup Parameters......

Installation, Start and Stop

Hints for the System Manager

How the Interface Operates......

March 22, 19991

CIMPLICITY HMI Interface Documentation

Introduction

The CIMPLICITY HMI Interface provides the transfer of data between “GE Fanuc Automations CIMPLICITY HMI for Windows NT and Windows 95” and the Plant Information (PI) System. The interface runs on a Windows NT Workstation or Server.

The interface reads data from one or multiple Cimplicity servers and sends them to the PI server. It may be located on the PI server or one of the Cimplicity servers or – most typically – a node of its own. The interface can be run in multiple copies. A convenient – and recommended – configuration will be to run one copy for each Cimplicity project used.

The node the interface runs on is called the interface node in this document. If the interface is running on a node apart from the PI server, this node is also called a pure interface node.

The interface communicates to Cimplicity via Cimplicity Point Management API calls. It makes internal use of the PI-API-NT in order to keep a standard way of interfacing from a client node to the PI Server Node.

References:

GE Fanuc Automation, CIMPLICITY HMI for Windows NT and Windows 95,
Base System, User’s Manual, GFK-1180F, October 97

GE Fanuc Automation, CIMPLICITY HMI for Windows NT and Windows 95,
Point Management API, Application Developer Guide, GFK-1201C,
April 1997

OSI Software Inc., PI2 Data Archive, several versions

OSI Software Inc., PI3 Data Archive, several versions

OSI Software Inc., PI-API, several versions

OSI Software Inc., Uniint End User Interface Documentation, Uniint version 2.34,
November 1997

OSI Software Inc., OSI bufserv, July 1997

OSI Software Inc., OSI Interface Control Program, V 2.0, March 1999

Supported Features
Interface Platforms supported / Windows NT (tested for Intel)
Order Code / GmbH
Vendor Software Required / Yes
Sign up for Updates / Yes
Exception Reporting / Yes
PI API Node Support / Yes
UNIINT / Yes
Input / scanned, on change, on PI event
Outputs / No
Text Transfer / Convertible to Digital
Configuration Data / Automatic extraction, changes manually or by user tools
Multiple Links / Yes
Failover / Yes for Cimplicity servers, No for interface node, No for PI server
Number of Points / Unlimited

PI Point Configuration

The following database details are necessary for configuring a PI point for use with the Cimplicity interface.

Point Name

The point name is free, according to the normal PI point naming conventions. Watch that if the PI server is a PI 2 (=VMS based) server, tag names are much shorter (10 significant characters) than Cimplicity point ids (40). You may use the point id as a long tagname with client software, but that does not prevent you from having to generate unique 10 character tagnames for your tags.

Point Source

The point source is a single character, for example I (C-I-MPLICITY). Note, however, that the character C is reserved for another purpose in PI. For PI 2 servers the point source must be defined in the point source library before point configuration. If you are running multiple copies of the interface you may also use multiple point sources.

Point Type

The interface supports the PI point types real R, integer I and digital D. It performs the following Cimplicity to PI data type conversions:

PI Point Type / Cimplicity Data Type
REAL / INT(a) / BOOL / BITS(b) / STRING / others
I / Yes(c) / Yes / - / - / - / -
R / Yes / Yes(d) / - / - / - / -
D / - / Yes / Yes / Yes(e) / Yes(f) / -
S / - / - / - / - / Yes / -

(a) USINT, UINT, UDINT, SINT, INT, DINT
(b) BYTE, WORD, DWORD
(c) rounded
(d) If a conversion to real is defined for a point (engineering unit conversion), the interface makes use of it.
(e) The extended desciptor is used to specify the bit number (see below).
(f) If the first 12 characters of the string match one of the digital states defined for the tag, this state becomes the value of the tag else the digital start code.

If the Cimplicity point referenced is a complex type (array, structure or bitstring), the component the PI tag refers to is selected in the extended descriptor (see there). Only one level of selection is supported.

For digital tags that are converted from Cimplicity strings special restrictions must be observed: They all have to refer to the same digital start code and range (PI2) or digital set resp. (PI3) and the range should be not too big (say 200 if you assume 100 different string texts to be used). So all those tags have to share the same digital states even if each one of them will only use a subset. If you do not observe this, some tags will be rejected by the interface. If you set the range too big, this might put an unnecessary load on the interface when many string values arrive.

If the interface reads a Cimplicity string that is defined as PI point type digital that is not in the state table/set, it uses the first value of the range instead. So set the first state of the range to something like “unknown text”. Further on after a change of the state table/set you must restart the interface in order for it to recognize it.

If the Cimplicity string is defined as a string also in PI, it copies the first 80 characters into PI.

Instrument Tag

This field contains the Cimplicity point id. Do not use fully qualified point ids (like \\project\pointid) here. The interface generates fully qualified pointids using location 2 and the instrument tag.

Location 1

This is the number of the interface process, determined to collect data for this tag. The interface can run multiple times to distribute CPU power. E.g. it is possible to give a number of tags that are to be scanned with a high frequency a separate process.

The value you enter here must be the same as the parameter /id in the startup file of the according interface process.

Location 2

Specifies the point’s Cimplicity project. This number refers to one of the /project=<project_name> startup parameters. It specifies which of these /project parameters in their order in the startup line names the points project. Counting starts by 1.

Location 3

Not used, must be 0.

Location 4

Specifies the scan class used.

The startup command procedure contains an interface start line that includes parameters like /f=00:00:30. These parameters specify the scan rate, that is the cycle time for scan classes. The first /f= in their order in the startup line relates to scan class 1 etc.

Note however that the first scan class (1) is not used for periodic scanning but for values to be received ‘on change’. The scan rate in this case determines the cycle time the interface looks for new values received ‘by change’. Every such cycle time the interface will process all new values received. The first scan rate has to be set like the others but should normally be 1 second.

Note that it is assumed that all values for a point written to PI are in ascending time order. In order to assure this the interface discards any values out of this order.

Location 5

Not used, must be 0.

Extended Descriptor

The Extended Descriptor is used for 2 purposes. The specifications are done using keywords. Valid keywords are: EVENT, BIT, ELEMENT, COMPONENT.

The first purpose is to trigger the update of the point by a change of value of another PI tag. Use EVENT=<other tag>. The tag requests a value from Cimplicity whenever the specified PI event tag changes value (has an event).

The second purpose is to specify – in the case of a complex Cimplicity point – the unit to make up the value for the PI point. Complex Cimplicity points are bitstrings, arrays or structures. Bitstrings correspond to the data types BYTE, WORD and DWORD. Bitstrings consist of bits, arrays of elements and structures of components. Use BIT=<bit number> or ELEMENT=<element number> or COMPONENT=<component name>. Bit and element numbers counting starts by 0. No spaces are allowed before or after the = sign.

Engineering Units

The Engineering Units have to be defined in accordance with the meaning of the measured values.

Scan Flag

This is usually ON for all points of this interface. If you edit this Point Attribute to OFF, then the tag is OFFLINE (no values are exchanged for this tag).

Exception Maximum Time

Apart from the standard usage the excmax attribute is used for a special purpose. The interface uses this time for an automatic refresh for tags that change infrequently. Whenever a tag has not got a new value for excmax time, a new value is scanned from Cimplicity and timestamped with the PI Server time at receiption of the value. An excmax value of 0 is interpreted as the default value 28800.

Note that this is a means to recover from a Cimplicity problem: When a Cimplicity project is stopped (or more generally when there is a disconnection to a Cimplicity server or project), Cimplicity sends a ‘point unreachable’ value to the interface. This is turned to an ‘I/O Timeout’ for the tag by the interface. Unfortunately Cimplicity does not send a new value with a new timestamp after restart of the project or reconnect. The only way for the interface to detect the reconnect is to use the automatic refresh feature. So users are encouraged to make extensive use of the feature and use reasonable settings for the exception and compression parameters. Otherwise an I/O Timeout is reported for tags for a much longer time than true.

Other Exception Reporting

Standard PI usage, see PI System Manuals.

Zero, Span

Standard PI usage, see PI System Manuals.

Other Attributes

The Interface does not use the other PI tag attributes.

Conversion of configuration data

Cimplicity allows to extract configuration information to .csv or text files. These can be used to PI configuration input files with not too much effort. The actual details are left to the user, no conversion tool is supplied.

The following Cimplicity point attributes are needed for PI point configuration: point id, data type, eng unit, zero, span, eventually array element, bit number, structure component.

For PI 2 systems it may be difficult to change Cimplicity point ids to – normally much shorter – PI tag names. The point id must also be used for the instrument tag name.

Another task often found difficult is to define digital states for PI and digital start code (PI 2) or digital set (PI 3) for tags from texts used in Cimplicity. It is very useful to have all these texts available in lists.

The following is a list of steps typically needed for conversion:
- group Cimplicity points by server: interface number = location 1
- group by project: project number = location 2
- group by scan frequency or on change: scan class = location 4
- or group by common event point: ext. descr. EVENT=<event point>
- default data type conversion INT to R, REAL to R, BOOL to D, BYTE to D etc.
- for all bit strings: ext. descr. BIT=<bit number>
- for all arrays: ext. descr. ELEMENT=<element number>
- for all structures: ext. descr. COMPONENT=<component name>
- take over engineering units, point id (to tag name and instrument tag)
- take over zero, take over or calculate span
- set for groups of points: exception specs, compression specs

Startup Parameters

The following table (values shown are defaults) describes the meaning and use of the most important parameters. Following are descriptions for less often used ones and test and debug helps.

/ps=I / (required) Point source. For Point Source see also Chapter „Installation“.
/id=1 / (optional, 1..99) Interface number. The interface number corresponds to Location 1 of a tag. All tags with that Location 1 will be serviced by that interface.
/project=CIMPROJECT / (One required, more optional, no default) Cimplicity project name.
Projects are selected by Location 2 of a Tag. If for example a tag has Location 2=3, then it refers to the 3rd occurring /project=... in the start line of the interface. Location 2 specifies the order number of the /project parameters (starting by 1).
/f=00:00:20[,00:00:03]
or
/f=20,[3] / (One required, more optional, no default) Scan class frequency.
Scan frequencies are selected by Location 4 of a Tag. If for example a tag has Location 4=1, then it gets values in frequencies of the first occurring parameter /f=... in the start line of the interface. Location 4 specifies the order number of the /f parameters (starting by 1).
The first scan frequency is special in that it specifies the frequency to look for all values received for ‘on change’ tags. It should normally be 1 second.
/time=FOREIGN / (optional, FOREIGN, SERVER, ADJUSTED) This parameter decides what time stamp is used for values received from Cimplicity: the time stamp sent from Cimplicity (FOREIGN), the time on the PI server when the interface receives the value (SERVER) or the Cimplicity time adjusted ‘as good as the interface can find out’ to the PI server time (ADJUSTED). Note that Cimplicity returned timestamp is the last time the value changed, not the time the value was scanned by Cimplicity. If a tag does not change value for a long time and exception maximum time passes, the corresponding PI tag will start getting PI timestamps regardless of the time option specified by this switch. User needs to be aware that if the tag finally changes value and new timestamp comes in and user specified /time=FOREIGN this new timestamp has to be later than the previously recorded PI timestamp ( at every excmax intervals), otherwise it will be considered out of order and discarded. If Cimplicity server node and the API node are synchronized within the scan frequency of the tag the new value will get through and sent to PI, however.
/host=localhost:5450 / (optional,server_name:portnumber, default is the default PI server) Hostname of the PI Server to connect to. If this interface runs on a PI3 server, this should be /host=localhost:5450.
/stopstat[=Shutdown] / (optional) Write status on shutdown. Not specifying this parameter at all means writing no status at all. Specifying /stopstat but no value means writing I/O Timeout.
/subsec[=no] / (optional) If set to yes, this switch enables subsecond scanning

Remarks to Parameters

The timestamps for certain values must be taken from the PI Server. These are the first value for each tag after interface start, a value received by the automatic refresh mechanism and statuses written on shutdown.

If the /time parameter values FOREIGN or ADJUSTED are used and the PI Server system time is considerably different from the Cimplicity Server system time strange effects can happen for values at the start, after automatic refresh and at shutdown of the interfaces: values can easily get in the wrong order. Please make sure to set the PI Server time close to the Cimplicity server time if the /time parameter is FOREIGN or ADJUSTED.

The /time parameter value ADJUSTED is not recommended to be used. It depends on a reliable source to calculate the time difference between the PI and Cimplicity servers. There is no reliable source available to the interface - only a good guess.

Uniint Parameters

/ec=1(optional, 1..34 or 51..200, default 1) Event counter number. Selects an event counter tag with the corresponding number in iorates.dat (typically in C:\pipc\dat). This tag is to measure the rate of events received from Cimplicity (unit 1/min). See the Data Archive documentation on this topic and how to configure event counters. Use different event counters for different copies of the interface.

There are several other parameters introduced by Uniint. As Uniint is a common frame for many interfaces there are parameters that only apply to some. See an appropriate Uniint document for more parameters.