GE FANUC CIMPLICITY HMI
Interface to the PI System

Version 4.2.0.3

Revision B

How to Contact Us

OSIsoft, Inc.
777 Davis St., Suite 250
San Leandro, CA94577USA
Telephone
(01) 510-297-5800 (main phone)
(01) 510-357-8136 (fax)
(01) 510-297-5828 (support phone)

Houston, TX
Johnson City, TN
Mayfield Heights, OH
Phoenix, AZ
Savannah, GA
Seattle, WA
Yardley, PA / Worldwide Offices
OSIsoft Australia
Perth, Australia
Auckland, New Zealand
OSI Software GmbH
Altenstadt,Germany
OSI Software Asia Pte Ltd.
Singapore
OSIsoft Canada ULC
Montreal, Canada
OSIsoft, Inc. Representative Office
Shanghai, People’s Republic of China
OSIsoft Japan KK
Tokyo, Japan
OSIsoft Mexico S. De R.L. De C.V.
Mexico City, Mexico
Sales Outlets and Distributors
  • Brazil
  • Middle East/North Africa
  • Republic of South Africa
  • Russia/Central Asia
/
  • South America/Caribbean
  • Southeast Asia
  • South Korea
  • Taiwan


OSIsoft, Inc. is the owner of the following trademarks and registered trademarks: PI System, PI ProcessBook, Sequencia, Sigmafine, gRecipe, sRecipe, and RLINK. All terms mentioned in this book that are known to be trademarks or service marks have been appropriately capitalized. Any trademark that appears in this book that is not owned by OSIsoft, Inc. is the property of its owner and use herein in no way indicates an endorsement, recommendation, or warranty of such party’s products or any affiliation with such party of any kind.
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
Unpublished – rights reserved under the copyright laws of the United States.
© 2000-2007 OSIsoft, Inc. PI_GECimpi.doc

Table of Contents

Introduction

Reference Manuals

Supported Features

Diagram of Hardware Connection

Principles of Operation

Installation Checklist

Interface Installation

Naming Conventions and Requirements

Interface Directories

PIHOME Directory Tree

Interface Installation Directory

Interface Installation Procedure

Installing Interface as a Windows Service

Installing Interface Service with PI ICU

Installing Interface Service Manually

Connection Tool

Digital States

PointSource

PI Point Configuration

Point Attributes

Tag

PointSource

PointType

Location1

Location2

Location3

Location4

Location5

InstrumentTag

Exception Parameters

ExDesc

Scan

Shutdown

UserInt1

Output Points

Trigger Method 1 (Recommended)

Trigger Method 2

Performance Point Configuration

I/O Rate Tag Configuration

Monitoring I/O Rates on the Interface Node

Configuring I/O Rate Tags with PI ICU (Windows)

Configuring I/O Rate Tags Manually

Configuring PI Point on the PI Server

Configuration on the Interface Node

Startup Command File

Configuring the Interface with PI ICU

gecimpi Interface Tab

Command-line Parameters

Sample PICimpi_HMI5x.bat File

UniInt Failover Configuration

Introduction

Failover Installation Checklist

Startup Command File Configuration

Sample Interface Startup Files

ICU Configuration

Failover Control Point Configuration

Active ID

Heartbeat

Control Point Data Flow

Failover Control Tag Configuration

Active ID

Heartbeat

Interface State Tag

Interface State Tag Configuration

Digital State Configuration

Importing the Failover Digital Set to PI via PI SMT 3

Error and Informational Messages

Informational

Error

Interface Node Clock

Security

Starting / Stopping the Interface

Starting Interface as a Service

Stopping Interface Running as a Service

Buffering

Configuring Buffering with PI ICU (Windows)

Configuring Buffering Manually

Example piclient.ini File

Appendix A: Error and Informational Messages

Message Logs

Messages

System Errors and PI Errors

Revision History

GE Fanuc Cimplicity HMI Interface to the PI System1

Introduction

