Moore ICI



Moore ICI on NT

Interface to the PI System

Version 1.4.0.9 and greater

26-Apr-04

Document Revision B

How to Contact Us

|Phone |(510) 297-5800 (main number) |

| |(510) 297-5828 (technical support) |

|Fax |(510) 357-8136 |

|E-mail |techsupport@ |

|World Wide Web | |

|Mail |OSIsoft |OSI Software, Ltd |

| |P.O. Box 727 |P. O. Box 8256 |

| |San Leandro, CA 94577-0427 |Level One, 6-8 Nugent Street |

| |USA |Auckland 3, New Zealand |

| | | |

| |OSI Software GmbH |OSI Software, Asia Pte Ltd |

| |Hauptstra(e 30 |152 Beach Road |

| |D-63674 Altenstadt 1 |#09-06 Gateway East |

| |Deutschland |Singapore, 189721 |

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. HP-UX 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.

MRICINT.DOC

( 2001 OSI Software, Inc. All rights reserved

777 Davis Street, Suite 250, San Leandro, CA 94577

Table of Contents

Introduction 6

Reference Manuals 6

Supported Features 7

Installation Checklist 9

Installing the Interface 10

Interface Installation Procedure 11

Naming Conventions and Requirements 11

Installing the Interface as an NT Service 11

PI Point Definition 13

Additional Tag Configuration Descriptors 17

Point Attributes Not Used by Interface 18

Model 320 ICI Hardware Configuration 19

Configuring the ICI 19

RS-232C Cable Setup 20

Hardware Configuration 21

Configuring the ICI 21

RS-232C Cable Setup 21

Performance Point Configuration 22

I/O Rate Tag Configuration 25

Setting up the Interface 1

Startup Command File 1

Command-line Parameters 3

Moore Products Company Supplied Software 5

Running the Interface 6

Running Moore ICI Interface as an NT Service 6

Running PI Moore ICI Interface Interactively 6

Information and Error Messages 6

Troubleshooting 7

Interface Operating Information 8

Interface Point List 8

Output Data 8

Input Data 8

Scanning Principles 8

Local Instrument Link (LIL) 9

High Level Link (HLL) 9

Appendix A: TestICI Utility Introduction 15

TestICI Device Independent Functions 17

Btest 17

Ibits 18

Vbit 18

TestICI Device Functions 20

Display text for an ICI error number 20

Asgn 21

LIL Functions 22

HLL Functions 27

Appendix B: Interface Distributions as Self-Extracting Executables 36

NT Installation 36

Documentation Updates 36

Appendix C: Troubleshooting 37

Appendix D: Performance 38

Appendix E: Migrating the Moore ICI Interface from VMS to Windows 39

Revision History 42

List of Figures

Figure 1. ICI 320 Serial Port Board 10

FIGURE 2. DATA SET/DATA TERMINAL CONNECTIONS 11

FIGURE 3. ICI 320 MPU BOARD DIP SWITCH 11

FIGURE 4. BLOWUP OF ICC PIGGYBACK BOARD 13

FIGURE 5. SETTING OF JUMPERS W8 AND W9 13

FIGURE 6. FRONT PANEL, ICI 2.0 OR 2.5 14

INTRODUCTION

The Moore ICI Interface provides for the bi-directional transfer of data between the Moore Products Company's Local Instrument Link (LIL) and Hi-Level Link (HLL) global data bases, and the Plant Information (PI) System. Communication between the Microsoft Windows NT computer and the HLL global database is accomplished using either Moore Products Company's Mycro Model 3932 Independent Computer Interface (ICI). The Mycro Model 3932 ICI (more commonly referred to as an ICI-2.5) uses an RS-232C serial link to the Windows NT computer. Communication between the Windows NT computer and the LIL global database is accomplished via Moore Products Company's Model 320 ICI. The Model 320 ICI uses an RS-232C serial link to the Windows NT computer. The interface can run on a Windows NT machine containing either the PI Home Node or a PI API node.

The Moore ICI Interface consists of a single executable program, a utility program for testing the connection to the HLL or LIL, and a batch file for starting the interface. There may be one or more ICI's connected to the PI System. The PI system can communicate with ICI-2.5's, and Model 320 ICI's concurrently. Every ICI requires its own copy of the interface program.

The interface uses the Moore Products Company's Moore ICI Communications Software Package Library to communicate with the ICI-2.5 or the Model 320 ICI. OSI Software, Inc. now distributes the Moore Products Company’s ICI Communications Software Library with the PI-Moore ICI interface. Inputs from an ICI are scanned on a periodic basis. Outputs are sent out to an ICI whenever an output value changes.

The Moore ICI interface setup program for interface version 1.4.0.9 and later uses the services of the Microsoft Windows Installer. Windows Installer is a standard part of Windows 2000 and later operating systems. When running on Windows NT 4.0 systems, the Moore ICI interface setup program will install the Windows Installer itself if necessary. To install, run the MRICINT_x.x.x.x.exe installation kit.

Reference Manuals

OSIsoft

• UniInt End-User Document

• PI Server Manual (versions 3.3 or newer), or

PI Data Archive Manual (versions earlier than 3.3), or

PI System Manual (for PI 2)

• PI-API Installation Instructions

Supported Features

|Feature |Support |

|Part number |PI-IN-MR-ICI-NTI |

|Platforms |Windows (NT-Intel, Windows 2000, Windows XP) |

|PI Point Types |PI 2: Integer, Real, Digital |

| |PI 3: int16, int32, float16, float32, float64, |

| |digital |

|Sub-Second Timestamps |Yes |

|Sub-Second Scan Classes |Yes |

|Automatically Incorporates PI Point Attribute Changes |No |

|Exception Reporting |Yes |

|Outputs from PI |Yes |

|Inputs to PI: Scan-Based / Unsolicited / Event Tags |Scan-Based |

| |Event Triggered |

|Maximum Point Count |Limited by resources |

|Uses PI-SDK |Yes |

|PINet to PI 3 String Support |No |

|* Source of Timestamps |PI Server |

|* History Recovery |No |

|* Failover |No |

|* UniInt-Based |Yes |

|* Vendor Software Required on PI-API / PINet Node |Yes |

|* Vendor Software Required on Foreign Device |No / No |

|* Vendor Hardware Required |No |

|* Additional PI Software Included with Interface |Yes |

* See paragraphs below for further explanation.

Source of Timestamps

The interface uses PI server timestamps.

History Recovery

History Recovery is not supported.

UniInt-Based

UniInt stands for Universal Interface. UniInt is not a separate product or file; it is an OSIsoft-developed template used by our developers and is integrated into many interfaces, such as the Moore ICI interface. The purpose of UniInt is to keep a consistent feature set and behavior across as many of our 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 UniInt-supplied configuration parameters and some interface-specific parameters. UniInt is constantly being upgraded with new options and features.

The UniInt End-User Document is a supplement to this manual.

Vendor Software Required

The interface setup distributes the required Moore Library that is used to access the ICI.

Vendor Hardware Required

No special vendor hardware is required beyond the ICI device the interface reads from.

Additional PI Software

The interface setup distributes the required Moore Library that is used to access the ICI.

Installation Checklist

For those users who are familiar with running PI data collection interface programs, this checklist helps you get the interface running. If you are not familiar with PI interfaces, you should return to this section after reading the rest of the manual in detail.

1. Verify the PI-API has been installed.

2. Install the interface has been installed.

3. Choose a point source.

4. Configure PI points.

Location2 is the Moore ICI address that the interface will read.

Location3 is the input/output flag.

Location4 is the scan class.

ExDesc: The first character(s) are the interface instance.

InstrumentTag is the CHIP tag name (unless the DBI is specified in Location1) for standard points or the response field name for request/response points.

5. Edit startup command file (for details, see the section titled “Error! Reference source not found.”).

6. Configure performance points (for details, see the section titled “Performance Point Configuration”).

7. Configure I/O Rate Tag (for details, see the section titled “I/O Rate Tag Configuration”

8. Start the interface.

9. Verify data.

10. Stop interface, start buffering, start interface. (This does not apply if the interface is running on VMS.)

Installing the Interface

Prior to the installation of the Moore ICI interface, if the PI Server is not running on the same computer as the interface, you need to install the PI-API.

The Moore ICI interface setup program for interface version 1.4.0.9 and later uses the services of the Microsoft Windows Installer. Windows Installer is a standard part of Windows 2000 and later operating systems. When running on Windows NT 4.0 systems, the Moore ICI interface setup program will install the Windows Installer itself if necessary. To install, run the MRICINT_x.x.x.x.exe installation kit.

The Moore ICI Interface installation CD contains the following files:

MOORE.EXE : MOORE ICI Interface executable file

MOORE.BAT : Startup command file

TestICI.EXE : Test Program that allows users to test the connection to the LIL and HLL

Example interface directory structure

The following files should be installed:

|PI HOME DIRECTORY\ |

| |INTERFACES\ |

| | |MRICINT\ |

| | | |MOORE.EXE |

| | | |MOORE.BAT.NEW |

| | | |TestICI.EXE |

|WINNT\ |

| |Symbols\ |

| | |EXE\ |

| | | |MOORE.dbg |

The PIHOME Directory Tree

The PIHOME directory tree is defined by the PIHOME entry in the pipc.ini configuration file. This pipc.ini file is an ASCII text file, which is located in the WinNT directory. A typical pipc.ini file contains the following lines:

[PIPC]

PIHOME=c:\pipc

The above lines define the \pipc directory on the C: drive as the root of the PIHOME directory tree. OSIsoft recommends using \pipc as the root directory name. The PIHOME directory does not need to be on the C: drive.

Interface Installation Directory

The interface is installed to:

PIHOME\interfaces\mricint\

Where PIHOME is the corresponding entry in the pipc.ini file.

Interface Installation Procedure

To install, run the MRICINT_x.x.x.x.exe installation kit.

Run PI-ICU to configure the interface, or alter the command-line arguments in the .bat file as discussed in section “Error! Reference source not found.” on page Error! Bookmark not defined..

Try to start the interface interactively with PI-ICU or manually with the command:

moore.bat

If the interface cannot be started interactively, it will not be able to run as a service. It is easier to debug interactively started processes because error messages are echoed directly to the screen. Once the interface is successfully running interactively, one can try to run it as a service by following the instructions below.

Naming Conventions and Requirements

In the installation procedure below, it is assumed that the name of the interface executable is moore.exe and that the startup command file is called moore.bat.

It is customary for the user to rename the executable and the startup command file when multiple copies of the interface are run. For example, one would typically use moore1.exe and moore1.bat for interface number 1, moore2.exe and moore2.bat for interface number 2, and so on. When an interface is run as a service, the executable and the command file must have the same root name because the service looks for its command-line arguments in a .bat file that has the same root name.

Installing the Interface as an NT Service

Run PI-ICU to configure and manage the interface service, or manually configure and manage the interface service as described below. One can get help for installing the interface as a service at any time with the command:

moore.exe –help

Change to the directory where the moore.exe executable is located. Then, consult the following table to determine the appropriate service installation command.

|NT Service Installation Commands on a PI-API node or a PI Server node |

|with Bufserv implemented |

|Manual service |moore.exe –install –depend “bufserv” |

|Automatic service |moore.exe –install –auto –depend “bufserv” |

|NT Service Installation Commands on a PI-API node or a PI Server node |

|without Bufserv implemented |

|Manual service |moore.exe –install –depend “tcpip” |

|Automatic service |moore.exe –install –auto –depend “tcpip” |

When the interface is installed as a service on the PI Server node and when Bufserv is not implemented, a dependency on the PI network manager is not necessary because the interface will repeatedly attempt to connect to the PI Server until it is successful.

Note: Interfaces are typically not installed as automatic services when the interface is installed on the PI Server node.

Check the Microsoft Windows NT services control panel to verify that the service was added successfully. One can use the services control panel at any time to change the interface from an automatic service to a manual service or vice versa.

PI Point Definition

The following information is necessary for defining a PI point to be read from or written to either the Moore LIL or HLL global databases. There may be one or more PI points associated with each global data base channel. A channel can hold up to 16 bits of data, and one or more bits combined can be used to hold separate pieces of data. Conversely, a single PI point can be the resultant of two global data base channels.

Point Source

All points defined in the PI Database to be used by the Moore ICI Interface must share a common point source. The point source is any one-character value, for example M.

Point Type

The interface supports all three PI 2 point types, real R, integer I, and discrete D, and the following five PI 3 point types float16, float32, int16, int32, digital. Multiple discrete alarm and status bits are processed to form individual PI digital points.

Location1

The first location is mainly used for digital points, but can also be used for integer points. For digital points, it is used to specify how the interface will convert an integer value into a digital state For integer points, it is used to specify a bit mask to be applied to a value. It is used when reading or outputting controller, alarm, or status information. Location1 may take on the following values:

> 0 bits are specified as decimal digits

0 word is a discrete digital

-1 controller source/mode

The controller source/mode is determined for MMLC, Mycro 351, and Mycro 352 loops.

Location 1 > 0:

Up to 5 bits can be specified. The bits can be specified in any order; i.e. bits 5,6,7, and 8 could be specified as 8050706. To specify a single bit (2-state tag), enter the bit number. To specify 2 bits, enter 100 times the first bit plus the second bit. For example, bits 7 and 8 can be specified as 708. In this example, the PI tag is a digital state tag according to the following truth table:

|Bit 7 |Bit 8 |PI value |

|0 |0 |0 |

|0 |1 |1 |

|1 |0 |2 |

|1 |1 |3 |

Specify a 3-bit value as b1b2b3 (e.g. 80706). For digital tags, a 3-bit value has 8 possible states, and a 4-bit value would be specified as b1b2b3b4 (e.g. 5060708) and has 16 possible states.

It is up to the user to set up the appropriate truth table for a digital state tag. The states for all possible combinations must also be entered into the digital state table.

Location 1 = -1:

The controller source/mode tag uses bits 1,2,3,5,6,7,8,9, and 10 contained within the Loop Status Word for each loop. A simplified truth table is:

|H |E/M |O |

Where

0 = Logic 0

1 = Logic 1

X = either state, does not affect logic

The twelve digital states listed above must be entered into the digital state table if you are storing the mode in a digital tag.

For integer tags, the integer value

Location2

HLL (slots 1 – 15)

The HLL address specifies the High Level Link #, Satellite #, Slot #, and Channel #. The HLL address is in the form of:

LSSTTCCC

where

L = HLL number

SS = Satellite number

TT = Slot number

CCC = Channel number

Therefore, the address of a point that is located on HLL #1, Satellite #9, Slot #15, Channel #138 is:

address = 10915138

HLL Loops

Loops are always on slot 16 (Multi-Loop controller), and a Multi-Loop controller can have 64 loops per slot. Each loop consists of 4 channels, a PV, SP, output, and status/mode tag:

1 - process value

2 - set point

3 - controller output

4 - controller status/mode

To calculate the channel for a PV:

channel = loop_number * 4 - 3

Therefore, the address of a loop PV that is located on HLL #1, Satellite #9, Loop #23 is:

address = 10916089 (channel = 23 * 4 – 3 = 89)

Likewise, to calculate the channel for the SP on the same loop:

channel = loop_number * 4 – 2, or simply add 1 to the PV channel number

And the address for the SP on the same HLL, Satellite, and Loop is:

address = 10916090 (channel = 23 * 4 – 2 = 90) or (channel = PV for same loop + 1)

Note There can be:

1 - 4 HLL's on an ICI

1 - 15 Satellite Stations on an HLL

1 - 16 Slots on a Satellite Station

1 - 256 Channels on a Slot

LIL

If the value of the tag is an input from or an output to an LIL device, such as a Mycro 352, then its LIL global database address must be specified. The address specifies the Station # and Channel#. The address is in the form of:

SSCCC

where

SS = Station number

CCC = Channel number

Therefore, the address of a point that is located on Station #13, Channel #22, and Parameter #1 is:

address = 13022

The address of a point that is located on Station #3, Channel #9 is:

address = 3009

Note that the leading 0 is neither required, nor is it possible to have a location code with a leading 0.

Note, there can be:

1 - LIL per ICI

2 - 64 Stations on a LIL

1 - 256 Channels on a Station

1 - 256 Parameters on a Channel

Only parameter 1 will be read from or output to.

Location3

The third location indicates whether the PI tag will be the result of adding two input values together or if the tag is an output. If the PI tag is the resultant of two values, Location3 should be 1. If the PI tag is to be the resultant of two values, and if the resultant is to be divided by 100, Location3 should be 2. This applies to various data obtained from Mycro 382's. Both integer and real tags can be the resultant of two input values. The maximum allowable value for an integer is 32767. If the PI tag is to be an output, Location3 should be 3. If the PI tag is none of the above, Location3 should be 0.

0 - single value

1 - combine two values together

2 - combine two values together, divide total by 100

3 - tag is an output value

Location4

This parameter determines the scan class of the tag. Currently, the interface only supports one scan class, and all Moore ICI tags must a 1 in location4. The scan frequency is specified in the interface startup command file.

Location5

The fifth location is used to indicate whether an input or output point is specified to be reverse acting. For inputs, the value in engineering units will be equal to: value = 100. - value. For outputs, value = 100. - value, and the value is then converted back to counts (128 - 3840). The requirements for specifying a point to be reverse acting are: the square root field must be 0, the point must be Real, and the Zero and Span must be 0. and 100. respectively. The most likely case for specifying a point to be reverse acting is for reverse acting controller outputs (the signal from the controller which is an input).

0 = not reverse acting

1 = reverse acting

For further details on the conversion from counts to engineering units, see the Extended Descriptor section below.

Extended Descriptor

The extended descriptor defines the following two items:

• The ICI number, which matches up with the /id command line argument

• Optionally tell the interface to convert from counts to engineering units

ICI Number

The ICI Number is a required field. The first element is the number of the ICI that the interface is connected to. There can be up to 99 ICI's interfaced to the PI system. This ICI number must match the /id=x value specified on the command line of the interface. For example, if /id=3 is on the command line, then the first character of the Extended Descriptor (Exdesc) field must be 3, and conversely, if the first character of the Extended Descriptor field is 3, then /id=3 must be on the command line.

Converting from counts to engineering units

The extended descriptor is used to optionally identify input points whose value is contained in a 16 bit signed integer. If the instrument zero is NOT 0 counts and/or the instrument span is NOT 4095 counts, the string %RAW must be contained somewhere within the Extended Descriptor. In addition, the instrument zero and instrument span must be specified in the Extended Descriptor. This now provides for an allowable range of –32768 to 65535 for the instrument.

ICI number;%RAW;raw zero;raw span

Example 1: Specifying both the required ICI number and a conversion from counts:

Example: 1;%RAW;-10000;10000

Meaning that -10000 is the zero and 10000 is the high range.

Example 2: Specifying a single digit required ICI number and no conversion:

Example: 1;

Example 3: Specifying a double digit required ICI number and no conversion:

Example: 11;

Square Root Code

The square root code is used by the interface to take the square root of, or square output and input data. The requirements for specifying square root extraction or squaring are: the point must be Real and Location5 must be set equal to 0.

|Square Root Code |Result |

|0 |raw value |

|1 |square root of value |

|2 |value squared |

Additional Tag Configuration Descriptors

There are additional tag configuration parameters that are not unique to the Moore ICI interface but are required for proper operation. These parameters are listed below:

1. Tag Name

2. Descriptor

3. Typical Value

4. Engineering Units

5. Starting Digital State Code

6. Number of Digital States

7. Filter Code

8. Archiving Flag

9. Compression Flag

10. Resolution Code

11. Compression Deviation

12. Compression Minimum Time

13. Compression Maximum Time

14. Zero

15. Span

Point Attributes Not Used by Interface

16. Totalization Code

17. Scan Flag

18. Conversion Factor

19. UserReal1

20. UserReal2

Model 320 ICI Hardware Configuration

Configuring the ICI

Before you can configure the ICI you must remove the three-card assembly from the casing. Remove the front panel by flipping the door down on the front panel and removing the screw. The card assembly can then be removed. The MPU is the bottom board, the middle board is the link board, and the top board is the serial port board. Remove the screws that attach the boards to one another so that you can get at the jumpers and switches located on the MPU and the serial port boards. The cable adapter board (otherwise known as the data set/data terminal board) is connected to terminal C, which is located on the back of the casing.

21. The selection of RS-232C or RS-422 is determined by the jumper positions of W5 and W6 on the serial port board. Refer to Figure 1 that is a schematic of the serial port board.

22. Two possible cable pinouts are possible, as determined by the connector used on the cable adapter board that mounts on terminal strip C. Figure 2 shows the wiring of that board and the required pinouts for the ICI to appear as either a data set (DS or DCE) or a data terminal (DT). If the ICI is configured as a DS then the DB25 female connector is used. If the ICI is configured as a DT then the DB25 male connector is used. Configure the ICI as a DS if the cable used is a straight cable. Configure the ICI as a DT if the cable used is a null modem.

23. Figure 2 shows the required placement of the jumpers W1 and W2 for setting flow control to either DSR or CTS. Remove both jumpers if no flow control is to be used.

24. Set the baud rate of the ICI to match the baud rate of the PC. A baud rate of 19200 is recommended. This is done by setting the W7 jumper to the proper setting. Refer to Figure 1.

25. Enable the null data response function. This is done by setting Switch 3 on the MPU board to the open position. Refer to Figure 3.

26. Enable the response delay function. This is done by setting Switch 4 on the MPU board to the open position. Refer to Figure 3.

27. Set the operational mode to BINARY by setting Switch 5 on the MPU board to the closed position. Refer to Figure 3.

28. The Model 320 ICI provides send command security. Depending upon what security level is chosen, information contributed by the computer to the ICI is restricted. The security level is set from Switches 1 and 2 on the MPU board. See Figure 3. If the computer is going to both read and output data, the recommended security level is RECORD. If the computer is to read data only, the recommended security level is PARAMETER.

The data format of the computer port should be set to odd parity and 8 data bits. This is done by setting Bit 8 of Switch 2 (SW2-8) to the open position and Bit 4 of Switch 2 (SW2-4) to the open position. Switch 2 is located on the serial port board. Refer to Figure 1.

Note Closed is synonymous with on, open is synonymous with off.

RS-232C Cable Setup

The computer is connected to the ICI using the appropriate connector located on terminal strip C. The desired RS-232C signal from the computer that is to drive the ICI CTS input line is jumper selectable by W1 when using the data set connector and by W2 when using the data terminal connector. The jumper may be removed completely to always enable the signal. Refer to Figure 2 for a schematic of the cable pinouts. Only the TRANSMIT DATA, RECEIVE DATA, AND SIGNAL GROUND are required.

Hardware Configuration

Configuring the ICI

The ICI-2.5 must be configured as listed below. Before the configurations can be set however, the ICI front panel cover must first be removed.

29. Set the ICI-2.5 as a Data Set (DS) device if the cable used is a straight cable. Set the ICI-2.5 as a Data Terminal (DT) device if the cable used is a null modem. See Figure 4, which contains a blowup of the piggyback board of the ICI's Interface Computer Assembly (it is the top board but is labeled as board 5). Before pulling the piggyback board and the ICI Interface Computer Assembly board, turn the power off to the ICI and unplug the ribbon cable from the piggyback board. Use a wrist strap grounded to the ICI unit before sliding the card assembly most of the way out. Set the W8 jumper either to the DS or DT position and remove the W9 jumper. A jumper is set to the DS position if the line dividing the two sections of the jumper is parallel to the front edge of the card. It is set to the DT position if the line is perpendicular to the front edge of the card.

The following settings are made on the front panel of the Interface Communication Computer, see Figure 5.

30. Set the baud rate of the ICI-2.5 to match the baud rate of the PC. A baud rate of 19200 is recommended. This is done setting bit 3 to ON and bit 4 to OFF of switch 2.

31. Enable the null data response function. This is done by setting bit 2 of switch 2 to ON.

32. Enable the response delay function. This is done by setting bit 1 of switch 2 to ON.

33. Set the operational mode to BINARY with switch 5.

Note: ON corresponds to the 1 state and OFF corresponds to the 0 state.

RS-232C Cable Setup

The RS-232C cable plugs into a DB25 female connector located in the rear of the ICI-2.5.

The connection between the PC and the ICI-2.5 is directly to a serial port on the PC, so only the TRANSMIT DATA, RECEIVE DATA, AND SIGNAL GROUND are required.

Performance Point Configuration

One can configure performance points to monitor the amount of time in seconds that it takes an interface to complete a scan for a particular scan class. The closer the scan completion time is to 0 seconds, the better the performance. The scan time is recorded to millisecond resolution.

Configuring Performance Points with PI-Interface Configuration Utility

[pic]

Configuring Performance Points Manually

Performance point configuration is the same on all operating system platforms. Performance points are configured as follows.

1. Set the extended descriptor to:

PERFORMANCE_POINT

or to

PERFORMANCE_POINT=interface_id

where interface_id corresponds to the identifier that is specified with the /id flag on the startup command line of the interface. The character string “PERFORMANCE_POINT” is case insenstive. The interface_id does not need to be specified if there is only one copy of an interface that is associated with a particular point source.

2. Set Location4 to correspond to the scan class whose performance is to be monitored. For example, to monitor scan class 2, set Location4 to 2. See the /f flag for a description of scan classes.

3. Set the PointSource attribute to correspond to the /ps flag on the startup command line of the interface.

4. Set the PointType attribute to float32.

I/O Rate Tag Configuration

An IO Rate point can be configured to receive 10-minute averages of the total number of exceptions per minute that are sent to PI by the interface. An exception is a value that has passed the exception specifications for a given PI point. Since 10-minute averages are taken, the first average is not written to PI until 10 minutes after the interface has started. One IO Rate tag can be configured for each copy of the interface that is in use.

Configuring IORates Tags with PI-Interface Configuration Utility

[pic]

Configuring IORates Tags Manually

If the ICU is not used to create the IORates tags, there are two configuration steps.

Configuring the PI Point on the PI Server

Create an IO Rate Tag with the following point attribute values.

|Attribute |Value |

|PointSource |L |

|PointType |float32 |

|Compressing |0 |

|ExcDev |0 |

The default settings can be used for the remaining PI point attributes. When Compressing is set to Zero, the IO Rate Tag acts like a heartbeat tag for the interface, which can be examined easily in ProcessBook with markers turned on. If a value is not written to the IO Rate Tag every 10 minutes, then there is problem with the interface communication.

Configuring on the Interface Node

For the following examples, assume that the name of the PI tag is sy.io.mricint, and that the IO Rate point on the home node is sy.io.mricint.

NT Nodes

1. Edit/Create a file called iorates.dat in the PIHOME\dat directory. The PIHOME directory is defined either by the PIPCSHARE entry or the PIHOME entry in the pipc.ini file, which is located in the \WINNT directory. If both are specified, the PIPCSHARE entry takes precedence.

Since the PIHOME directory is typically C:\PIPC, the full name of the iorates.dat file will typically be C:\PIPC\dat\iorates.dat.

Add a line in the iorates.dat file of the form:

sy.io.mricint, x

where sy.io.mricint is the name of the IO Rate Tag and x corresponds to the first instance of the /ec=x flag in the startup command file. x can be any number between 1 and 34 or between 51 and 200, inclusive. However, it is best to use an event counter, x, that is not equal to 1 because 1 is the default event counter for UniInt-based interfaces. To specify additional rate counters for additional copies of the interface, create additional IO Rate tags and additional entries in the iorates.dat file. The event counter, /ec=x, should be unique for every interface instance on a computer.

2. Set the /ec=x flag on the startup command file of the interface to match the event counter in the iorates.dat file.

3. The interface must be stopped and restarted in order for the IO Rate tag to take effect. IORates will not be written to the tag until 10 minutes after the interface is started.

The 10-minute rate averages (in events/minute) can be monitored with a client application such as ProcessBook.

Setting up the Interface

Startup Command File

The Moore ICI NT interface has an ICU Control that will aid in configuring the interface startup command file:

[pic]

The MRICINT control for PI-ICU has six sections. A yellow text box indicates that an invalid value has been entered, or that a required value has not been entered.

Port & Connection Settings

The Port & Connection Settings section aids in configuring the serial connection to the HLL or LIL.

Com Port

Select the Com Port from the drop down of common Com Ports, or enter the correct Com Port to be used to communicate to the Moore. The command line equivalent is /port=x, where x is the COM port to be used.

Baud

Select the Baud rate from the drop down of commonly used baud rates, or enter the correct Baud rate to be used to communicate to the Moore. The command line equivalent combines the baud rate, data bits, parity and stop bits in this fashion: /mode=baud,databits,parity,stopbits. For example, /mode=9600,7,0,0.

Data bits

Select the Data bits from the drop down of Data bits, or enter the correct Data bits to be used to communicate to the Moore. The command line equivalent combines the baud rate, data bits, parity and stop bits in this fashion: /mode=baud,databits,parity,stopbits. For example, /mode=9600,7,0,0.

Parity

Select the Parity from the drop down. The command line equivalent combines the baud rate, data bits, parity and stop bits in this fashion: /mode=baud,databits,parity,stopbits. For example, /mode=9600,7,0,0.

Stop bits

Select the Stop bits from the drop down. The command line equivalent combines the baud rate, data bits, parity and stop bits in this fashion: /mode=baud,databits,parity,stopbits. For example, /mode=9600,7,0,0.

Data Handling Flags

Communication read retries

If specified, the number in the text box indicates the number of read retries that will be used by the interface if a read fails. The default value is 3. The range is 1 to 10. The command line equivalent is /mr=x.

Pause between read retries

If specified, the number of milliseconds paused between read retries. The default value is 200 milliseconds (2 seconds). The range is 0 to 1000 milliseconds. The command line equivalent is /rst=x.

Do not write Overrange ro Underrange for values over span or under zero

Normal operation of the interface causes data that is over the span or under the zero to be replaced by an “Overrange” or “Underrange” event in PI. If this option is checked, only float16 tags will continue to have “Overrange” or “Underrange” replace the scanned value. The command line equivalent is /noou.

ICI Type

The ICI Type must be either HLL or LIL. The command line equivalent is /type=x, where x is 2.5 if this is an HLL or 320 if this is an LIL.

Debug Levels

The Debug Levels are used to turn on debug messaging. The command line equivalent is /db=x.

Debug

Simulation Mode

If Simulation Mode is checked, then no real data will be collected from the Moore. Simulation data will be generated by the interface. It is important not to use this option during normal scanning. The command line equivalent is /sim.

Additional Arguments

The Additional Arguments section is provided for any flags that may have been required in the future.

Additional Messages

If there are any additional messages for the user, an Additional Messages box will be displayed.

Command-line Parameters

There are eight option parameters in Moore#.bat which control the operation of the interface program. The parameters are described in the table below:

|Parameter |Description |

|/ps= |Specifies the point source |

|/host= |Specifies the name of the PI Server Node. |

|/id= |Specifies the interface ID number. Valid values are between 1 and 99. If /id is present on the |

| |command line, the value specified must be the first character (or first two characters) in the |

| |Extended Descriptor (Exdesc) of each tag that belongs to this copy of the interface. For |

| |example, if /id=3 is on the command line, then the first character of the Extended Descriptor |

| |field must be 3. See further discussion in extended descriptor. |

|/f= |Specifies the scan period and phase. The period is the amount of time between scan. The phase is |

| |the time to start the first scan specified as offset from midnight. |

| |The period and phase are supplied in the format of hh:mm:ss. A comma should separate the period |

| |and the phase. If the phase is not defined, the interface will start the scan cycle for this |

| |class as soon as possible. |

| |You can define only one scan class. |

|/ec= |Specifies the event counter number. The event counter is used for pi 2.x system. Current version |

| |of pi 3.x system does not support event counter. |

| |The /ec flag is used to specify an IORate tag from the iorates.dat file. Example entries from an |

| |iorates.dat file are given below: |

| |Tagname1, 1 |

| |Tagname2, 2 |

| |where tagname1 and tagname2 can be any legal tag name. The number after the tag name can be |

| |between 1 and 33 or between 51 and 200, inclusive. Numbers 34 to 50 are reserved for future use. |

| |If /ec=2 is used on the command line for the above iorates.dat file, then the rate (events per |

| |minute) at which data is sent to the snapshot will be stored in Tagname2. The rate that is sent |

| |to Tagname2 is a 10-minute average (i.e. the total number of events collected by the interface |

| |divided by 10 minutes). Therefore the IORate will appear to be zero for the first 10 minutes of |

| |interface operation. IORates for individual tags cannot be measured at this time. |

| |The iorates.dat file must be created by hand. The file should be placed in the dat\ directory. |

| |The dat\ directory is located in the directory designated by the PIHOME entry in the pipc.ini |

| |file. Normally the PIHOME entry points to the c:\PIPC\ directory so that the iorates.dat file |

| |will reside in the c:\PIPC\dat\ directory. |

| |Once the iorates.dat file is created, the interface must be stopped and restarted before the |

| |interface begins measuring the IORate. |

| |Although the interface will allow multiple instances of the /ec flag to be specified on the |

| |command line, the rate will only be nonzero for the first rate tag that is referenced. |

|/mode |The baud, bits, parity, and stop bits of the serial connection. For example: /mode=9600,8,2,0 |

|/type |ICI type, must be either 2.5 or 320 |

|/port |Device port name, for example: COM1 |

| |Optional Parameters retrieved by Uniint and Interface |

|/q |Tells the interface to queue up events before putting the data into the PI system. The q version |

| |is more efficient if the interface is on a separate computer from the PI Server. However, it will|

| |slightly delay the update of the snapshot value if the data rate is low. The buffer size of the |

| |event queue for the interface is 128 events. |

|/stopstat |If the /stopstat command line parameter is specified, the interface writes I/O timeout to all |

| |INPUT points (not OUTPUT), zeros the event counters, and disconnects from the PI server. |

|/sio |When the /sio flag is specified, the outputs are no longer written at startup or when points are |

| |edited. |

|/db |Turns on debug messaging from the Interface. |

| | |

| |Debug Level |

| |Types of messages logged |

| | |

| |0 |

| |No debug messages |

| | |

| |1 |

| |Initialization |

| | |

| |2 |

| |Point adds and edits |

| | |

| |4 |

| |Point Deletes |

| | |

| |8 |

| |Inputs |

| | |

| |16 |

| |Outputs |

| | |

|/noou |Tells the interface to suppress writing OVERRANGE and UNDERRANGE digital states for values that |

| |are under or over zero or span, respectively |

|/mr= |Maximum number of communications retries, default is 3, valid range is 0 to 10 retries |

|/rst= |Retry sleep time between retries, default is 200 milliseconds, valid range is 0 to 1000 |

| |milliseconds |

|/perf=x |Turns on performance summaries at the rate of once per x hours. |

The following is a sample interface startup command file, Moore#.bat.

@echo off

REM moore.bat

REM

REM revised:

REM 17-Jun-98 HAO> added /noou and uniint 2.2.9 parameters

REM 13-May-97 hao> written

REM

REM this command procedure passes required -default parameters to

REM process moore.

REM

REM if multiple copies of the interface are to be run, copy moore.bat to moore#.bat

REM where # is the same number passed by /id=# in the command string.

REM

REM command line arguments:

REM /ps= point source

REM /ec= rate counter number

REM /f= requires a single frequency

REM /host= name of receiving node

REM /id= ICI number to associate with particular interface

REM /mode= baud, bits, parity, stop bits

REM 2 = no parity

REM 0 = 1 stop bit

REM Example: /mode=9600 8 2 0

REM /port= device port name, e.g., COM1

REM /type= ICI type, must be either 2.5 or 320

REM

REM optional param retrieved by uniint and interface

REM /db= turns on additional debug messages

REM /sio When the /sio flag is specified, outputs are no longer written at

REM startup

REM or when points are edited.

REM /q= queue up data before sending to PI.

REM /stopstat Write I/O timeout to all INPUT points (not OUTPUT), zeros the event

REM counters, and disconnects from the PI server when interface is

REM stopped

REM /noou When the /noou flag is specified, OVERRANGE and UNDERRANGE digital REM states

REM will not replace the over or under range values sent to PI.

REM /mr= Maximum number of communications retries, default is 3, max is 10, REM min is 0

REM /rst= Retry sleep time between retries, default is 200 milliseconds, max is REM 1000 milliseconds, min is 0 milliseconds

REM

REM run string needs a space between arguments, no spaces within argument.

REM

moore /ps=M /ec=1 /f=00:00:10 /host=localhost:5450 /id=45 /mode=19200,8,2,0 /port=com1 /type=320 /noou

Moore Products Company Supplied Software

OSI Software, Inc. now supplies the Moore Products Company ICI Communications Software Library, which are written in C++. Use of the files contained in the packages simplifies the communication programming that needs to be written into the interface.

Running the Interface

Running Moore ICI Interface as an NT Service

To configure the PI Moore ICI interface to run as a service, from the interface directory, execute:

Moore -install

To change the Services from Manual mode to Automatic mode, follow this procedure:

1. Go to Control Panel.

2. Select Services

3. Select the Moore service

4. Click the Startup button.

5. Change the Startup Type from Manual to Automatic.

6. Click OK and return to Control Panel.

To remove the PI Moore Service:

Moore -remove

Running PI Moore ICI Interface Interactively

If you do not configure the software to run as a service, you can startup the system manually by typing:

moore#.bat

at the command prompt.

If you are not currently in the same directory where the interface program resides, you need to specify the full path name of the command file. Also, you may want to specify the full path name for the interface program in the command file.

Information and Error Messages

The interface writes to the pipc.log file. All operational information, warnings, and errors are written here. This file is generally in \pipc\log (the pipc installation directory), although it will alternately be written in the TEMP directory. Refer to the section below if the interface gets an iccsts or an icists I/O Timeout.

The error message:

Moore ICI 1>>AddPT>>Invalid params for Reverse Act Tag ABCD

indicates that one of the following requirements was not met for a tag that was configured as reverse acting: the square root field must be 0, the point must be Real, Zero must equal 0., and the Span must equal 100..

Troubleshooting

If the interface suddenly stops collecting data, or can't start collecting data due to the ICI timing out, it is almost always due to a hardware failure or hardware change. This will be indicated by an error message indicating that an ICI timeout has occurred. Conditions that cause the ICI to time out are hardware related. Typically timeouts will occur when the interface is first installed as well as when an ICI has been sent out for repairs and then returned to service.

If the interface was collecting data and it suddenly gets an ICI timeout, if nothing in the communication loop was changed, the most probable cause is the ICI itself. Contact Moore Products for technical assistance. If the ICI times out after it has just been returned to service, verify ALL the current hardware settings with the initial hardware settings you recorded when you first installed the interface. More than likely something was changed while the ICI was out for repair. Don't forget to recheck the settings on the ICI.

The easiest way to check that the communication from the NT-based Interface to the ICI is working is to use the interactive TestICI utility provided on the Interface installation diskette. It allows the user to send out the same calls to the ICI that the interface does but in an interactive mode. See the section below for information on how to run the Moore interactive utility.

Interface Operating Information

This section provides further information on how the interface works but is not critical for installing the interface on a PI system. Additional information is also presented on the Local Instrument Link and the High Level Link.

Interface Point List

At startup, the interface scans the PI point database for all points with the source code from Moore.bat and the ICI number associated with the interface. It performs range checking on all point attribute data. During runtime the interface continues to check the PI Point Database for point updates and modifies its point list accordingly.

Output Data

Two separate PI tags are required to be configured for the same address if that address will be written to and read back by the interface. If the tag will just be written to, only one tag is required. The number of outputs is limited to one fourth the number of the system tags. The maximum integer value that can be output is 4095. The highest bit that can be output to is bit 12. If a digital tag is to be output to via a user written program, the value may be sent out as the PI value or the negative of the digital state code.

Only the following controller status/modes can be output for control loops on a MMLC. They are: LOCAL/MAN, LOC/AUTO, CONS/MAN, CONS/AUTO, COMP/MAN, and COMP/AUTO. All devices residing on a LIL must be set to INTERNAL rather than EXTERNAL to be able to receive output commands from the interface. An LIL device will not be able to accept output commands from the interface when it is in LOCAL. This applies for commands sent through the HLL via an LES or through the LIL. When outputting to devices via an LES on the HLL, the devices must be in CONSOLE mode. The LES does not recognize COMPUTER mode.

It is important to note there are some cases where a controller may overwrite a channel that was previously written to by the interface. Consult the Moore manual for the specific controller for the requirements on outputting data to various channels.

Input Data

The interface optimizes data transfer by collecting data on a slot by slot basis for each HLL Satellite and on a station by station basis for each LIL Station. The maximum number of input tags is 5000. If a digital tag is going to be read from PI with a user written program, the value returned will be the negative of the digital state code.

Scanning Principles

All input data is scanned at a fixed scan rate. The scan rate (in seconds) is specified in the Moore.bat file. Multiple interfaces can be used to collect data at varying scan rates. However, each interface requires its own ICI and COM port. All input data is brought over from the ICI as an integer value between 0 and 4095. Since only the integer value for a tag is obtained from either the LIL or the HLL, it is imperative that the high and low limits that are used in the configuration of the instrument are used to calculate the zero and span that are input into the PI database. For integer point types, the value is equal to the integer value obtained directly from the ICI. For float point types, the zero is equal to the low DCS limit and the span is equal to the DCS high limit minus the DCS low limit. The interface then converts the integer value to the real value from the zero and span of the tag in its engineering units. An integer value of 128 is 0% of scale and an integer value of 3968 is 100% of scale. Analog values less than 128 are considered to be under range and analog values greater than 3968 are considered to be over range. For digital point types, single discrete data will be equal to a value of 128 to indicate the zero (0) state and 3968 to indicate the one (1) state. Multiple discrete data, where one or more bits of the word indicate a particular status, is converted from an integer value to binary form. Multiple discrete data is typically used to indicate alarms and the status of various devices.

If input data fails with an extended communication failure, the digital state I/O TIMEOUT is written to the PI Snapshot for the affected tags. The interface will continue to attempt to communicate with the ICI. Once communication has been reestablished, new values will be written to the PI Snapshot.

Time Stamp

The Moore interface will write all values to the snapshot using the scan list timestamp received from Uniint as the time stamp.

Local Instrument Link (LIL)

Information which is located in the LIL global database comes from the following Station types: Mycro 324's, Mycro 351's, Mycro 352's, Mycro 382's, and the Mycro 383's. When reading data from Stations on the LIL, the interface sends out an LIL global database read command. The data is read on a station by station basis. When outputting data, the interface sends out a parameter send command that is done for a single parameter.

High Level Link (HLL)

Information which is located in the HLL global data base comes from Satellites connected directly to the HLL such as a Moore Multi-loop Controller (MMLC), or a Local Expansion Satellite (LES). The LES provides a means for data communication between Stations that reside on the Local Instrument Link (LIL) and the HLL global database. The types of devices that reside on the LIL include the following: Mycro 324's, Mycro 351's, Mycro 352's, Mycro 382's, and the Mycro 383's.

When reading data from Stations on the LIL, the interface sends out an HLL global database read command. Up to 732 channels of LIL global data can be transferred into the HLL global database. Only LIL global data (Parameter 1 data) can be transferred into the HLL global database. The configuration information for the data to be transferred resides within the LES in a table called the High Level Link Data Transfer Table (HLL DTT). The LES can contain 1 to 16 slots with a maximum of 256 channels per slot. To maximize scanning efficiency, a slot in the LES should be configured to contain as much data as possible since scanning is done on a slot by slot bases. The HLL DTT is the table in which the user assigns HLL global data base addresses (Satellite # which is the number for the LES, Slot #, and Channel #) to the LIL global data to be transferred. It is imperative that all data that is to be transferred from the LIL to the HLL global data base must be configured in this table.

The interface retrieves data from a Satellite (this includes LIL global data in the LES) on the HLL on a slot by slot basis. Data configured in a slot of a Satellite on the HLL is contiguous. The interface uses the fact that the data from a slot is contiguous to pair the retrieved channels of data with the appropriate PI point. A table resides within the interface that pairs each PI point with the data from its location in the HLL global database. It is important to note that if a channel or loop is removed from a slot then the slot will automatically reconfigure itself and make itself contiguous once again. To prevent this from occurring, dummy information can be substituted in for the removed channels in a slot.

The addition of a new point to a slot will not disrupt the relationship between PI points and their location in the HLL global database. When a point is configured in the first empty channel of a slot, the data residing in that slot will be ignored until the point is configured in the PI database. Once the point has been configured into the PI database, Sign up for Updates will automatically add the point to the point list be scanned by the interface.

If points are rearranged and are configured into different channels, the data for those points will be incorrect until the new configurations have been entered into the PI database. Once the new channel assignments for the points have been configured into the PI database, Sign up for Updates will detect these changes and the interface will be notified.

[pic]

Figure 1. ICI 320 Serial Port Board

LIL Address Selection (Minus 1)

|Switch |Bit |Value |

|2 |2 |32 |

|2 |1 |16 |

|1 |8 |8 |

|1 |4 |4 |

|1 |2 |2 |

|1 |1 |1 |

Data Format Selection (Switch 2)

|Bit 8 |Bit 4 |Start Bits |Data Bits |Parity |Stop Bits |

|Closed |Open |1 |Odd |1 | |

[pic]

Figure 2. Data Set/Data Terminal Connections

[pic]

Figure 3. ICI 320 MPU Board Dip Switch

|Switch5 |Transmission |Switch4 Position |Link ACK |Switch3 Position |Null-Filled |

|Position |Method | |Delay | |Data |

|Open |ASCII |Open |Enabled |Open |Enabled |

|Switch 1 |Switch 2 |Security |

|Position |Position |Level |

|Closed |Closed |None |

|Closed |Open |Record |

|Open |Closed |Parameter |

|Open |Open |Local |

[pic]

Figure 4. Blowup of ICC Piggyback Board

Figure 5. Setting of Jumpers W8 and W9

[pic]

Figure 6. Front Panel, ICI 2.0 or 2.5

Switch Legend

|SW 1 |Hardware Reset | | |

|SW 2 |Communications Setup | | |

|BIT 1 |Command Response Delay |1 |Enabled |

|BIT 2 |Null Data Response |0 |Disabled |

|BIT 3 |Baud Rate | | |

|BIT 4 |Baud Rate | | |

|SW 3 |LED Test Button | | |

|SW 4 |Security Access (Future) | | |

|SW 5 |Data Transmission Mode Select | | |

BAUD Rate Table, SW 2 Switch Settings

|BIT 3 |BIT 4 |BAUD Rate | |

|ASGN |Not Applicable |Device Independent |Assign an OS port id |

|ICISTS |$02 |LIL |Get ICI status |

|GDSCR |$05 |LIL |Global Data Sequential Channel Request (LIL) |

|PARRQ |$07 |LIL |Parameter Request |

|PARSND |$09 |LIL |Parameter Send |

|INITLZ |$02 |HLL |Initialize HLL |

|CHNCMD |$F0 |HLL |Channel Command |

|LPCMD |$80 |HLL |Loop Command |

|GDBSCR |$10 |HLL |Global Data Sequential Channel Request (HLL) |

|STASTS |$04 |HLL |Station Status |

|STAINF |$05 |HLL |Station Information |

|HLLINF |$06 |HLL |High Level Link Information |

|ICCSTS |$07 |HLL |ICC Status |

TestICI Device Independent Functions

Btest

Purpose: Test if one bit is set within a data value.

Usage: Parse raw data returned from the ICI to determine individual ICI states.

The test routine displays a set of sample data to demonstrate the functionality, then prompts the user to enter data. The user enters a decimal data value, then a decimal bit position to test (Note: Bit position numbers between 1 and 15). The information is displayed in both decimal and octal.

Test the Btest function

0 = Btest(1, 0)

1 = Btest(1, 1)

Bit 1 Data 1 = Result 1

Bit 2 Data 2 = Result 1

Bit 3 Data 4 = Result 1

Bit 4 Data 8 = Result 1

Bit 5 Data 16 = Result 1

Bit 6 Data 32 = Result 1

Bit 7 Data 64 = Result 1

Bit 8 Data 128 = Result 1

Bit 9 Data 256 = Result 1

Bit 10 Data 512 = Result 1

Bit 11 Data 1024 = Result 1

Bit 12 Data 2048 = Result 1

Bit 13 Data 4096 = Result 1

Bit 14 Data 8192 = Result 1

Bit 15 Data 16384 = Result 1

Enter the dec data (0 to exit): 128

Enter the dec bit position (0 to exit): 8

result = 1 oct or 1dec from 200 128 at bit 8

The 8th bit position is a 1 and decimal data 128 is equivalent to an octal value of 200.

Ibits

Purpose: Extract a contiguous set of bits from a longword.

The test routine starts by displaying a sample set of tests, then prompts the user to carry out their own tests. Given some integer value, the starting bit number, and the number of bits to extract, the routine displays the bits extracted from the integer value. The user enters values in decimal, but displays the result in octal, the data in octal and decimal, the offset in decimal, and the bit count in decimal. The offset is between 1 and 15.

The sample set shows the function call and the expected answer, then the actual computed answer, thus if the function is operating correctly, the expected answer matches the computed answer.

ibits(15,0,1) = 1 = 1

ibits(15,0,2) = 3 = 3

ibits(15,0,3) = 7 = 7

ibits(15,1,1) = 1 = 1

ibits(5,0,3) = 5 = 5

ibits(5,1,1) = 0 = 0

ibits(5,2,1) = 1 = 1

ibits(5,0,2) = 1 = 1

Enter the dec data (-1 to exit): 7

Enter the dec offset (-1 to exit): 1

Enter the dec bit count (-1 to exit): 2

result is 3 for data 7 oct = 7 dec 1 2

From the data value of 7 with the first 2 bits extracted yields an octal value of 3. It also echoes the decimal offset and bit count after the decimal data value.

To exit the Ibits test, enter a negative value for any of the user prompts.

Vbit

Purpose: Provides a convenient means for testing the value of flag bits returned by the ICI 320 LIL.

Usage: An array of flag bits is returned for global data base random and sequential channel requests. A bit is returned for each channel requested and provides an indication of whether or not the channel is valid. If the bit is set, then the requested channel is not valid (eg., not on line). The bits are ordered left to right starting with the first word in the array. That is bit 15 of word 1 corresponds to the first channel requested. Use Vbit to decode this raw ICI data.

Given the flag array and the number of a requested channel, VBIT will test the appropriate bit and return the status of the bit. TRUE indicates set (eg. invalid channel) or FALSE indicates reset (eg. a valid channel).

The user must enter 2 hexadecimal data values that describe the validity of 32 channels, then the user can repeatedly request Vbit to describe the validity of a specific channel number by entering a decimal channel number until the user enters -1 as a channel number.

Enter flag word (0 of 2): 1

Enter flag word (1 of 2): 2F

Enter a channel number [0-31]: 3

Channel: 3 has result 1

Enter a channel number [0-31]: 8

Channel: 8 has result 0

Enter a channel number [0-31]: -1

In this example, channel 3 is invalid and channel 8 is valid. Entering -1 exits the Ibit test function.

TestICI Device Functions

Display text for an ICI error number

Purpose: Interpret a return status code and display its corresponding error message.

The function will test the error bit within the return status code (15 relative to 1) to determine whether to report an error or not. If it is an error, the routine will extract bits 8 through 13 for the error code and determine if there is a known text description. For example, 16384 decimal or 40000 octal is error code 0 and 16640 decimal is error code 1, because the 15th bit is set and the lower 8 bits are insignificant. Given an error number of 16, the return code must be 16384 + (256*error number) .

There are 3 independent types of status codes based on the type of function being called. These types represent a different layer in the ICI application interface architecture. The user enters a category or asks the routine to interpret the same error code as if it came from each category or layer.

Test the ErrTxt Function

Error Text Categories

1. Exit

2. ICI Device Error (ICI device level)

3. I/O Error (Driver level )

4. ICI Function Error (Application level)

5. Try the error code on all levels

Enter an error category [0-4]: 4

Enter an error code (0 for a new category): 20480

Response message: LILC FAILURE, LINK NOT PRESENT

I/O message: Unknown I/O status

Return message: Unknown return status code

The error code entered has a corresponding ICI Device Layer error description, but the OS and the application layer don’t have an associated error.

Asgn

Purpose: Open a port id on a COM port to a Moore interface device.

The Moore High Level Link interface device is a ICI 2.5 and the Moore Local Instrument Link is a ICI 320. Both devices provide an RS232 interface to the Moore highways. The HLL is a data highway that connects local instrument links and a local instrument link is a low level data highway between such devices as Moore single loop and multi-loop controllers.

In the case of the HLL, the HLL device is also initialized within the assign function.

This test routine asks the user to configure the communications port with the baud rate, parity, stop bits and identify the type of Moore interface on the other end of the communications cable. These configuration settings are pre-defined by the Moore hardware; see the Moore documentation for details.

Note: The Assign function for the LIL doesn’t communicate with the ICI 320, it simply gets a port id from the Operating System. The Assign function for the HLL does request the HLL to initialize, but the HLL goes offline for about 15 seconds while it initializes, but the ICI never responds with a success or failure of the initialization. If there is a communications error, then an error will be returned in the response code.

Test the ICI_Asgn Function

Enter a device name (ex. COM1): COM2

1) HLL ICI 2.5

2) LIL ICI 320

3) LIL ICI 320 multidrop

NOTE: ICI_Asgn will initialize the HLL, but the LIL doesn't require it.

Enter the ICI type: 1

Valid baud rates: 75, 110, 134, 150, 300, 600, 1200, 1800,

2000,2400,3600,4800,7200,9600,19200,38400

Enter the baud rate: 9600

Enter the bits/byte [7 or 8]: 8

Valid parity codes:

0 = even parity

1 = odd parity

2 = no parity

Enter the parity code[0-2]: 2

Valid stop bit codes:

0 = 1 stop bit

1 = 2 stop bits

Enter the number of stop bits [0,1]: 1

ICI type entered:

Mode string format: Baud, bits, parity, stop bits

Mode string entered = ‘9600, 8, 2, 1’

Successful!

Or when an error occurs:

COM2 Return status=5 Device status=-7

Assign Return: ICI response error

Assign I/O: I/O Initialization error

ICI: ICI 2.5 type = HLL

If the user forgets to execute the Asgn function before other device specific functions, the TestICI routine will ask user if Asgn function should be called prior to running the device specific function. It is possible that the user is intentionally skipping the Asgn function to see how the software will respond.

LIL Functions

When diagnosing an LIL connection, the user might execute the following operations:

1. Assign function to connect to the ICI

2. ICI status function to determine if the computer can communicate with the LIL device and that the LIL is configured as expected.

3. Following a successful ICI status check, execute the global database sequential channel request to verify that the LIL can deliver data within the LIL

4. Parameter request function to verify that the LIL can go out on the network and request data from a station.

5. Completing this set of tests will verify the computer can read information from the LIL.

6. Following the read tests, the parameter send function should be executed to verify the LIL can write parameter information to a station on the Moore network

ICI Status

Purpose: Request the current status of the ICI 320

Note: This function should be called for detailed information following a class 0 error or a timeout.

If the function successfully communicates with the ICI, it will display the contents of the ICC status word. It will decompose the status word and describe each component.

The ICC status word format:

Bits 0-5 Station address

Bits 6-7 Data format (start bits, # of data bits, parity, stop bits)

Bits 8-9 Security command (none, record, parameter, local)

Bit 10 Link acknowledge delay (disabled, enabled)

Bit 11 Null filled data (disabled, enabled)

Bit 12 Transmission method (binary, ascii)

Test the ICISts function

Press return:

Analysis of ICCWRD: is:

LIL station address is

Data format: 1 start, 8 data, no, 1 stop

Send Security: None

Acknowledge delay = Disabled

Null filled data = Disabled

Transmission method = Binary

In this example the ICI communications are operational with 1 start and stop bit, 8 bit data, no parity.

Global Database Sequential Channel Request (LIL)

Purpose: Get LIL Global database channel data using a sequential request.

Given a station address, the starting channel number within the station, and the number of contiguous channels to get the data for, this routine will request the ICI to return the data for this sequential channel set and display the channel information. The information includes the channel number, the quality of the data (good or bad) and the data value in decimal and hexadecimal.

A request for data from the Global database will only require requesting the ICI to return data within the ICI’s memory, it does not have to go out on the Moore highway, because each station emits global data for the ICI to keep fresh. Thus this is NOT a test of the ICI’s ability to request data from a station.

Global data is the first parameter of every channel. Other parameters require an explicit request to the station (see Parameter Request below).

The user enters decimal values for the satellite, starting channel number, and channel count.

Test the LCI_GDSCR function

Enter the satellite # (1-128): 4

Enter the channel # (1-256): 2

Enter the channel count [1-256]: 2

Global Sequential Channel Request Data:

2 (Good)= 1dec 1 hex

3 (Good)= 9 dec A hex

Press space bar and Enter:

In this example, the user requested data for channels 2 and 3 within LIL satellite 4. Both channels have good quality.

Parameter Request

Purpose: Get parameter data from a remote station.

Unlike the global database sequential read function, which gets data from the ICI’s memory, the parameter request function causes the ICI to send a command to the remote station on the Moore network to get the value of a parameter within the station. The global database is updated every 0.5 seconds and contains dynamic information (ex. a process value), but there are parameter values that are not in the global database (ex. PID coefficients), thus this function is used.

This function can be called to get LIL information from an ICI 320 (direct to an LIL) or from an ICI 2.5 (indirect to an LIL through an HLL). If the computer is connected to an HLL via an ICI 2.5, the user must specify which HLL link and HLL gateway address to get to the LIL. If the computer is connected directly to an LIL via an ICI 320, then enter 0 for the link and the gateway address.

Test the ICI_ParRq function

Enter the remote link # (0 = local link): 0

Enter gateway or station HLL Address (0-31; 0 = on same LIL): 0

Enter LIL address of station (1-128): 3

Enter the number of parameters: 2

Will all parameters use the same channel [y/n]: y

Enter the station channel # (1-256): 4

Enter the station parameter # (1-256): 2

Enter the station parameter # (1-256): 5

ICI: success

Successful Function call!

Parameter Data:

Channel 4 Parameter 2 = 7

Channel 4 Parameter 5 = 6

In this example, the computer is directly connected to an LIL via an ICI 320. Parameters 2 and 5 were requested from Channel 4 of LIL station 3. The function was successful and displayed 7 in parameter 2 and a value of 6 in parameter 5 of channel 4.

Parameter Send

Purpose: Send parameter data to a remote station.

This function will write parameter data out over the Moore network to the requested station (Ex. change PID tuning coefficients.

This function can be called to set parameter values on the LIL from an ICI 320 (direct to an LIL) or from an ICI 2.5 (indirect to an LIL through an HLL). If the computer is connected to an HLL via an ICI 2.5, the user must specify which HLL link and HLL gateway address to get to the LIL. If the computer is connected directly to an LIL via an ICI 320, then enter 0 for the link and the gateway address.

Warning: This function writes to a station (ex. setpoint value) that could cause an unexpected action (ex. start a pump or switch a valve) when process control devices (ex. pumps and valves) are actively connected to a station.

To appropriately package the data for communications to the LIL, a data type and command type must be specified by the user.

Test the ICI_ParSnd function

Enter the remote link # (0 = local link): 0

Enter the HLL Address of gateway or station to receive data (0-31; 0 = on same LIL): 0

Enter the LIL address of station to receive parameter data (1-128): 4

Enter the station channel # (1-256): 3

Enter the station parameter # (1-256): 2

List of Data Types:

0 - Record send acknowledge

1 - 16-bit integer, absolute change

2 - 16-bit integer, relative change

3 - 16-bit multi-discrete mask on

4 - 16-bit multi-discrete mask off

5 - 16-bit multi-discrete mask pulse

6 - 32-bit floating point, absolute change

7 - 32-bit floating point, relative change

8 - Multibyte data (message)

9 - 32-bit integer, absolute change

10 - 12-bit integer plus range bits, absolute change

Enter the data type (0-10): 1

List of command types:

0 thru 3 - Not applicable

4 - Parameter send from local source

5 - Parameter send from a console source

6 - Parameter send from a computer source

7 - Parameter send from any source

8 - Command is in Hi-Level Link format

Enter the command type: 6

Enter the data length in words: 2

Enter data value 1: 4

Enter data value 2: 0

In this example, the computer is connected via an ICI 320, so the HLL addresses are zero. The user sets parameter 2 of channel 3 from LIL station 4. A 16 bit unsigned integer as if it came from a local source was sent with a value of 4.

HLL Functions

Initialize ICI device

Purpose: Request that the ICI 2.5 get reset.

When the HLL is reset (initialized), the HLL goes offline for about 15 seconds, but the ICI never responds with a success or failure of the initialization. If there is a communications error, then an error will be returned in the response code.

Device status: 0 Return status: 0

Return: Success

I/O: Success

In this example there were no errors requesting the HLL to reset.

Channel command

Purpose: Issue HLL type Channel Commands to a specified station.

CHNCMD may be used to send up to seven channel commands to a single station on a Hi-Level link. Note that if the station is an LES, the LES will translate the HLL channel commands into the corresponding LIL commands and will relay the LIL commands to the appropriate stations on the LIL as dictated by the current LES configuration.

The function checks the address values, command count, and command type code A for validity, but the value(s) for command type code B and the new data values are not checked. If the arguments are valid, then it builds the appropriate ICI command and issues it to the ICI. CHNCMD then returns either the reply from the ICI or in the event of a communication failure an error status.

Note that the action of the ICI upon receipt of a channel command is dependent on the setting of the RESPONSE DELAY switch (Refer to the ICI User's Guide). If the RESPONSE DELAY feature is disabled, the ICI will return a response to the host immediately, prior to the actual sending of the command out to the destination station. If the delay feature is enabled the ICI will not return a response to the host until after it has attempted to send the command to the destination station and either received an acknowledgment from the destination station or incurred an error in the attempt to send the command.

The latter behavior is desirable as it provides the host computer with an indication as to whether or not the command was successfully sent. It is recommended that the ICI be used with the RESPONSE DELAY feature enabled.

Note that although the and may have been successfully sent to the destination station, this does not mean that the station acted on the channel command. In order to verify that the command was acted upon, it is necessary to read the channel back through use of HLL global data base reads (GDBSCR or GDBRCR) .

Command A describes the type of process I/O (ex. Analog Output, Multiple Momentary Discrete) the command will affect. Command B is a bit mask for bitwise commands otherwise it is zero. See the ICI 2.5 documentation for command details. The user enters both command code A and B as decimal.

Table 2 Channel Command Table

|Command A |Command A |Description |Command B |

|(decimal) |(hexadecimal) | | |

|8 |8 |Analog Output |0 |

|9 |A |Single Sustained Discrete Channel |0 |

|10 |B |Single Sustained Discrete Word |0 |

|11 |C |Single Sustained Discrete Bit |{bit mask } |

|12 |D |Single Momentary Discrete Channel |0 |

|13 |E |Single Momentary Discrete Bit |{bit mask } |

Because some HLL configurations can have a high error rate (ex. excessive length or by heavy equipment that induces errors on the line, the test routine provides for retry count with a user specified delay between attempts. If a repeat count is specified, then the user is prompted to enter the delay. After completing the number of repeats, the % of bad attempts is displayed.

Test the ICI_ChnCmd function

Enter the link # (1-4) 3

Enter the satellite # (1-128) 5

Enter the command count [0-5]: 1

Command # 1

Enter the slot # (1-16): 2

Enter the channel # (1-256): 8

Enter the command type code A # (8-14): 5

Enter the command type code B # (0-15): 0

Enter a data value (0-4095): 1024

# of times to repeat the set of commands: 2

# of milliseconds between attempts(ex. 1000 for 1 sec): 3000

Successful channel command:

Response status for each command:

Item 1 status = 0

0 / 2 = 0 %

Press ENTER to continue:

In this example, one channel command is directed towards Link 3, Satellite 5, slot 2, and channel 8.

It is a single momentary discrete command; since it is not bit command, command B is 0. In this example both attempts were successful, thus the percent bad is zero.

Loop command

Purpose: Send loop commands to multi-loop controllers.

This is a specialized command function to modify non-global control loop parameters within a multi-loop controller. This function is used to change control loop setpoints, tuning coefficients, controller setpoint ramping, control loop modes, etc.

Warning: This function writes to a station (ex. setpoint value) that could cause an unexpected action (ex. start/stop a pump or switch a valve position) when process control devices (ex. pumps and valves) are actively connected to a station.

Command codes A and B are entered as hexadecimal.

Table 3 Loop Command Table

|Command Description |Command A |Command B |

| |(Hexadecimal) |(Hexadecimal) |

|Ramp On |10 |0 |

|Ramp Off |11 |0 |

|Enter Manual Mode |12 |0 |

|Enter Auto Mode |13 |0 |

|Enter External Mode |14 |0 |

|Exit External Mode |15 |0 |

|Kp Absolute |1B |0 |

|Ki Absolute |1B |1 |

|Kd Absolute |1C |0 |

|Kg Absolute |1C |1 |

|Target SP Absolute |1D |0 |

|Ramp Time Absolute |1D |1 |

|SP High Limit Absolute |1E |0 |

|SP Low Limit Absolute |1E |1 |

|Output Absolute |1F |0 |

|Setpoint Absolute |1F |1 |

|Output Relative |1F |2 |

|Setpoint Relative |1F |3 |

|Console Mode |44 |0 |

|Computer Mode |45 |0 |

Test the ICI_LpCmd function

Enter the link # (1-4); 2

Enter the station # (0-31); 6

Enter the command count [0-5]: 1

Command # 1

Enter the loop # (1-64 dec):

Enter the command type code A # (10-46 hex): 1D

Enter the command type code B # (0-10 hex): 0

Enter a data value (0-4095 dec): 512

1: Loop=2 (Cmd A=10 X = 10 D), (Cmd B 0 X = 0 D), Data 512 D

# of times to repeat the set of commands: 1

Successful, loop command sent.

Command 1 status = 0

Press ENTER to continue:

In this example an absolute target setpoint at link 2 and station 6 is set to 512 without repeating the command.

Global Database Sequential Channel Request (HLL)

Purpose: Get a sequential set of channel data from an HLL

Given the HLL link, satellite, and slot address information, display the current channel process value in decimal and floating point formats.

Test the GDBSCR function

Enter the link # (1-4): 1

Enter the satellite # (0-15): 4

Enter the slot # (1-16): 2

Enter the block offset or page # (0-16): 0

Enter the channel count [0-5]: 1

Successful!

1 = 1024 0.23

0 /1 = 0 %

Press ENTER to continue:

In this example the channel value is 0.23 with no bad reads. Before converting from the raw digital representation to floating point, the value is 1024 decimal.

Station Status

Purpose: Get the status of each station within a HLL link

STASTS may be used to obtain the current Hi-Level Link station status for the specified link on an ICI. STASTS first checks the argument LINK. If the argument is valid it then builds the appropriate command and issues it to the ICI. STASTS then returns either the reply from the ICI or in the event

of a communication failure an error status.

Test the ICI_StaSts function

Enter a link # (1-4): 3

stasts Return status: 0 ICI response: 0 I/O status 0

stasts Return: Success

stasts I/O: Success

ICI: Success

Station Status for 2 satellites:

Satellite: 1 = 1

Satellite: 2 = 1

Press enter to continue:

Master Status:

Master: 1 = 1

Press enter to continue:

In this example the HLL link 3 was queried for the status of 2 stations and a masters. The call was successful and the 2 stations are on-line (see Moore HLL documentation for detailed bit descriptions).

Note: the status data is displayed in octal for easier bit decoding.

Station Information

Purpose: Get status and error information for a specific HLL station.

STAINF may be used to obtain current station status, configuration and error information for a station on a Hi-Level Link.

See the Moore documentation of a detailed description of the status bits

Test the ICI_StaInf function

Enter a link # (1-4): 1

Enter a station # (0-31): 2

stainf Return status: 0 ICI response: 0 I/O status: 0

stainf Return: Success

stainf I/O: Success

ICI: Success

Station Info:

Link A Good: 1

Link B Good: 1

Framing Error Count (A & B): 0 dec

CRC Error Count (A & B): 3 dec

Error Log 1/Error Log 2: 0 dec

Error Log 3/Error Log 4: 0 dec

Error Log 5/Error Log 6: 0 dec

Error Log 7/Error Log 8: 0 dec

Timeout Error Count: 4 dec

Station State/Type: 2 oct

Station Status Byte: 0 oct

Status word 1 = 0 oct; 2 = 0 oct

# of Global database bytes: 215

Press enter to continue:

Slot 1 offset = 10

Slot 2 offset = 31

Slot 3 offset = 40

:

Slot 16 offset = 73

HLL Information

Purpose: Get Hi-Level Link information table for specified link.

See the Moore documentation of a detailed description of the status bits

Test the ICI_HLLInf function

Enter the link # (1-4): 1

Satellite Global Database Size Table

208 = 0 dec 0 hex

:

222 = 0 dec 0 hex

Press enter to continue:

Station Status Bytes

224 = 0

:

238 = 0

Press enter to continue:

State Type Bytes

280 = 0

:

286 = 0

Press enter to continue:

Satellite Status Words (2/satellite)

288 = 0 0

:

318 = 0 0

Press enter to continue:

ICC Status

Purpose: Get the current ICI Interface Communication Computer status word.

This function is useful as the first command following initialization of the HLL to see the overall status of the ICI 2.5, how it is configured and the active (updating) links connected to the ICI 2.5.

Test the ICCSts function

ICC Status Word:

Bit: 0 = 0 ICI Input buffer 1 full

Bit: 1 = 0 ICI Input buffer 2 full

Bit: 2 = 0 ICI Input buffer 3 full

Bit: 3 = 0 ICI Input buffer 4 full

Bit: 4 = 1 Link 1 Updating

Bit: 5 = 1 Link 2 Updating

Bit: 6 = 1 Link 3 Updating

Bit: 7 = 0 Link 4 Updating

Bit: 8 = 1 Link 1 Present

Bit: 9 = 1 Link 2 Present

Bit:10 = 1 Link 3 Present

Bit:11 = 0 Link 4 Present

Bit:12 = 1 Switch2-1 Response Delay (1=enabled)

Bit:13 = 0 Switch2-2 Null Data (1=enabled)

Bit:14 = 1 Switch2-3 Baud Rate comm port

Bit:15 = 0 Switch2-4 Baud Rate comm port

Press ENTER to continue:

In this example there are 3 links configured in the ICI 2.5, which are all updating and none of the input buffers are full. In addition, the response delay option is enabled but not the Null data option.

Appendix B: Interface Distributions as Self-Extracting Executables

PI Interfaces are now being shipped on CD or floppy diskette, or are available for download via the OSI FTP server. VMS and NT distributions provide a Windows NT/9x self-extracting executable zip file that contains files for the platform on which your interface is intended to run. UNIX distributions files are distributed as .tar.Z or .tar.gz files.

NT Installation

1. Unpack the .exe file on the CD or diskette by clicking on it from Windows Explorer, or from running the executable from the command prompt. You will be prompted for where to unzip the files. Be sure to unzip to a safe directory, so as not to over-write any existing configuration files.

2. Move the distribution files to the correct directory, and follow the setup instructions in the corresponding interface manual.

Documentation Updates

Interface manuals should now be, or will soon be included in the interface distribution. For interface manual updates, you can view or download the latest documentation from our Support Web:



After registering the first time, go to the PI Interfaces link and then view the spreadsheet from the Documentation link

Appendix C: Troubleshooting

Missing DLLS

The Moore ICI Interface distribution diskette also contains the dynamic linked libraries MSVCIRT.DLL and MSVCRT.DLL. If these files are not on your system, install them to the windows directory (\winnt\system32). Windows Explorer or a Command Window may be used for the copy, if your system needs any of these files.

Crashing

If the interface is crashing, the debug symbol file (moore.dbg) that is distributed with the interface needs to be installed in the \winnt\symbols\exe directory.

Appendix D: Performance

The interface throughput is mostly dependent on the baud rate of the ICI. At 9,600 baud, the interface can scan 140 points/second. This rate is linear, so to scan 100 points/second, you would need to run at least a baud rate of 68,000.

To monitor the Scan Performance of the interface, enable the /perf=x option in the interface startup file. The Scan Performance summary interval can be set to any integer including 1 to 24, indicate the interval in hours between summaries.

Appendix E: Migrating the Moore ICI Interface from VMS to Windows

This section assumes you are retiring a VMS based Moore ICI interface and commissioning a Windows based Moore ICI interface in it’s place.

Whether the Moore ICI interface on Windows platform will be sending its data to a PI2 to PI3 server, there are point database changes required.

If your Windows based Moore ICI interface will be sending its data to a PI2 server, you must also edit the PI2 point source table to reflect the requirements of points for this interface.

Point Database Attribute Changes (PI2 and PI3 servers)

Location 1

In the VMS based interface version, Location1 was used for interface ID number. The Windows Intel based interface version uses Location1 to hold bit mask or mode information.

Copy attribute values from Location4 and write these to Location1 for all points. Refer to the interface manual for proper location1 setting details.

Note: Location11 must be 0 for all Float16, Float32, Float64 point types (PI3); or Real-Scaled and Real-Precision point types (PI2).

Location4

In the VMS based interface version, Location1 was used for hold bit mask or mode information. The Windows Intel based interface version uses Location4 to hold the scan class setting.

Location 4 is to be set to 1. The Windows Intel interface version only permits a single 10 second scan class for all points of the interface.

Extended Descriptor (ExDesc)

In the VMS based interface version, ExDesc was used to hold misc text or the key word “%RAW” or a combination.

The Windows Intel based interface version uses ExDesc to hold the ICI number (same as the interface id or instance number) and the %RAW keyword. The Windows interface requires that if %RAW is found, that the zero and max values for RAW scaled points.

|Old UserInt1 |Old UserInt2 |Old Extended Descriptor |

|0 |4095 |%RAW |

|0 |0 |MII/SES ISLAND SESQUI SIGNAL |

For the Windows Intel based interface, the Extended Descriptor (ExDesc) must be reconfigured to include :

or

ICI Number>; ; ;

For example:

|Extended Descriptor | Notes |

|1; | ICI or Interface ID number only |

|1;%RAW;0;4095 | ICI number & %RAW parameters |

|1;MII/SES ISLAND SESQUI SIGNAL | ICI number & Misc text |

|1;%RAW;0;4095;SINGLE TIE SESQUI SIGNAL | ICI number & %RAW parameters & Misc Text |

In these examples, the ICI number is 1. The second and fourth examples are for a float16 or float32 point whose data comes from a 16 bit signed integer in the instrument system. The third and fourth examples show descriptive text found in the extended descriptor.

UserInt1

In the VMS based interface version, UserInt1 was used to hold the instrument zero value for RAW scaled points. The Windows Intel based interface version does not use the UserInt1 attribute.

For the Windows Intel based interface, the UserInt1 attribute should be set to 0.

UserInt2

In the VMS based interface version, UserInt2 was used to hold the instrument max span value for RAW scaled points. The Windows Intel based interface version does not use the UserInt2 attribute.

For the Windows Intel based interface, the UserInt2 attribute should be set to 0.

Point Source Table (PI2 servers only)

Configure or change the point source definition for the Moore ICI interface for Windows Intel as follows.

|Point Source |M [1] |Default value |

|Descriptor |Moore ICI (LIL & HLL)[2] | |

| | | |

|Location |Minimum |Maximum |

|Code | | |

|1 |-1 |1615141312 |

|2 |1001 |41516256 |

|3 |0 |3 |

|4 |1 |1 |

|5 |0 |1 |

Revision History

|Date |Author |Comments |

|5-Nov-97 |HAO |Document written, taken from VMS based i/f document |

|15-Apr-98 |HAO |Removed references to VAX and terminal server |

|8-Jun-98 |HAO |Added description/examples on defining Loc2 for Loops |

|9-Jun-98 |HAO |Corrected number of Slots on a MLC |

|17-Jun-98 |HAO |Added /noou startup parameter |

|1-Jul-98 |HAO |Added /mr and /rst startup parameter |

|8-Jul-98 |HAO |Added TestICI sections |

|3-Dec-98 |HAO |Added Appendix B on .exe distribtions |

|4-Feb-99 |HAO |Added or greater onto version at top of doc; added section on troubleshooting; removed |

| | |section about updating MS dlls |

|13-May-99 |HAO |Added info on moore.dbg debug symbols |

|13-Aug-99 |HAO |Added info on running multiple copies of the interface, and doc version |

|06-Sep-99 |HAO |Added info on throughput and performance summaries. (1.3.0) |

|11-Nov-99 |HAO |Modified location1 documentation, remove leading 0. |

|19-May-00 |HAO |RAW can now be RAW, Raw, or raw in Extended Descriptor. (1.3.3.0) |

|25-May-00 |HAO |Support for integer tags to allow a bit mask to be applied (location1). (1.3.4.0) |

|12-Oct-00 |HAB |Provided better example of %RAW feature (1.3.4.0, doc rev A) |

|27-Jul-01 |HAB |Added another example of LIL location2 (1.3.4.0, doc rev B) |

|27-Jul-01 |HAB |Added details on the /id and Exdesc relationship (1.3.4.5) |

|05-Sep-01 |HAB |Updated ICU Control section (1.3.4.5, doc rev A) |

|25-Oct-01 |HAB |Updated version to 1.4.0 to be compatible with ICU Control 3 digit version (1.4.0) |

|22-Jan-02 |HAB |Allowing RAW to be -32768 to 65535. (1.4.0.1) |

|16-Jul-02 |HAB |Corrected LIL location2 definition (1.4.0.1, doc rev A) |

|29-Oct-02 |HAB |Updated ICU Control and /db sections (1.4.0.8) |

|03-Mar-04 |HAB |Updated with latest format for 1.4.0.9 release |

|15-Apr-04 |HAB |Updated section on Exdesc (1.4.0.9, doc rev A) |

|26-Apr-04 |HAB |Added section on changes made when converting from VMS version of the interface to NT |

| | |version (1.4.0.9, doc rev B) |

-----------------------

[1] Point Source code character must match the “/ps=” parameter found in the interface startup file.

[2] Descriptor text can be whatever you like. Should be descriptive of the instrument system where the data comes from, such as “Moore system in Power House.”

-----------------------

Data Set Position

Data Terminal Position

DS

DT

Application Layer (OSI PI driver)

I/O Layer

(Operating System Device I/O)

ICI Device Layer

(HLL or LIL)

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download