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 / SupportPart 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 / DescriptionUniInt / 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.