The PI GE FANUC CIMPLICITY HMI Interface (PI-CIMPI) provides the transfer of data between the GE FANUC CIMPLICITY system, version 4.01 and higher, and the OSIsoft Plant Information (PI) System. Two versions of the interface executable are shipped with the interface distribution, PICimpi_HMI50.exe and PICimpi_HMI55.exe. PICimpi_HMI50.exe is used when running against version 4.01 or 5.0 of the Cimplicity HMI. PICimpi_HMI55.exe is used when running against version 5.5, 6.0, or 6.1 of the Cimplicity HMI. The interface runs on any WindowsXP or Windows Server platforms.

The interface is bi-directional. The interface reads data from a single project on one CIMPLICITY server and sends the data to the PI server. The interface can also output data to the single specified project as well. The interface may run on a CIMPLICITY Viewer node or a CIMPLICITY server node.

The interface supports two failover solutions to minimize data loss during a failure within the system architecture. The first solution, available through UniInt, provides a no data loss solution given a single point of failover. Information relating to failover operation and configuration can be found in the UniInt Failover Configuration section of this manual. The CIMPLICITY system also provides an option for failover support. In this scenario, the interface is installed on a Viewer Node which is configured to collect data from the active project on one of two CIMPLICITY servers configured for failover.

The interface obtains data from the CIMPLICITY server on an exception basis. The interface checks for new data at a configurable scan rate (default is 250ms). The user can choose to have the data time stamped in one of 3 ways; use the raw unadjusted time from the Cimplicity server, use the PI server time at which the event was received, or use the adjusted time from the Cimplicity server. If using the adjusted time from the Cimplicity server, which is the default, the PI-CIMPI interface queries the Cimplicity server for the current time and compares that with the current time from the PI server. It uses the difference between the two times to determine an offset. This offset is then used to adjust the time of the Cimplicity event to the PI time.

The interface will exit under certain situations that do not allow recovery by standard programmatic means. Because of this possibility, the PI-CIMPI interface is shipped with a separate program named WatchDog that will monitor the interface and restart the interface if it is not running. This scenario is discussed in The Principles of Operation section and the start-up command parameter /wd.

The following is a list of key features found in version 4.0.0.0 of the PI-CIMPI interface. It is the intent for OSIsoft to maintain backward compatibility with previous versions. However, there may be some features listed below that are not supported in previous interface versions. Refer to the interface manual for a specific version to verify functionality.

  • The interface supports communication to a single Cimplicity HMI project. Multiple projects will require multiple instances of the interface to be run.
  • The interface collects data from the Cimplicity HMI only by exception. Meaning Cimplicity will only send changed data to the interface. Versions 1.x and 2.x allowed for data collection by polling and event triggers. The user does not need to make any modifications to the point attributes because of this change.
  • This version of the interface has implemented support for complex (array) Cimplicity inputs or outputs. A point is identified as a complex point by configuring the InstrumentTag attribute of the PI Point. Refer to the PI Point Configuration section of this manual for details on configuring complex data points.
  • Users can select specific PI Points to be timestamped with sub-second resolution. Points requiring sub-second resolution can be identified by setting the UserInt1 attribute of the PI Point.

Reference Manuals

OSIsoft
  • UniInt Interface User Manual
  • PI Data Archive Manual
  • PI API Installation Instructions
Vendor
  • GE Fanuc Automation, CIMPLICITY HMI v6.10 Documentation. Copyright® 19952003 GE Fanuc Automation Americas, Inc.
  • GE Fanuc Automation, CIMPLICITY HMI for Windows NT and Windows 95, Base System, User’s Manual, GFK-1108F, October 97
  • GE Fanuc Automation, CIMPLICITY HMI for Windows NT and Windows 95, Point Management API, Application Developer Guide, GFK-1201C, April 1997

Supported Features

Feature / Support
Part Number / PI-IN-GE-CIM-NT
* Platforms / Windows (NT 4, 2000, XP, 2003)
APS Connector / Yes
Point Builder Utility / No
ICU Control / Yes
PI Point Types / PI3 Servers: int16, int32, float16, float32, float64, digital, string
PI2 Servers: real, int16, digital
Sub-second Timestamps / Yes
Sub-second Scan Classes / Yes
Automatically Incorporates PIPoint Attribute Changes / Yes
Exception Reporting / Yes
Outputs from PI / Yes
Inputs to PI: Scan-based / Unsolicited / Event Tags / Unsolicited
Supports Questionable Bit / No
Supports Multi-character PointSource / Yes
Maximum Point Count / Unlimited
* Uses PI SDK / No
PINet String Support / No
* Source of Timestamps / CIMPLICITY server, PI Time, or Adjusted
History Recovery / No
* Failover / UniInt Interface Level Failover Support, Cimplicity Server Level Failover
* UniInt-based
*Disconnected Startup
*SetDeviceStatus / Yes
Yes
Yes
* Vendor Software Required on PI Interface Node / Yes
Vendor Software Required on Foreign Device / No
Vendor Hardware Required / No
* Additional PI Software Included with Interface / Yes
* Device Point Types / Analog, Boolean, Text
Serial-Based Interface / No

* See paragraphs below for further explanation.

Platforms

The Interface is designed to run on the above mentioned Microsoft Windows operating systems. Because it is dependent on vendor software, newer platforms may not yet be supported.

Please contact OSIsoft Technical Support for more information.

Uses PI SDK

The PI SDK and the PI API are bundled together and must be installed on each PI Interface node. This Interface does not specifically make PI SDK calls.

Source of Timestamps

CIMPLICITY events come with time stamps from CIMPLICITY. The resolution of a time stamp from CIMPLICITY is to the millisecond. The user can choose to have the data time stamped in one of 3 ways; use the raw unadjusted time from the Cimplicity server, use the PI server time at which the event was received, or use the adjusted time from the Cimplicity server. If using the adjusted time from the Cimplicity server, which is the default, the PI-CIMPI interface queries the Cimplicity server for the current time and compares that with the current time from the PI server. It uses the difference between the two times to determine an offset. This offset is then used to adjust the time of the Cimplicity event to the PI time. A new offset will only be applied if it differs by more than 5 seconds from the last offset and a message will be printed when a new time offset will be used.

UniInt-based

UniInt stands for Universal Interface. UniInt is not a separate product or file; it is an OSIsoft-developed template used by developers, and is integrated into many interfaces, including this interface. The purpose of UniInt is to keep a consistent feature set and behavior across as many of OSIsoft’s interfaces as possible. It also allows for the very rapid development of new interfaces. In any UniInt-based interface, the interface uses some of the UniIntsupplied configuration parameters and some interface-specific parameters. UniInt is constantly being upgraded with new options and features.

The UniInt Interface User Manual is a supplement to this manual.

Disconnected Startup

The PI Cimpi interface is built with a version of UniInt that supports disconnected start-up. Disconnected start-up is the ability to start the interface without a connection to the PI server. This functionality is enabled by adding /cachemode to the list of start-up parameters or by enabling Disconnected startup using the ICU. Refer to the UniInt Interface User Manualfor more details on UniInt Disconnect startup.

SetDeviceStatus

The PI Cimpi interface is built with a version of UniInt that supports the device status health tag. The device status health tag, like all of the UniInt Interface Health tags, is a non-interface tag that can be loaded by UniInt to monitor the health of an interface. The device status tag is different from the rest of the UniInt Health tags in that the interface client code is responsible for some of the values written to the tag. The PI Cimpi interface can write 3 different values to the device status tag. UniInt can write 2 different values to the device status tag. The following table lists the possible values of the device status tag, they meaning of the values and a description.

Source / Value / Description
UniInt / 1 | Starting | UI x.x.x.x / None. UniInt writes this value after the device status point is loaded. This value should not be the current value for very long. As soon as all of the points are loaded, the value should change.
Client Code / Good / This is the system digital state ‘Good’. The PI Cimpi client code will write ‘Good’ to the device status tag if it has a good connection to the Cimplicity server and the point lists have been loaded.
Client Code / 3 | 1 device(s) in error | Initializing PTMAP API failed. Will re-initialize / The PI Cimpi client code will write this value if it is unable to connect to the Cimplicity server at start-up. If this is the device status tag’s value, the interface will not be receiving values but it will be re-attempting to connect to the Cimplicity server once per minute.
Client Code / 3 | 1 device(s) in error | Fatal Error communicating with Cimplicity. Stopping Interface / The PI Cimpi client code will write this value if it encounters a fatal error communicating with the Cimplicity server. The interface cannot recover without stopping and restarting if the Cimplicity server is shut down while the interface is running. For this reason, when this error is detected, the interface client code will update the device status tag and then stop the interface. A watchdog application is distributed with the PI Cimpi interface to restart the interface in this case. Please refer to the description of the /wd startup parameter for a detailed explanation of configuring the watchdog application.
UniInt / 4 | Intf Shutdown / UniInt will write this value to the device status tag when the interface is shutdown normally.
Failover
Cimplicity Server Level Failover

The CIMPLICITY system supports a fail-over mechanism where a Viewer Node can be configured to collect data from the active project on one of two CIMPLICITY servers configured for failover. The interface also supports UniInt level failover.

UniInt Interface Level Failover Support

UniInt provides support for a hot failover configuration which results in a no data loss solution for bi-directional data transfer between the PI Server and the Data Source (DS) given a single point of failure in the system architecture. This failover solution requires that two copies of the interface be installed on different interface nodes collecting data simultaneously from a single data source. Failover operation is automatic and operates with no user interaction. Each interface participating in failover has the ability to monitor and determine liveliness and failover status. To assist in administering system operations, the ability to manually trigger failover to a desired interface is also supported by the failover scheme.

The failover scheme is described in detail in the UniInt Interface User Manual, which is a supplement to this manual.

Vendor Software Required

The interface requires that the CIMPLICITY Point Management API be installed on the computer where the interface will run. This provides the functions required by the interface to access the CIMPLICITY database. To install the CIMPLICITY Point Management API, CIMPLICITY must be installed as a Viewer or as a Server on the interface node. When installing as a Viewer, the Point Management option must be checked.

Additional PI Software

Because there are situations (viewer down on viewer node or project stopped on a server node) where the PI-CIMPI interface must shut down completely to recover and start collecting data from the Cimplicity API, the interface is shipped with a watchdog application to restart the interface if it is stopped. Please see the start-up parameter /wd for instructions on configuring the watchdog application.

Device Point Types

The interface supports collecting data from Cimplicity analog, boolean, and text (string) type tags.

Diagram of Hardware Connection

GE Fanuc Cimplicity HMI Interface to the PI System1

Principles of Operation

Startup

Upon startup, the interface examines the command parameters passed to it. The interface will only communicate to a single project and will ignore multiple projects that are passed to it. The interface will exit if no project name has been passed to it and a message will be printed to the log file indicating that the interface has exited.

The interface then retrieves all of the points that match the Interface ID number and the Point Source from PI. Once all the points have initially been obtained the interface will set up a single CIMPLICITY shopping list for all points. A single PI tag can only point to a single CIMPLICITY tag. If a PI tag is removed from the interface, the interface does not remove the CIMPLICITY point from the shopping list and ignores any subsequent event data that is sent if it is an input or will not execute anymore outputs if it is an output tag. For this reason OSI recommends stopping and restarting the interface if a lot of tags are removed. The interface will continue to operate normally without being restarted, but those extra CIMPLICITY points will be consuming machine resources, both memory and clock cycles. New PI tags will be added dynamically to the shopping list. Upon addition of a new input tag, the interface will receive an initial value with a time-stamp for the point. If the time-stamp of the event is prior to the latest value contained in PI (because the value is static and hasn’t changed since the PI tag’s value), the value will be written to PI with the current time-stamp. This is to handle situations when PI or the PI-CIMPI interface writes a value to the tag such as PT CREATED or SCAN OFF. For example, if a PI Point is created at 10:02, the last time the value changed in the Cimplicity server was 10:00, and the interface is started at 10:10, then the initial event received from the Cimplicity server would be prior to the PT CREATED value that exists in PI. If this situation occurs, the interface will write the value to PI at 10:10. This will not reflect the time the value actually changed to the current value, but it will reflect the current value of the Cimplicity point.