288
Version 7.0 Process Analyst September 2007

Vijeo Citect Process Analyst

Embed Size (px)

Citation preview

Page 1: Vijeo Citect Process Analyst

Version 7.0

Process Analyst

September 2007

Page 2: Vijeo Citect Process Analyst

DISCLAIMERSchneider Electric SA makes no representations or warranties with respect to this manual and, to the maximum extent permitted by law, expresslylimits its liability for breach of any warranty that may be implied to the replacement of this manual with another. Further, Schneider Electric SA reservesthe right to revise this publication at any time without incurring an obligation to notify any person of the revision.

COPYRIGHT© Copyright 2007 Schneider Electric SA. All rights reserved.

TRADEMARKSSchneider Electric SA has made every effort to supply trademark information about company names, products and services mentioned in this manual.

Citect, CitectHMI, and CitectSCADA are registered trademarks of Citect Pty. Ltd.

IBM, IBM PC and IBM PC AT are registered trademarks of International Business Machines Corporation.

MS-DOS, Windows, Windows NT, Microsoft, and Excel are either registered trademarks or trademarks of Microsoft Corporation in the United Statesand/or other countries.

DigiBoard, PC/Xi and Com/Xi are trademarks of Digi International Inc..

Novell, Netware and Netware Lite are are either registered trademarks or trademarks of Novell, Inc. in the United States and other countries..

dBASE is a trademark of dataBased Intelligence, Inc.

All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.

GENERAL NOTICESome product names used in this manual are used for identification purposes only and may be trademarks of their respective companies.

September 2007 edition for Vijeo Citect Version 7.0

Manual Revision Version 7.0.

For further information, contact your local Schneider Electric representative.

Page 3: Vijeo Citect Process Analyst

Contents

About this Documentation

Part I Process Analyst for Operators

Chapter 1 The Process Analyst: An Overview

Chapter 2 Using the Main Toolbar

Chapter 3 Understanding Process Analyst PensPens: An Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

Data Compaction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5Data Quality. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6Date/Time (Horizontal) Axis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Vertical (Value) Axis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8Gridlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9Pen Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Pen Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10Analog pens. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10Digital pens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11Alarm pens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Chapter 4 Interacting with the Process AnalystPen Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15Locking/Unlocking Pens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Scrolling the Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Scaling the Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17Using the Navigation Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

Specifying a start time and end time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18About time spans. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20Span Lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20Navigating time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20Synchronize to Now. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21Toggle Autoscrolling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21Zoom In/Zoom Out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

Page 4: Vijeo Citect Process Analyst

Contentsii

Undo Last Zoom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21Toggle Box Zoom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21Edit Span . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22Edit Vertical Scale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23Reset to Default Span . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Using Cursors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24Using Cursor Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25Using the Right-click Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26Understanding Mouse Pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26Adding and Deleting Pens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Adding Pens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27Deleting Pens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

Viewing Pen Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

Chapter 5 Using the Object ViewObject View Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31Using Object View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Chapter 6 Printing and ExportingAbout Process Analyst Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Configuring Process Analyst Report Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

Setting up report legends . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35Setting up report options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

Exporting Pen Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37Copying data to the Clipboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37Copying data to file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

Chapter 7 Configuring the Process AnalystUsing the Process Analyst Properties Dialog Box . . . . . . . . . . . . . . . . . . . . . . . . . . 39

Main page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39Toolbars. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40Object View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

Configuring Chart-wide Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41Configuring general properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41Configuring server paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

Configuring Chart Panes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43Configuring Pens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

Configuring pen appearance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44Configuring pen gridlines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46Configuring pen axes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47Configuring pen quality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49Configuring the pen data connection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50Configuring cursor labels. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

Page 5: Vijeo Citect Process Analyst

Contents iii

Configuring Cursors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51Configuring Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52Configuring Toolbars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

Adding or removing toolbar commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53Changing the order of toolbar commands . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

Configuring the Object View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54Object View properties page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

Working with Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55Saving a view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56Loading a view. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

Chapter 8 Operator Command ReferenceView Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59Zoom Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59Navigation Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60Export Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60Interface Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61General Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

Part II Process Analyst for Users

Chapter 9 Integration with Vijeo CitectConfiguring the Process Analyst Control from Graphics Builder . . . . . . . . . . . . . . . 65

Tag association . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65Security and Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

Administration privilege . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66Command privilege . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66Write privilege . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

Multi-language Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67Understanding the Process Analyst resources . . . . . . . . . . . . . . . . . . . . . . . 67Using Vijeo Citect to switch the Process Analyst language. . . . . . . . . . . . . . 67Manually switching languages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68Specifying languages for the Web Client. . . . . . . . . . . . . . . . . . . . . . . . . . . . 68Creating your own Process Analyst resource.dll . . . . . . . . . . . . . . . . . . . . . . 68

Persistence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73Saving while using the Citect Graphics Builder . . . . . . . . . . . . . . . . . . . . . . . 73Using the Save View toolbar button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73Using the SaveToFile automation method . . . . . . . . . . . . . . . . . . . . . . . . . . 74Saving between Vijeo Citect page transitions (Run-time) . . . . . . . . . . . . . . . 74Resetting back to the default state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

Backing up Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

Page 6: Vijeo Citect Process Analyst

Contentsiv

Chapter 10 Configuring Process Analyst Design Time PropertiesAdding New Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77Editing Existing Custom Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78Creating or Editing Object View Columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79Process Analyst View Synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

Chapter 11 Using the Process Analyst Command SystemCommand System Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81Custom Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

CommandExecuted . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81UpdateCommand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

Icons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

Chapter 12 Automation ModelExecution Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84Enumerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85IAlarmPen Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

IAlarmPen.LineColor [Property][Get/Set]. . . . . . . . . . . . . . . . . . . . . . . . . . . . 85IAlarmPen.LineWidth [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . . . 86IAlarmPen.AlarmType [Property][Get/Set]. . . . . . . . . . . . . . . . . . . . . . . . . . . 87IAlarmPen.GetFillColor [Method]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88IAlarmPen.SetFillColor [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88IAlarmPen.GetHatchColor [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89IAlarmPen.SetHatchColor [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90IAlarmPen.GetHatchStyle [Method]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91IAlarmPen.SetHatchStyle [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

IAnalogPen Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92IAnalogPen.LineColor [Property][Get/Set]. . . . . . . . . . . . . . . . . . . . . . . . . . . 92IAnalogPen.LineInterpolation [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . 93IAnalogPen.LineWidth [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . . 94

ICommand Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95ICommand.CommandId [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95ICommand.ButtonType [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96ICommand.Enabled [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96ICommand.Pressed [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97ICommand.Tooltip [Property][Get]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98ICommand.Privilege [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

ICommandSystem Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99ICommandSystem.Count [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . 100ICommandSystem.Item [Property][Get]. . . . . . . . . . . . . . . . . . . . . . . . . . . . 100ICommandSystem._NewEnum [Property][Get] . . . . . . . . . . . . . . . . . . . . . . 101

Page 7: Vijeo Citect Process Analyst

Contents v

ICommandSystem.ItemById [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . 101ICommandSystem.Create [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102ICommandSystem.Execute [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103ICommandSystem.Remove [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

ICursors Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104ICursors.Create [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104ICursors.RemoveAll [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105ICursors.Item [Property][Get]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106ICursors._NewEnum [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106ICursors.Count [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107ICursors.ItemByName [Property][Get]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

IDigitalPen Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108IDigitalPen.FillColor [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . . . 108IDigitalPen.LineColor [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . . 109IDigitalPen.LineWidth [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . . 110IDigitalPen.Fill [Property][Get/Set]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

IObjectView Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111IObjectView.Visible [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112IObjectView.Height [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113IObjectView.BackgroundColor [Property][Get/Set] . . . . . . . . . . . . . . . . . . . 113IObjectView.ForeColor [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . 114IObjectView.Columns [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115IObjectView.Items [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115IObjectView.SelectedItem [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . 116

IObjectViewColumn Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117IObjectViewColumn.Name [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . 117IObjectViewColumn.Text [Property][Get]. . . . . . . . . . . . . . . . . . . . . . . . . . . 117IObjectViewColumn.Width [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . 118

IObjectViewColumns Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119IObjectViewColumns.Add [Method]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119IObjectViewColumns.Hide [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120IObjectViewColumns.Remove [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . 120IObjectViewColumns.Show [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121IObjectViewColumns.Count [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . 122IObjectViewColumns.Item [Property][Get]. . . . . . . . . . . . . . . . . . . . . . . . . . 122IObjectViewColumns.ItemByName [Property][Get] . . . . . . . . . . . . . . . . . . . 123IObjectViewColumns._NewEnum [Property][Get] . . . . . . . . . . . . . . . . . . . . 124

IObjectViewItem Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124IObjectViewItem.GetField [Method]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124IObjectViewItem.PutField [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125IObjectViewItem.Expanded [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . 126IObjectViewItem.Tag [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . . 127IObjectViewItem.Items [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

IObjectViewItems Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128IObjectViewItems.Count [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

Page 8: Vijeo Citect Process Analyst

Contentsvi

IObjectViewItems.Item [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129IObjectViewItems._NewEnum [Property][Get]. . . . . . . . . . . . . . . . . . . . . . . 130

IObjectViewPenItem Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130IObjectViewPenItem.BlockColor [Property][Get] . . . . . . . . . . . . . . . . . . . . . 130IObjectViewPenItem.Checked [Property][Get/Set] . . . . . . . . . . . . . . . . . . . 131IObjectViewPenItem.Selected [Property][Get]. . . . . . . . . . . . . . . . . . . . . . . 132

IPane Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132IPane.Delete [Method]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133IPane.Height [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133IPane.Collection [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134IPane.Name [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135IPane.BackgroundColor [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . 136IPane.FixedHeight [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136IPane.Pens [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

IPanes Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138IPanes.Create [Method]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138IPanes.RemoveAll [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139IPanes.Count [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139IPanes.Item [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140IPanes._NewEnum [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141IPanes.ItemByName [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

IPen Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142IPen.AddSample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143IPen.Clear [Method]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144IPen.Delete [Method]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144IPen.GetDefaultSpan [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145IPen.GetHorizontalAxisTimeSpan [Method] . . . . . . . . . . . . . . . . . . . . . . . . 146IPen.GetInformation [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147IPen.GetStatistic [Method]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149IPen.GetVerticalAxisSpan [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149IPen.GoToNow [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150IPen.HorizontalScrollBy [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151IPen.HorizontalZoom [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151IPen.PointsVisible [Property][Get/Set]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152IPen.PutHorizontalAxisTimeSpan [Method] . . . . . . . . . . . . . . . . . . . . . . . . 153IPen.PutVerticalAxisSpan [Method]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154IPen.RefreshData [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155IPen.ResetToDefaultSpan [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156IPen.Select [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156IPen.SetDefaultSpan [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157IPen.SetQualityCompactionPointType [Method] . . . . . . . . . . . . . . . . . . . . . 158IPen.SetQualityLineStyle [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158IPen.SetVerticalAxisLabelValue [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . 159IPen.VerticalScrollBy [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160IPen.VerticalZoom [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

Page 9: Vijeo Citect Process Analyst

Contents vii

IPen.AxisBackgroundColor [Property][Get/Set]. . . . . . . . . . . . . . . . . . . . . . 162IPen.BlockRepaint [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162IPen.Collection [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163IPen.DataPoint [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164IPen.DataServer [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164IPen.Height [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165IPen.HorizontalAxisColor [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . 166IPen.HorizontalAxisResize [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . 167IPen.HorizontalAxisScroll [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . 168IPen.HorizontalAxisWidth [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . 168IPen.HorizontalGridlinesColor [Property][Get/Set] . . . . . . . . . . . . . . . . . . . 169IPen.HorizontalGridlinesStyle [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . 170IPen.HorizontalGridlinesWidth [Property][Get/Set] . . . . . . . . . . . . . . . . . . . 171IPen.HorizontalMinorGridlinesColor [Property][Get/Set] . . . . . . . . . . . . . . . 171IPen.HorizontalMinorGridlinesStyle [Property][Get/Set] . . . . . . . . . . . . . . . 172IPen.IsDeleted [Property][Get]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173IPen.IsSelected [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173IPen.LocalTime [Property][Get/Set]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174IPen.Name [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175IPen.RequestMode [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175IPen.Stacked [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176IPen.TrendCursorLabelFillColor [Property][Get/Set] . . . . . . . . . . . . . . . . . . 177IPen.TrendCursorLabelLineColor [Property][Get/Set] . . . . . . . . . . . . . . . . . 178IPen.TrendCursorLabelTextColor [Property][Get/Set]. . . . . . . . . . . . . . . . . 178IPen.VerticalAxisAutoscale [Property][Get/Set]. . . . . . . . . . . . . . . . . . . . . . 179IPen.VerticalAxisColor [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . 180IPen.VerticalAxisLabelType [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . 181IPen.VerticalAxisResize [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . 181IPen.VerticalAxisScroll [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . 182IPen.VerticalAxisWidth [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . 183IPen.VerticalGridlinesColor [Property][Get/Set]. . . . . . . . . . . . . . . . . . . . . . 184IPen.VerticalGridlinesStyle [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . 185IPen.VerticalGridlinesWidth [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . 185IPen.VerticalMinorGridlinesColor [Property][Get/Set] . . . . . . . . . . . . . . . . . 186IPen.VerticalMinorGridlinesStyle [Property][Get/Set] . . . . . . . . . . . . . . . . . 187IPen.Visible [Property][Get/Set]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187

IPens Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188IPens.Create [Method]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189IPens.RemoveAll [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190IPens.Count [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190IPens.Item [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191IPens._NewEnum [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191IPens.ItemByName [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191IPens.Pane[Property][Get]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192

IProcessAnalyst Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193

Page 10: Vijeo Citect Process Analyst

Contentsviii

IProcessAnalyst.BlockUpdates [Method]. . . . . . . . . . . . . . . . . . . . . . . . . . . 194IProcessAnalyst.UnBlockUpdates [Method] . . . . . . . . . . . . . . . . . . . . . . . . 194IProcessAnalyst.CopyToClipboard [Method]. . . . . . . . . . . . . . . . . . . . . . . . 195IProcessAnalyst.CopyToFile [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196IProcessAnalyst.FreezeEvent [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . 196IProcessAnalyst.LoadFromFile [Method]. . . . . . . . . . . . . . . . . . . . . . . . . . . 197IProcessAnalyst.PrintAll [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198IProcessAnalyst.SaveToFile [Method]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199IProcessAnalyst.ShowProperties [Method] . . . . . . . . . . . . . . . . . . . . . . . . . 200IProcessAnalyst.SubscribeForPropertyChange [Method] . . . . . . . . . . . . . . 200IProcessAnalyst.SynchroniseToNow [Method] . . . . . . . . . . . . . . . . . . . . . . 201IProcessAnalyst.UnsubscribePropertyChange [Method]. . . . . . . . . . . . . . . 202IProcessAnalyst.AdminPrivilegeLevel [Property] [Get] . . . . . . . . . . . . . . . . 203IProcessAnalyst.AutoScroll [Property][Get/Set]. . . . . . . . . . . . . . . . . . . . . . 204IProcessAnalyst.BackgroundColor [Property][Get/Set] . . . . . . . . . . . . . . . . 204IProcessAnalyst.CommandSystem [Property][Get]. . . . . . . . . . . . . . . . . . . 205IProcessAnalyst.ContextMenu [Property][Get/Set] . . . . . . . . . . . . . . . . . . . 206IProcessAnalyst.Cursors [Property][Get]. . . . . . . . . . . . . . . . . . . . . . . . . . . 207IProcessAnalyst.DataRequestRate [Property][Get/Set] . . . . . . . . . . . . . . . 207IProcessAnalyst.DisplayRefreshRate [Property][Get/Set] . . . . . . . . . . . . . . 208IProcessAnalyst.Language [Property] [Get/Set] . . . . . . . . . . . . . . . . . . . . . 209IProcessAnalyst.LastSelectedPen [Property][Get] . . . . . . . . . . . . . . . . . . . 210IProcessAnalyst.LockedPens [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . 211IProcessAnalyst.ObjectView [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . 212IProcessAnalyst.NumberofSamples[Property][Get/Set] . . . . . . . . . . . . . . . 212IProcessAnalyst.Panes [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213IProcessAnalyst.PrimaryPath [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . 214IProcessAnalyst.SecondaryPath [Property][Get/Set] . . . . . . . . . . . . . . . . . 215IProcessAnalyst.Toolbars [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . 216IProcessAnalyst.WritePrivilegeLevel [Property][Get]. . . . . . . . . . . . . . . . . . 216IProcessAnalyst.ZoomMode [Property][Get/Set]. . . . . . . . . . . . . . . . . . . . . 217MouseDoubleClick [Event] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218MouseClick [Event] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218PenCreated [Event] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219PenDeleted [Event] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220PenRenamed [Event] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220PenSelectionChanged [Event]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221HorizontalAxisChanged [Event]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221VerticalAxisChanged [Event] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222CursorMoved [Event]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223Error [Event] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223PropertyChanged [Event] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224OVItemAdded [Event] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225OVItemRemoved [Event]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225OVItemSelected [Event] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226

Page 11: Vijeo Citect Process Analyst

Contents ix

OVItemChecked [Event] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226OVColumnAdded [Event] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227OVColumnRemoved [Event] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227CommandExecuted [Event]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228UpdateCommand [Event] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229AlarmType [Enumeration] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229AxisLabelType [Enumeration] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230LineStyle [Enumeration] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231HatchStyle [Enumeration] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231PenNameMode [Enumeration] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232PenType [Enumeration]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232PointType [Enumeration] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232RequestMode [Enumeration]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233ToolbarButtonType [Enumeration]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233LineType [Enumeration] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233ErrorNotifyCode [Enumeration] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234QualityType [Enumeration] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234QualityCompactionType [Enumeration]. . . . . . . . . . . . . . . . . . . . . . . . . . . . 235FileLocation [Enumeration] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235

IToolbar Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235IToolbar.Visible [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236IToolbar.Buttons [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236

IToolbars Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237IToolbars.Count [Property][Get]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237IToolbars.Item [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238IToolbars._NewEnum [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238

IToolbarButton Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239IToolbarButton.CommandId [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . 239

IToolbarButtons Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240IToolbarButtons.Add [Method]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240IToolbarButtons.Remove [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241IToolbarButtons.RemoveAll [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241IToolbarButtons.Count [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242IToolbarButtons.Item [Property][Get]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242IToolbarButtons._NewEnum [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . 243

ITrendCursor Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243ITrendCursor.GetValue [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244ITrendCursor.Delete [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245ITrendCursor.Color [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245ITrendCursor.Width [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . . . 246ITrendCursor.Position [Property][Get/Set]. . . . . . . . . . . . . . . . . . . . . . . . . . 247ITrendCursor.Visible [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . . . 247ITrendCursor.Collection [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . 248ITrendCursor.Name [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . . . 249ITrendCursor.PenLabelVisible [Property][Get/Set] . . . . . . . . . . . . . . . . . . . 250

Page 12: Vijeo Citect Process Analyst

Contentsx

ITrendCursor.PenLabelWidth [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . 251ITrendCursor.PenLabelHeight [Property][Get/Set] . . . . . . . . . . . . . . . . . . . 251ITrendCursor.PenLabelX [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . 252ITrendCursor.PenLabelY [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . 253ITrendCursor.LabelsLocked [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . 254

Chapter 13 Cicode Programming ReferenceAutomation Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255

Handling an Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255Enumerating collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256Implementing a custom command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257Implementing a custom column. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259

Index 265

Page 13: Vijeo Citect Process Analyst

About this Documentation

The information presented here is intended for two types of user, Operators and Users:

Operator - a person who uses the Process Analyst in a runtime environment to monitor plant operations. An Operator might configure the properties of various Process Analyst components during runtime to facilitate their work. An Operator is not expected to possess in-depth technical knowledge about the Process Analyst components. For details about using the Process Analyst as an Operator, see “Process Analyst for Operators”.

User - a person who uses the Process Analyst during design time to engineer a view for an Operator. A User possesses in-depth technical knowledge about Vijeo Citect and Cicode, and understands how these components interact. For details about using the Process Analyst as a User, see “Process Analyst for Users”.

Page 14: Vijeo Citect Process Analyst

2

Page 15: Vijeo Citect Process Analyst

Part 1Process Analyst for Operators

This section contains information for Operators and describes the following:

“The Process Analyst: An Overview”“Using the Main Toolbar”“Understanding Process Analyst Pens”“Interacting with the Process Analyst”“Using the Object View”“Printing and Exporting”“Configuring the Process Analyst”“Operator Command Reference”

Page 16: Vijeo Citect Process Analyst
Page 17: Vijeo Citect Process Analyst

Chapter 1: The Process Analyst: An Overview

The Process Analyst control allows Operators to view trend and/or alarm tag data (both real-time and historical) for comparison and analysis during run time through their existing Vijeo Citect server architecture. Users can configure certain properties of the Process Analyst control during design time.

A typical Process Analyst view might look like the one shown here. Your Process Analyst views will probably look different to this example.

The Process Analyst control interface typically consists of the following components:

1 Main toolbar: Contains commands for performing general operations in the Process Analyst, such as opening views, printing reports, and so on. You can configure this toolbar to contain different items.

2 Pens: A Process Analyst pen represents your trend and/or alarm data. The Process Analyst supports three types of pen: analog pen, digital pen, and alarm pen. Each pen has its own graphical representation. You can configure most pen properties during run time.

3 Panes: Panes are used to group pens visually in the Process Analyst and are stacked vertically on the Process Analyst display. Every pen belongs to a single pane. You can configure chart panes.

4 Chart background (not shown): The panes are drawn over the chart background. Depending on the layout of the pens, the background may be partially visible. You can configure the chart background.

1

2

3

5

6

7 8

9

10

Page 18: Vijeo Citect Process Analyst

2

5 Date/time axis: Located at the top of a pane, the date/time (horizontal) axis displays the date or time (or both) of the data for the primary selected pen within a pane. You can configure the axis.

6 Vertical axis: Analog pens have a vertical axis on the left-hand side of the pane to indicate data values. You can configure this axis.

7 Cursor: A cursor allows an Operator to determine value at a given point in time by dragging the cursor line to the point required. You can configure the cursor.

8 Cursor labels: Display the value where the cursor intersects the trend value line.

9 Navigation toolbar: Contains commands to allow an Operator to travel forward or backward through trends, as well as other navigation-related tasks. You can configure this toolbar to contain different items.

10 Object View: When displayed, the Object View appears under the navigation toolbar and displays information about your Process Analyst pens, such as name, color, scale, and so on. You can configure the Object View.

Page 19: Vijeo Citect Process Analyst

Chapter 2: Using the Main Toolbar

The Process Analyst main toolbar is located above the top pane. The main toolbar contains commands that allow you to perform general operations, such as save and load Process Analyst views, print trend reports, add or remove pens, display or hide cursors and labels, and so on.

Toolbar commands can be customized; for details, see “Configuring Toolbars”.

The table below describes the items that are included on the main toolbar by default.

See Also “Using the Navigation Toolbar” | “Operator Command Reference”

Item DescriptionLoad View. Loads a saved view from file. For details, see “Loading a view”.

Save View. Saves a view to file. For details, see “Saving a view”.

Print. Displays the standard Windows Print dialog box for printing trend reports. For details, see “Printing and Exporting”.Copy to Clipboard. Copies visible pens to the Windows Clipboard. For details, see “Copying data to the Clipboard”.Export to File. Exports visible pens to an Excel-compatible file. For details, see “Copying data to file”.Add Pen. Displays the Add New Pen(s) dialog box for adding a pen. For details, see “Adding Pens”.Remove Pen. Deletes the currently selected pen from the trend display. For details, see “Deleting Pens”.Lock/Unlock Pens. Toggles the locking of pens. For details, see “Locking/Unlocking Pens”.Show/Hide Points. Toggles the display of points representing where sample data was recorded in the archive. For details, see “Pens: An Overview”.Show/Hide Cursors. Toggles the display of cursors. For details, see “Using Cursors”.

Show/Hide Cursor Labels. Toggles the display of cursor labels. For details, see “Using Cursor Labels”.Toggle Object View. Toggles the display of the Object View. For details, see “Using the Object View”.Properties. Displays the Properties dialog box for configuring the Process Analyst control. For details, see “Configuring the Process Analyst”.Help. Displays the Process Analyst online Help.

Page 20: Vijeo Citect Process Analyst

4

Page 21: Vijeo Citect Process Analyst

Chapter 3: Understanding Process AnalystPens

The Process Analyst pens allow you to analyze and compare both real-time and historical data from trend and alarm servers.

See Also “Pens: An Overview” | “Pen Types”

Pens: An OverviewProcess Analyst pens are drawn against time. Each pen has its own colored line (and can contain other graphical elements). Sample markers (or points) are drawn on the line to indicate where data was recorded in the archive. The style of the line indicates the quality of the data; the style of the sample marker indicates the compaction of the sample.

Data Compaction Data compaction is the visual grouping of multiple data points into a single data point when the data in the archive is too dense to be displayed as individual data points for the selected time span.

Data is compacted by grouping raw samples together to form a multiple sample. Sample compaction is indicated on the graph by using different sample markers. For example, in the illustration below, the two sample markers that appear as squares actually represent multiple raw samples. However, because the data points in this view are too dense to display as individual points, the multiple samples appear as one data point.

The following illustration zooms in on the second multiple sample, and shows that what appeared to be a single raw sample actually consists of several raw samples:

The Process Analyst uses the following default point styles for single and multiple samples:

Sample compaction Point typeSingle EllipseMultiple RectangleInterpolated Triangle (see “Interpolated samples”).

Page 22: Vijeo Citect Process Analyst

6

Interpolated samplesNormally samples are only single or multiple. But there is a specific situation in which an interpolated sample is used to correct a graph that only occurs with event trends.

The frequency of the data stored in an event trend can vary dramatically; for example, where several samples are within one display period, followed by no samples for a long time. A multiple sample will be drawn with a value calculated from the samples within the period. But the value after that period will be whatever the last sample in the period was. So an interpolated sample is added at the start of the next display period to correct the graph.

See Also “Interpolation”

Request modesBecause the Process Analyst Control makes requests for a range of data using a display period, Vijeo Citect needs to perform calculations on data if it becomes too dense in order to calculate the value of a multiple sample. The Process Analyst provides the following options for this calculation:

Average - The value will be an average of all the individual samples within the multiple sample, as will the timestamp. This is the default calculation method.

Maximum: The value will be the maximum value out of all the individual samples within the multiple sample. The timestamp will be that of the individual sample that was the maximum. The timestamp will be the average of all the individual samples within the multiple sample.

Minimum: The value will be the minimum value out of all the individual samples within the multiple sample. The timestamp will be that of the individual sample that was the minimum. The timestamp will be the average of all the individual samples within the multiple sample.

Newest: The value will the latest arrived value out of all the individual samples within the multiple sample. The timestamp will be that of the individual sample that was the newest. The timestamp will be the average of all the individual samples within the multiple sample.

Data Quality Process Analyst pens use the same quality system as Vijeo Citect trend and alarm data. There are four data quality states:

Good - Samples were recorded in the trend archive as good.

NA - When Vijeo Citect is unable to obtain a sample or the data retrieved was invalid, an N/A sample will be recorded in the trend archive.

Gated/Disabled - For trends, when the trigger of a trend is off, a value of "Gated" is recorded in the trend archive. For alarms, this data quality state indicates that the alarm has been disabled.

The Process Analyst uses the following default line styles to indicate data quality:

Quality Line styleGood Solid

Page 23: Vijeo Citect Process Analyst

7

Consider the following examples:

The line style indicating the data quality is configurable during run time and design time; for details, see “Configuring pen quality”.

Date/Time (Horizontal) Axis

All Process Analyst pens have a date/time axis, located at the top of the pane.

The date/time axis displays time using the current locale format specified in your computer date/time settings. If the millisecond component is required, it is appended to the end in the format “<xxx>ms.” Since the local time zone is determined from the current computer settings, these settings must be configured accurately.

The date/time axis can also display data using the universal time coordinate (UTC) format. You can switch between local or UTC time as you like (see “Configuring pen axes”). If the current time is 10.00p.m. UTC, in the Sydney (GMT+10) time-zone, local time will be 8.00p.m.

The date/time axis is divided into major and minor time intervals, which change dynamically depending upon the time span. In the illustration above, the major intervals are 1 minute apart, and the minor are 5 seconds apart.

Note the following:

When the axis time span is 1 minute or less, the format of the axis labels includes milliseconds and the date is removed.

When the axis time span is 1 week or above, the time is removed and only the date is displayed.

NA None Gated Dot

Data sample DescriptionThis example shows several single samples. The third sample has a quality of N/A, indicated by the break in the trend line.

Here the quality of the third sample is gated, indicated by the broken line connecting these samples.

With multiple samples, the quality of the last sample in the group determines how the line is drawn. Consider the following examples:

This example shows that the third sample is actually a multiple sample. The quality of the third (multiple) sample and the next sample is N/A, again indicated by the break in the trend line.

Here the quality of the third multiple sample is gated, again indicated by the broken line connecting the samples.

Quality Line style

Page 24: Vijeo Citect Process Analyst

8

By default, the date/time axis displays a time span of 10 minutes; the major intervals represent 5 minutes, and the minor intervals 30 seconds.

Daylight savings (local time)The date/time axis can also accommodate daylight savings transitions. For example, when entering daylight savings, the axis will indicate the transition as 11a.m., 12a.m., 1a.m., 3a.m., 4a.m., 5a.m., if this transition occurred at 2a.m. Likewise, in the out transition, when 1 hour is removed from daylight savings time, the axis will display 11a.m., 12a.m., 1a.m., 2a.m., 2a.m., 3a.m., 4a.m., 5a.m.

Now indicatorThe Now indicator is a small white circle on the date/time axis that indicates the current computer time based on the computer’s time settings.

The position of the Now indicator is refreshed according to the value specified in the Display Refresh Date text box in the Process Analyst Control Properties dialog box.

Note: If you have used the Vijeo Citect trend page feature, note the following: In Vijeo Citect the right-hand side of the screen always represents Now (when looking at real-time data). In the Process Analyst control, “Now” is represented only by the Now indicator, which may be located anywhere on the trend display, even off screen, since it is possible to scroll into the future, or back into the past.

You can scroll and scale the date/time time axis to interact with your Process Analyst pens; for details, see “Interacting with the Process Analyst”. You can also configure the date/time axis to suit your preferences; for details, see “Configuring pen axes”.

Vertical (Value) Axis The vertical (value) axis is located at the left-hand edge of the pane.

Like the date/time axis, the value axis consists of major and minor intervals, but they represent value intervals rather than date and time. The intervals are calculated automatically by the Process Analyst.

The value axis is shown only for analog pens; the axis displayed reflects the values for the primary selected pen.

By default the vertical axis will use the engineering scale from the tag of the selected pen. The vertical axis also supports autoscaling. When autoscaling is enabled, the vertical axis automatically adjusts its limits to accommodate new samples as they are added to each individual pen.

Page 25: Vijeo Citect Process Analyst

9

In this example, there are two panes, each of which has a differently scaled vertical axis.

You can scroll and scale the vertical axis; for details, see “Scrolling the Chart” and “Scaling the Chart”. You can also configure the appearance of the vertical axis; for details, see “Configuring pen axes”.

Gridlines The Process Analyst pens use gridlines as a visual guide to help an Operator determine the value of trends. Major gridlines are solid lines; minor gridlines are broken lines. Analog pens have vertical and horizontal gridlines; alarm and digital pens only have vertical gridlines. The display of gridlines changes dynamically according to the selected time span.

You can configure vertical gridlines at run time for all pen types; you can configure horizontal gridlines for analog pens. For details, see “Configuring pen gridlines”.

Pen Layout You can are display pens in the Process Analyst by stacking or overlaying.

In stacked mode, a user-specified amount of vertical real-estate is allocated to the pen, and with this, stacked pens are laid out under each other on the pane, starting from the top of the pane under the date/time axis, like this:

Here, three pens (one analog and two digital) are stacked under each other. Stacking applies to all types of pens.

In unstacked mode, pens are drawn on top of each other. The order in which the pens were added to the pane governs the drawing order: the last

Page 26: Vijeo Citect Process Analyst

10

pen added is the topmost pen drawn. When a pen is selected, it is brought to the front of any other pens displayed

Here, two analog pens are overlaid. You can also overlay digital and alarm pens.

You can have any mix of stacked and unstacked pens on a pane.

Pen TypesThe Process Analyst control supports three types of pen: analog pens, digital pens, and alarm pens. Analog and digital pens are associated with trend tags; alarm pens are associated with alarm tags.

Analog pens The Process Analyst control typically uses analog pens to represent nonbinary data. Only analog pens have a value (vertical) axis, which the data is plotted against, as shown here:

InterpolationAnalog pens have two types of interpolation that allow you to specify how to connect data samples on a trend line: straight and stepped:

Straight - a line is drawn directly between the points like this:

Stepped - the lines drawn always maintain the value of the previous sample until a sample with a different value arrives, in which case a vertical line is drawn:

Page 27: Vijeo Citect Process Analyst

11

The Process Analyst allows analog pens to be configured at run time and design time. For details, see “Configuring Pens”.

See Also “Interpolated samples”

Digital pens The Process Analyst control typically uses digital pens to represent binary data. Values on the pen are clamped to a range of 0 to 1. Any value equal to or greater than 0.5 is clamped to 1; all other values are clamped to 0. A fill color is used to indicate where the data is 1, as shown here:

By default, the layout of digital pens is stacked. For details, see “Pen Layout”.

The Process Analyst allows the appearance of digital pens to be configured during run time and design time. You can configure the trend line color, width, and fill color. For details, see “Configuring pen appearance”.

Alarm pens The Process Analyst uses alarm pens to graphically display the history of a Vijeo Citect alarm over time. The Process Analyst supports seven different types of alarm pens.

The alarm’s on/off transition state changes and acknowledgements are all represented graphically in the alarm pen display. To achieve this, the alarm pen consists of three elements: the alarm state, on/off, and acknowledgement.

The diagram below illustrates how an alarm pen displays the information of an alarm tag:

1 The alarm is turned on in its initial state and is unacknowledged.

2 The alarm changes to a different state, but is still unacknowledged.

3 The alarm is acknowledged.

4 The alarm is turned off.

1

2

3

4

on/off

Page 28: Vijeo Citect Process Analyst

12

Like other types of pen, alarm pens can represent variations in data quality and data compaction.

The Process Analyst allows alarm pens to be configured at run time and design time. For details, see “Configuring alarm pens”.

On/offWhen an alarm is off, the alarm pen will draw the line low. When the alarm transitions to on, the line is drawn high.

Alarm statesWhen an alarm transitions to on, it enters a particular state. The states of an alarm are dictated by the type of Vijeo Citect alarm tag. The Process Analyst supports all Vijeo Citect standard alarm types.

Note: For multi-digital alarms, the state descriptions are retrieved from the Vijeo Citect alarm record.

The Process Analyst uses a different color, shading style, and description to represent each alarm state; these properties are configurable. For details, see “Configuring alarm pens”.

Alarm acknowledgmentProcess Analyst alarm pens can represent when alarms are acknowledged.

The Process Analyst indicates the period for which the alarm has been left unacknowledged by drawing a line above the trend line. A new unacknowledged period begins whenever the alarm transitions to an on state.

The unacknowledged period ends when an Operator acknowledges an alarm. The Process Analyst identifies this by placing a sample marker to indicate the exact time the alarm was acknowledged, and by drawing an unacknowledged line down to that sample marker, as shown here:

acknowledgements

unacknowledged periods

acknowledgement marker

Page 29: Vijeo Citect Process Analyst

13

Alarm typesThe Process Analyst uses the following types of alarm pen:

For multiple samples in an alarm, the alarm state value is the last recorded value in the group.

Alarm type Alarm pen representationDigital

Analog

Advanced

Argyle Analog

Multi-digital

Timestamped

Timestamped analog

Timestamped digital

Page 30: Vijeo Citect Process Analyst

14

Page 31: Vijeo Citect Process Analyst

Chapter 4: Interacting with the ProcessAnalyst

This section discusses how to interact with the Process Analyst.

See Also “Pen Selection”“Locking/Unlocking Pens”“Scrolling the Chart”“Scaling the Chart”“Using the Navigation Toolbar”“Using Cursors”“Using Cursor Labels”“Using the Right-click Menu”“Understanding Mouse Pointers”“Adding and Deleting Pens”“Viewing Pen Details”

Pen SelectionEach pane on the Process Analyst can have one selected pen. The axes that are displayed on a pane are that of the selected pen. The last pen selected across all panes is referred to as the primary selected pen.

You can select a Process Analyst pen in several ways:

By clicking on the pen’s graphical elements (i.e., the pen line).

If the pens are stacked, by clicking the background under the pen line.

By selecting the pen in the Object View.

The selection of a pen is indicated by a subtle halo effect surrounding the pen line. In the example shown here, the top (green) pen is selected, indicated by the halo surrounding the pen:

Page 32: Vijeo Citect Process Analyst

16

Note that the halo does not appear if there is only one pen on the pane. Selecting a pen on a pane also causes the same pen to be highlighted in the Object View. Selecting a pen causes that pen to be drawn in front of other pens on the pane.

Locking/Unlocking PensBy default, the Process Analyst locks together the time span and position in time (horizontal axis) of all pens. However, you can unlock the pens, allowing the pens to be displayed across different positions in time and/or time spans.

For example, you could unlock pens to compare a previous month’s data for a tag with the data for this month. You would do this by adding two pens to a pane that represent the same tag, then unlocking the pens, and adjusting the time positions for each pen as required.

To control pen locking and unlocking, you use the Lock/Unlock Pens button on the main toolbar.

This option is also available on the right-click (context) menu.

Locking and unlocking has the following behavior:

When pens are locked, all time-related operations are applied to all pens.

When pens are unlocked, all time-related operations are applied to the primary selected pen.

Synchronization applies to all pens regardless of their being locked or unlocked.

When transitioning from locked to unlocked, the time span and position in time of all pens are synchronized to match that of the primary selected pen.

Scrolling the ChartThe Process Analyst allows you to scroll through data in both the horizontal and vertical directions by dragging the mouse or spinning the mouse wheel.

To scroll by dragging:

1 Click and hold down the left mouse button on the pen (or background) that you want to scroll.

2 Drag the mouse in the direction you want to scroll:

Horizontal axis: drag right to move backward in time, drag left to move forward.

Vertical axis: drag up to scroll down the axis, drag down to scroll up the axis.

3 Release the left mouse button to complete the scrolling.

To scroll by using the mouse wheel:

1 Click the pen or background that you want to scroll.

2 Spin the mouse wheel in the direction you want to scroll:

Page 33: Vijeo Citect Process Analyst

17

Horizontal axis: spin up to move backward, spin down to move forward.

Vertical axis: spin up to scroll up the axis, spin down to scroll down.

You can disable scrolling in the horizontal direction, the vertical direction, or both by using the Property dialog box or the right-click (context) menu; see “Configuring pen axes” and “Using the Right-click Menu” for details.

The Process Analyst indicates whether scrolling is enabled or disabled by displaying a different-shaped mouse pointer; for details, see “Understanding Mouse Pointers”.

Scaling the ChartThe Process Analyst allows you to change the scale of the data in both the horizontal and vertical direction by dragging the mouse or spinning the mouse wheel.

To scale the data by dragging:

1 Click and hold down the left mouse button on the axis that you want to scale.

2 Drag the mouse in the direction you want to scale:

Horizontal axis: drag left to expand the scale, drag right to shrink.

Vertical axis: drag up to expand the scale, drag down to shrink.

3 Release the left mouse button to complete the scaling.

To scale by using the mouse wheel:

1 Click the axis that you want to scale.

2 Spin the mouse wheel in the direction you want to scale:

Horizontal axis: spin up to shrink the axis, spin down to expand.

Vertical axis: spin up to expand the axis, spin down to shrink.

You can disable scrolling in the horizontal direction, the vertical direction, or both by using the Property dialog box or the right-click (context) menu; see “Configuring pen axes” and “Using the Right-click Menu” for details.

The Process Analyst indicates whether scaling is enabled or disabled by displaying a different-shaped mouse pointer; for details, see “Understanding Mouse Pointers”.

Using the Navigation ToolbarUsing the navigation toolbar you can:

Specify a start time and end time.

Select predefined time spans.

Lock time spans on the display.

Navigate backward or forward through your data.

Synchronize all pens to “Now.”

Page 34: Vijeo Citect Process Analyst

18

Toggle autoscrolling of the display.

Zoom in on or out of data.

Undo the last zoom operation.

Toggle between Zoom mode and normal mode.

Set nonstandard time spans.

Edit the vertical (value) scale.

Specifying a start time and end time

You can specify a start time and an end time for the trend display by using the date/time pickers. The start time picker is located on the left-hand side of the navigation toolbar, the end time picker on the right.

The date/time picker formats the date and time using the settings obtained from your computer for the currently logged in user. The date/time picker displays time in 24-hour format (dd/mm/yyyy hh mm:ss nnn) where:

dd represents days

mm represents months

yyyy represents years

hh represents hours

mm represents minutes

ss represents seconds

nnn represents milliseconds (added automatically to the time)

To change the date or time in the date/time picker:

1 Click the element of the date or time you want to change in the start time picker or the end time picker.

2 Do either of the following:

Type in a time explicitly.

Press the Up arrow key or Down arrow key to increment or decrement the value respectively.

Note: You can use the Left arrow and Right arrow keys to move between time elements.

Working with Daylight SavingsTo indicate whether the time in the time picker control is Standard time or Daylight Savings time, the clock to the left of the control has a shaded segment if the time is in a Daylight Savings period. When in Standard time, the clock does not have a shaded segment.

For example, this icon appears when the time picker’s value is within the local Daylight Savings period:

Page 35: Vijeo Citect Process Analyst

19

This icon appears when the time picker’s value is within the local Standard time period:

If the Daylight Savings transition involves duplicate hours, you can use the spin controls (or Up and Down arrow keys) to select the hour you want.

Note: In order for the Process Analyst to be able to indicate that Daylight Savings is in effect, the Automatically adjust clock for daylight saving changes option on the Date and Time Properties dialog box must be enabled, as indicated below:

See Also “Daylight savings (local time)”

Shifting and fitting time unitsYou can manipulate the start time and end time by using special keyboard shortcuts. Using these shortcuts, you can do the following:

Shift by unit

Fit to unit

Shift by unit Shifting date or time by unit allows you to change the opposite date/time element to the one selected by the corresponding date or time component. For example, if you shift by unit the month time element in the start time, the month time element in the end time increments by one month exactly, including days, minutes, and seconds. This also works for months that have different end days.

To shift by unit:

1 Press and hold down the Shift key.

Page 36: Vijeo Citect Process Analyst

20

2 Click a date or time element in the date/time picker. The opposite time picker changes by the base time amount of the selected time element.

Fit to unit Fitting date or time to unit allows you to synchronize the selected time element to the zero position of that time element in the start time and end time. For example, an Operator clicks on the hh time element of the Start picker, which shows 19:30:05.123. After Ctrl + click, the Start hour time element shows 19:00:00.000, and the End time element shows 20:00:00.000. Now the time span represents exactly one hour, synchronized on the hour.

To fit to unit:

1 Press and hold the Ctrl key.

2 Click a date or time element in the date/time picker. Both the start time and end time element are synchronized to zero based on the date/time element selected.

About time spans The time span of the trend display is the difference between the start time and the end time. The start time appears on the left-hand side of the trend display, the end time on the right. The Span Picker (shown below) indicates the current span being used; it also contains commonly used predefined time spans. Selecting a time span adjusts the start time, leaving the end time as-is.

See Also “Span Lock”

Span Lock When the time span is locked and the start time and/or end time picker changed, the current time span is maintained. If the time span is unlocked, the time span is not maintained when any of the time pickers are changed.

By default, the span is locked. You can toggle span locking on or off by using the Span Lock button.

See Also “About time spans”

Navigating time The navigation controls allow an Operator to navigate backwards or forwards through time. The amount of time moved depends upon the time currently selected in the Span Picker. For example, if 10 minutes is selected in the Span Picker and Back One Span is clicked, the display moves back 10 minutes into the pen’s history.

The following navigation controls are available:

Navigation control DescriptionBack One Span - moves back one time span.

Back Half a Span - moves back half a time span.

Forward Half a Span - moves forward half a time span.

Page 37: Vijeo Citect Process Analyst

21

Synchronize to Now The Synchronize to Now command synchronizes all pens such that the date/time reflects “Now,” which is positioned on the right-hand edge of the screen. “Now” is calculated using the current system time.

The Synchronize to Command is also available from the right-click (context) menu.

See Also “Now indicator”

Toggle Autoscrolling When Autoscroll is turned on, as time passes the position in time of all pens moves by the same amount to keep pace; by default, the display is updated every second. The refresh rate of the display can be controlled by using the Display Refresh Rate property.

When Autoscroll is turned off, as time passes the position in time of all pens remain fixed.

By default, Autoscroll is on. You can toggle Autoscrolling on or off by using the Toggle Autoscrolling button.

Using the navigation controls, including the Time Span picker, causes Autoscrolling to be turned off

The Autoscroll command is also available from the right-click (context) menu.

Zoom In/Zoom Out Use the Zoom In 50% and Zoom Out 50% commands like this:

Note: The midpoint of each axis is maintained during these zoom operations.

Undo Last Zoom Undo Last Zoom allows you to undo the last zoom operation, returning the display to the previous state.

Toggle Box Zoom The Toggle Box Zoom button switches between Box Zoom mode and normal interaction mode. In Box Zoom mode, you can define an area of the chart to zoom in on for more detail.

To use Box Zoom:

1 Select the pen to zoom in on.

Forward One Span - moves forward one time span.Navigation control Description

Command Icon DescriptionZoom In 50% Zooms in on the displayed data, halving the span of both axes.

Zoom Out 50% Zooms out of the displayed data, doubling the span of both axes.

Page 38: Vijeo Citect Process Analyst

22

2 Click Toggle Box Zoom on the navigation toolbar.

The cursor changes to a cross.

3 Click and drag the bounding box to enclose the part of the data you want to zoom in on, as shown below.

4 Release the mouse button. The display changes to a close-up of the selected data.

5 To exit Zoom mode, click the Toggle Box Zoom button.

Depending on whether the pens are locked or unlocked, the Toggle Box Zoom commands works differently:

For locked pens, the zoom is applied to all pens in the horizontal date/time axes. If an analog pen is being zoomed, the zoom is applied to the vertical (value) axis of all non-autoscaled analog pens in the pane in which the zoom box was initiated.

For unlocked pens, the zoom is applied only to the selected pen in both the date/time and vertical (value) axes. The value axis is only affected if autoscale is off.

Note: Vertical zoom is only applied to analog pens, since it has no effect with alarm or digital pens.

Edit Span Click the Edit Span button to display the Edit Span dialog box, which allows you to set non-standard time spans.

To edit a time span:

1 Click Edit Span on the navigation toolbar. The Edit Span dialog box appears.

Page 39: Vijeo Citect Process Analyst

23

The fields provided are: w = weeks, d = days, hr = hours, min = minutes, sec = seconds, and ms = milliseconds.

2 Enter a New span. Click the element of the time span that you want to change, then either type in a new value, or use the Up arrow or Down arrow to specify a new value. You can use the Right arrow and the Left arrow key to move between the time elements.

3 Click OK. The new time span is applied.

Edit Vertical Scale The Process Analyst allows Operators to edit the vertical scale of a selected analog pen to display more appropriate values, if required. The vertical scale for digital or alarm pens cannot be edited.

To edit the vertical scale:

1 Click Edit Vertical Scale on the navigation toolbar. The Edit Vertical Scale dialog box appears.

2 Click the Limits or Engineering Scale option. The Limits values displayed are the current values used by the vertical scale. The Engineering Scale values are obtained from the trend tag.

3 Enter a new Minimum value and Maximum value, and then click OK.

Reset to Default Span Use the Reset to Default Span button to reset the time span to the default time span of the primary selected pen. The default span can be configured by using the Property dialog box. For details, see “Configuring pen axes”.

Page 40: Vijeo Citect Process Analyst

24

See Also “Configuring Defaults” | “Pen Selection”

Using CursorsA cursor enables an Operator to determine the value of a pen at a given point in time by dragging the cursor to the specific point on the pen line. A cursor label is used to display the value.

An Operator can define many of the properties of cursors and cursor labels. For details, see “Configuring Cursors”.

In this example the cursor intersects three pens; the cursor labels (the yellow rectangles) display the corresponding pen values.

To move a cursor, drag the cursor line left or right. As the cursor moves, the cursor labels move with the cursor and are updated continuously, reflecting the position of the cursor.

Note: The cursor extends across all configured panes.

A line connects the cursor label to the associated pen line. The line has three main states:

State Style ExampleIntersection within pen data Line

Intersection before or after pen data

Line with indicator

Page 41: Vijeo Citect Process Analyst

25

To show/hide a cursor:

Click Show/Hide Cursor on the main toolbar. You can display additional cursors by using the Properties dialog box.

You can display as many cursors as you want. To add a cursor, right-click the root item (Process Analyst View) in the property tree in the Properties dialog box, and choose Add Cursor.

Using Cursor LabelsEach cursor has one cursor label for each pen displayed. The cursor label displays the value of the pen at the point where the cursor intersects with the pen data.

To display cursor labels:

Click Show/Hide Cursor Labels on the main toolbar.

This table summarizes how to use cursor labels:

The cursor label displays the following information:

The fields are displayed in the cursor label using the order defined above using the format specified for the vertical axis. For example, if your vertical axis format is “km/h”, the label reads “<value> km/h”.

No intersection and no data Invisible lineState Style Example

Task DescriptionMove a cursor label Click the cursor label and drag the label to a new location.Change the size of cursor labels Click the cursor label you want to resize. Place the mouse cursor on one

of the sizing boxes, and drag the label to the new size. If you drag the corner of the label, the label text resizes to an optimal size for the label.

Lock or unlock the cursor labels Click the Lock/Unlock Cursor Labels. When on, this command causes cursor labels to be “frozen” in the position.

Cursor field Applies to DescriptionPen Name All Pen types Displays the non-unique Process Analyst pen nameValue/Quality All Pen types Displays the value of the pen at the point the cursor intersects with the

pen dataDate-Time Stamp All Pen types Displays the date/time stamp at the point the cursor intersects with the

date/time axis.Alarm Sample Comment

Alarms Comment bound to an alarm sample.

Page 42: Vijeo Citect Process Analyst

26

The label displays the following values when the quality of the data is not good:

The label value can also contain a directional indicator that functions as follows:

Alarm label valueThe alarm label value has the following format:

state [acknowledgement]

where state refers to the alarm state at the point of intersection (see “Alarm pens”) and acknowledgement refers to the acknowledged state of the alarm at the point of intersection; i.e., Acknowledged or Unacknowledged.

Using the Right-click MenuUse the right-click (context) menu to quickly access frequently used commands. This menu is context-sensitive, providing relevant commands for different regions of the display. The right-click menu appears when you click any of the following regions:

Horizontal axis

Vertical axis

Background

Pen

The Properties command is always available on the right-click menu; this command displays the Properties dialog box. For details, see “Using the Process Analyst Properties Dialog Box”.

Understanding Mouse PointersWhen using the Process Analyst, the mouse pointer changes shape to indicate the operations you can perform at that time.

Cursor value DescriptionNA At the point of intersection the pen has no available data for display.Gated At the point of intersection the pen’s data has been gated.Disabled At the point of intersection the alarm tag of the pen was disabled.

Cursor value Description<value> -> The cursor is to the left of the first available sample for this pen.<- <value> The cursor is to the right of the last available sample for this pen.

Mouse pointer Region DescriptionPen line The mouse pointer looks like this when the pointer is on a pen. Clicking the

mouse at this point selects the pen.

Pen line/pen background

The mouse pointer looks like this when the mouse is over a pen’s background and both horizontal and vertical scrolling are enabled. Clicking and dragging at this point results in the free movement of the pen. Scrolling the mouse wheel results in horizontal-only movement.

Page 43: Vijeo Citect Process Analyst

27

Adding and Deleting PensPens can be added to or removed from any pane. The Process Analyst allows Operators to search the trend tags and alarm tags that are defined on their trend and alarm servers and add pens that represent these tags to the current trend display.

Adding Pens You use the Add New Pens dialog box to add a new pen to your trend display. To display the Add Pens dialog box, click Add Pens on the main toolbar.

To add a new pen:

1 Select the Type of server you want to search: Trends or Alarms.

2 Type in a Tag Filter and/or Cluster Filter to apply to the search (optional).

If you leave either of the Filter text boxes blank, all tags or clusters of the selected server type will be retrieved. The filters have basic wildcard and Boolean search functionality. You can use the keywords AND, OR and NOT with wildcard strings, as well as group Boolean terms using parentheses. For example, entering 'L*' in the Tag Filter returns all tags beginning with the letter “L” in all clusters. Entering ‘L* OR H*’ will find all tags beginning with “L” or “H”. More complex examples include ‘L* OR (H* AND NOT *G)’. This would return all tags that start with “L” or any that start with “H”, but do not end in “G”.

3 Click Search. The search results are returned in the Search list. The results are not sorted: the tags appear in the order they were configured in Vijeo Citect.

The cluster associated with each tag is also displayed. The Process Analyst displays only the tags in clusters that this client has access to. In a system with more than one cluster, if a tag is not configured with a cluster, it is listed once for each cluster.

The Search Result list displays a maximum of 100 entries at a time. If your search returns more than 100 results, use the First, Prev, Next, and Last buttons to navigate your search results.

Horizontal axis

The mouse pointer looks like this when the pointer is on the horizontal axis and horizontal scaling is enabled. Clicking and dragging (or scrolling the mouse wheel) will result in the axis being scaled.

Pen line/pen background

The mouse pointer looks like this when the pointer is on the horizontal axis and only horizontal scrolling is enabled. Clicking and dragging (or scrolling the mouse wheel) will result in the axis being scrolled.

Vertical axis The mouse pointer looks like this when the pointer is on the vertical axis and vertical scaling is enabled. Clicking and dragging (or scrolling the mouse wheel) will result in the axis being scaled.

Vertical axis The mouse pointer looks like this when the pointer is on the vertical axis and only vertical scrolling is enabled. Clicking and dragging (or scrolling the mouse wheel) will result in the axis being scrolled.

Box Zoom mode

The mouse pointer looks like this when Box Zoom mode is enabled. See “Toggle Box Zoom”.

Mouse pointer Region Description

Page 44: Vijeo Citect Process Analyst

28

4 Select one or more tags from the Search Results list. You can use the Ctrl and/or Shift keys to select multiple tags.

5 Select the destination pens to Add Add pens to. Pens can be added to any existing pane, or to a new pane.

6 Select a Pen Type. A trend tag can be represented by an analog or digital pen. An alarm tag can be represented by an alarm pen only.

7 Select how to resolve the pen name:

Comment - applies the tag comment as the pen name. Note that if the tag does not have a comment specified, a name is automatically generated.

Tag - applies the tag name as the pen name.

Auto -applies an automatically generated name to the pen using the format Pen<X> where X is an incremented number, starting with the first available number.

8 Click Add. This moves all the selected items in the Search Results list into the Selected Items list. The Selected Items list contains all the tags that will be added as pens to the Process Analyst. You can perform multiple searches to add tags into the Selected Items list.

Note: To remove a tag from the Selected Items list, highlight the item you want to move, and then click Remove.

9 To view details about a selected tag, click Show Detail. The Pen Detail box appears, showing defined information for the selected tag.

10 Click OK. Your selected tags appear on the trend display as pens.

See Also “Deleting Pens”

Deleting Pens Operators can delete pens from the trend display at any time.

Note: Deleting a pen is different than hiding the pen from display by using the Visibility check box in the Object View. For details, see “Using Object View”.

To remove a pen:

1 Select the pen you want to delete.

2 Click Remove Pen in the main toolbar. The pen is deleted from the display.

See Also “Adding Pens”

Viewing Pen DetailsYou can use the Pen Details box to view tag properties information for a selected pen. You access this box from the Add Pens dialog box.

To view pen details:

1 Click Add Pens. The Add Pens dialog box appears.

2 Navigate to the tag you want to view details for. For details on searching tags, see “Adding Pens”.

Page 45: Vijeo Citect Process Analyst

29

3 Select the tag in the Selected Items list, and then click Show Detail. The Pen Details dialog box appears, showing the system information for the selected tag.

Page 46: Vijeo Citect Process Analyst

30

Page 47: Vijeo Citect Process Analyst

Chapter 5: Using the Object View

The Object View provides a structured view of the pens displayed in the Process Analyst. You use the Object View to view information about the pens on the chart, along with information about associated tags.

See Also “Object View Basics” | “Using Object View” | “Configuring the Object View”

Object View BasicsThe Object View displays a hierarchically arranged view of the panes and pens on the chart, in the Object Tree column. The Object View lists information about each pen. When displayed, the Object View is located under the navigation toolbar.

The Object View (as it appears in a default configuration) is shown below; your Object View might look different depending on how it has been customized in your system.

By default, all items in the Object View are expanded (that is, all pens for all panes are shown). Clicking a pen in the Object View selects that pen. There is always one pen selected in each pane; in the example above, the primary selected pen is highlighted in blue; all other selected pens are highlighted in gray.

See Also “Pen Selection”

The Object View displays the following items:

The check box controls whether the pen is visible on the chart. The gradient-filled color box to the left of the pen name indicates the pen’s line color as it appears on the chart.

Icon ObjectAnalog pen

Digital pen

Alarm pen

Pane

Page 48: Vijeo Citect Process Analyst

32

The Object View always mirrors the items that are displayed on a chart. For example, if you add a pane to the chart, a new pane is added simultaneously to the Object View. Similarly, if a new pen is added to or deleted from a pane, or if a pen’s properties are changed, these changes are reflected in the Object View.

The table below shows the predefined default columns, which are displayed in addition to the object tree. These columns are arranged by default from left to right in the Object View.

You can configure the Object View to display other predefined columns that show different information about your pens; for details, see “Configuring the Object View”.

Using Object ViewThe table describes how to perform basic functions with Object View.

See Also “Configuring the Object View”

Column DescriptionZero Scale Vertical axis start position of the pen.Full Scale Vertical axis end position of the pen.Engineering Units Engineering units associated with the pen.

Task DescriptionToggle the display of Object View on or off Click Toggle Object View on the main toolbar.Change the size of Object View Drag the splitter bar that is located between the chart area and

the Object View up or down.Expand or collapse a tree node in the Object Tree column

Either click the (+) box to expand the node or the (-) box to collapse the node; or double-click the item to toggle between expanded and collapsed states. This does not affect the display of panes in the chart.

Select a pen Click the pen in the Object View table. Selecting a pen in the Object View gives the focus in the chart to the selected pen, and vice versa. You can only select one pen per pane at a time (you cannot select a pane).

Display or hide a pen Click to clear the check box to hide the pen; click the check box again to display the pen.

Dynamically change the width of a column during display

Drag the column divider left or right.Note: You can quickly resize a column to fit the size of the widest item in a column by double-clicking a column separator. To resize the column back to its original size, double-click the separator again. You can also configure the width of a column via the Process Analyst Properties dialog; for details, see “Configuring the Object View”.

Page 49: Vijeo Citect Process Analyst

Chapter 6: Printing and Exporting

You can print detailed reports of your Process Analyst trends for management reports and other purposes. You can configure Process Analyst reports to include other print options designed to maximize the business value of your reports. You can also export pen data to the Windows Clipboard or to Microsoft Excel.

Note: For details about general print options in Windows, refer to your Windows documentation.

See Also “About Process Analyst Reports” | “Configuring Process Analyst Report Options” | “Exporting Pen Data”

About Process Analyst ReportsProcess Analyst reports are formatted automatically by the system to make optimal use of the paper size and orientation. For example, if the page is small and the report contains a lot of information, the reports will use a smaller font to try to fit the information to the page. For larger pages, a larger font will be used. Reports use an Arial font between 8-14 points.

Page 50: Vijeo Citect Process Analyst

34

A typical Process Analysis report looks like this:

This example shows a report of a chart titled Citect Process Analyst; the chart has only one pane, which contains three analog pens. The topmost pen in the report legend is highlighted, indicating that this pen is selected; consequently, the axes shown in the report are associated with this pen. You can see that this pen is selected in the chart by the “halo” effect surrounding the pen. The color boxes on the left-hand side of the legend help you to distinguish between the pens.

To print a report:

Click Print. The Print dialog box appears. Click the Print button, or choose Print from the right-click (context) menu.

Configuring Process Analyst Report OptionsYou can configure Process Analyst reports to contain such things as specific items on a report legend (pen names, durations, engineering units, for example). You can also include header information and page numbers.

You use the Print dialog box to configure Process Analyst reports. To display the Print dialog box, click Print on the main toolbar. After configuring your reports, click Print on the General panel of the Print dialog box to print your report.

See Also “Setting up report legends” | “Setting up report options”

Page 51: Vijeo Citect Process Analyst

35

Setting up report legends

You can configure your reports to include report legends. The information in the report legend is derived from the information properties of the underlying tag that is associated with a pen. If there are no information properties defined for a tag, this information isn’t available for a legend.

You set up your report legends by using the Legend panel of the Print dialog box.

To set up a report legend:

1 In the Print dialog box, click the Legend tab. The Legend panel appears.

2 The panel shows, by default, the Pen Options, Statistical Analysis Options, and Cursors lists (if there is a cursor currently displayed on the chart). The options available to you might differ from the ones shown here.

3 Select the check box of the Pen Options you want to include in your report. For details about these options, see “Configuring the Object View”.

4 Select the Statistical Analysis Options you want to include. Note that this section is available only if the chart contains at least one analog or digital pen.

Minimum - causes the minimum value from cache to be returned. Note that this value might not be a real logged sample if the sample found is a multiple calculated sample.

Page 52: Vijeo Citect Process Analyst

36

Maximum - causes the maximum value from cache to be returned. Note that this value might not be a real logged sample if the sample found is a multiple calculated sample.

Average - uses time-weighted averaging to determine the average for both stepped and interpolated lines. This means that if a trend stays at a value of 10 for 1 hour and then spikes quickly at a value of 50 for a minute, the average will not be significantly affected.

5 Select the Cursors you want to include.

6 If you want to include a report legend, make sure the Include Legend check box is selected.

7 Click Apply.

Setting up report options

You can configure your reports to include a report header, which can include a report title and comment. For multiple-page reports, you can include page numbers, which appear at the bottom of each report page.

You set up your report options by using the Report panel of the Print dialog box.

To set up report options:

1 In the Print dialog box, click the Report tab. The Report panel appears.

2 In the Header Information area, type a Title for the report. If necessary, include a Comment. Comments are printed under the report title on each report page.

Page 53: Vijeo Citect Process Analyst

37

3 To include a header, make sure the Include Header check box is selected.

4 To include page numbering, make sure the Include Page Numbers check box is selected.

5 Click Apply.

Exporting Pen DataYou can export Process Analyst data for pens that are visible to either the Windows Clipboard (by using the Copy to Clipboard command) or to an Microsoft Excel-compatible file (Copy to File).

When you export data, it is exported using a standard format of columns that represent time, milliseconds, and then a column per pen, as shown here:

Export functionality doesn’t simply return the sample markers displayed on the graph. Instead, it exports an interpolated value per display period from the start time to the end time of the pen. The display period can be calculated by dividing the time span of the pen by the “IProcessAnalyst.NumberofSamples[Property][Get/Set]” property.

Before exporting the data, the Process Analyst sorts all the timestamps for all pens from the earliest to the latest sample. When the pens are unlocked and have different time spans, the data for each pen might have different timestamps. As each entry is added to a row in the table, the value of the pen at that particular timestamp is exported. If a pen does not have a sample for that timestamp, the column for that pen is left blank.

An export will also write values of NA, GATED and all alarm states as localized text when required.

Pen columns use the format <pane>-<pen> where pane is the name of the pane that contains the pen, and pen is the name of the pen.

See Also “Copying data to the Clipboard” | “Copying data to file”

Copying data to the Clipboard

Copying pen data to the Clipboard allows you to paste the data into another application, such as an Excel spreadsheet.

To copy data to the Clipboard:

1 Select the pen(s) you want to copy data for.

2 Click Copy to Clipboard, or select Copy from the right-click (context) menu.

Copying data to file Copying pen data to Microsoft Excel allows you to manipulate the data using spreadsheet application capabilities.

Notes

Time Milliseconds Pane1-Pen1 Pane1-Pen2 Pane1-Pen315/06/2004 01:17:25 100 NA 10 Off15/06/2004 01:17:26 100 1 20 Low [Unacknowledged]15/06/2004 01:17:27 100 Low [Acknowledged]15/06/2004 01:17:28 100 3 25 Low [Acknowledged]

Page 54: Vijeo Citect Process Analyst

38

The Time column is an encoded (OLEDATE) double value, which holds the date and time in seconds in local time. When exporting pen data to Excel, you should change the format of the Time column to dd/mm/yyyy hh:mm:ss so that the time is displayed correctly. Because the OLEDATE data type excludes milliseconds, a separate column is provided, which exports the millisecond component for each timestamp.

The results exported are in Unicode format. You should use Excel 2000 and later, which support this format.

To copy data to file:

1 Select the pen(s) you want to copy data for.

2 Click Copy to File. The Save As dialog box appears.

3 Enter a filename and click Save. The data is exported in a delimited format.

4 Open the file you just created, and complete the Text Import Wizard.

Page 55: Vijeo Citect Process Analyst

Chapter 7: Configuring the Process Analyst

Many of the Process Analyst control’s properties can be configured at run time to allow an Operator to customize the control to suit their working preferences. To configure the Process Analyst, you use the Properties dialog box.

See Also “Using the Process Analyst Properties Dialog Box”“Configuring Chart-wide Properties”“Configuring Chart Panes”“Configuring Pens”“Configuring Cursors”“Configuring Defaults”“Configuring Toolbars”“Configuring the Object View”“Working with Views”

Using the Process Analyst Properties Dialog BoxYou use the Process Analyst Properties dialog box to configure Process Analyst views. You can also configure chart-wide properties.

The Properties dialog box has three tabs, “Main page”, “Toolbars”, and “Object View”.

Main page You use the Main page of the Properties dialog box to configure general properties and access the server path properties. The Main page looks like this:

The list on the left-hand side contains the property tree, a hierarchical list of Process Analyst interface components. Selecting an item displays the property

Page 56: Vijeo Citect Process Analyst

40

controls for that component on the right. The pens in the property tree indicate the information that the pen is trending.

Using the property tree right-click menuRight-clicking an item in the property tree displays the shortcut menu for that item, as shown below.

The tasks you can perform vary depending on your privilege level: if you don’t have the required privilege at run time to perform an action, that control is disabled/removed. For example, the right-click menu removes the Add Pen option at run time if you don’t have the privilege to add a pen. Commands that are unavailable appear “grayed-out.” The right-click menu contains the following options:

Use the Main page for the following:

“Configuring Chart-wide Properties”

“Configuring Chart Panes”

“Configuring Pens”

“Configuring Cursors”

“Configuring Defaults”

Toolbars You use the Toolbars page to configure the main toolbar and navigation toolbar. Operators and Users can configure the toolbars at run time and design time. Use the Toolbars page to configure the toolbars; for details, see “Configuring Toolbars”.

Object View You use the Object View page to configure the Object View. Operators and Users can select (at run time and design time) the columns they want to display, as well as change the column width and display order. Users can define new columns and edit existing columns at design time.

Right-click this item... ActionsChart Add Pane - add a new pane.

Add Cursor - add a new cursor.Pane Add Digital - adds a new digital pen.

Add Analog - adds a new analog pen.Add Alarm - adds a new alarm pen.Note: After adding a pen from this menu, configure the data connection by clicking the Connection tab and typing the name of the tag into the Tag text box.Delete - deletes the pane.

Pen Delete - deletes the pen.Cursor Delete - deletes the cursor.

Page 57: Vijeo Citect Process Analyst

41

Use the Object View page for the following:

“Configuring the Object View”

“Creating or Editing Object View Columns”

Configuring Chart-wide PropertiesYou use the Main page of the Process Analyst Properties dialog box to configure chart-wide properties. Select Process Analyst at the top of the property tree to display the Process Analyst properties page. This page contains two tabs, General and Server Paths, used to modify the following configurations:

“Configuring general properties”

“Configuring server paths”

Configuring general properties

You can configure general properties such as the background color of the chart, the refresh rate, data request rate, number of samples for pens, and specify whether chart pens should be locked. The Administration area indicates the privilege setting for the current Operator.

To configure general properties:

1 Click the General tab on the Main page.

2 Click the color swatch and select a Background color.

3 Specify a Display refresh rate.

This value determines the rate at which the display data is refreshed on the display; it also controls how often the position of the Now indicator is refreshed. This control is disabled if you do not have appropriate privilege. The default value is 1000 milliseconds. The permitted range is between 10 milliseconds to 60,000 milliseconds. Note that specifying a rate below 500 is not recommended if your chart contains many pens, since this may negatively affect performance.

4 Specify a Data request rate.

Page 58: Vijeo Citect Process Analyst

42

This value determines the maximum frequency of data requests. The Process Analyst internally determines when a request is required, but you can use this property to cap the Process Analyst’s performance.

This control is disabled if you do not have appropriate privilege. The default value is 1000 milliseconds. The permitted range is between 10 to 60,000 milliseconds. Note that this property affects trend server performance.

5 Specify a Number of Samples.

This specifies the date/time axis span of each pen in number of samples. This control is disabled if you do not have the appropriate privilege. The default value is 300. The permitted range is between 10-5000. Also see “Exporting Pen Data”.

Note: This value is closely tied to your display resolution. The default setting is ideal for screen resolutions from 1024x768 to 1280x1024. The association between Number of Samples and the display resolution occurs because for each sample shown on screen the Process Analyst attempts to leave a small gap to allow for sample markers. Because the Process Analyst shows samples when they occur, it requires less data than a traditional trend client. Retrieving data is expensive and the more data you retrieve the more time the request takes. It is recommended that this parameter not exceed 500.

The chart has a minimum resolution of one millisecond per sample. If the time span is reduced enough so that the number of samples exceeds the number of milliseconds in the time span, the number of milliseconds in the time span is used instead of the number of samples.

6 Select the Lock pens check box to lock your pens, or clear the check box to turn off pen-locking. For details on pen locking, see “Locking/Unlocking Pens”.

7 Click Apply.

Configuring server paths

You can configure the file server locations that the Process Analyst uses to load and save Process Analyst views, and displays the current Vijeo Citect run path if the Process Analyst is embedded in a running Vijeo Citect system. This command is disabled at run time if you do not have the appropriate privilege. For details about saving and loading views, see “Working with Views” and “Process Analyst View Synchronization”.

The Process Analyst uses four possible storage locations:

User - maps to the client machine’s logged-in user’s My Documents folder. This option is available for any possible privilege and Vijeo Citect mode.

Primary - User-definable.

Secondary - User-definable.

Local - displays the current Vijeo Citect run path (read-only). This text box only gets populated when the Process Analyst is running in Vijeo Citect V6.0 or higher. This path is an Analyst Views subdirectory under the Vijeo Citect current Run directory.

To configure server paths:

1 Click the Server Paths tab on the Main page.

Page 59: Vijeo Citect Process Analyst

43

2 Enter the location of the Primary file server.

3 Enter the location of the Standby file server (optional). This specifies the file server to use if the primary file server is unavailable.

4 Click Apply.

Configuring Chart PanesYou use the Properties dialog box to configure chart panes. After adding a pane, you can configure its size relative to other panes, as well as select a different color. All pane properties can be configured during run time.

To add a pane:

In the property tree of the Properties dialog box, right-click the Process Analyst view item at the top of the tree, and then select Add Pane. (To remove a pane, right-click a pane in the tree and choose Delete.)

To configure the chart pane:

1 In the property tree of the Properties dialog box, select the pane you want to configure. The properties for that pane appear.

Note: To configure defaults for your panes, select the Pane item in the Default Settings node of the property tree, not a specific pane.

2 Click the color swatch and select a new Background color.

3 Select a Height option:

Page 60: Vijeo Citect Process Analyst

44

Variable - Automatically calculates the pane height based on the value in the Size control. For example, if the chart contains two panes, selecting this option and using a Size value of 110 will set this pane to 110% of the size of the other pane in the chart. Note that fixed height panes have precedence of variable-size panes.

Fixed - Sets the pane height to the value specified in the Size control.

4 Specify a Size for the pane.

5 Click Apply.

Configuring PensThe Process Analyst allows you to configure your pens to suit your preferences. Pen configuration tasks are performed by using the Properties dialog box, which is used for:

“Configuring pen appearance”

“Configuring pen gridlines”

“Configuring pen axes”

“Configuring pen quality”

“Configuring the pen data connection”

“Configuring cursor labels”

Configuring pen appearance

You use the Process Analyst Properties dialog box to configure the appearance of pens. Pen appearance can be configured at run time by Operators and Users (and at design time by Users).

For details about pen appearance, see “Pen Types”.

Note: To configure default settings for pen appearance, select Analog, Digital, or Alarm in the property tree under Default Settings, and then complete the procedure below for the type of pen you want to configure.

Configuring analog and digital pensConfiguring the appearance of analog or digital pens involves selecting the line color, stack property, line width, and either the method of interpolation (analog pens) or fill color (digital pens).

To configure pen appearance:

1 Select the pen you want to configure.

2 Click the Appearance tab to display the appearance property controls.

Page 61: Vijeo Citect Process Analyst

45

3 Select a Line color using the color swatch.

4 Specify a Line width.

5 To stack a pen, select the Stacked option and then specify a Height in pixels for the stack.

6 Do one of the following:

For analog pens, choose an Interpolation method. Straight causes a line to be drawn directly between two data points. Stepped causes a line to be drawn between points maintaining the value of the previous sample until a sample with a different value arrives, in which case a vertical line is drawn.

For digital pens, select the Filled check box, and then select a fill color from the color swatch.

7 Click Apply.

Configuring alarm pensConfiguring the appearance of alarm pens involves selecting the line color, stack property, line width, alarm type, and the properties for that alarm type.

To configure alarm pen appearance:

1 Select the pen you want to configure.

2 Click the Appearance tab to display the appearance property controls for the selected alarm pen.

Page 62: Vijeo Citect Process Analyst

46

3 Select a Line color using the color swatch.

4 Specify a Line width.

5 To stack a pen, select the Stacked option and then specify a Height in pixels for the stack.

6 Select an Alarm type. For details about the different types of alarm pen available, see “Alarm pens”. For information about alarm states, see “Alarm states”.

7 For each Label for the alarm type you selected, select a Style, a Fill color, and/or a Hatch color by using the swatches.

8 Click Apply.

Configuring pen gridlines

You use the Process Analyst Properties dialog box to configure the gridlines for a selected pen. Pen gridlines can be configured at run time by Operators, and at design time by Users.

For more information about pen gridlines, see “Gridlines”.

Note: To configure defaults for pen gridlines, select the All pens item in the property tree under Default Settings, and then complete the procedure below.

To configure pen gridlines:

1 Click the Main Page tab.

2 From the property tree list, select the pen you want to configure gridlines for.

3 Click the Gridlines tab to display the gridlines property controls.

Page 63: Vijeo Citect Process Analyst

47

4 In the Vertical: Major area, select a Style, specify a Width, and then select a Color.

5 In the Vertical: Minor area, select a Style, specify a Width, and then select a Color.

6 In the Horizontal area (analog pens only), select a Style for the minor gridline, specify a Width, and then select a Color for the major gridline.

7 Do the same if necessary for the minor gridline.

8 Click Apply.

Configuring pen axes You use the Process Analyst Properties dialog box to configure the axis of the selected pen. A pen axis can be configured at run time by Operators, and at design time by Users.

You can configure the color, line width, label type, scroll and scale properties for the date/time and value axes. You can also choose whether to display time on the date/time axis using local or UTC format.

For more information about pen axes, see “Date/Time (Horizontal) Axis” and “Vertical (Value) Axis”.

Note: To configure defaults for pen axes, select the All pens item in the property tree under Default Settings, and then complete the procedure below.

To configure a pen axis:

1 Click the Main Page tab.

2 From the property tree list, select the pen you want to configure axes for.

3 Click the Axis tab to display the axis property controls.

Page 64: Vijeo Citect Process Analyst

48

4 In the Vertical area, select a Color by using the color swatch.

5 Enter a new Line width.

6 Select a Label type. This specifies the format to use for axis values.

7 Do one of the following (analog pens only):

Select the Autoscale option to autoscale the vertical axis.

Select the Interactive option, and then select Scale to be able to interactively scale the vertical axis; and/or select Scroll to be able to scroll the axis.

Note: These options are also available on the right-click (context) menu.

8 In the Horizontal area, select a Color by using the color swatch.

9 Select a Background color by using the color swatch.

10 Enter a new Line width.

11 Enter a Default Span to define the span you want to use for a new pen.

The default span is used by the Process Analyst when the Operator or User clicks the Reset to Default Span button, or if the pen is added in pen unlocked mode, or if the pen is the first one added to a display.

If you’re setting the span value as a default setting for all new pens, the new span value is inherited by all news pens created.

12 Select the Local Time option to display the date/time axis in local time using your machine settings. If this option is not selected, the time is displayed in UTC format. For details about time display on the date/time axis, see “Date/Time (Horizontal) Axis”.

13 Select Scale to be able to interactively scale the vertical axis.

14 Select Scroll to be able to scroll the axis.

Page 65: Vijeo Citect Process Analyst

49

Note: The Scale and Scroll options are also available on the right-click (context) menu.

15 Click Apply.

Configuring pen quality You use the Process Analyst Properties dialog box to configure the quality of the selected pen. Pen quality can be configured at run time by Operators, and at design time by Users.

Configuring the pen quality allows you to define the appearance of sample markers on a selected pen, as well as the line styles of the pen, based upon the quality of the data being trended by the Process Analyst.

For details about how the Process Analyst represents data quality, see “Data Quality”.

To configure pen quality:

1 Click the Main Page tab.

2 Select the pen you want to configure.

3 Click the Quality tab to display the quality property controls.

4 To enable points for the pen to be visible, select the Points Visible option.

5 In the Point Styles area, select a Single point style to represent a single data sample.

6 Select a Multiple point style to represent multiple data samples.

7 Selected an Interpolated point style for interpolated data samples.

8 In the Line Styles area, select a line style to represent a Good sample.

9 Select a line style to represent a Gated/Disabled sample.

10 Select a line style to represent an NA sample.

11 Click Apply.

Page 66: Vijeo Citect Process Analyst

50

Configuring the pen data connection

You use the Process Analyst Properties dialog box to configure the pen data connection. This allows you to define the server, trend tag, and request mode for the selected pen.

Pen connection can be configured at run time by Operators and Users that have the appropriate privileges.

To configure pen data connection:

1 Select the pen you want to configure.

2 Click the Connection tab to display the connection property controls.

3 For the Server data connection, a <localhost> connection is selected by default, indicating that the Process Analyst will connect to the Vijeo Citect run time client running on the same computer, and pass its requests through to the client, which will pass them onto the server.

4 In the Trend tag field, enter the trend tag for the pen. In a system with more than one cluster, you should specify both the cluster and tag using the format <cluster name.tag name>. Omitting the cluster name will cause an error. If the system has only one cluster configured, you can just enter the tag name. The configured cluster will be assumed.

5 Select a Request mode. The default is Average.

The request mode defines how multiple samples are treated by the Process Analyst. Regardless of the request mode used, the timestamp for a sample is always averaged.

6 Click Apply.

See Also “Data Compaction”

Configuring cursor labels

You use the Process Analyst Properties dialog box to configure the pen cursor labels. Configuring the pen cursor labels allows you to specify the color used for

Page 67: Vijeo Citect Process Analyst

51

the lines, background, and text on the cursor label. Note that the information shown on a cursor label is predefined and cannot be changed.

For details about cursor labels, see “Using Cursor Labels”.

Pen cursor labels can be configured at run time by both Operators and Users that have the appropriate privileges.

To configure cursor labels:

1 Select the pen you want to configure.

2 Click the Cursor Label tab to display the connection property controls.

3 Select a Line color from the color swatch.

4 Select a Background color from the color swatch.

5 Select a Text color from the color swatch.

6 Click Apply.

Configuring CursorsYou can configure the line width and line color of a selected cursor. Changes to the cursor line color apply only to the currently selected cursor. For details on cursors, see “Using Cursors”.

To configure the cursor:

1 In the property tree of the Citect Process Analyst Properties dialog box, click the cursor you want to configure. The Appearance property controls appear.

Page 68: Vijeo Citect Process Analyst

52

2 Type in a new Width value, and/or select a new Color.

3 Click Apply.

Configuring DefaultsThe defaults are a collection of properties that are inherited by each item (pane, pen, cursor, and so on) when that item is created. These default properties are maintained for the lifetime of the item until its properties are modified.

You configure these defaults in the same way as you configure the individual components. The Default Settings node on the property tree contains the following items:

All pens - configure the gridlines, axis, quality, connection, and cursor label properties for all pen types. See “Configuring pen gridlines”, “Configuring pen axes”, “Configuring pen quality”, “Configuring the pen data connection”, and “Configuring cursor labels”.

Cursor - configure cursor defaults. See “Configuring Cursors”.

Analog - configure the appearance of analog pens. See “Configuring pen appearance”.

Digital - configure the appearance of digital pens. See “Configuring pen appearance”.

Alarm - configure the appearance of alarm pens. See “Configuring pen appearance”.

Pane - configure the pane height and appearance defaults. See “Configuring Chart Panes”.

Page 69: Vijeo Citect Process Analyst

53

Configuring ToolbarsThe Process Analyst has two toolbars, the main toolbar and the navigation toolbar. You use the Properties dialog box to configure the toolbars.

Operators can configure the Process Analyst toolbars by:

“Adding or removing toolbar commands”

“Changing the order of toolbar commands”

Users can perform additional tasks such as:

“Adding New Commands”

“Editing Existing Custom Commands”

Adding or removing toolbar commands

Operators can add or remove toolbar commands during run time.

To add or remove commands from a toolbar:

1 From the Toolbar menu, choose the toolbar you want to customize (Main Toolbar or Navigation Toolbar).

2 To add a command to the toolbar: In the Available toolbar buttons list, select the command you want to add to the toolbar, and then click Add. The selected command moves to the Current toolbar buttons list.

The Available toolbar buttons list contains all the command buttons available in your system, including predefined as well as user-defined commands.

3 To remove a command from the toolbar: In the Current toolbar buttons list, select the command you want to remove from the toolbar, and then click Remove. The selected command moves to the Available toolbar buttons list.

Page 70: Vijeo Citect Process Analyst

54

Changing the order of toolbar commands

Operators can change the order of toolbar commands during run time.

To change the order of commands:

Select a command in the Current toolbar buttons list and click Move Up or Move down to move the selected command up or down the list as required.

Configuring the Object ViewOperators can configure the Object View to display additional pen information to the columns that are displayed by default. You configure the Object View by using the Properties dialog box.

Operators can select which columns to display, as well as change the size of existing columns and the column display order. Users can define new columns, or edit or delete existing columns; for details, see “Creating or Editing Object View Columns”.

You can configure the Object View to display these predefined columns:

For information on columns that are displayed by default, see “Object View Basics”.

Object View properties page

The Object View properties page allows you to show or hide existing columns, create custom columns, edit existing columns, and re-order columns.

Column DescriptionScale Vertical axis start and end position of the pen.Engineering Units Engineering units associated with the pen.Comment The trend/alarm comment defined for the pen.Start Time Date/time axis start position of the pen.End Time Date/time axis end position of the pen.Duration Difference between the start time and the end time.Tag Pen’s associated trend or alarm tag.Trend Type Trend type of associated tag.Sample Period Sampling period of the associated trend tag.Engineering Scale Engineering scale for associated trend tag.Raw Scale Raw scale for associated trend tag.Alarm Category Category of associated alarm tag.Alarm Description Description of associated alarm tag.Alarm Area Area of associated alarm tag.Alarm Name Name of associated alarm tag.Alarm Type Alarm type of associated alarm tag.Error Displays the error of the last data request. Blank if last data request succeeded.Minimum Lowest displayed value (trend tags only).Maximum Highest displayed value (trend tags only).Average Average of all displayed values (trend tags only).

Page 71: Vijeo Citect Process Analyst

55

The Properties page displays all the available columns for the Object View and their properties:

NameID - Internal identifier, which must be unique.

Width - Default width of the column in pixels.

Display Text - Title displayed in the column header.

The check boxes in the NameID column are bound to a column’s visibility: a column is visible only if the associated checkbox is selected.

The Move Up and Move Down buttons to the right of the Available Columns list box allow you to reorder columns. The order of the columns from top to bottom in the list dictates their display order from left to right in the Object View. Clicking Move Up or Move Down shifts the currently selected item up or down respectively.

See Also “Creating or Editing Object View Columns”

Working with ViewsAn Operator can save the visual setup of a Process Analyst control by saving a view, which is saved as a Process Analyst View (.pav) file. They can also load views that have been created previously. A view saves the state of all commands, as well as properties for all the Process Analyst components (panes, pens, axes, backgrounds, and so on).

To save a view or to load a view, you use the Save View and Load View commands, respectively, on the main toolbar.

Page 72: Vijeo Citect Process Analyst

56

Saving a view A Process Analyst view stores the trends and alarms that are being displayed, the columns being viewed in the Object View, the toolbar buttons that are available, as well as the “look and feel” of the view.

To save a view:

1 On the main toolbar, click Save View. The Save Process Analyst View dialog box appears, showing the location where you can save views.

2 Choose a location to save your view to.

Note: It is your administrator’s responsibility to set up the correct directories for saving views.

3 Enter a File name for your view, and then click OK.

To support redundancy, if the Local option is available and selected, Vijeo Citect attempts to save the view to the primary, standby and local locations.

Loading a view When loading a view, the start time and end time of a view is restored only autoscroll is off. If autoscroll is on, pens are synchronized to “Now.”

When loading a view, the only locations that are available (My Documents, Primary, and Standby) are those that have been configured by your administrator.

To load a view:

1 On the main toolbar, click Load View. The Load dialog box appears.

Page 73: Vijeo Citect Process Analyst

57

2 Select a view to load, and then click OK. The view is loaded.

Page 74: Vijeo Citect Process Analyst

58

Page 75: Vijeo Citect Process Analyst

Chapter 8: Operator Command Reference

You use the toolbar commands on the main toolbar and navigation toolbar to perform commonly used functions for viewing and interacting with Process Analyst data, such as adding or removing pens, displaying cursors, and so on.

Process Analyst has predefined commands, grouped into the following categories:

“View Commands”

“Zoom Commands”

“Navigation Commands”

“Export Commands”

“Interface Commands”

“General Commands”

The toolbars in your run time environment might have been customized during implementation, so not all these commands might appear on your toolbars. Additionally your toolbars might have custom commands not described here. The tables describe the default set of commands delivered with the Process Analyst.

View CommandsThe Process Analyst has the following view commands by default:

See Also “Zoom Commands” | “Navigation Commands” | “Export Commands” | “Interface Commands” | “General Commands”

Zoom CommandsThe Process Analyst has the following zoom commands by default:

Icon Tooltip DescriptionSave View Displays the Save File dialog box allowing an Operator to save a Process

Analyst view to a specified location. For details, see “Saving a view”.Load View Displays the Load View dialog box allowing the operator to specify a view

to load. For details, see “Loading a view”.

Icon Tooltip DescriptionToggle Box Zoom Toggles the Process Analyst into box zoom mode. The mouse cursor

changes to a crosshair used to define an area to zoom in on. Zoom may be cancelled by right-clicking or toggling the Zoom command off. For details, see “Toggle Box Zoom”.

Zoom in 50% Executes a horizontal and vertical zoom in of 50% of the current span(s) of the pen(s). For details, see “Zoom In/Zoom Out”.

Zoom out 50% Executes a horizontal and vertical zoom out of 50% of the current span(s) of the pen(s). For details, see “Zoom In/Zoom Out”.

Page 76: Vijeo Citect Process Analyst

60

See Also “View Commands” | “Navigation Commands” | “Export Commands” | “Interface Commands” | “General Commands”

Navigation CommandsThe Process Analyst has the following navigation commands by default. For details about these commands, see “Navigating time”.

See Also “View Commands” | “Zoom Commands” | “Export Commands” | “Interface Commands” | “General Commands”

Export CommandsThe Process Analyst has the following export commands by default:

See Also “View Commands” | “Zoom Commands” | “Navigation Commands” | “Interface Commands” | “General Commands”

Undo Last Zoom Undoes the last zoom operation. For details, see “Undo Last Zoom”.

Reset to Default Span Restores the pen(s) spans to their original default settings. For details, see “Reset to Default Span”.

Edit Span Displays the Edit Span dialog box allowing an operator to explicitly enter a time span to apply to the display. For details, see “Edit Span”.

Edit Vertical Scale Enabled when an analog pen is selected. For details, see “Edit Vertical Scale”.

Icon Tooltip Description

Icon Tooltip DescriptionToggle Span Lock Toggles the locking of the time span. A time span is the “distance” in time

between the start time and end time of the chart. For details, see “Span Lock”.

Back One Span Moves the pen(s) back in time exactly one time span. For details, see “Navigating time”.

Back Half a Span Moves the pen(s) back half a span. For details, see “Navigating time”.

Forward One Span Moves the pen(s) forward in time exactly one span. For details, see “Navigating time”.

Forward Half a Span Moves the pen(s) forward half a span. For details, see “Navigating time”.

Synchronize to Now Synchronizes pen(s) such that the end date time reflects “now” which is positioned on the right-hand edge of the screen. “Now” is calculated using the current system time. For details, see “Synchronize to Now”.

Toggle Auto-Scrolling Toggles the automatic scrolling off and on for all pens. For details, see “Toggle Autoscrolling”.

Icon Tooltip DescriptionExport to File Copies visible pens to an Excel compatible file. For details, see “Copying

data to file”.Copy to Clipboard Copies visible pens to the clipboard.Interface Commands. For details, see

“Copying data to the Clipboard”.

Page 77: Vijeo Citect Process Analyst

61

Interface CommandsThe Process Analyst has the following interface commands by default:

See Also “View Commands” | “Zoom Commands” | “Navigation Commands” | “Export Commands” | “General Commands”

General CommandsThe Process Analyst has the following general commands by default:

See Also “View Commands” | “Zoom Commands” | “Navigation Commands” | “Export Commands” | “Interface Commands”

Icon Tooltip DescriptionShow/Hide Cursor Toggles the display of cursors. For details, see “Using Cursors”.

Show/Hide Cursor Labels Toggles the display of cursor labels. Enabled only when a cursor is visible and when a pen exists. For details, see “Using Cursor Labels”.

Show/Hide Points Toggles the display of points representing where sample data was recorded in the archive. For details, see “Pens: An Overview”.

Lock/Unlock Cursor Labels Toggles the locking/unlocking of cursor labels. Enabled only when a cursor is visible and when a pen exists. For details, see “Using Cursor Labels”.

Lock/Unlock Pens Toggles the locking/unlocking of pens. For details, see “Locking/Unlocking Pens”.

Add Pane Adds a new pane to the view. For details, see “Configuring Chart Panes”.

Remove Pane Removes the pane of the primary selected pen. A dialog confirms the delete. For details, see “Configuring Chart Panes”.

Autoscale Vertical Axis for Analog Pens

Toggles autoscaling for the selected pen on a per-pen basis. For details, see “Scaling the Chart”.

Lock/Unlock Vertical Axis Scrolling

Toggles interactive scrolling of the vertical axis and disables autoscaling. For details, see “Scrolling the Chart”.

Icon Tooltip DescriptionAdd Pen Displays the add pen dialog. For details, see “Adding Pens”.

Remove Pen Removes the selected pen from the display. For details, see “Deleting Pens”.

Toggle Object View Toggles the display of the Object View. For details, see “Using the Object View”.

Print Displays the print dialog, allowing the user to print the current state of the Process Analyst. For details, see “Printing and Exporting”.

Refresh Data Refreshes the data for the selected pen, or all pens (if locked).

Show Properties Displays the Process Analyst Properties dialog box. For details, see “Using the Process Analyst Properties Dialog Box”.

Help Displays the Process Analyst Help.

Page 78: Vijeo Citect Process Analyst

62

Page 79: Vijeo Citect Process Analyst

Part 1IProcess Analyst for Users

This section contains information for Users and describes the following:

“Integration with Vijeo Citect”“Configuring Process Analyst Design Time Properties”“Using the Process Analyst Command System”“Automation Model”

Page 80: Vijeo Citect Process Analyst
Page 81: Vijeo Citect Process Analyst

Chapter 9: Integration with Vijeo Citect

The Process Analyst integrates seamlessly into the Vijeo Citect system and is designed to work primarily with the Vijeo Citect Graphics Builder and the run time environment. But the Process Analyst can also be embedded in custom Visual Basic and .NET applications. In these situations Vijeo Citect is still required.

See Also “Configuring the Process Analyst Control from Graphics Builder” | “Security and Permissions” | “Multi-language Support” | “Persistence” | “Backing up Projects”

Configuring the Process Analyst Control from Graphics BuilderBeing an ActiveX control, you can insert the Process Analyst onto a Vijeo Citect graphics page. To do this, do one of the following:

In Graphics Builder, choose Edit | Insert ActiveX Control. The Insert ActiveX dialog box appears. Double-click the Citect Process Analyst Control item in the ActiveX Controls list box. The control is inserted onto the graphics page and the Properties dialog box appears.

Click the Process Analyst button in the Graphics Builder toolbox.

After inserting the Process Analyst into a page, you can resize it into position. To view the configuration pages for the Process Analyst, double-click the Process Analyst control. For details on configuring the design time properties for the Process Analyst, see “Configuring Process Analyst Design Time Properties”.

See Also “Persistence”

Tag association Vijeo Citect can bind a Vijeo Citect tag to an ActiveX property and update either the tag or the property, based on a specified ActiveX event. You should note that the Process Analyst control does not support this feature.

Security and PermissionsThe Process Analyst integrates seamlessly into the Vijeo Citect security model by allowing access to certain Process Analyst features based on the privilege level of the currently logged in Operator.

The Process Analyst has nine privilege levels. Privilege level zero (0) indicates there is no security and any user can perform the function. Levels 1-8 map directly to the eight (8) privilege levels of security provided by Vijeo Citect. The Process Analyst, by default, assumes the area of the page that it is situated on; this can be changed in the Graphics Builder. So if an operator has area access for the page and has privilege level 1, and the function they want to use is level 2, the function will be unavailable. If the operator had level 2, the function would

Page 82: Vijeo Citect Process Analyst

66

then become available. The Process Analyst also supports the Vijeo Citect Hierarchical Privilege security option.

Security can be applied to the following features:

Administration; for details, see “Administration privilege”.

Commands; for details, see “Command privilege”.

Saving Process Analyst views (write privilege); for details, see “Write privilege”.

Administration privilege The Process Analyst also uses an Administration privilege level to disable engineer-oriented features at run time. For example, the ability to add new custom commands and so on are all disabled if the Operator does not meet the required privilege level. The Administration privilege level should never be zero on a running system as this would expose properties to an Operator, which could adversely affect the performance of the client and/or server (e.g., Number Of Samples property).

The features that are disabled when an operator does not meet the Administration privilege level include:

Add Pen context menu in Property dialog box.

New/Edit/Delete command (includes changing the privilege of commands).

New/Delete Column.

Data Refresh Rate property.

Display Refresh Rate property.

Number Of Samples property.

Server Paths tab.

Server field on Connection tab.

Tag field on Connection tab.

To modify the Administration privilege level, see “Configuring Chart-wide Properties”.

Command privilege The Process Analyst allows a privilege level to be assigned to each command (standard or custom command). If an Operator does not have the required privilege level to use that command, the associated toolbar button is disabled and cannot be executed.

See Also “Editing Existing Custom Commands”

Write privilege The Process Analyst uses a concept of “write” privilege level to control whether an operator can save Process Analyst views to a location other than "My documents". These views can then be loaded into the Process Analyst later by any Operator. The write privilege is set at design time on the Server Paths property page located on the root Process Analyst node in the Property pages dialog box. If the write privilege level is set to zero (0), any operator can save to any location. If the write privilege is any other level, the Operator must have that

Page 83: Vijeo Citect Process Analyst

67

privilege level to be able to save an Analyst view to a location other than "My Documents".

See Also “Configuring server paths” | “Working with Views” | “Process Analyst View Synchronization”

Multi-language Support The Process Analyst supports the Vijeo Citect multilanguage ability of changing the user interface language dynamically at run time. If the language is changed in Vijeo Citect, the Process Analyst will change its language to match.

The process of configuring the Process Analyst for multiple languages is different from that of Vijeo Citect. This section describes how to localize the Process Analyst user interface and get it to work with Vijeo Citect.

Understanding the Process Analyst resources

The Process Analyst uses a special file, called Resources.dll, to store all of its display strings and dialog boxes. This file holds the native translations for your version of the Process Analyst; these native translations are considered the default language. For example, the Japanese version of the Process Analyst will contain Japanese resources inside the Resources.dll file.

A separate Resources.dll file must be created for each individual language that you want to support in your system. The file should be renamed using a special format to indicate the language. The Process Analyst expects the file to be named Resources_<LanguageCode>.dll, where <LanguageCode> is the unique identifier of your dll.

For example, if you are creating French resources, your dll should be named Resources_fr.dll. Vijeo Citect uses the RFC 1766 standard for specifying culture names.

See Also “Creating your own Process Analyst resource.dll”

All language Resources*.dll files must be placed in the same directory as the Analyst.dll file.

The example below shows a system that contains English as the default, and has alternative languages of French, German and Chinese.

Resources.dll (default - any language, e.g. English)

Resources_fr.dll (French standard)

Resources_zh-CN.dll (Chinese PRC)

Resources_de.dll (German)

Using Vijeo Citect to switch the Process Analyst language

Vijeo Citect uses the Cicode function SetLanguage to switch languages at run time. To allow the Process Analyst to determine the language it should display, you must map your Vijeo Citect language databases to the Process Analyst resource files.

To do this, add a new .ini section called [ProcessAnalyst] to the Citect.ini file on all your Vijeo Citect clients and servers, and create a mapping for each language. (Note that this section might already exist in your Citect.ini file.) The mapping must use this format:

Page 84: Vijeo Citect Process Analyst

68

LanguagePath.<dbf>=<ProcessAnalystLanguage>

where <dbf> is the name of a specific Vijeo Citect language translation database, and <ProcessAnalystLanguage> is the language code of the resources.dll file that has the equivalent translations.

For example,

[ProcessAnalyst]LanguagePath.French=frLanguagePath.Chinese=zh-CNLanguagePath.German=de

The last step is to ensure each of your machines contains the necessary language fonts. Windows XP and Windows 2000 both provide facilities to add the necessary languages to your machine via the Regional and Language Options dialog box, accessible from the Control Panel. This step is essential if you want to use Asian languages on an English operating system. See “Creating your own Process Analyst resource.dll” for details on adding languages to your system.

With the .ini file now configured, languages installed, and the Resource.dll files in place when the SetLanguage Cicode function is called, Vijeo Citect and the Process Analyst will automatically change into the selected language.

Manually switching languages

The Process Analyst can also switch languages by itself using the IProcessAnalyst.Language property. You can call this property directly from Cicode, for example.

Note: Using this method will only switch the Process Analyst language and not the one used by Vijeo Citect. See “IProcessAnalyst.Language [Property] [Get/Set]”.

Specifying languages for the Web Client

A Process Analyst running inside a Vijeo Citect Web Client also supports run time language switching, but you must configure the languages that the Web Client will download to the client machine.

To configure the languages to download:

1 Create a zip file in the Vijeo Citect \bin folder called bin.zip.

2 Add to the zip file all the language resource DLL files that you want the client to download and use. (You can find these files in your \Program Files\Common Files\Citect folder.)

Note: The bin.zip file and its contents are not version-checked. This means you must manually remove the bin.zip from the Web Client machines if your server contains a more recent bin.zip file. To do this:

1 Find the installation directory of the Analyst.dll file on your Web Client machines and look for a file called bin.zip in this directory.

2 Delete this file.

3 Reconnect to the Web server to download the latest bin.zip file.

Creating your own Process Analyst resource.dll

To create your own resources dll, you need to do the following:

1 Install the specific languages you are localizing on your Windows system.

2 Set your system to use that specific language.

Page 85: Vijeo Citect Process Analyst

69

Note: To create your own resources.dll file, you’ll need to use Microsoft Developer Studio 6 or an equivalent tool.

Setup for localization on Windows XPYou must have Administrator privileges to perform the following setup.

1 Open Control Panel and double-click Regional and Language Options.

2 Click the Languages tab.

3 If localizing for East Asian languages, select the Install files for East Asian languages check box, then click OK.

4 Once the languages are installed, click the Languages tab in the Regional and Language Options dialog box.

5 Click Details in the Text services and input languages section to display the Text Services and Input Languages dialog box.

6 In the Installed services section, ensure that the language you want to localize with is listed. If not, add it.

1 To add a language, click Add to display the Add Input Language dialog box.

2 Select the language you want from the Input language menu and click OK. (You might need your original Windows Installer CD.)

3 You might need to restart your system before the language is available. If not, click Apply and then OK to close the Text Services and Input Languages dialog box and return to the main window under the

Page 86: Vijeo Citect Process Analyst

70

Languages tab. If you need to restart your system, return to the Regional and Language Options dialog box after logging back into Windows. Be sure to login as an Administrator.

7 Click the Advanced tab in the Regional and Language Options dialog box.

8 Select the language you want from the menu in the Language for Non-Unicode Programs section.

9 Click Apply and then OK (you may need to restart your system).

Setup for localization on Windows 2000You must have Administrator privileges to perform the following setup.

1 Open Control Panel and double-click Regional Options.

2 On the General tab under Language Settings for the System, make sure the language you want to localize with is in the list and "Checked". If it is not, you must add it.

1 To add a language, click the Input Locales tab.

2 Click Add to display the Add Input Locale dialog box.

3 Select the language you want from the list.

4 Click OK and follow the on-screen prompts.

Note: You will need your original Windows Installer CD.Once the language has been installed, repeat steps 1 and 2, and continue on to 3.

3 Click the Input Locales tab.

Page 87: Vijeo Citect Process Analyst

71

4 Ensure that your language is listed in the Installed input locals list.

5 Click back to the General tab.

6 Click Set default to display the Select System Locale dialog box.

7 From this list, select the language that you want to localize to and click OK. This step is essential if you are using Asian characters on an English system. (This may require a system restart.)

Note: When you are finished localizing, you should switch this option back to its original setting.

Changing the input languageWhen your system has been configured to use multiple languages, you will find a new icon in the system tray displayed as "EN" or similar.

To change input language:

1 Click EN to display the input language option menu.

2 Select the language you want to use (to work correctly with Visual Studio, this should match the language you selected in Step 8 of the Windows XP setup and Step 7 of the Windows 2000 setup). This might display a language-specific IME editor, which allows you to select characters to use in your translations.

Localizing the Process Analyst resource dllOnce you have set up your system to cope with multiple languages, you can begin localizing. Do the following:

1 Open Microsoft Visual Studio 6.

2 Choose File | Open.

Page 88: Vijeo Citect Process Analyst

72

3 Browse to the location of the Process Analyst's Resources.dll file. By default it is located at C:\Program Files\Common Files\Citect\.

4 Ensure that the Files of type menu has Executable Files (.exe;.dll;*.ocx) selected.

5 Ensure that the Open as menu has Resources selected.

6 Select Resources.dll and click Open.

7 Save the file under a new name. For example, if you are localizing for Japanese, use Resources_ja-JP.dll. See “Understanding the Process Analyst resources” for naming conventions.

8 Before changing any string, you must change the language code for each dialog box and the string table by doing the following:

1 Expand the String Table folder in the tree.

2 Right-click the String Table entry.

3 Choose Properties from the right-click (context) menu (see below).

4 From the Language menu, select the language that you are localizing for.

5 Click Close in the top-right corner of the dialog.

6 Repeat these steps for each of the dialogs inside the Dialog folder.

Once the language code has been set for all dialogs and the string table, you are ready to begin changing the text.

Localizing dialog boxes To localize a dialog box, do the following:

1 Expand the Dialogs folder in the tree.

2 Double-click a dialog to edit.

3 Select an item of text and right-click to display the properties for that item.

4 Enter your replacement text into the Caption field.

5 Click the Close button in the top-right corner of the dialog box.

You should note the following:

Page 89: Vijeo Citect Process Analyst

73

Controls can be repositioned or resized if necessary to fit your replacement text.

Never resize a dialog box. The size of a dialog box is set to an optimum size so that it integrates into Graphics Builder correctly.

Dialogs 3028 and 3050 do not require translation.

Localizing the String Table To localize the string table, do the following:

1 Expand the String Table folder in the tree.

2 Double-click the String Table entry. This will display a table showing you all the strings of the Process Analyst.

3 Double-click an entry to display the Properties dialog box.

4 Type in the replacement text in the Caption box.

5 Click the Close button in the top-right corner of the dialog box.

Note: When translating strings, if a string contains “%s”, “%x”, “%d” and so on, do not remove or replace those symbols as they are important to the Process Analyst.

PersistencePersistence refers to saving the state (properties, pens, and so on) of the Process Analyst to disk. Vijeo Citect and the Process Analyst provide the following methods of persistence:

Saving as part of a Citect Graphics Builder page (design time)

Save View toolbar button on the Process Analyst (run time)

SaveToFile automation method on the Process Analyst (run time)

Saving between Citect page transitions (run time)

Saving while using the Citect Graphics Builder

This feature allows you to configure the default look and/or what pens will be displayed on the Process Analyst at design time while you are designing your graphics pages. Design time is the appropriate time to configure the appearance properties, toolbar buttons and, most importantly, the security of the Process Analyst since these will become the default settings of the Process Analyst when your page is displayed at run time.

When a page containing the Process Analyst is saved in the Graphics Builder all the properties you configured on the Process Analyst will be stored within the Graphics Builder page.

Note: When defining new custom toolbar buttons, any icon you assign will be copied and also stored within the Graphics Builder page. This allows your custom toolbar buttons to work on any machine.

Using the Save View toolbar button

This feature is valid only at run time and allows operators to save the current state of the Process Analyst (called a view) to a standalone file. These files can be loaded during run time, and are an efficient way to store commonly used pen configurations.

Page 90: Vijeo Citect Process Analyst

74

Using the SaveToFile automation method

This feature is valid only at run time and allows a user to write Cicode to save the current state of the Process Analyst to a standalone file, referred to as an Analyst view. These files can be loaded during run time using the LoadFromFile automation method (or the Load View toolbar button). Views and are an efficient way to store commonly used pen configurations.

Saving between Vijeo Citect page transitions (Run-time)

Using Vijeo Citect run time, if you modify the Process Analyst (for example, changing the timespan of a pen) and move off the page, your changes will be lost. This behavior is not always what you want, so the Citect Graphics Builder provides an option Persist ActiveX data between page transitions to save the state of an ActiveX control when you switch between pages.

Enabling this option causes Vijeo Citect to write a temporary file to the Vijeo Citect Data directory in the format of <Event class>.stg whenever you leave a page that contains an ActiveX object (e.g., the Process Analyst). When you reenter the page, Vijeo Citect looks for that same file and, if found, will load the settings from it. These files only exist while Vijeo Citect run time is running. When you shut down Vijeo Citect, the temporary *.stg files are deleted.

To save between page transitions:

1 Double-click the Process Analyst ActiveX control you want to change. The Properties dialog box appears.

2 Click the Access tab.

3 Click the Identification tab. The Identification panel appears.

4 In the Persistence area, select the Persist ActiveX data between page transitions check box, and then click Apply.

Resetting back to the default state

You can reset the original configuration of the Process Analyst control by calling the Cicode function ObjectResetState. This function takes the object handle of the Process Analyst control, which you retrieve by using the Cicode function ObjectByName.

Page 91: Vijeo Citect Process Analyst

75

Backing up ProjectsWhen you save views to the Local storage location, the Process Analyst will create a *.pav file in an Analyst Views subfolder under your project directory. If your project contains Analyst views, you should ensure that the Save sub-directories option is selected in Citect Explorer before backing up your project.

Page 92: Vijeo Citect Process Analyst

76

Page 93: Vijeo Citect Process Analyst

Chapter 10: Configuring Process AnalystDesign Time Properties

Most Process Analyst properties can be defined or modified during run time and design time. This section describes properties that can be configured only during design time, usually by a User.

For information about configuring run time properties, see “Using the Process Analyst Properties Dialog Box”.

See Also “Adding New Commands” | “Editing Existing Custom Commands” | “Creating or Editing Object View Columns” | “Process Analyst View Synchronization”

Adding New CommandsUsers can define new toolbar commands during design time if they have the appropriate privilege level.

To add a new command:

1 On the Toolbars page of the Properties dialog box, click New. The New Command dialog box appears.

2 The dialog shows the unique, system-generated ID for the new command. If necessary, enter a new ID for the command. This ID can be used in Cicode to determine which command has been triggered or to find a specific command in the Vijeo Citect system.

Page 94: Vijeo Citect Process Analyst

78

3 Enter the Tooltip text for the new command. You are limited to 64 characters. Tooltip text appears when the mouse pointer is over the toolbar command.

4 Click Browse and navigate to the icon to represent the new command. The icon image appears on the toolbar command button.

5 To define how the command behaves, choose a button style from the Button style menu:

Push Button - click the Enabled check box to set the default appearance of the button when the button is enabled or disabled.

Toggle Button - click Enabled or Pressed to specify the “on” appearance.

See Also “Editing Existing Custom Commands”

Editing Existing Custom CommandsUsers can edit existing toolbar commands if they have the appropriate privilege level. Commands can only be edited during design time, and only fields for custom commands can be edited.

To edit an existing custom command

1 Open the Properties dialog box and click the Toolbars tab.

2 Select the command you want to edit in the Available toolbar buttons list box, and then click Edit. The Edit Command dialog box appears.

3 If required. click Browse to navigate to a new icon to use for the command.

4 If required, edit the Tooltip text. The maximum length for Tooltip text is 64 characters.

5 If required, choose a new button style from the Button style menu.

See Also “Adding New Commands”

Page 95: Vijeo Citect Process Analyst

79

Creating or Editing Object View ColumnsUsers can create or delete Object View columns (during design time), as well as edit existing columns (run time or design time). Object View columns display information about your pens. All these configuration tasks are performed by using the Citect Process Analyst Properties dialog box.

To create an Object View column:

1 Click the Object View tab. The Object View panel appears.

2 Click New. The New Column dialog box appears.

3 Enter a Name ID for the column. The value is used to reference the column in code.

4 Specify a Width.

5 Enter the Text to use for the column in the Object View display.

To delete an Object View column:

Select the column you want to delete and click Delete.

To edit an Object View column:

1 Select the column you want to edit, and then click Edit. The Edit Column dialog box appears.

2 Modify the information as required, and then click OK.

See Also “Configuring the Object View”

Process Analyst View SynchronizationThe Process Analyst implements a basic level of file synchronization for Process Analyst views (.pav files). This feature causes the Process Analyst to try and obtain the latest version of a .pav file before displaying it to the operator.

To achieve this, an engineer must first configure the Process Analyst to support Primary and Standby server locations for Analyst Views; for details, see “Configuring server paths”.

With these file servers in place, the Process Analyst now has a central location from which to obtain Process Analyst views. If one of the locations is unavailable, the operator can try the alternate location. When a client saves or

Page 96: Vijeo Citect Process Analyst

80

loads a Process Analyst view, only that view on the Primary and Standby server locations will be synchronized to ensure they are all the same.

The table below outlines the rules of synchronization and privilege for the storage locations and client modes when loading and saving Process Analyst views.

* Refers to the Look in menu on SaveView and Load View dialog boxes.

** Means both privileged and un-privileged.

When setting up file-servers to store Process Analyst views, ensure that each client machine has privileges enabling it the desired read/write access to those locations.

See Also “Configuring server paths” | “Working with Views” | “Write privilege”

Action Vijeo Citect mode Privilege Available Storage Locations*Load Normal client Both** The Primary and Standby options appear as configured

as well as My Documents. If either are invalid or unavailable paths, they do not appear. If both are invalid or unavailable, the Local option appears. Default order is Primary, Standby, My Documents, and Local, My Documents respectively. Synchronization occurs when loading from a Primary or Standby location.

Load Web client Both** The Local and My Documents options are the only ones available. Local maps to the project directory\Analyst Views. The default order is Local, My Documents.

Save Normal client Privileged The Local and My Documents options are the only ones available. Local however will attempt to save to all server locations as well as the project directory. The .pav file will be saved to all available locations from primary, standby and project directories. Default order: Local, My Documents.

Save Normal client Unprivileged The My Documents option is the only one available.Save Normal client Both** The My Documents option is the only one available.

Page 97: Vijeo Citect Process Analyst

Chapter 11: Using the Process AnalystCommand System

This section describes how to use the Process Analyst command system.

See Also “Command System Overview” | “Custom Commands” | “Icons”

Command System OverviewThe Process Analyst provides an extensive command system allowing manipulation of common Process Analyst features, as well as providing the framework for creating custom user-defined commands.

The command system is configurable via the Toolbar property page and the automation model.

To access the command system via the automation model, call the property GetCommandSystem() from the IProcessAnalyst interface. For details, see “IProcessAnalyst Interface”.

Custom CommandsCustom commands are defined in the Process Analyst, but must be implemented in Cicode. You define commands by using the ICommandSystem- > Create method, or by using the New button on the Toolbar property page.

To implement the command, you must respond to the event CommandExecuted (and optionally UpdateCommand). Both of these events notify you of the ID of the command which needs to be handled.

CommandExecuted When an operator presses the toolbar button representing your command, it will trigger this event. This is your opportunity to execute the desired functionality of the command. This will not be triggered if the logged-in user fails to meet the required privilege level. Be aware that this is an asynchronous operation.

UpdateCommand When the Process Analyst requires the Enable state or pressed states of its toolbar buttons to be refreshed, this event will be triggered. This will not be triggered if the logged-in user fails to meet the required privilege level. Note that this is asynchronous operation.

The state of all commands (custom and pre-defined) will be saved to disk whenever the Process Analyst configuration is saved.

See Also “Persistence”

IconsFor custom commands, the user can specify their own custom icons by pointing to a file on their hard drive. As these files may be deleted or moved over time, the Process Analyst makes an instant copy of the icon into memory when the

Page 98: Vijeo Citect Process Analyst

82

command is added. This removes any dependence on the original icon file. When the Process Analyst configuration is saved, the icon data is also saved.

Page 99: Vijeo Citect Process Analyst

Chapter 12: Automation Model

The automation model allows applications or solutions to programmatically configure the Process Analyst control’s appearance, performance, and behavior. The automation model also allows code, via automation events, to be attached to events fired from the Process Analyst Control and perform custom behavior.

The automation model allows almost every visual aspect of the control to be configured, as well as performance. It is simple and follows a traditional object-oriented approach (see below).

To view information for an interface, click the name of the interface in the illustration below. For example, to view information for the IPens interface, click IPens.

Execution ResultsEach property and method listed in the automation model will return one of the following results upon execution. The exact meaning is described in the Execution Result section for each property or method.

Errors are captured differently in Cicode and VBA. The following code examples show how to trap and handle errors in VBA and Cicode.

[VBA]

Sub VBATest(myObject As Object)On Error Goto errHandlermyObject.<function>

Execution Result Cicode VBA C++InvalidArgument 274 5 E_INVALIARGGeneralFailure 356 2147500037 E_FAILPathNotFound 356 76 STG_E_PATHNOTFOUNDSuccess 0 - S_OK

Page 100: Vijeo Citect Process Analyst

84

Exit SuberrHandler:

Print Err.Number, Err.DescriptionResume Next

End Sub

[Cicode]

FUNCTION Test1(OBJECT hObject)ErrSet(1); // Enable User error checking (disabled HW alarm)IF ObjectIsValid(hObject) THEN

_ObjectCallMethod(hObject, "<function>");error = IsError();errorMessage = IntToStr(error)IF (error <> 0) THEN

Message("An error occured", errorMessage, 0);END

ENDErrSet(0); // Enable hardware alarm reporting of errors

END

InterfacesIAlarmPen InterfaceIAnalogPen InterfaceICommand InterfaceICommandSystem InterfaceICursors InterfaceIDigitalPen InterfaceIObjectView InterfaceIObjectViewColumn InterfaceIObjectViewColumns InterfaceIObjectViewItem InterfaceIObjectViewItems InterfaceIObjectViewPenItem InterfaceIPane InterfaceIPanes InterfaceIPen InterfaceIPens InterfaceIProcessAnalyst InterfaceIToolbar InterfaceIToolbars InterfaceIToolbarButton InterfaceIToolbarButtons InterfaceITrendCursor Interface

EventsCommandExecuted [Event]CursorMoved [Event]Error [Event]HorizontalAxisChanged [Event]MouseClick [Event]MouseDoubleClick [Event]OVColumnAdded [Event]OVColumnRemoved [Event]OVItemAdded [Event]

Page 101: Vijeo Citect Process Analyst

85

OVItemChecked [Event]OVItemSelected [Event]PenCreated [Event]PenDeleted [Event]PenRenamed [Event]PenSelectionChanged [Event]PropertyChanged [Event]UpdateCommand [Event]VerticalAxisChanged [Event]

EnumerationsAlarmType [Enumeration]AxisLabelType [Enumeration]ErrorNotifyCode [Enumeration]FileLocation [Enumeration]HatchStyle [Enumeration]LineStyle [Enumeration]LineType [Enumeration]PenNameMode [Enumeration]PenType [Enumeration]PointType [Enumeration]QualityCompactionType [Enumeration]QualityType [Enumeration]RequestMode [Enumeration]ToolbarButtonType [Enumeration]

IAlarmPen InterfaceDefined As

[VBA] Object

[Cicode] OBJECT

[C++] IAlarmPen

Methods (6)

IAlarmPen.GetFillColor [Method]IAlarmPen.SetFillColor [Method]IAlarmPen.GetHatchColor [Method]IAlarmPen.SetHatchColor [Method]IAlarmPen.GetHatchStyle [Method]IAlarmPen.SetHatchStyle [Method]

Properties (3)

IAlarmPen.LineColor [Property][Get/Set]IAlarmPen.LineWidth [Property][Get/Set]IAlarmPen.AlarmType [Property][Get/Set]

IAlarmPen.LineColor [Property][Get/Set]

Gets or Sets the color that will be used to draw the pen line.

Defined As

[VBA] Long LineColor

[Cicode] INT LineColor

Page 102: Vijeo Citect Process Analyst

86

[C++] OLE_COLOR LineColor

Execution Result

If the property get/set succeeds the return value will be Success. If the return variable is bad then the return value will be InvalidArgument. If the pen is deleted the return value will be GeneralFailure.

Remarks

The color value can be calculated using the following formula:

color = (65536 * Blue) + (256 * Green) + (Red)

where red, green, and blue are 0-255.

Calling Syntax

This example assumes there is a valid alarm pen object to be passed into the example methods.

[VBA]

Sub Example(alarmPen As Object)Dim lineColor As Long‘Getting Property valuelineColor = alarmPen.LineColor‘Setting Property to redalarmPen.LineColor = 255

End Sub

[Cicode]

FUNCTION Example(OBJECT hAlarmPen)// Getting property valueINT nLineColor = _ObjectGetProperty(hAlarmPen, "LineColor");// Setting property to red_ObjectSetProperty(hAlarmPen, "LineColor", 255);

END

IAlarmPen.LineWidth [Property][Get/Set]

Gets or sets the width in pixels of the pen line when it is drawn.

Defined As

[VBA] Long LineWidth

[Cicode] INT LineWidth

[C++] int LineWidth

Execution Result

If the property get/set succeeds the return value will be Success. If the return variable is bad then the return value will be InvalidArgument. If the pen is deleted the return value will be GeneralFailure.

Limits

Minimum = 0

Maximum = 8

Calling Syntax

Page 103: Vijeo Citect Process Analyst

87

This example assumes there is a valid alarm pen object to be passed into the example methods.

[VBA]

Sub Example(alarmPen As Object)Dim lineWidth As Long‘Getting Property valuelineWidth = alarmPen.LineWidth‘Setting Property valuealarmPen.LineWidth = 5

End Sub

[Cicode]

FUNCTION Example(OBJECT hAlarmPen)// Getting property valueINT nLineWidth = _ObjectGetProperty(hAlarmPen, "LineWidth");// Setting property value_ObjectSetProperty(hAlarmPen, "LineWidth", 5);

END

IAlarmPen.AlarmType [Property][Get/Set]

Gets or Sets the display type of this alarm pen.

Defined As

[VBA] Long AlarmType

[Cicode] INT AlarmType

[C++] AlarmType AlarmType

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.

Remarks

This AlarmType also dictates the number of alarm states, and their descriptions.

See Also IAlarmPen.AlarmType [Property][Get/Set]

Calling Syntax

This example assumes there is a valid alarm pen object to be passed into the example methods.

[VBA]

Sub Example(alarmPen As Object)Dim alarmType As Long‘Getting Property valuealarmType = alarmPen.AlarmType‘Setting Property value to AnalogalarmPen.AlarmType = 1

End Sub

[Cicode]

FUNCTION Example(OBJECT hAlarmPen)// Getting property valueINT eAlarmType = _ObjectGetProperty(hAlarmPen, "AlarmType");

Page 104: Vijeo Citect Process Analyst

88

// Setting property to Analog_ObjectSetProperty(hAlarmPen, "AlarmType", 1);

END

IAlarmPen.GetFillColor [Method]

Gets the color used to fill the pen for the specified state.

Defined As

[VBA] GetFillColor(state as Long) as Long

[Cicode] INT GetFillColor(INT state)

[C++] HRESULT GetFillColor(int state, OLE_COLOR* color)

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.

Parameters

state

[in] The state for which fill color to retrieve (0 to 8).

Remarks

The color value can be calculated using the following formula: color = (65536 * Blue) + (256 * Green) + (Red). Where red, green and blue are 0-255.

Calling Syntax

This example assumes there is a valid AlarmPen object to be passed into the example methods.

[VBA]

Sub Example(alarmPen As Object)Dim fillColor As LongfillColor = alarmPen.GetFillColor(0)

End Sub

[Cicode]

FUNCTION Example(OBJECT hAlarmPen)INT nFillColor = _ObjectCallMethod(hAlarmPen, “GetFillColor” ,

0);END

IAlarmPen.SetFillColor [Method]

Sets the color used to fill the pen for the specified state.

Defined As

[VBA] SetFillColor(state as Long, color as Long)

[Cicode] INT SetFillColor(INT state, INT color)

[C++] HRESULT SetFillColor(int state, OLE_COLOR color)

Parameters

state

[in] The state for which you would like to assign a fill color (0 to 8).

Page 105: Vijeo Citect Process Analyst

89

color

[in] The fill color that you would like used to for this specific state.

Execution Result

If the function succeeds, the return value will be Success. If the state is out of range, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.

Remarks

The color value can be calculated using the following formula:

color = (65536 * Blue) + (256 * Green) + (Red)

where red, green, and blue are 0-255.

Calling Syntax

This example assumes there is a valid AlarmPen object to be passed into the example methods.

[VBA]

Sub Example(alarmPen As Object)Dim fillColor As Long‘Setting FillColor to RedalarmPen.SetFillColor(0, 255)

End Sub

[Cicode]

FUNCTION Example(OBJECT hAlarmPen)// Setting FillColor to Red_ObjectCallMethod(hAlarmPen, “SetFillColor” ,0, 255);

END

IAlarmPen.GetHatchColor [Method]

Gets the color used to draw the outline and hatching for the specified state.

Defined As

[VBA] GetHatchColor(state as Long) as Long

[Cicode] INT GetHatchColor(INT state)

[C++] HRESULT GetHatchColor(int state, OLE_COLOR* color)

Execution Result

If the function succeeds, the return value will be Success. If the state is out of range, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.

Parameters

state

[in] The state for which hatch color to retrieve (0 to 8).

Remarks

The color value can be calculated using the following formula:

color = (65536 * Blue) + (256 * Green) + (Red)

Page 106: Vijeo Citect Process Analyst

90

where red, green, and blue are 0-255.

Calling Syntax

This example assumes there is a valid AlarmPen object to be passed into the example methods.

[VBA]

Sub Example(alarmPen As Object)Dim hatchColor As LonghatchColor = alarmPen.GetHatchColor(0)

End Sub

[Cicode]

FUNCTION Example(OBJECT hAlarmPen)INT nHatchColor = _ObjectCallMethod(hAlarmPen, “GetHatchColor” , 0);

END

IAlarmPen.SetHatchColor [Method]

Sets the color used to draw the outline and hatching for the specified state.

Defined As

[VBA] SetHatchColor(state as Long, color as Long)

[Cicode] INT SetHatchColor (INT state, INT color)

[C++] HRESULT SetHatchColor (int state, OLE_COLOR color)

Parameters

state

[in] The state for which you would like to assign a hatch color (0 to 8).

color

[in] The color that you would like to be used for a specified states hatch.

Execution Result

If the function succeeds the return value will be Success. If the state is out of range then the return value will be InvalidArgument. If the pen is deleted the return value will be GeneralFailure.

Remarks

The color value can be calculated using the following formula:

color = (65536 * Blue) + (256 * Green) + (Red)

where red, green, and blue are 0-255.

Calling Syntax

This example assumes there is a valid AlarmPen object to be passed into the example methods.

[VBA]

Sub Example(alarmPen As Object)Dim hatchColor As Long‘Setting HatchColor to RedalarmPen.SetHatchColor(0, 255)

End Sub

Page 107: Vijeo Citect Process Analyst

91

[Cicode]

FUNCTION Example(OBJECT hAlarmPen)// Setting HatchColor to Red_ObjectCallMethod(hAlarmPen, “SetHatchColor”,0, 255);

END

IAlarmPen.GetHatchStyle [Method]

Gets the hatch style used when drawing the boxes for the specified state.

Defined As

[VBA] GetHatchStyle(state as Long) as Long

[Cicode] INT GetHatchStyle(INT state)

[C++] HRESULT GetHatchStyle(int state, HatchStyle* color)

Parameters

state

[in] The state for which you would like to retrieve a hatch style (0 to 8).

Execution Result

If the function succeeds the return value will be Success. If the state is out of range then the return value will be InvalidArgument. If the pen is deleted the return value will be GeneralFailure.

Remarks

The color value can be calculated using the following formula: color = (65536 * Blue) + (256 * Green) + (Red). Where red, green and blue are 0-255.

See Also IAlarmPen.GetHatchStyle [Method]

Calling Syntax

This example assumes there is a valid AlarmPen object to be passed into the example methods.

[VBA]

Sub Example(alarmPen As Object)Dim hatchStyle As LonghatchStyle = alarmPen.GetHatchStyle(0)

End Sub

[Cicode]

FUNCTION Example(OBJECT hAlarmPen)INT nHatchStyle = _ObjectCallMethod(hAlarmPen, “GetHatchStyle”, 0);

END

IAlarmPen.SetHatchStyle [Method]

Sets the hatch style used for drawing the specified state.

Defined As

[VBA] SetHatchStyle(state as Long, HatchStyle as Long)

[Cicode] INT SetHatchStyle (INT state, INT hatchStyle)

[C++] HRESULT SetHatchStyle (int state, HatchStyle hatchStyle)

Parameters

Page 108: Vijeo Citect Process Analyst

92

state

[in] The state for which you would like to assign a hatch style.

hatchStyle

[in] The hatch style that will be used for the specified state.

Execution Result

If the function succeeds the return value will be Success. If the state is out of range then the return value will be InvalidArgument. If the pen is deleted the return value will be GeneralFailure.

Remarks

The color value can be calculated using the following formula: color = (65536 * Blue) + (256 * Green) + (Red). Where red, green and blue are 0-255.

See Also IAlarmPen.GetHatchStyle [Method]

Calling Syntax

This example assumes there is a valid AlarmPen object to be passed into the example methods.

[VBA]

Sub Example(alarmPen As Object)‘Setting HatchStylealarmPen.SetHatchStyle(0, 1)

End Sub

[Cicode]

FUNCTION Example(OBJECT hAlarmPen)// Setting HatchStyle_ObjectCallMethod(hAlarmPen, “SetHatchStyle” ,0, 1);

END

IAnalogPen InterfaceDefined As

[VBA] Object

[Cicode] OBJECT

[C++] IAnalogPen

Methods (0)

Properties (3)

See Also IAnalogPen.LineColor [Property][Get/Set]IAnalogPen.LineInterpolation [Property][Get/Set]IAnalogPen.LineWidth [Property][Get/Set]

IAnalogPen.LineColor [Property][Get/Set]

Gets or Sets the color that will be used to draw the pen line.

Defined As

[VBA] Long LineColor

[Cicode] INT LineColor

Page 109: Vijeo Citect Process Analyst

93

[C++] OLE_COLOR LineColor

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.

Remarks

The color value can be calculated using the following formula:

color = (65536 * blue) + (256 * green) + (red)

where red, green, and blue are 0-255.

Calling Syntax

This example assumes there is a valid AnalogPen object to be passed into the example methods.

[VBA]

Sub Example(analogPen As Object)Dim lineColor As Long‘Getting Property valuelineColor = analogPen.LineColor‘Setting Property to redanalogPen.LineColor = 255

End Sub

[Cicode]

FUNCTION Example(OBJECT hAnalogPen)// Getting property valueINT nLineColor = _ObjectGetProperty(hAnalogPen, "LineColor");// Setting property to red_ObjectSetProperty(hAnalogPen, "LineColor", 255);

END

IAnalogPen.LineInterpolation [Property][Get/Set]

Gets or sets the drawing style used for drawing the connecting lines between points for this analog pen.

Defined As

[VBA] Long LineInterpolation

[Cicode] INT LineInterpolation

[C++] LineType LineInterpolation

Execution Result

If the property get/set succeeds the return value will be Success. If the return variable is bad then the return value will be InvalidArgument. If the pen is deleted the return value will be GeneralFailure.

Remarks

The LineInterpolation mode dictates how the two points of a line are joined when drawn. If Stepped, there will be two lines joining each point, one horizontal and one vertical. If Straight, only one line is used to directly connect the two points.

Page 110: Vijeo Citect Process Analyst

94

See Also LineType [Enumeration]

Calling Syntax

This example assumes there is a valid Analog Pen object to be passed into the example methods.

[VBA]

Sub Example(analogPen As Object)Dim lineInterpolation As Long‘Getting Property valuelineInterpolation = analogPen.LineInterpolation‘Setting Property valueanalogPen.LineInterpolation = 1

End Sub

[Cicode]

FUNCTION Example(OBJECT hAnalogPen)// Getting property valueINT nInterpolation = _ObjectGetProperty(hAnalogPen, "LineInterpolation");// Setting property value_ObjectSetProperty(hAnalogPen, "LineInterpolation", 1);

END

IAnalogPen.LineWidth [Property][Get/Set]

Gets or sets the width in pixels of the pen line when it is drawn.

Defined As

[VBA] Long LineWidth

[Cicode] INT LineWidth

[C++] int LineWidth

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.

Limits

Minimum = 0

Maximum = 8

Calling Syntax

This example assumes there is a valid Analog Pen object to be passed into the example methods.

[VBA]

Sub Example(analogPen As Object)Dim lineWidth As Long‘Getting Property valuelineWidth = analogPen.LineWidth‘Setting Property valueanalogPen.LineWidth = 5

End Sub

Page 111: Vijeo Citect Process Analyst

95

[Cicode]

FUNCTION Example(OBJECT hAnalogPen)// Getting property valueINT nLineWidth = _ObjectGetProperty(hAnalogPen, "LineWidth");// Setting property value_ObjectSetProperty(hAnalogPen, "LineWidth", 5);

END

ICommand InterfaceDefined As

[VBA] Object

[Cicode] OBJECT

[C++] ICommand

Methods (0)

Properties (6)

ICommand.CommandId [Property][Get]ICommand.ButtonType [Property][Get]ICommand.Enabled [Property][Get/Set]ICommand.Pressed [Property][Get/Set]ICommand.Tooltip [Property][Get]ICommand.Privilege [Property][Get]

ICommand.CommandId [Property][Get]

Gets the CommandId of this command.

Defined As

[VBA] String CommandId

[Cicode] STRING hCommandId

[C++] BSTR CommandId

Calling Syntax

This example assumes there is a valid Command object as retrieved from a Process Analyst’s CommandSystem (e.g., VBA: ProcessAnalyst.CommandSystem.Item(1)).

[VBA]

Sub Example(Command As Object)Dim commandId As String‘Getting Property valuecommandId = Command.CommandId

End Sub

[Cicode]

FUNCTION Example(OBJECT hCommand)// Getting property valueSTRING nCommandId = _ObjectGetProperty(hCommand,"CommandID");

END

Page 112: Vijeo Citect Process Analyst

96

ICommand.ButtonType [Property][Get]

Gets this commands button type.

Defined As

[VBA] Long ButtonType

[Cicode] INT ButtonType

[C++] ToolbarButtonType ButtonType

Execution Results

If the property get succeeds, the return value will be Success. If the return value is invalid, the return value will be InvalidArgument. If the command has been deleted, the return value will be GeneralFailure.

Remarks

The return value meaning is as follows:

ToolbarButtonType_Push = 0

ToolbarButtonType_Toggle = 1

ToolbarButtonType_Separator = 2

Calling Syntax

This example assumes there is a valid Command object as retrieved from a Process Analyst’s CommandSystem. (e.g., VBA: ProcessAnalyst.CommandSystem.Item(1))

[VBA]

Sub Example(Command As Object)Dim buttonType As Long‘Getting Property valuebuttonType = Command.ButtonType

End Sub

[Cicode]

FUNCTION Example(OBJECT hCommand)// Getting property valueINT nButtonType = _ObjectGetProperty(hCommand, "ButtonType");

END

ICommand.Enabled [Property][Get/Set]

Gets this commands enabled state.

Defined As

[VBA] Boolean Enabled

[Cicode] INT Enabled

[C++] VARIANT_BOOL Enabled

Execution Result

If the property get succeeds, the return value will be Success. If the return value is invalid, the return value will be InvalidArgument.

Limits

True (-1): Enabled

Page 113: Vijeo Citect Process Analyst

97

Falso (0): Disabled

Remarks

The setting of this property is only valid for custom commands.

Calling Syntax

This example assumes there is a valid Command object as retrieved from a Process Analyst’s CommandSystem. (e.g., VBA: ProcessAnalyst.CommandSystem.Item(1))

[VBA]

Sub Example(Command As Object)Dim enabled As Boolean‘Getting Property valueenabled = Command.Enabled‘Setting Property valueCommand.Enabled = True

End Sub

[Cicode]

FUNCTION Example(OBJECT hCommand)// Getting property valueINT nEnabled = _ObjectGetProperty(hCommand, "Enabled");// Setting property value_ObjectSetProperty(hCommand, "Enabled", -1);

END

ICommand.Pressed [Property][Get/Set]

Gets and Sets this command’s Pressed state.

Defined As

[VBA] Boolean Pressed

[Cicode] INT Pressed

[C++] VARIANT_BOOL Pressed

Execution Result

If the property get succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument.

Limits

True (-1): Pressed

False (0): UnPressed

Remarks

This is only useful for toggle buttons, indicating whether or not the button is in a pressed down state. The setting of this property is only valid for custom commands.

Calling Syntax

This example assumes there is a valid Command object as retrieved from a Process Analyst’s CommandSystem. (e.g., VBA: ProcessAnalyst.CommandSystem.Item(1))

Page 114: Vijeo Citect Process Analyst

98

[VBA]

Sub Example(Command As Object)Dim pressed As Boolean‘Getting Property valuepressed = Command.Pressed‘Setting Property valueCommand.Pressed = True

End Sub

[Cicode]

FUNCTION Example(OBJECT hCommand)// Getting property valueINT nPressed = _ObjectGetProperty(hCommand, "Pressed");// Setting property value_ObjectSetProperty(hCommand, "Pressed", -1);

END

ICommand.Tooltip [Property][Get]

Gets this commands Tooltip text.

Defined As

[VBA] String Tooltip

[Cicode] STRING Tooltip

[C++] VARIANT_BOOL Tooltip

Execution Result

If the property get succeeds, the return value will be Success. If the return variable is invalid, the return value will be InvalidArgument. If the command has been deleted, the return value will be GeneralFailure.

Remarks

This returns the text that is displayed in a tooltip window when the mouse pointer hovers over the command’s button.

Calling Syntax

This example assumes there is a valid Command object as retrieved from a Process Analyst’s CommandSystem. (e.g., VBA: ProcessAnalyst.CommandSystem.Item(1))

[VBA]

Sub Example(Command As Object)Dim tooltip As String‘Getting Property valuetooltip = Command.Tooltip

End Sub

[Cicode]

FUNCTION Example(OBJECT hCommand)// Getting property valueSTRING sTooltip = _ObjectGetProperty(hCommand, "Tooltip");

END

Page 115: Vijeo Citect Process Analyst

99

ICommand.Privilege [Property][Get]

Gets the privilege required to gain access to this command.

Defined As

[VBA] Integer Privilege

[Cicode] INT Privilege

[C++] int Privilege

Execution Result

If the property get succeeds, the return value will be Success. If the return variable is invalid, the return value will be InvalidArgument. If the command has been deleted, the return value will be GeneralFailure.

Remarks

This is the required privilege level of the currently logged in Vijeo Citect user to enable the state of this command, and hence allow access through the user interface. If the currently logged in Vijeo Citect user doesn’t have this privilege, any buttons tied to this command will be disabled.

Calling Syntax

This example assumes there is a valid Command object as retrieved from a Process Analyst’s CommandSystem. (e.g., VBA: ProcessAnalyst.CommandSystem.Item(1))

[VBA]

Sub Example(Command As Object)Dim privilege As Integer‘Getting Property valueprivilege = Command.Privilege

End Sub

[Cicode]

FUNCTION Example(OBJECT hCommand)// Getting property valueINT nPrivilege = _ObjectGetProperty(hCommand, "Privilege");

END

ICommandSystem InterfaceDefined As

[VBA] Object

[Cicode] OBJECT

[C++] ICommandSystem

Methods (3)

ICommandSystem.Create [Method]ICommandSystem.Execute [Method]ICommandSystem.Remove [Method]

Properties (4)

ICommandSystem.Count [Property][Get]ICommandSystem.Item [Property][Get]

Page 116: Vijeo Citect Process Analyst

100

ICommandSystem._NewEnum [Property][Get]ICommandSystem.ItemById [Property][Get]

ICommandSystem.Count [Property][Get]

Gets the number of commands in the command system.

Defined As

[VBA] Long Count

[Cicode] INT Count

[C++] int Count

Execution Result

If the property get succeeds, the return value will be Success.

Calling Syntax

This example assumes there is a valid CommandSystem object as retrieved from a Process Analyst. (e.g., VBA: ProcessAnalyst.CommandSystem).

[VBA]

Function Example(CommandSystem As Object)Dim count As Long‘Getting Property valuecount = CommandSystem.Count

End Function

[Cicode]

FUNCTION Example(OBJECT hCommandSystem)// Getting property valueINT nCount = _ObjectGetProperty(hCommandSystem, "Count");

END

ICommandSystem.Item [Property][Get]

Gets the Command at a supplied index location in this collection.

Defined As

[VBA] Item(index As Long) as Object

[Cicode] OBJECT Item(INT index)

[C++] Item(int index, ICommand* Item)

Parameters

index

[in] Indicates the index location of the command to return from this collection. (One based)

Execution Result

If the property get succeeds, the return value will be Success. If the index is out of range, the return value will be InvalidArgument.

Calling Syntax

This example assumes there is a valid CommandSystem object as retrieved from a Process Analyst. (e.g., VBA: ProcessAnalyst.CommandSystem).

Page 117: Vijeo Citect Process Analyst

101

[VBA]

Sub Example(CommandSystem As Object)Dim command As Object‘Getting Property valueSet command = CommandSystem.Item(1)

End Sub

[Cicode]

FUNCTION Example(OBJECT hCommandSystem)// Getting property valueOBJECT hCommand = _ObjectCallMethod(hCommandSystem, "get_Item", 1);

END

ICommandSystem._NewEnum [Property][Get]

This allows “For… Each… Next” integration in VB.

Calling Syntax

This example assumes there is a valid CommandSystem object as retrieved from a Process Analyst. (e.g., VBA: ProcessAnalyst.CommandSystem). This property is not applicable to Cicode.

[VBA]

Sub Example(CommandSystem As Object)Dim command As ObjectDim count Object‘Using Property For Each command In CommandSystem

count = count + 1Next command

End Sub

ICommandSystem.ItemById [Property][Get]

Gets the Command at a supplied index location in this collection.

Defined As

[VBA] Object Command

[Cicode] OBJECT hCommand

[C++] ICommand* Command

Parameters

commandId

[in] Indicates command ID of the command to return from this collection.

Calling Syntax

This example assumes there is a valid CommandSystem object as retrieved from a Process Analyst. (e.g., VBA: ProcessAnalyst.CommandSystem).

[VBA]

Sub Example(CommandSystem As Object)Dim command As Object‘Getting Property valueSet command = CommandSystem.ItemById(Citect_Command_AddPen)

End Sub

Page 118: Vijeo Citect Process Analyst

102

[Cicode]

FUNCTION Example(OBJECT hCommandSystem)// Getting property valueOBJECT hCommand = _ObjectCallMethod (hCommandSystem," get_ItemById",

Citect_Command_AddPen);END

ICommandSystem.Create [Method]

Creates a new Command object that is added to the CommandSystem.

Defined As

[VBA] object Create (commandID As String, buttonType As Integer, tooltip As String, iconPath As String, privilege As Integer)

[Cicode] OBJECT Create (STRING commandID, INT buttonType, STRING tooltip, STRING iconPath, INT Pprivilege)

[C++] HRESULT Create (BSTR commandID, ToolbarButtonType ButtonType, BSTR tooltip, BSTR iconPath, int privilege, ICommand** Val)

Parameters

commandID

[in] A unique identifier for this command (1-64 characters).

buttonType

[in] A value representing a button type.

ToolbarButtonType_Push = 0

ToolbarButtonType_Toggle = 1

ToolbarButtonType_Separator = 2tooltip

[in] The text to be displayed as a tooltip for this command (1-64 characters).

iconPath

[in] The path to an icon file that will be used as this command’s picture.

privilege

[in] A privilege value required by the Vijeo Citect user to gain access to this command (0-8).

Execution Result

If the method succeeds, the return value is Success. If an argument is invalid or out of range, the return value is InvalidArgument. If the command was not created, the return value is GeneralFailure.

Remarks

The commandID cannot begin with the prefix “Citect_”.

Calling Syntax

This example assumes there is a valid CommandSystem object as retrieved from a Process Analyst. (e.g., VBA: ProcessAnalyst.CommandSystem).

Page 119: Vijeo Citect Process Analyst

103

[VBA]

Sub Example(CommandSystem As Object)Dim command As ObjectSet command = CommandSystem.Create(CommandIO, "Some tooltip text", "c:\someicon.ico",

5)End Sub

[Cicode]

FUNCTION Example(OBJECT hCommandSystem)OBJECT hCommand = _ObjectCallMethod(hCommandSystem, "Create", CommandIO, "Some tooltip

text", "c:\someicon.ico", 5);END

ICommandSystem.Execute [Method]

Executes the specified command’s action.

Defined As

[VBA] Execute (commandId As String)

[Cicode] Execute (STRING commandId)

[C++] HRESULT Execute(BSTR commandId)

Parameters

commandId

[in] The unique ID of the command whose action is to be executed.

Execution Result

If this method succeeds, the retun value will be Success. If the command is invalid, the return value will be InvalidArgument.

Remarks

If the current Operator does not have the correct privilege, the command will not execute.

Calling Syntax

This example assumes there is a valid CommandSystem object as retrieved from a Process Analyst. (e.g., VBA: ProcessAnalyst.CommandSystem).

[VBA]

Sub Example(CommandSystem As Object)CommandSystem.Execute(Citect_Command_AddPen)

End Sub

[Cicode]

FUNCTION Example(OBJECT hCommandSystem)_ObjectCallMethod(hCommandSystem, "Execute", Citect_Command_AddPen);

END

ICommandSystem.Remove [Method]

Removes the specified command.

Defined As

[VBA] Remove (commandId As String)

[Cicode] Remove (STRING CommandId)

Page 120: Vijeo Citect Process Analyst

104

[C++] HRESULT Remove(BSTR CommandId)

Parameters

commandId

[in] The ID of the command to be removed.

Calling Syntax

This example assumes there is a valid CommandSystem object as retrieved from a Process Analyst. (e.g., VBA: ProcessAnalyst.CommandSystem).

[VBA]

Sub Example(CommandSystem As Object)CommandSystem.Remove(“MyCommand1”)

End Sub

[Cicode]

FUNCTION Example(OBJECT hCommandSystem)_ObjectCallMethod(hCommandSystem, "Remove", “MyCommand1”);

END

ICursors InterfaceDefined As

[VBA] Object

[Cicode] OBJECT

[C++] ICursors

Methods

ICursors.Create [Method]ICursors.RemoveAll [Method]

Properties

ICursors.Item [Property][Get]ICursors._NewEnum [Property][Get]ICursors.Count [Property][Get]ICursors.ItemByName [Property][Get]

ICursors.Create [Method]

Creates a new TrendCursor at the given location.

Defined As

[VBA] Object Create(name As String, position As Integer)

[Cicode] OBJECT Create(STRING name, INT position)

[C++] HRESULT Create(BSTR name, int position, ITrendCursor** ppTrendCursor)

Parameters

name

[in] The desired unique name of the new cursor. This must be between 1 and 250 characters.

Page 121: Vijeo Citect Process Analyst

105

position

[in] The initial position of the new cursor. This value is given as the number of pixels from the left of the Process Analyst graph view.

Execution Result

If the function succeeds, the return value will be Success. If the name is out of range, the return value will be InvalidArgument. If the name is not unique, the return value will be InvalidArgument.

If an unexpected error occurs, the return value will be GeneralFailure.

Remarks

The cursor name must be unique. Attempting to create a cursor with a name that is already in use will result in error and the new cursor will not be created.

Calling Syntax

[VBA]

Sub Example(cursors As Object)Dim newCursor As ObjectnewCursor = cursors.Create(“Cursor1”, 100)

End Sub

[Cicode]

FUNCTION Example(OBJECT hCursors)OBJECT hNewCursor = _ObjectCallMethod(hCursors, “Create”, “Cursor1”, 100);

END

ICursors.RemoveAll [Method]

Removes all cursors from the collection.

Defined As

[VBA] RemoveAll()

[Cicode] RemoveAll()

[C++] HRESULT RemoveAll()

Execution Result

If the function succeeds the return value will be Success. If an unexpected error occurs, the return value will be GeneralFailure.

Calling Syntax

This example assumes there is a valid Cursors object to be passed into the example methods.

[VBA]

Sub Example(cursors As Object)cursors.RemoveAll

End Sub

[Cicode]

FUNCTION Example(OBJECT hCursors)_ObjectCallMethod(hCursors, "RemoveAll");

End Sub

Page 122: Vijeo Citect Process Analyst

106

ICursors.Item [Property][Get]

Retrieves the Cursor from the collection at the specified index.

Defined As

[VBA] Object Item(index As Integer)

[Cicode] OBJECT get_Item(INT index)

[C++] HRESULT get_Item (long index, ITrendCursor **cursor)

Parameters

index

[in] The index of the required cursor.

Execution Result

If the property get succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument.

If the index is out of range, the return value will be InvalidArgument. If the collection is deleted, the return value will be GeneralFailure.

Remarks

The index for the collection is 1 based. The valid range for this parameter is between 1 and the total number of cursors.

Calling Syntax

This example assumes you have a valid reference to the cursors collection and that there are two items in the collection.

[VBA]

Sub Example(hCursors As Object)Dim hSecondCursor As ObjectSet hSecondCursor = hCursors.Item(2)

End Sub

[Cicode]

Sub Example(OBJECT hCursors)OBJECT hSecondCursor = _ObjectCallMethod(hCursors, "get_Item", 2);

END

ICursors._NewEnum [Property][Get]

Retrieves an enumerator for the cursors collection.

Defined As

[VBA] Object _NewEnum()

[C++] HRESULT get__NewEnum(LPUNKNOWN *pVal)

Execution Result

If the property get succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the collection is deleted, the return value will be GeneralFailure.

Remarks

Provided for the implementation of For Each...Next loops in Citect VBA (See Calling Syntax, below). This property cannot be used in Cicode.

Page 123: Vijeo Citect Process Analyst

107

Calling Syntax

This example assumes you have a valid reference to the cursors collection and that there are cursors in the collection.

[VBA]

Sub Example(cursors As Object)Dim cursor As ObjectDim count As Integer = 0For Each cursor In cursors

Set count = count + 1Next

End Sub

ICursors.Count [Property][Get]

Returns the number of cursors in the collection.

Defined As

[VBA] Integer Count()

[Cicode] INT Count()

[C++] HRESULT get_Count (long *pCount)

Execution Result

If the property get succeeds the return value will be Success. If the return variable is bad then the return value will be InvalidArgument. If the collection is deleted the return value will be GeneralFailure.

Remarks

This property may be used in conjunction with the Item property to iterate through the collection in Cicode.

Calling Syntax

This example assumes you have a valid reference to the cursors collection.

[VBA]

Sub Example(cursors As Object)Dim cursorCount As IntegercursorCount = cursors.Count

End Sub

[Cicode]

FUNCTION Example(OBJECT hCursors)INT cursorCount;cursorCount = _ObjectGetProperty(hCursors, "Count");

END

ICursors.ItemByName [Property][Get]

Retrieves the Cursor at the specified index.

Defined As

[VBA] Object ItemByName(name As String)

[Cicode] OBJECT get_ItemByName(STRING name)

[C++] HRESULT get_ItemByName (BSTR name, ITrendCursor **cursor)

Page 124: Vijeo Citect Process Analyst

108

Parameters

name

[in] The name of the required cursor.

Execution Result

If the property get succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the cursor is not found, the return value will be InvalidArgument.

If the collection is deleted, the return value will be GeneralFailure.

Calling Syntax

This example assumes you have a valid reference to the cursors collection, and that there is a cursor in the collection named “MyCursor”.

[VBA]

Sub Example(cursors As Object)Dim cursor As ObjectSet cursor = cursors.ItemByName("MyCursor")

End Sub

[Cicode]

FUNCTION Example(OBJECT hCursors)OBJECT hCursor = _ObjectCallMethod(hCursors, "get_ItemByName", "MyCursor");

END

IDigitalPen InterfaceDefined As

[VBA] Object

[Cicode] OBJECT

[C++] IDigitalPen

Methods (0)

Properties (4)

IDigitalPen.FillColor [Property][Get/Set]IDigitalPen.LineColor [Property][Get/Set]IDigitalPen.LineWidth [Property][Get/Set]IDigitalPen.Fill [Property][Get/Set]

IDigitalPen.FillColor [Property][Get/Set]

Gets or Sets the color that will be used to fill the area under the line when the value is 1.

Defined As

[VBA] Long FillColor

[Cicode] INT FillColor

[C++] OLE_COLOR FillColor

Execution Result

Page 125: Vijeo Citect Process Analyst

109

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.

Remarks

The color value can be calculated using the following formula:

color = (65536 * blue) + (256 * green) + (red)

where red, green, and blue are 0-255. The area under the line is filled with this color if the value of the Fill property is True (-1).

See Also IDigitalPen.Fill [Property][Get/Set]

Calling Syntax

This example assumes there is a valid DigitalPen object to be passed into the example methods.

[VBA]

Sub Example(digitalPen As Object)Dim fillColor As Long‘Getting Property valuefillColor = digitalPen.FillColor‘Setting Property to reddigitalPen.FillColor = 255

End Sub

[Cicode]

FUNCTION Example(OBJECT hDigitalPen)// Getting property valueINT nFillColor = _ObjectGetProperty(hDigitalPen, "FillColor");// Setting property to red_ObjectSetProperty(hDigitalPen, "FillColor", 255);

END

IDigitalPen.LineColor [Property][Get/Set]

Gets or Sets the color that will be used to draw the pen line.

Defined As

[VBA] Long LineColor

[Cicode] INT LineColor

[C++] OLE_COLOR LineColor

Execution Result

If the property get/set succeeds the return value will be Success. If the return variable is bad then the return value will be InvalidArgument. If the pen is deleted the return value will be GeneralFailure.

Remarks

The color value can be calculated using the following formula: color = (65536 * Blue) + (256 * Green) + (Red). Where red, green and blue are 0-255.

Calling Syntax

Page 126: Vijeo Citect Process Analyst

110

This example assumes there is a valid DigitalPen object to be passed into the example methods.

[VBA]

Sub Example(digitalPen As Object)Dim lineColor As Long‘Getting Property valuelineColor = DigitalPen.LineColor‘Setting Property to reddigitalPen.LineColor = 255

End Sub

[Cicode]

FUNCTION Example(OBJECT hDigitalPen)// Getting property valueINT nLineColor = _ObjectGetProperty(hDigitalPen, "LineColor");// Setting property to red_ObjectSetProperty(hDigitalPen, "LineColor", 255);

END

IDigitalPen.LineWidth [Property][Get/Set]

Gets or sets the width in pixels of the pen line when it is drawn.

Defined As

[VBA] Long LineWidth

[Cicode] INT LineWidth

[C++] int LineWidth

Execution Result

If the property get/set succeeds the return value will be Success. If the return variable is bad then the return value will be InvalidArgument. If the pen is deleted the return value will be GeneralFailure.

Limits

Minimum = 0

Maximum = 8

Calling Syntax

This example assumes there is a valid Digital Pen object to be passed into the example methods.

[VBA]

Sub Example(digitalPen As Object)Dim lineWidth As Long‘Getting Property valuelineWidth = digitalPen.LineWidth‘Setting Property valuedigitalPen.LineWidth = 5

End Sub

[Cicode]

FUNCTION Example(OBJECT hDigitalPen)// Getting property valueINT nLineWidth = _ObjectGetProperty(hDigitalPen, "LineWidth");

Page 127: Vijeo Citect Process Analyst

111

// Setting property value_ObjectSetProperty(hDigitalPen, "LineWidth", 5);

END

IDigitalPen.Fill [Property][Get/Set]

Gets or sets whether the pen fill is displayed.

Defined As

[VBA] Boolean Fill

[Cicode] INT Fill

[C++] VARIANT_BOOL Fill

Execution Result

If the property get/set succeeds the return value will be Success. If the return variable is bad then the return value will be InvalidArgument. If the pen is deleted the return value will be GeneralFailure.

Remarks

If the pen is filled, the area under the pen line will be filled with the color specified by the FillColor property.

See Also IDigitalPen.FillColor [Property][Get/Set]

Limits

True (-1): = Fill is displayed

False (0): = Fill is hidden

Calling Syntax

This example assumes there is a valid digital pen object to be passed into the example methods.

[VBA]

Sub Example(digitalPen As Object)Dim fill As Boolean‘Getting Property valuefill = digitalPen.Fill‘Setting Property valuedigitalPen.Fill = True

End Sub

[Cicode]

FUNCTION Example(OBJECT hDigitalPen)// Getting property valueINT nFill = _ObjectGetProperty(hDigitalPen, "Fill");// Setting property value_ObjectSetProperty(hDigitalPen, "Fill", -1);

END

IObjectView InterfaceDefined As

[VBA] Object

Page 128: Vijeo Citect Process Analyst

112

[Cicode] OBJECT

[C++] IObjectView

Methods (0)

Properties (7)

IObjectView.Visible [Property][Get/Set]IObjectView.Height [Property][Get/Set]IObjectView.BackgroundColor [Property][Get/Set]IObjectView.ForeColor [Property][Get/Set]IObjectView.Columns [Property][Get]IObjectView.Items [Property][Get]IObjectView.SelectedItem [Property][Get]

IObjectView.Visible [Property][Get/Set]

Gets or Sets the visibility of the Object View window.

Defined As

[VBA] Boolean Visible

[Cicode] INT Visible

[C++] VARIANT_BOOL Visible

Execution Result

If the property get succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument.

Limits

True (-1): Visible

False (0): Hidden

Remarks

By hiding the ObjectView, the chart gains the real estate previously held by it, and likewise the chart loses real estate when the ObjectView gets shown.

Calling Syntax

Assume that there is an IObjectView object being passed in as a parameter.

[VBA]

Sub Example(objectView As Object)Dim visible As Boolean‘Getting Property valuevisible = objectView.Visible‘Setting Property valueobjectView.Visible = False

End Sub

[Cicode]

FUNCTION Example(OBJECT hObjectView)INT bVisible = 0// Getting property valuebVisible = _ObjectGetProperty(hObjectView, "Visible");

Page 129: Vijeo Citect Process Analyst

113

// Setting Property to false_ObjectSetProperty(hObjectView, "Visible", 0);

END

IObjectView.Height [Property][Get/Set]

Gets or Sets the height in pixels of the Object View window.

Defined As

[VBA] Long Height

[Cicode] INT Height

[C++] int Height

Execution Result

If the property get succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. A height value less than 0 will be InvalidArgument.

Limits

Height must be 0 or greater.

Remarks

As the ObjectView and chart both share the same window, by enlarging the ObjectView, you make the Chart smaller and vice versa.

Calling Syntax

This example assumes that there is an IObjectView object being passed in as a parameter.

[VBA]

Sub Example(objectView As Object)Dim height As Long‘Getting Property valueheight = objectView.Height‘Setting Property valueobjectView.Height = 25

End Sub

[Cicode]

FUNCTION Example(OBJECT hObjectView)INT nHeight = 0;// Getting property valuenHeight = _ObjectGetProperty(hObjectView, "Height");// Setting Property to false_ObjectSetProperty(hObjectView, "Height", 25);

END

IObjectView.BackgroundColor [Property][Get/Set]

Gets or Sets the background color of the ObjectView. This number is treated as an OLE_COLOR inside the Process Analyst.

Defined As

[VBA] Long BackgroundColor

[Cicode] INT BackgroundColor

Page 130: Vijeo Citect Process Analyst

114

[C++] OLE_COLOR BackgroundColor

Execution Result

If the property get succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument.

Remarks

The color value can be calculated using the following formula: color = (65536 * Blue) + (256 * Green) + (Red). Where red, green and blue are 0-255.

Calling Syntax

This example assumes that there is an IObjectView object being passed in as a parameter.

[VBA]

Sub Example(objectView As Object)Dim backgroundColor As Long‘Getting Property valuebackgroundColor = objectView.BackgroundColor‘Setting Property value to redobjectView.BackgroundColor = 255

End Sub

[Cicode]

FUNCTION Example(OBJECT hObjectView)// Getting property valueINT nBackgroundColor =_ObjectGetProperty(hObjectView,"BackgroundColor");// Setting Property to Red_ObjectSetProperty(hObjectView, "BackgroundColor", 255);

END

IObjectView.ForeColor [Property][Get/Set]

Gets or Sets the Fore color (text and color box outlines) of the ObjectView. This number is treated as an OLE_COLOR inside the Process Analyst.

Defined As

[VBA] Long ForeColor

[Cicode] INT ForeColor

[C++] OLE_COLOR ForeColor

Execution Result

If the property get succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument.

Remarks

The color value can be calculated using the following formula: color = (65536 * Blue) + (256 * Green) + (Red). Where red, green and blue are 0-255.

Calling Syntax

This example assumes that there is an IObjectView object being passed in as a parameter.

Page 131: Vijeo Citect Process Analyst

115

[VBA]

Sub Example(objectView As Object)Dim foreColor As Long‘Getting Property valueforeColor = objectView.ForeColor‘Setting Property value to redobjectView.ForeColor = 255

End Sub

[Cicode]

FUNCTION Example(OBJECT hObjectView)INT nForeColor = 0;// Getting property valuenForeColor = _ObjectGetProperty(hObjectView, "ForeColor");// Setting Property to red_ObjectSetProperty(hObjectView, "ForeColor", 255);

END

IObjectView.Columns [Property][Get]

Gets the automation object representing the collection of columns currently visible in the ObjectView.

Defined As

[VBA] Object Columns

[Cicode] OBJECT Columns

[C++] IObjectViewColumns* Columns

Execution Result

If the property get succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument.

Calling Syntax

This example assumes that there is an IObjectView object being passed in as a parameter.

[VBA]

Sub Example(objectView As Object)Dim columns As Object‘Getting Property valueSet columns = objectView.Columns

End Sub

[Cicode]

FUNCTION Example(OBJECT hObjectView)// Getting property valueOBJECT hColumns = _ObjectGetProperty(hObjectView, "Columns");

END

IObjectView.Items [Property][Get]

Gets the automation object representing the collection of items at the root of the ObjectView tree.

Defined As

[VBA] Object Items

Page 132: Vijeo Citect Process Analyst

116

[Cicode] OBJECT Items

[C++] IObjectViewItems* Items

Execution Result

If the property get succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument.

Remarks

The method will provide a list of all the pane items in tree. Each pane item has an Items property which allows access to the pen items listed under it.

Calling Syntax

This example assumes that there is an IObjectView object being passed in as a parameter.

[VBA]

Sub Example(objectView As Object)Dim items As Object‘Getting Property valueSet items = objectView.Items

End Sub

[Cicode]

FUNCTION Example(OBJECT hObjectView)// Getting property valueOBJECT hItems = _ObjectGetProperty(hObjectView, "Items");

END

IObjectView.SelectedItem [Property][Get]

Gets the current primary selection in the ObjectView. This is the pen item that was last selected.

Defined As

[VBA] Object SelectedItem

[Cicode] OBJECT SelectedItem

[C++] IObjectViewItem* SelectedItem

Execution Result

If the property get succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument.

Calling Syntax

This example assumes that there is an IObjectView object being passed in as a parameter.

[VBA]

Sub Example(objectView As Object)Dim selectedItem As Object‘Getting Property valueSet selectedItem = objectView.SelectedItem

End Sub

Page 133: Vijeo Citect Process Analyst

117

[Cicode]

FUNCTION Example(OBJECT hObjectView)// Getting property valueOBJECT hSelectedItem = _ObjectGetProperty(hObjectView, "SelectedItem");

END

IObjectViewColumn InterfaceDefined As

[VBA] Object

[Cicode] OBJECT

[C++] IObjectViewColumn

Methods (0)

Properties (3)

IObjectViewColumn.Name [Property][Get]IObjectViewColumn.Text [Property][Get]IObjectViewColumn.Width [Property][Get/Set]

IObjectViewColumn.Name [Property][Get]

Retrieves the unique identifier of this column.

Defined As

[VBA] String Name

[Cicode] STRING Name

[C++] BSTR Name

Execution Result

If the property get succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument.

Calling Syntax

This example assumes there is a valid column as retrieved from an ObjectView. (e.g., VBA: objectView.Columns.Item(1)).

[VBA]

Sub Example(objectViewColumn As Object)Dim name As String‘Getting Property valuename = objectViewColumn.Name

End Sub

[Cicode]

FUNCTION Example(OBJECT hObjectViewColumn)// Getting property valueSTRING name = _ObjectGetProperty(hObjectViewColumn, "Name");

END

IObjectViewColumn.Text [Property][Get]

Gets the Text that is being displayed for this columns header.

Defined As

Page 134: Vijeo Citect Process Analyst

118

[VBA] String Text

[Cicode] STRING Text

[C++] BSTR Text

Execution Result

If the property get succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument.

Calling Syntax

This example assumes there is a valid column as retrieved from an ObjectView. (e.g., VBA: objectView.Columns.Item(1)).

[VBA]

Sub Example(objectViewColumn As Object)Dim text As String‘Getting Property valuetext = objectViewColumn.Text

End Sub

[Cicode]

FUNCTION Example(OBJECT hObjectViewColumn)// Getting property valueSTRING text = _ObjectGetProperty(hObjectViewColumn, "Text");

END

IObjectViewColumn.Width [Property][Get/Set]

Gets or Sets the width in pixels of this column.

Defined As

[VBA] Long Width

[Cicode] INT Width

[C++] int Width

Execution Result

If the property get succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the width is out of range, the result will be InvalidArgument.

Limits

A valid width is 0-1000.

Calling Syntax

This example assumes there is a valid column as retrieved from an ObjectView. (e.g., VBA: objectView.Columns.Item(1)).

[VBA]

Sub Example(objectViewColumn As Object)Dim width As Long‘Getting Property valuewidth = objectViewColumn.Width

Page 135: Vijeo Citect Process Analyst

119

‘Setting Property valueobjectViewColumn.Width = 150

End Sub

[Cicode]

FUNCTION Example(OBJECT hObjectViewColumn)// Getting property valueINT width = _ObjectGetProperty(hObjectViewColumn, "Width");_ObjectSetProperty(hObjectViewColumn, "Width", 150);

END

IObjectViewColumns InterfaceDefined As

[VBA] Object

[Cicode] OBJECT

[C++] IObjectViewColumns

Methods (4)

IObjectViewColumns.Add [Method]IObjectViewColumns.Hide [Method]IObjectViewColumns.Remove [Method]IObjectViewColumns.Show [Method]

Properties (4)

IObjectViewColumns.Count [Property][Get]IObjectViewColumns.Item [Property][Get]IObjectViewColumns.ItemByName [Property][Get]IObjectViewColumns._NewEnum [Property][Get]

IObjectViewColumns.Add [Method]

Adds a visible custom column to the ObjectView.

Defined As

[VBA] Add(name As String, DisplayText As String, Width As Long)

[Cicode] Add(STRING name, STRING DisplayText, INT Width)

[C++] HRESULT Add (BSTR name, BSTR text, int width)

Parameters

name

[in] The string ID uniquely identifying this column (1-64).

text

[in] The title to be displayed in the column header (0-256).

width

[in] The width of this column in pixels (0-1000).

Execution Result

If the method succeeds, the return value will be Success. If an argument is out of range, the return value will be InvalidArgument. If the column cannot be added, the return value is GeneralFailure.

Page 136: Vijeo Citect Process Analyst

120

See Also OVColumnAdded [Event]

Calling Syntax

This example assumes there is a valid Columns collection as retrieved from an ObjectView. (e.g., VBA: objectView.Columns).

[VBA]

Sub Example(Columns As Object)Columns.Add "NameID", "New Column", 120;

End Sub

[Cicode]

FUNCTION Example(OBJECT hColumns)_ObjectCallMethod(hColumns, "Add", "NameID", "New Column", 120);

END

IObjectViewColumns.Hide [Method]

Makes the specified column hidden within the Object View.

Defined As

[VBA] Hide(columnName As String)

[Cicode] Hide(STRING columnName)

[C++] HRESULT Hide(BSTR columnName)

Parameters

columnName

[in] The string ID uniquely identifying the column you want to hide

Execution Result

If the property get succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the field cannot be set, GeneralFailure is returned.

See Also IObjectViewColumns.Show [Method]

Calling Syntax

This example assumes there is a columns Collection from an ObjectView. (e.g., VBA: objectView.Columns).

[VBA]

Sub Example(columns As Object)columns.Hide "Error"

End Sub

[Cicode]

FUNCTION Example(OBJECT hColumns)_ObjectCallMethod(hColumns, "Hide", "Error");

END

IObjectViewColumns.Remove [Method]

Removes the specified custom column from the Object View columns.

Defined As

[VBA] Remove(columnName As String)

Page 137: Vijeo Citect Process Analyst

121

[Cicode] OBJECT Remove(STRING columnName)

[C++] Remove(STRING columnName)

Parameters

columnName

[in] Indicates the unique name of the column to remove from this collection.

Execution Results

If the method succeeds, the return value will be Success. If the column cannot be found, the return value will be InvalidArgument.

Remarks

Only user created custom columns can be removed.

Calling Syntax

This example assumes there is a valid Columns collection object to be passed into the example methods.

[VBA]

Sub Example(columns As Object)Dim column As Object‘Getting Property valueSet column = columns.Remove(“MyCustomColumn”)

End Sub

[Cicode]

FUNCTION Example(OBJECT hColumns)// Getting property valueOBJECT hColumn = _ObjectCallMethod(hColumns, "get_ItemByName", "MyCustomColumn");

END

IObjectViewColumns.Show [Method]

Makes the specified column visible within the Object View.

Defined As

[VBA] Show(columnName As String)

[Cicode] Show(STRING columnName)

[C++] HRESULT Show(BSTR columnName)

Parameters

columnName

[in] The string ID uniquely identifying the column you want to make visible

Execution Result

If the property get succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the field cannot be set, then GeneralFailure is returned.

See Also IObjectViewColumns.Hide [Method]

Calling Syntax

Page 138: Vijeo Citect Process Analyst

122

This example assumes there is a columns Collection from an ObjectView. (e.g., VBA: objectView.Columns).

[VBA]

Sub Example(columns As Object)columns.Show "Error"

End Sub

[Cicode]

FUNCTION Example(OBJECT hColumns)_ObjectCallMethod(hColumns, "Show", "Error");

END

IObjectViewColumns.Count [Property][Get]

Gets the number of Columns in this columns collection.

Defined As

[VBA] Long Count

[Cicode] INT Count

[C++] int Count

Execution Result

If the property get succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument.

Calling Syntax

This example assumes there is a valid Columns collection as retrieved from an ObjectView. (e.g., VBA: ObjectView.Columns).

[VBA]

Function Example(Columns As Object)Dim count As Long‘Getting Property valuecount = Columns.Count

End Function

[Cicode]

FUNCTION Example(OBJECT hColumns)// Getting property valueINT nCount = _ObjectGetProperty(hColumns, "Count");

END

IObjectViewColumns.Item [Property][Get]

Gets the ObjectViewItem at a supplied index location in this collection.

Defined As

[VBA] Item(index As Long) as Object

[Cicode] OBJECT Item(INT index)

[C++] Item(int index, IObjectViewColumn* Item)

Parameters

index

Page 139: Vijeo Citect Process Analyst

123

[in] Indicates the index location of the column to return from this collection. (One based)

Calling Syntax

This example assumes there is a valid Columns collection as retrieved from an ObjectView (e.g., VBA: objectView.Columns).

[VBA]

Sub Example(Columns As Object)Dim column As Object‘Getting Property valueSet column = Columns.Item(1)

End Sub

[Cicode]

FUNCTION Example(OBJECT hColumns)// Getting property valueOBJECT hColumn = _ObjectCallMethod(hColumns, "get_Item", 1);

END

IObjectViewColumns.ItemByName [Property][Get]

Returns a reference to the column object with the given name from this column’s collection.

Defined As

[VBA] ItemByName(columnName As String) as Object

[Cicode] OBJECT ItemByName(STRING columnName)

[C++] ItemByName(STRING columnName, IObjectViewColumn* Item)

Parameters

columnName

[in] Indicates the unique name of the column item to return from this collection.

Execution Results

If the method succeeds, the return value will be Success. If the column cannot be found, the return value will be InvalidArgument.

Calling Syntax

This example assumes there is a valid Columns collection object to be passed into the example methods.

[VBA]

Sub Example(columns As Object)Dim column As Object‘Getting Property valueSet column = columns.ItemByName(“Duration”)

End Sub

Page 140: Vijeo Citect Process Analyst

124

[Cicode]

FUNCTION Example(OBJECT hColumns)// Getting property valueOBJECT hColumn = _ObjectCallMethod(hColumns, "get_ItemByName", "Duration");

END

IObjectViewColumns._NewEnum [Property][Get]

This allows “For… Each… Next” integration in VB.

Calling Syntax

This example assumes there is a valid Columns collection as retrieved from an ObjectView. (e.g., VBA: objectView.Columns). This property is not applicable in Cicode.

[VBA]

Sub Example(Columns As Object)Dim column As ObjectDim count Object‘Using Property For Each column In Columns

count = count + 1Next column

End Sub

IObjectViewItem InterfaceDefined As

[VBA] Object

[Cicode] OBJECT

[C++] IObjectViewItem

Methods (2)

IObjectViewItem.GetField [Method]IObjectViewItem.PutField [Method]

Properties (3)

IObjectViewItem.Expanded [Property][Get/Set]IObjectViewItem.Tag [Property][Get/Set]IObjectViewItem.Items [Property][Get]

IObjectViewItem.GetField [Method]

Returns the string value of a displayed field for a specified column on this item.

The IObjectViewItem interface is hierarchical to two levels – pane and then pen. The result of the GetField method will depend on what type of item it is called on. To access the fields for a pen, for example, you have to first get the items collection for the pane item, then get the pen item.

Defined As

[VBA] GetField(ColumnName As String) as String

[Cicode] STRING GetField (STRING ColumnName)

[C++] HRESULT GetField (BSTR ColumnName, BSTR *Val)

Page 141: Vijeo Citect Process Analyst

125

Parameters

ColumnName

[in] The string ID uniquely identifying the column whose field value is being queried for.

Execution Result

If the property get succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the ColumnName does not exist, InvalidArgument will be returned.

Calling Syntax

This example gets the Scale property of the first pen in the first pane. It assumes there is a valid Item as retrieved from an Items Collection from an ObjectView. (e.g., VBA: objectView.Items.Item(1))

[VBA]

Sub Example()Dim paneItem As ObjectDim penItem As ObjectDim fieldValue As StringSet paneItem = Test_CPA.ObjectView.Items.Item(1) 'Get the first pane of the ObjectViewSet penItem = paneItem.Items.Item(1) 'Get the first pen from the first panepenItem.GetField "Scale", fieldValue 'Get the value of the scale field

End Sub

[CICODE]

FUNCTION Example(OBJECT hObjectView)OBJECT hPaneItems = _ObjectGetProperty(hObjectView, "Items");OBJECT hPaneItem = _ObjectCallMethod(hPaneItems, "get_Item", 1); // Get the first pane

of the ObjectViewOBJECT hPenItems = _ObjectGetProperty(hPaneItem, "Items"); // Get the collection of

pens from the first paneOBJECT hPenItem = _ObjectCallMethod(hPenItems, "get_Item", 1); // Get the first Pen

itemSTRING sValue;_ObjectCallMethod(hPenItem, "GetField", "Scale", sValue); // Get the value of the scale

fieldEND

IObjectViewItem.PutField [Method]

Sets the display string in a field’s cell for a specified column on this item.

The IObjectViewItem interface is hierarchical to two levels – pane and then pen. The scope of the PutField method will depend on what type of item it is called on. To set fields for a pen, for example, you have to first get the items collection for the pane item, then get the pen item.

Defined As

[VBA] PutField(columnName As String, fieldValue as String)

[Cicode] PutField (STRING columnName, STRING fieldValue)

[C++] HRESULT PutField (BSTR columnName, BSTR fieldValue)

Parameters

Page 142: Vijeo Citect Process Analyst

126

columnName

[in] The string ID uniquely identifying the column whose field value is being set.

fieldValue

[in] The string you would like to be displayed in the field for this column/pen intersection.

Execution Result

If the property get succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the field cannot be set, then GeneralFailure is returned.

Calling Syntax

This example writes the value “someValue” to the CustomColumn field of the first pen in the first pane. It assumes there is a valid Item as retrieved from an Items Collection from an ObjectView. (e.g., VBA: objectView.Items.Item(1)).

[VBA]

Sub Example()Dim paneItem As ObjectDim penItem As ObjectSet paneItem = Test_CPA.ObjectView.Items.Item(1) 'Get the first pane of the ObjectViewSet penItem = paneItem.Items.Item(1) 'Get the first pen from the first panepenItem.PutField "CustomColumn", "someValue" 'Set the value of the CustomColumn field

End Sub

[CICODE]

FUNCTION Example(OBJECT hObjectView)OBJECT hPaneItems = _ObjectGetProperty(hObjectView, "Items");OBJECT hPaneItem = _ObjectCallMethod(hPaneItems, "get_Item", 1); // Get the first pane

of the ObjectViewOBJECT hPenItems = _ObjectGetProperty(hPaneItem, "Items"); // Get the collection of

pens from the first paneOBJECT hPenItem = _ObjectCallMethod(hPenItems, "get_Item", 1); // Get the first Pen

item_ObjectCallMethod(hPenItem, "PutField", "CustomColumn", "someValue"); // Set the value

of the CustomColumn fieldEND

IObjectViewItem.Expanded [Property][Get/Set]

Gets or Sets the expanded state of an item in the ObjectView. This change is reflected immediately in the visualization of the ObjectView.

Defined As

[VBA] Boolean Expanded

[Cicode] INT Expanded

[C++] VARIANT_BOOL Expanded

Execution Result

If the property get succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument.

Limits

Page 143: Vijeo Citect Process Analyst

127

True (-1): Expanded

False (0): Collapsed

Calling Syntax

This example assumes there is a valid Item as retrieved from an Items Collection from an ObjectView. (e.g., VBA: objectView.Items.Item(1)).

[VBA]

Sub Example(objectViewItem As Object)Dim expanded As Boolean‘Getting Property valueexpanded = objectViewItem.Expanded‘Setting Property valueobjectViewItem.Expanded = False

End Sub

[Cicode]

FUNCTION Example(OBJECT hObjectViewItem)// Getting property valueINT nExpanded = _ObjectGetProperty(hObjectViewItem, "Expanded");// Setting Property_ObjectSetProperty(hObjectViewItem, "Expanded", 0);

END

IObjectViewItem.Tag [Property][Get/Set]

Gets or Sets a user specified piece of data to associate with this Item.

Defined As

[VBA] <Any Type> Tag

[Cicode] <Any Type> Tag

[C++] VARIANT Tag

Remarks

The user can associate any variant of data with a pen. This is handy for associating some custom data with a pen item, and then having direct access to it whenever any events with a pen item target occur.

Calling Syntax

This example assumes there is a valid Item as retrieved from an Items Collection from an ObjectView. (e.g., VBA: objectView.Items.Item(1)).

[VBA]

Sub Example(objectViewItem As Object)Dim tag As Variant‘Getting Property valuetag = objectViewItem.Tag‘Setting Property value to redobjectViewItem.Tag = tag

End Sub

[Cicode]

FUNCTION Example(OBJECT hObjectViewItem)// Getting property valueINT nTag = _ObjectGetProperty(hObjectViewItem, "Tag");

Page 144: Vijeo Citect Process Analyst

128

// Setting Property to red_ObjectSetProperty(hObjectView, "Tag", nTag);

END

IObjectViewItem.Items [Property][Get]

Gets the automation object representing the collection of child items under this item.

Defined As

[VBA] Object Items

[Cicode] OBJECT Items

[C++] IObjectViewItems* Items

Execution Result

If the property get succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument.

Remarks

Pane nodes are currently the only nodes that can have children.

Calling Syntax

This example assumes there is a valid item as retrieved from an ObjectView. (e.g., VBA: objectView.Items.Item(1). This will be a pane).

[VBA]

Sub Example(objectViewItem As Object)Dim items As Object‘Getting Property valueSet items = objectViewItem.Items

End Sub

[Cicode]

FUNCTION Example(OBJECT hObjectViewItem)// Getting property valueOBJECT hItems = _ObjectGetProperty(hObjectViewItem, "Items");

END

IObjectViewItems InterfaceDefined As

[VBA] Object

[Cicode] OBJECT

[C++] IObjectViewItems

Methods (0)

Properties (3)

IObjectViewItems.Count [Property][Get]IObjectViewItems.Item [Property][Get]IObjectViewItems._NewEnum [Property][Get]

Page 145: Vijeo Citect Process Analyst

129

IObjectViewItems.Count [Property][Get]

Gets the number of child items under this item.

Defined As

[VBA] Long Count

[Cicode] INT Count

[C++] int Count

Execution Result

If the property get succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument.

Calling Syntax

This example assumes there is a valid Items collection as retrieved from an ObjectView. (e.g., VBA: objectView.Items)

[VBA]

Sub Example(Items As Object)Dim count As Long‘Getting Property valuecount = Items.Count

End Sub

[Cicode]

FUNCTION Example(OBJECT hItems)// Getting property valueINT nCount = _ObjectGetProperty(hItems, "Count");

END

IObjectViewItems.Item [Property][Get]

Gets the ObjectViewItem at a supplied index location in this collection.

Defined As

[VBA] Item(index As Long) as Object

[Cicode] OBJECT Item(INT index)

[C++] Item(int index, IObjectViewItem* Item)

Parameters

index

[in] Indicates the index location of the child item to return from this collection. (One based)

Calling Syntax

This example assumes there is a valid Items collection as retrieved from an ObjectView. (e.g., VBA: objectView.Items).

[VBA]

Sub Example(Items As Object)Dim item As Object‘Getting Property valueSet item = Items.Item(1)

End Sub

Page 146: Vijeo Citect Process Analyst

130

[Cicode]

FUNCTION Example(OBJECT hItems)// Getting property valueOBJECT hItem = _ObjectCallMethod(hItems, "get_Item", 1);

END

IObjectViewItems._NewEnum [Property][Get]

This allows For.. Each.. Next integration in VB.

Calling Syntax

This example assumes there is a valid Items collection as retrieved from an ObjectView. (e.g., VBA: objectView.Items). This property is not applicable to Cicode.

[VBA]

Sub Example(Items As Object)Dim item As ObjectDim count Object‘Using Property For Each item In Items

count = count + 1Next Item

End Sub

IObjectViewPenItem InterfaceDefined As

[VBA] Object

[Cicode] OBJECT

[C++] IObjectViewPenItem

Methods (0)

Properties (3)

IObjectViewPenItem.BlockColor [Property][Get])IObjectViewPenItem.Checked [Property][Get/Set]IObjectViewPenItem.Selected [Property][Get]

IObjectViewPenItem.BlockColor [Property][Get]

Gets the color representing this item in the ObjectView.

Defined As

[VBA] Long BlockColor

[Cicode] INT BlockColor

[C++] OLE_COLOR BlockColor

Execution Result

If the property get succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument.

Remarks

The color value can be calculated using the following formula: color = (65536 * Blue) + (256 * Green) + (Red) where red, green, and blue are 0-255.

Page 147: Vijeo Citect Process Analyst

131

Calling Syntax

This example assumes there is a valid pen item as retrieved from an ObjectView. (e.g., VBA: ObjectView.Items.Item(1).Items.Item(1) This will be a pen).

[VBA]

Sub Example(objectViewPenItem As Object)Dim blockColor As Long‘Getting Property valueblockColor = objectViewPenItem.BlockColor

End Sub

[Cicode]

FUNCTION Example(OBJECT hObjectViewPenItem)// Getting property valueINT blockColor = _ObjectGetProperty(hObjectViewItem, "BlockColor");

END

IObjectViewPenItem.Checked [Property][Get/Set]

Gets or Sets whether or not this pen item is checked.

Defined As

[VBA] Boolean Checked

[Cicode] INT Checked

[C++] VARIANT_BOOL Checked

Execution Result

If the property get succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument.

Limits

True (-1): Checked

False (0): Unchecked

Remarks

This reflects the pens visibility property directly, and any sets to this property will reflect immediately in the update of the Process Analyst display.

See Also OVItemChecked [Event]

Calling Syntax

This example assumes there is a valid pen item as retrieved from an ObjectView. (e.g., VBA: objectView.Items.Item(1).Items.Item(1) This will be a pen).

[VBA]

Sub Example(objectViewPenItem As Object)Dim checked As Boolean‘Getting Property valuechecked = objectViewPenItem.Checked‘Setting Property valueobjectViewPenItem.Checked = False

End Sub

Page 148: Vijeo Citect Process Analyst

132

[Cicode]

FUNCTION Example(OBJECT hObjectViewPenItem)// Getting property valueINT checked = _ObjectGetProperty(hObjectViewItem, "Checked");// Setting property value_ObjectSetProperty(hObjectViewItem, "Checked", 0);

END

IObjectViewPenItem.Selected [Property][Get]

Gets whether or not this pen is the selected pen in its pane.

Defined As

[VBA] Boolean Selected

[Cicode] INT Selected

[C++] VARIANT_BOOL Selected

Execution Result

If the property get succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument.

Limits

True (-1): Selected

False (0): Unselected

Remarks

Each Pane has one selected pen. It is visually emphasized by a vertical gradient fill.

Calling Syntax

This example assumes there is a valid pen item as retrieved from an ObjectView. (e.g., VBA: objectView.Items.Item(1).Items.Item(1) This will be a pen).

[VBA]

Sub Example(objectViewPenItem As Object)Dim selected As Boolean‘Getting Property valueselected = objectViewPenItem.Selected

End Sub

[Cicode]

FUNCTION Example(OBJECT hObjectViewPenItem)// Getting property valueINT selected = _ObjectGetProperty(hObjectViewItem, "Selected");

END

IPane InterfaceDefined As

[VBA] Object

[Cicode] OBJECT

[C++] IPanes

Page 149: Vijeo Citect Process Analyst

133

Methods (1)

IPane.Delete [Method]

Properties (6)

IPane.Height [Property][Get/Set]IPane.Collection [Property][Get]IPane.Name [Property][Get/Set]IPane.BackgroundColor [Property][Get/Set]IPane.FixedHeight [Property][Get/Set]IPane.Pens [Property][Get]

IPane.Delete [Method] Removes this Pane from the collection and the display.

Defined As

[VBA] Delete()

[Cicode] Delete()

[C++] HRESULT Delete()

Execution Result

If the method succeeds, the return value will be Success. If the pane is already deleted, the return value will be GeneralFailure.

Remarks

Any pen associated with the pane will also be deleted.

Calling Syntax

This example assumes there is a valid Pane object to be passed into the example methods.

[VBA]

Sub Panes(Pane As Object)Pane.Delete()

End Sub

[Cicode]

FUNCTION Example(OBJECT hPane)_ObjectCallMethod(hPane, “Delete”);

END

IPane.Height [Property][Get/Set]

Gets or Sets the height of this pane.

Defined As

[VBA] Long Height

[Cicode] INT Height

[C++] int Height

Execution Result

If the property get/set succeeds, the return value will be Success. If the height is out of range (16-1000), the return value will be InvalidArgument. If the pane is deleted, the return value will be GeneralFailure.

Page 150: Vijeo Citect Process Analyst

134

Remarks

This property affects the visible height of the Pane in two different ways based on the Boolean value of the FixedHeight property. If the FixedHeight property is True, the Pane takes on a pixel height equivalent to the Height property value. All pens inside the Pane are adjusted to fit. If the FixedHeight property is False, the Height property value is used as a ratio of the available ‘Variable’ real estate (all the left over room in the Process Analyst after Fixed Height panes have been added) which is shared out between all the Variable Height panes.

See Also IPane.FixedHeight [Property][Get/Set]

Calling Syntax

This example assumes there is a valid Pane object to be passed into the example methods.

[VBA]

Sub Example(Pane As Object)Dim height As Long‘Getting Property valueheight = Pane.Height‘Setting Property valuePane.Height = 250

End Sub

[Cicode]

FUNCTION Example(OBJECT hPane)// Getting property valueINT nHeight = _ObjectGetProperty(hPane, "Height");// Setting property value_ObjectSetProperty(hPane, "Height", 250);

END

IPane.Collection [Property][Get]

Returns a reference to the Panes collection that this Pane belongs to.

Defined As

[VBA] Object Collection

[Cicode] OBJECT Collection

[C++] IPanes* Collection

Execution Result

If the property get succeeds the return value will be Success. If the pane is deleted the return value will be GeneralFailure.

See Also IPanes Interface

Calling Syntax

This example assumes there is a valid Pane object to be passed into the example methods.

Page 151: Vijeo Citect Process Analyst

135

[VBA]

Sub Example(pane As Object)Dim panes As Object‘Getting Property valueSet panes = pane.Collection

End Sub

[Cicode]

FUNCTION Example(OBJECT hPane)// Getting property valueOBJECT hPanes = _ObjectGetProperty(hPane, "Collection");

END

IPane.Name [Property][Get/Set]

Gets or Sets the name of this pane.

Defined As

[VBA] String Name

[Cicode] STRING Name

[C++] BSTR Name

Execution Result

If the property get/set succeeds, the return value will be Success. If a pane of the same name exists, the return value will be InvalidArgument. If the panes collection is deleted, the return value will be GeneralFailure.

Limits

Name must be between 1-250 characters.

Remarks

Pane names must be unique.

Calling Syntax

This example assumes there is a valid Pane object to be passed into the example methods.

[VBA]

Sub Example(pane As Object)Dim name As String‘Getting Property valuename = pane.Name‘Setting Property valuepane.Name = "Alarms"

End Sub

[Cicode]

FUNCTION Example(OBJECT hPane)// Getting property valueSTRING sName = _ObjectGetProperty(hPane, "Name");// Setting property value_ObjectSetProperty(hPane, "Name", "Alarms");

END

Page 152: Vijeo Citect Process Analyst

136

IPane.BackgroundColor [Property][Get/Set]

Gets or Sets the color of this Pane.

Defined As

[VBA] Long BackgroundColor

[Cicode] INT BackgroundColor

[C++] OLE_COLOR BackgroundColor

Execution Result

If the property get/set succeeds, the return value will be Success. If the pane is deleted, the return value will be GeneralFailure.

Remarks

The color value can be calculated using the following formula: color = (65536 * Blue) + (256 * Green) + (Red). Where red, green and blue are 0-255.

Calling Syntax

This example assumes there is a valid Pane object to be passed into the example methods.

[VBA]

Sub Example(Pane As Object)Dim backgroundColor As Long‘Getting Property valuebackgroundColor = Pane.BackgroundColor‘Setting Property value to redPane.BackgroundColor = 255

End Sub

[Cicode]

FUNCTION Example(OBJECT hPane)// Getting property valueINT nColor = _ObjectGetProperty(hPane, "BackgroundColor");// Setting property value_ObjectSetProperty(hPane, "Name", 255);

END

IPane.FixedHeight [Property][Get/Set]

Gets or Sets whether this pane has a fixed height.

Defined As

[VBA] Boolean FixedHeight

[Cicode] INT FixedHeight

[C++] VARIANT_BOOL FixedHeight

Execution Result

If the property get/set succeeds, the return value will be Success. If the pane is deleted, the return value will be GeneralFailure.

Limits

True (-1): Height is fixed

False (0): Height is variable

Page 153: Vijeo Citect Process Analyst

137

Remarks

When this property is true, the pane’s Height reflects the pixel value size as gotten from the Pane’s Height property. If the FixedHeight property is false, the Height property value is used as a ratio of the available ‘Variable’ real estate (all the left over room in the Process Analyst after Fixed Height panes have been added) which is shared out between all the Variable Height panes.

See Also IPane.Height [Property][Get/Set]

Calling Syntax

This example assumes there is a valid Pane object to be passed into the example methods.

[VBA]

Sub Example(pane As Object)Dim fixedHeight As Boolean‘Getting Property valuefixedHeight = pane.FixedHeight‘Setting Property valuepane.FixedHeight = True

End Sub

[Cicode]

FUNCTION Example(OBJECT hPane)// Getting property valueINT bFixedHeight = _ObjectGetProperty(hPane, "FixedHeight");// Setting property value_ObjectSetProperty(hPane, "FixedHeight", -1);

END

IPane.Pens [Property][Get]

Gets a reference to the pens collection object containing the pens for this pane.

Defined As

[VBA] Object Pens

[Cicode] OBJECT Pens

[C++] IPens* Pens

Execution Result

If the property get succeeds the return value will be Success. If the pane is deleted the return value will be GeneralFailure.

See Also IPens Interface

Calling Syntax

This example assumes there is a valid Pane object to be passed into the example methods.

Page 154: Vijeo Citect Process Analyst

138

[VBA]

Sub Example(pane As Object)Dim pens As Object‘Getting Property valueSet pens = pane.Pens

End Sub

[Cicode]

FUNCTION Example(OBJECT hPane)// Getting property valueOBJECT hPens = _ObjectGetProperty(hPane, "Pens");

END

IPanes InterfaceDefined As

[VBA] Object

[Cicode] OBJECT

[C++] IPanes

Methods (2)

IPanes.Create [Method]IPanes.RemoveAll [Method]

Properties (4)

IPanes.Count [Property][Get]IPanes.Item [Property][Get]IPanes._NewEnum [Property][Get]IPanes.ItemByName [Property][Get]

IPanes.Create [Method] Adds a pane to this collection and returns a reference to it.

Defined As

[VBA] Create(name as String) as Object

[Cicode] OBJECT Create (STRING name)

[C++] HRESULT Create(BSTR name, IPane** pane)

Parameters

name

[in] The name to give to the pane (0-250 characters).

Execution Result

If the method succeeds, the return value will be Success. If a pane of the same name exists, the return value will be InvalidArgument. If the panes collection is deleted, the return value will be GeneralFailure.

Remarks

When this method succeeds it will return a reference to the new IPane object.

See Also IPanes Interface

Page 155: Vijeo Citect Process Analyst

139

Calling Syntax

This example assumes there is a valid Panes collection object to be passed into the example methods.

[VBA]

Sub Example(Panes As Object)Dim pane As ObjectSet pane = Panes.Create(“Alarm Pane”)

End Sub

[Cicode]

FUNCTION Example(OBJECT hPanes)OBJECT hPane = _ObjectCallMethod(hPanes, “Create”, “Alarm Pane”);

END

IPanes.RemoveAll [Method]

Removes all Panes from this Pane collection.

Defined As

[VBA] RemoveAll()

[Cicode] RemoveAll()

[C++] HRESULT RemoveAll()

Execution Result

If the method succeeds, the return value will be Success. If the panes collection is deleted, the return value will be GeneralFailure.

Calling Syntax

This example assumes there is a valid Panes collection object to be passed into the example methods.

[VBA]

Sub Panes(Buttons As Object)Panes.RemoveAll()

End Sub

[Cicode]

FUNCTION Example(OBJECT hPanes)_ObjectCallMethod(hPanes, “RemoveAll”);

END

IPanes.Count [Property][Get]

Gets the number of Panes in this collection.

Defined As

[VBA] Long Count

[Cicode] INT Count

[C++] int Count

Execution Result

If the property get succeeds, the return value will be Success. If the panes collection is deleted, the return value will be GeneralFailure.

Page 156: Vijeo Citect Process Analyst

140

Calling Syntax

This example assumes there is a valid Panes collection object to be passed into the example methods.

[VBA]

Sub Example(Panes As Object)Dim count As Long‘Getting Property valuecount = Panes.Count

End Sub

[Cicode]

FUNCTION Example(OBJECT hPanes)// Getting property valueINT nCount = _ObjectGetProperty(hPanes, "Count");

END

IPanes.Item [Property][Get]

Gets the Pane at the given index in this Pane collection.

Defined As

[VBA] Item(index As Long) as Object

[Cicode] OBJECT Item(INT index)

[C++] Item(int index, IPane* Item)

Parameters

index

[in] Indicates the location of the Pane item to return from this collection. (One based)

Execution Result

If the property get succeeds the return value will be Success. If the index is out of range then the return value will be InvalidArgument. If the panes collection is deleted the return value will be GeneralFailure.

See Also IPane Interface

Calling Syntax

This example assumes there is a valid Panes collection object to be passed into the example methods.

[VBA]

Sub Example(Panes As Object)Dim pane As Object‘Getting Property valueSet pane = Panes.Item(1)

End Sub

[Cicode]

FUNCTION Example(OBJECT hPanes)// Getting property valueOBJECT hPane = _ObjectCallMethod(hPanes, "get_Item", 1);

END

Page 157: Vijeo Citect Process Analyst

141

IPanes._NewEnum [Property][Get]

This allows For.. Each.. Next integration in VB.

Calling Syntax

This example assumes there is a valid Panes collection object to be passed into the example methods. This property is not applicable to Cicode.

[VBA]

Sub Example(Panes As Object)Dim pane As ObjectDim count As Long‘Using Property For Each pane In Panes

count = count + 1Next pane

End Sub

IPanes.ItemByName [Property][Get]

Returns a reference to the pane object with the given name from this Panes collection.

Defined As

[VBA] ByName(name As String) as Object

[Cicode] OBJECT ByName(STRING name)

[C++] ByName(STRING name, IPane* Item)

Parameters

name

[in] Indicates the name of the Pane item to return from this collection.

Execution Result

If the property get succeeds, the return value will be Success. If the pane cannot be found, the return value will be InvalidArgument. If the panes collection is deleted, the return value will be GeneralFailure.

Calling Syntax

This example assumes there is a valid Panes collection object to be passed into the example methods.

[VBA]

Sub Example(Panes As Object)Dim pane As Object‘Getting Property valueSet pane = Panes.ItemByName(“Alarm Pane”)

End Sub

[Cicode]

FUNCTION Example(OBJECT hPanes)// Getting property valueOBJECT hPane = _ObjectCallMethod(hPanes, "get_ItemByName", "Alarm Pane");

END

Page 158: Vijeo Citect Process Analyst

142

IPen InterfaceMethods

IPen.AddSampleIPen.Clear [Method]IPen.Delete [Method]IPen.GetDefaultSpan [Method]IPen.GetHorizontalAxisTimeSpan [Method]IPen.GetInformation [Method]IPen.GetStatistic [Method]IPen.GetVerticalAxisSpan [Method]IPen.GoToNow [Method]IPen.HorizontalScrollBy [Method]IPen.HorizontalZoom [Method]IPen.PutHorizontalAxisTimeSpan [Method]IPen.PutVerticalAxisSpan [Method]IPen.RefreshData [Method]IPen.ResetToDefaultSpan [Method]IPen.Select [Method]IPen.SetDefaultSpan [Method]IPen.SetQualityCompactionPointType [Method]IPen.SetQualityLineStyle [Method]IPen.SetVerticalAxisLabelValue [Method]IPen.VerticalScrollBy [Method]IPen.VerticalZoom [Method]

Properties

IPen.AxisBackgroundColor [Property][Get/Set]IPen.BlockRepaint [Property][Get/Set]IPen.Collection [Property][Get]IPen.DataPoint [Property][Get/Set]IPen.DataServer [Property][Get/Set]IPen.Height [Property][Get/Set]IPen.HorizontalAxisColor [Property][Get/Set]IPen.HorizontalAxisResize [Property][Get/Set]IPen.HorizontalAxisScroll [Property][Get/Set]IPen.HorizontalAxisWidth [Property][Get/Set]IPen.HorizontalGridlinesColor [Property][Get/Set]IPen.HorizontalGridlinesStyle [Property][Get/Set]IPen.HorizontalGridlinesWidth [Property][Get/Set]IPen.HorizontalMinorGridlinesColor [Property][Get/Set]IPen.HorizontalMinorGridlinesStyle [Property][Get/Set]IPen.IsDeleted [Property][Get]IPen.IsSelected [Property][Get]IPen.LocalTime [Property][Get/Set]IPen.Name [Property][Get/Set]IPen.PointsVisible [Property][Get/Set]IPen.RequestMode [Property][Get/Set]IPen.Stacked [Property][Get/Set]IPen.TrendCursorLabelFillColor [Property][Get/Set]IPen.TrendCursorLabelLineColor [Property][Get/Set]IPen.TrendCursorLabelTextColor [Property][Get/Set]IPen.VerticalAxisAutoscale [Property][Get/Set]IPen.VerticalAxisColor [Property][Get/Set]IPen.VerticalAxisLabelType [Property][Get/Set]

Page 159: Vijeo Citect Process Analyst

143

IPen.VerticalAxisResize [Property][Get/Set]IPen.VerticalAxisScroll [Property][Get/Set]IPen.VerticalAxisWidth [Property][Get/Set]IPen.VerticalGridlinesColor [Property][Get/Set]IPen.VerticalGridlinesStyle [Property][Get/Set]IPen.VerticalGridlinesWidth [Property][Get/Set]IPen.VerticalMinorGridlinesColor [Property][Get/Set]IPen.VerticalMinorGridlinesStyle [Property][Get/Set]IPen.Visible [Property][Get/Set]

IPen.AddSample Adds a temporary sample to a pen.

Defined As

[VBA] AddSample(value As Double, timeStamp as Date, milli as Integer, qualityType as Integer, compactionType as Integer)

[Cicode] AddSample(REAL value, DATE timeStamp, INT milli, INT qualityType, INT compactionType)

[C++] HRESULT AddSample(double value, DATE timeStamp, short milli, QualityType qualityType, QualityCompactionType compactionType)

Parameters

value

[in] Indicates the value of the sample that will be added.

timeStamp

[in] Indicates at what time the sample will occur in UTC time.

milli

[in] Indicates the millisecond component of the time stamp (0 to 999).

qualityType

[in] Indicates the quality of the sample that will be added.

compactionType

[in] Indicates what display type the sample will be represented as.

Execution Result

If the function succeeds, the return value will be Success. If an argument is bad, the return value will be InvalidArgument. If an argument is out of range, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure. If any other unexpected error occurs, the return value will be GeneralFailure.

Remarks

This function has limited use as the samples added are stored in a temporary cache; they can be cleared anytime by time span changes, data refresh calls, or automation.

You can only add samples to analog or digital pens.

See Also QualityType [Enumeration], QualityCompactionType [Enumeration]

Calling Syntax

Page 160: Vijeo Citect Process Analyst

144

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim timeStamp As Datetimestamp = Nowpen.AddSample 75.0, timeStamp, 100, 0, 0

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)INT iCitectTime;REAL rOleTime;

iCitectTime = TimeCurrent(); // Returns seconds since 1970rOleTime = TimeToOleDate(iCitectTime, 1); // Convert to OLE UTC time_ObjectCallMethod(hPen, "AddSample", 75.0, timeStamp, 100, 0, 0);

END

IPen.Clear [Method] Clears all samples belonging to this pen from the internal cache. (Note: This does not remove logged samples from the server)

Defined As

[VBA] Clear()

[Cicode] Clear()

[C++] HRESULT Clear()

Execution Result

If the function succeeds the return value will be Success. If the pen is deleted then the return value will be GeneralFailure.

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)pen.Clear

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)_ObjectCallMethod(hPen, “Clear”);

END

IPen.Delete [Method] Deletes the pen from the Process Analyst.

Defined As

[VBA] Delete()

[Cicode] Delete()

[C++] HRESULT Delete()

Execution Result

Page 161: Vijeo Citect Process Analyst

145

If the function succeeds, the return value will be Success. If the pen is already deleted, the return value will be GeneralFailure.

Remarks

Calling this method will mark the pen for deletion, meaning any further calls to methods or properties on the pen will result in a GeneralFailure error. The pen will be removed from the display immediately after making this call.

See Also IPen.IsDeleted [Property][Get]

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)pen.Delete

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)_ObjectCallMethod(hPen, “Delete”);

END

IPen.GetDefaultSpan [Method]

Returns the default time span for this pen as a series of time components.

Defined As

[VBA] GetDefaultSpan(weeks As Integer, days As Integer, hours As Integer, minutes As Integer, seconds As Integer, milliseconds As Integer)

[Cicode] GetDefaultSpan (INT weeks, INT days, DATE hours, INT minutes, INT seconds, INT milliseconds)

[C++] HRESULT GetDefaultSpan (short* weeks, short* days, short* hours, short* minutes, short* seconds, short* milliseconds)

Parameters

weeks

[out] Indicates the number of weeks in the span.

days

[out] Indicates the number of days in the span.

hours

[out] Indicates the number of hours in the span.

minutes

[out] Indicates the number of minutes in the span.

seconds

[out] Indicates the number of seconds in the span.

milliseconds

[out] Indicates the number of milliseconds in the span.

Execution Result

Page 162: Vijeo Citect Process Analyst

146

If the function succeeds, the return value will be Success. If an argument is bad, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure. If any other unexpected error occurs, the return value will be GeneralFailure.

See Also IPen.SetDefaultSpan [Method], IPen.ResetToDefaultSpan [Method]

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim weeks As IntegerDim days As IntegerDim hours As IntegerDim minutes As IntegerDim seconds As IntegerDim milliseconds As Integerpen.GetDefaultSpan weeks, days, hours, minutes, seconds,

millisecondsEnd Sub

[Cicode]

FUNCTION Example(OBJECT hPen)INT weeks;INT days;INT hours;INT minutes;INT seconds;INT milliseconds;_ObjectCallMethod(hPen, “GetDefaultSpan”, weeks, days, hours, minutes, seconds,

milliseconds);END

IPen.GetHorizontalAxisTimeSpan [Method]

Returns the start and end time of this pen in local or UTC time format.

Defined As

[VBA] GetHorizontalAxisTimeSpan(startTime As Date, startMs as Integer, endTime as Date, endMs as Integer, localTime as Boolean)

[Cicode] GetHorizontalAxisTimeSpan (REAL startTime, INT startMs, REAL endTime, INT endMs, INT localTime)

[C++] HRESULT GetHorizontalAxisTimeSpan (DATE* startTime, short* startMs, DATE* endTime, short* endMs, VARIANT_BOOL localTime)

Parameters

startTime

[out] This will contain the beginning date and time without milliseconds of the time span.

startMs

[out] This will contain the milliseconds component of the start time.

endTime

Page 163: Vijeo Citect Process Analyst

147

[out] This will contain the end date and time without milliseconds.of the time span.

endMs

[out] This will contain the milliseconds component of the end time.

localTime

[in] Indicates whether the times returned are in local time or UTC. True = -1, False (0) = UTC.

Execution Result

If the function succeeds, the return value will be Success. If an argument is bad, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure. If any other unexpected error occurs, the return value will be GeneralFailure.

See Also IPen.PutHorizontalAxisTimeSpan [Method]

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim startDate As DateDim endDate As DateDim startMs As IntegerDim endMs As Integerpen.GetHorizontalAxisTimeSpan startDate, startMs, endDate,

endMs, TrueEnd Sub

[Cicode]

FUNCTION Example(OBJECT hPen)REAL startDate;REAL endDate;INT startMs;INT endMs;_ObjectCallMethod(hPen, “GetHorizontalAxisTimeSpan”, startDate, startMs, endDate,

endMs, -1);END

IPen.GetInformation [Method]

Returns information associated with this pen.

Defined As

[VBA] GetInformation(name As String) As String

[Cicode] STRING GetInformation(STRING name)

[C++] HRESULT GetDefaultSpan (BSTR name, BSTR* value)

Parameters

name

[in] Specify the pen information attribute you want to get the value for. See Remarks below for supported attributes.

Page 164: Vijeo Citect Process Analyst

148

value

[out] Indicates the value of the specified information attribute.

Execution Result

If the function succeeds, the return value will be Success. If an argument is bad, the return value will be InvalidArgument. If the attribute does not exist, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure. If any other unexpected error occurs, the return value will be GeneralFailure.

Information Attributes

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim duration As Stringduration = pen.GetInformation "Duration"

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)STRING duration;duration = _ObjectCallMethod(hPen, "GetInformation", "Duration");

END

Attribute Returns Applies toAlarm Area Alarm tag field AlarmAlarm Category Alarm tag field AlarmAlarm Desc Alarm tag field AlarmAlarm Name Alarm tag field AlarmAlarm Type Alarm tag field AlarmComment Alarm/Trend tag comment field AllDuration Process Analyst time span AllEnd Time Process Analyst axis end time AllEngineering Full Scale Trend tag field Analog, DigitalEngineering Units Trend tag field Analog, DigitalEngineering Zero Scale Trend tag field Analog, DigitalError Process Analyst error status AllFull Scale Process Analyst vertical axis max scale Analog,Name Process Analyst pen name AllRaw Full Scale Trend tag field Analog, DigitalRaw Zero Scale Trend tag field Analog, DigitalSample Period Trend tag field Analog, DigitalStart Time Process Analyst axis start time AllTag Process Analyst source binding field AllTrend Type Trend tag field Analog, DigitalZero Scale Process Analyst vertical axis min scale AnalogScale Process Analyst vertical axis scale range Analog, DigitalEngineering Scale Engineering scale range Analog, Digita

Page 165: Vijeo Citect Process Analyst

149

IPen.GetStatistic [Method]

Returns the result of a specified Process Analyst statistical operation.

Defined As

[VBA] GetStatistic(name As String, value As String)

[Cicode] GetStatistic(STRING name, STRING value)

[C++] HRESULT GetStatistic(BSTR name, BSTR* value)

Parameters

name

[in] Specify the statistic attribute you want to get the value for. See Remarks below for supported attributes.

value

[out] Indicates the value of the specified statistic attribute.

Execution Result

If the function succeeds, the return value will be Success. If an argument is bad, the return value will be InvalidArgument. If the attribute does not exist, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure. If any other unexpected error occurs, the return value will be GeneralFailure.

Information Attributes

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim average As Stringpen.GetStatistic “Average”, average

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)STRING average;_ObjectCallMethod(hPen, “GetStastic”, “Average”, average);

END

IPen.GetVerticalAxisSpan [Method]

Returns the current span of the pens’ vertical axis.

Defined As

[VBA] GetVerticalAxisSpan(startValue As Double, endValue As Double)

[Cicode] GetVerticalAxisSpan (REAL startValue, REAL endValue)

[C++] HRESULT GetVerticalAxisSpan (double* startValue, double* endValue)

Attribute Returns Applies toAverage Process Analyst real-time average Analog, DigitalMaximum Process Analyst real-time maximum AnalogMinimum Process Analyst real-time minimum Analog

Page 166: Vijeo Citect Process Analyst

150

Parameters

startValue

[out] The current lower bound of the vertical axis.

endValue

[out] The current upper bound of the vertical axis.

Execution Result

If the function succeeds, the return value will be Success. If an argument is bad, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure. If any other unexpected error occurs, the return value will be GeneralFailure.

See Also IPen.PutVerticalAxisSpan [Method]

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim startValue As DoubleDim endValue As Doublepen.GetVerticalAxisSpan startValue, endValue

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)REAL startValue;REAL endValue;_ObjectCallMethod(hPen, “GetVerticalAxisSpan”, startValue, endValue);

END

IPen.GoToNow [Method]

Synchronizes the end time of the pen’s span with your computer’s current local time. The start time will also be moved to maintain the pen’s current time span.

Defined As

[VBA] GoToNow()

[Cicode] GoToNow()

[C++] HRESULT GoToNow()

Execution Result

If the function succeeds, the return value will be Success. If the pen is deleted, the return value will be GeneralFailure.

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)pen.GoToNow

End Sub

Page 167: Vijeo Citect Process Analyst

151

[Cicode]

FUNCTION Example(OBJECT hPen)_ObjectCallMethod(hPen, “GoToNow”);

END

IPen.HorizontalScrollBy [Method]

Scrolls the horizontal axis by the specified factor.

Defined As

[VBA] HorizontalScrollBy(factor As Double)

[Cicode] HorizontalScrollBy(REAL factor)

[C++] HRESULT HorizontalScrollBy(double factor)

Parameters

factor

[in] Controls the direction and amount the axis will be scrolled. A negative value will move the axis back in time; a positive value will move the axis forward in time. The value is a percentage representing the current viewable span. So if the pen span is 1 hour, and you specify a factor of 0.5, you will move the time span 30 minutes into the future.

Execution Result

If the function succeeds, the return value will be Success. If the argument is bad, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.

See Also IPen.VerticalScrollBy [Method]

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)‘ Move the pen span back one complete span into historypen.HorizontalScrollBy -1.0

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)// Move the pen span back one complete span into history_ObjectCallMethod(hPen, “HorizontalScrollby”, -1.0);

END

IPen.HorizontalZoom [Method]

Zooms centrally into the time span by the given factor.

Defined As

[VBA] HorizontalZoom(factor As Double)

[Cicode] HorizontalZoom(REAL factor)

[C++] HRESULT HorizontalZoom(double factor)

Parameters

factor

Page 168: Vijeo Citect Process Analyst

152

[in] Controls the direction and amount the axis will be zoomed. Acceptable zoom values are 0 to 1 (Zoom out) and > 1 (zoom in).

Execution Result

If the function succeeds the return value will be Success. If the argument is bad then the return value will be InvalidArgument. If the argument is out of range then the return value will be InvalidArgument. If the pen is deleted then the return value will be GeneralFailure.

See Also IPen.VerticalZoom [Method]

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)‘ Zoom out 50%pen.HorizontalZoom 0.5‘ Undo the Zoom pen.HorizontalZoom 1.5

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)// Zoom out 50%_ObjectCallMethod(hPen, “HorizontalZoom”, 0.5);// Undo the Zoom_ObjectCallMethod(hPen, “HorizontalZoom”, 2.0);

END

IPen.PointsVisible [Property][Get/Set]

Gets or Sets whether the sample points are displayed or hidden on the pen.

Defined As

[VBA] Boolean PointsVisible

[Cicode] INT PointsVisible

[C++] VARIANT_BOOL PointsVisible

Execution Results

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.

Limits

True(-1): Points are visible

False(0): Points are hidden

Remarks

By default this property is False, meaning that any point type you have set using the SetQualityCompactionPointType function will be hidden.

See Also IPen.SetQualityCompactionPointType [Method]

Calling Syntax

Page 169: Vijeo Citect Process Analyst

153

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim visible As Boolean‘Getting Property valuevisible = pen.PointsVisible‘Setting Property valuepen.PointsVisible = True

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)INT visible;// Getting current property valuevisible = _ObjectGetProperty(hPen, "PointsVisible");// Setting Property value_ObjectSetProperty(hPen, "PointsVisible", -1);

END

IPen.PutHorizontalAxisTimeSpan [Method]

Sets the start and end time of this pen.

Defined As

[VBA] PutHorizontalAxisTimeSpan(startTime As Date, startMs as Integer, endTime as Date, endMs as Integer)

[Cicode] PutHorizontalAxisTimeSpan (REAL startTime, INT startMs, REAL endTime, INT endMs)

[C++] HRESULT PutHorizontalAxisTimeSpan (DATE* startTime, short* startMs, DATE* endTime, short* endMs)

Parameters

startTime

[in] Indicates the beginning date and time without milliseconds of the time span in UTC format.

startMs

[in] Indicates the milliseconds component of the start time.

endTime

[in] Indicates the end date and time without milliseconds of the time span in UTC format.

endMs

[in] This will contain the milliseconds component of the end time.

Execution Result

If the function succeeds the return value will be Success. If an argument is bad then the return value will be InvalidArgument. If an argument is out of range then the return value will be InvalidArgument. If the pen is deleted then the return value will be GeneralFailure. If any other unexpected error occurs the return value will be GeneralFailure.

Page 170: Vijeo Citect Process Analyst

154

Remarks

The Process Analyst only supports setting its axis in UTC (Universal Co-ordinated Time) format. This means you must convert from local to UTC format yourself to make the axis display correctly in local time. Cicode provides several functions to do these conversions.

Limits

The horizontal axis has an upper limit of 1/1/2100 12:00:00.000 and a lower limit of 1/1/1900 12:00:00.000. The minimum span is 100 milliseconds. The maximum span is 200 years.

See Also IPen.GetHorizontalAxisTimeSpan [Method]

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim startDate As DateDim endDate As DateDim startMs As IntegerDim endMs As IntegerstartDate = CDate(“16/6/2004 11:30:00”)endDate = CDate(“16/6/2004 12:29:00”)startMs = 0endMs = 0pen.PutHorizontalAxisTimeSpan startDate, startMs, endDate, endMs

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)REAL startDate;REAL endDate;startDate = StrToDate("16/6/04") + StrToTime("9:30:00");endDate = StrToDate("16/6/04") + StrToTime("10:29:00");startDate = TimeToOLEDate(startDate, 0); // Convert to UTCendDate = TimeToOLEDate(endDate, 0); // Convert to UTC_ObjectcallMethod(hPen, "PutHorizontalAxisTimeSpan", startDate, 0, endDate, 0);

END

IPen.PutVerticalAxisSpan [Method]

Sets the current position and span of the pens’ vertical axis.

Defined As

[VBA] GetVerticalAxisSpan(startValue As Double, endValue As Double)

[Cicode] GetVerticalAxisSpan (REAL startValue, REAL endValue)

[C++] HRESULT GetVerticalAxisSpan (double* startValue, double* endValue)

Parameters

startValue

[in] Indicates the new lower bound of the vertical axis.

endValue

Page 171: Vijeo Citect Process Analyst

155

[in] Indicates the new upper bound of the vertical axis.

Execution Result

If the function succeeds, the return value will be Success. If an argument is bad, the return value will be InvalidArgument. If an argument is out of range, or the span is out of range, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.

Limits

The vertical axis has a upper limit of 1+e10 and a lower limit of 1-e10. However, the maximum span supported is 1+e10. The minimum span is 0.00001.

See Also IPen.GetVerticalAxisSpan [Method]

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)pen.PutVerticalAxisSpan 200.5, 300.34

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)_ObjectCallMethod(hPen, “PutVerticalAxisSpan”, 200.5, 300.34);

END

IPen.RefreshData [Method]

Clears all samples belonging to this pen from the internal cache and then issues a new request for data.

Defined As

[VBA] RefreshData()

[Cicode] RefreshData ()

[C++] HRESULT RefreshData ()

Execution Result

If the function succeeds the return value will be Success. If the pen is deleted then the return value will be GeneralFailure.

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)pen.RefreshData

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)_ObjectCallMethod(hPen, “RefreshData”);

END

Page 172: Vijeo Citect Process Analyst

156

IPen.ResetToDefaultSpan [Method]

Resets the span of this pen to its default span.

Defined As

[VBA] ResetToDefaultSpan()

[Cicode] ResetToDefaultSpan()

[C++] HRESULT ResetToDefaultSpan()

Execution Result

If the function succeeds, the return value will be Success. If the pen is deleted, the return value will be GeneralFailure.

Remarks

The default span of all pens is 10 minutes. This can be modified by using IPen.SetDefaultSpan.

See Also IPen.GetDefaultSpan [Method], IPen.SetDefaultSpan [Method]

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)pen.ResetToDefaultSpan

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)_ObjectCallMethod(hPen, “ResetToDefaultSpan”);

END

IPen.Select [Method] Makes this pen the primary selected pen.

Defined As

[VBA] Select()

[Cicode] Select()

[C++] HRESULT Select()

Execution Result

If the function succeeds, the return value will be Success. If the pen is deleted, the return value will be GeneralFailure.

Remarks

Calling this method will also trigger PenSelectionChanged [Event].

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)pen.Select

End Sub

Page 173: Vijeo Citect Process Analyst

157

[Cicode]

FUNCTION Example(OBJECT hPen)_ObjectCallMethod(hPen, “Select”);

END

IPen.SetDefaultSpan [Method]

Sets the default time span for this pen.

Defined As

[VBA] SetDefaultSpan(weeks As Integer, days As Integer, hours As Integer, minutes As Integer, seconds As Integer, milliseconds As Integer)

[Cicode] SetDefaultSpan (INT weeks, INT days, DATE hours, INT minutes, INT seconds, INT milliseconds)

[C++] HRESULT SetDefaultSpan (short weeks, short days, short hours, short minutes, short seconds, short milliseconds)

Parameters

weeks

[in] Indicates the number of weeks in the span.

days

[in] Indicates the number of days in the span.

hours

[in] Indicates the number of hours in the span.

minutes

[in] Indicates the number of minutes in the span.

seconds

[in] Indicates the number of seconds in the span.

milliseconds

[in] Indicates the number of milliseconds in the span.

Execution Result

If the function succeeds the return value will be Success. If an argument is bad then the return value will be InvalidArgument. If the pen is deleted then the return value will be GeneralFailure.

See Also IPen.GetDefaultSpan [Method], IPen.ResetToDefaultSpan [Method]

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)‘ Set span to 2 hours and 30 minutespen.GetDefaultSpan 0, 0, 2, 30, 0, 0

End Sub

Page 174: Vijeo Citect Process Analyst

158

[Cicode]

FUNCTION Example(OBJECT hPen)// Set span to 2 hours and 30 minutes_ObjectCallMethod(hPen, “SetDefaultSpan”, 0, 0, 2, 30, 0, 0);

END

IPen.SetQualityCompactionPointType [Method]

Use this function to indicate what visual cue to display for single and multiple samples.

Defined As

[VBA] SetQualityCompactionPointType(compactionType As Integer, pointType As Integer)

[Cicode] SetQualityCompactionPointType(INT compactionType, INT pointType)

[C++] HRESULT SetQualityCompactionPointType(QualityCompactionType compactionType, PointType pointType)

Parameters

compactionType

[in] Indicates which sample compaction type you want to set the visual cue for.

pointType

[in] Indicates which visual cue to use for the selected compaction type.

Execution Result

If the function succeeds the return value will be Success. If an argument is bad, the return value will be InvalidArgument. If an argument is out of range, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.

See Also QualityCompactionType [Enumeration], PointType [Enumeration]

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)‘ Set single samples to lsook like triangles pen.SetQualityCompactionPointType 0, 5

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)// Set single samples to look like triangles_ObjectCallMethod(hPen, "SetQualityCompactionPointType", 0, 5);

END

IPen.SetQualityLineStyle [Method]

This function can be used to change the type of line drawn for each of the quality states defined by the Process Analyst for this Pen only.

Defined As

Page 175: Vijeo Citect Process Analyst

159

[VBA] SetQualityLineStyle(qualityType As Integer, lineStyle As Integer)

[Cicode] SetQualityLineStyle(INT qualityType, INT lineStyle)

[C++] HRESULT SetQualityLineStyle(QualityType qualityType, LineStyle lineStyle)

Parameters

qualityType

[in] Indicates which quality type you want to set the visual cue for.

lineStyle

[in] Indicates which line style visual cue to use for the selected quality type.

Execution Result

If the function succeeds the return value will be Success. If an argument is bad then the return value will be InvalidArgument. If an argument is out of range then the return value will be InvalidArgument. If the pen is deleted then the return value will be GeneralFailure.

Remarks

When a sample is added to the display, its quality value indicates how the line drawn from that sample to the next one will be displayed.

See Also QualityType [Enumeration], LineStyle [Enumeration]

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)‘ Set all lines drawn after NA samples to be drawn as dash_dotpen.SetQualityLineStyle 1, 3

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)// Set all lines drawn after NA samples to be drawn as dash_dot_ObjectCallMethod(hPen, “SetQualityLineStyle”, 1, 3);

END

IPen.SetVerticalAxisLabelValue [Method]

This function can be used to display custom text for a particular value on the Vertical Axis.

Defined As

[VBA] SetVerticalAxisLabelValue(value As Double, label As String)

[Cicode] SetVerticalAxisLabelValue(REAL value, STRING label)

[C++] HRESULT SetVerticalAxisLabelValue(double value, BSTR label)

Parameters

value

[in] Indicates which value you want to replace with a custom label.

Page 176: Vijeo Citect Process Analyst

160

label

[in] Indicates the text that will be displayed instead of the specified value.

Execution Result

If the function succeeds the return value will be Success. If an argument is bad then the return value will be InvalidArgument. If the pen is deleted then the return value will be GeneralFailure.

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)‘ Change the vertical axis to display High High instead of 95pen.SetVerticalAxisLabelValue 95, “High High”

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)// Change the vertical axis to display High High instead of 95_ObjectCallMethod(hPen, “SetVerticalAxisLabelValue”, 95, “High High”);

END

IPen.VerticalScrollBy [Method]

Scrolls the vertical axis by the specified factor.

Defined As

[VBA] VerticalScrollBy(factor As Double)

[Cicode] VerticalScrollBy(REAL factor)

[C++] HRESULT VerticalScrollBy(double factor)

Parameters

factor

[in] Controls the direction and amount the axis will be scrolled. A negative value will move the axis in the negative direction. A positive value will move the axis forward in the positive direction. The value is a percentage representing the current viewable span. So if the pen span is 100 units (10 to 110), and you specify a factor of 0.5 then you will move the span 50 units (60 to 160).

Execution Result

If the function succeeds the return value will be Success. If the argument is bad then the return value will be InvalidArgument. If the pen is deleted then the return value will be GeneralFailure.

See Also IPen.HorizontalScrollBy [Method]

Calling Syntax

Assumes you have passed a valid pen object into the function.

Page 177: Vijeo Citect Process Analyst

161

[VBA]

Sub Example(pen As Object)‘ Move the pen span forward one complete spanpen.VerticalScrollBy 1.0

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)// Move the pen span forward one complete span_ObjectCallMethod(hPen, “VerticalScrollby”, 1.0);

END

IPen.VerticalZoom [Method]

Zooms centrally into the time span by the given factor on the vertical axis

Defined As

[VBA] VerticalZoom(factor As Double)

[Cicode] VerticalZoom (REAL factor)

[C++] HRESULT VerticalZoom (double factor)

Parameters

factor

[in] Controls the direction and amount the axis will be zoomed. Acceptable zoom values are 0 to 1 (Zoom out) and > 1 (zoom in).

Execution Result

If the function succeeds the return value will be Success. If the argument is bad then the return value will be InvalidArgument. If the argument is out of range then the return value will be InvalidArgument. If the pen is deleted then the return value will be GeneralFailure.

See Also IPen.HorizontalZoom [Method]

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)‘ Zoom out 50%pen.VerticalZoom 0.5‘ Undo the Zoom pen.VerticalZoom 1.5

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)// Zoom out 50%_ObjectCallMethod(hPen, “VerticalZoom”, 0.5);// Undo the Zoom_ObjectCallMethod(hPen, “VerticalZoom”, 2.0);

END

Page 178: Vijeo Citect Process Analyst

162

IPen.AxisBackgroundColor [Property][Get/Set]

Gets or sets the background color of the axis of this pen.

Defined As

[VBA] Long BackgroundColor

[Cicode] INT BackgroundColor

[C++] OLE_COLOR BackgroundColor

Execution Result

If the property get/set succeeds the return value will be Success. If the return variable is bad then the return value will be InvalidArgument. If the pen is deleted then the return value will be GeneralFailure.

Remarks

The background is the area underneath the axis lines and values.

To calculate the integer value required for a color apply the following formula (65536 * Blue) + (256 * Green) + (Red). Where Red, Green and Blue are 0-255

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim backgroundColor As Long‘Getting Property valuebackgroundColor = pen.AxisBackgroundColor‘Setting Property value to Redpen.AxisBackgroundColor = 255

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)INT backgroundColor;// Getting current property valuebackgroundColor = _ObjectGetProperty(hPen, “AxisBackgroundColor”);// Setting Property to Red_ObjectSetProperty(hPen, “AxisBackgroundColor”, PackedRGB(255, 0, 0));

END

IPen.BlockRepaint [Property][Get/Set]

Use this property to halt or continue any drawing updates to this pen.

Defined As

[VBA] Boolean BlockRepaint

[Cicode] INT BlockRepaint

[C++] VARIANT_BOOL BlockRepaint

Execution Result

If the property get/set succeeds the return value will be Success. If the return variable is bad then the return value will be InvalidArgument. If the pen is deleted then the return value will be GeneralFailure.

Remarks

Page 179: Vijeo Citect Process Analyst

163

This property is useful if you are modifying several properties at once as it will help reduce flicker and the amount of processing required. Simply set the property to True (-1), change as many properties as you want, and then set the property to False (0).

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim blockRepaint As Boolean‘Getting Property valueblockRepaint = pen.BlockRepaint‘Setting Property valuepen.BlockRepaint = True

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)INT bBlockRepaint;// Getting current property valuebBlockRepaint = _ObjectGetProperty(hPen, “BlockRepaint”);// Setting Property _ObjectSetProperty(hPen, “BlockRepaint”, -1);

END

IPen.Collection [Property][Get]

Returns a reference to the Pens collection object that this pen belongs to.

Defined As

[VBA] Object Collection

[Cicode] OBJECT Collection

[C++] IPen* Collection

Execution Result

If the property get succeeds the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim pens As Object‘Getting Property valueSet pens = pen.Collection

End Sub

Page 180: Vijeo Citect Process Analyst

164

[Cicode]

FUNCTION Example(OBJECT hPen)OBJECT pens;// Getting current property valuepens = _ObjectGetProperty(hPen, “Collection”);

END

IPen.DataPoint [Property][Get/Set]

Get or Set the trend/alarm tag which this pen is bound to.

Defined As

[VBA] String DataPoint

[Cicode] STRING DataPoint

[C++] BSTR DataPoint

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the tag is greater than 79 characters, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.

Remarks

This property works in conjunction with the DataServer property. This property can be changed during the lifetime of the pen. Changing the DataPoint property will result in the data cache being cleared and a new data request issued. A request for the tag’s information will also be issued.

See Also IPen.DataServer [Property][Get/Set]

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim tag As String‘Getting Property valuetag = pen.DataPoint‘Setting Property valuepen.DataPoint = “LOOP_1_PV”

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)STRING tag;// Getting current property valuetag = _ObjectGetProperty(hPen, “DataPoint”);// Setting Property _ObjectSetProperty(hPen, “DataPoint”, “LOOP_1_PV”);

END

IPen.DataServer [Property][Get/Set]

Get or Set the server that this pen is bound to.

Defined As

[VBA] String DataServer

Page 181: Vijeo Citect Process Analyst

165

[Cicode] STRING DataServer

[C++] BSTR DataServer

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the server connection cannot be found, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.

Remarks

This property currently only supports two options, “localhost” and “” (empty string), which indicates an unbound connection. Local host means the pen will use the local Vijeo Citect client to source data from the Vijeo Citect trend/alarm servers.

This property works in conjunction with the DataPoint property. This property can be changed during the lifetime of the pen.

See Also IPen.DataPoint [Property][Get/Set]

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim server As String‘Getting Property valueserver = pen.DataServer‘Setting Property valuepen.DataPoint = “localhost”

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)STRING server;// Getting current property valueserver = _ObjectGetProperty(hPen, “DataServer”);// Setting Property _ObjectSetProperty(hPen, “DataServer”, “localhost”);

END

IPen.Height [Property][Get/Set]

Get or Set the physical height in pixels that the pen will allocate for itself when displayed in Stacked mode.

Defined As

[VBA] Integer Height

[Cicode] INT Height

[C++] double Height

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If height set is out of

Page 182: Vijeo Citect Process Analyst

166

range (16 – 1000), the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.

Remarks

This property is ignored when the pen is not in Stacked mode.

See Also IPen.Stacked [Property][Get/Set]

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim height As Boolean`Getting Property valueheight = pen.Height`Setting Property valuepen.Height = 75

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)INT height;// Getting current property valueheight = _ObjectGetProperty(hPen, "Height");// Setting Property _ObjectSetProperty(hPen, "Height", 75);

END

IPen.HorizontalAxisColor [Property][Get/Set]

Gets or sets the color used to draw the line, labels, and interval markers of the horizontal axis of this pen.

Defined As

[VBA] Long HorizontalAxisColor

[Cicode] INT HorizontalAxisColor

[C++] OLE_COLOR HorizontalAxisColor

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.

Remarks

To calculate the integer value required for a color apply the following formula:

(65536 * Blue) + (256 * Green) + (Red)

where Red, Green, and Blue are 0-255.

See Also IPen.VerticalAxisColor [Property][Get/Set]

Calling Syntax

Assumes you have passed a valid pen object into the function.

Page 183: Vijeo Citect Process Analyst

167

[VBA]

Sub Example(pen As Object)Dim color As Long‘Getting Property valuecolor = pen.HorizontalAxisColor‘Setting Property value to Redpen.HorizontalAxisColor = 255

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)INT color;// Getting current property valuecolor = _ObjectGetProperty(hPen, “HorizontalAxisColor”);// Setting Property to Red_ObjectSetProperty(hPen, “HorizontalAxisColor”, PackedRGB(255, 0, 0));

END

IPen.HorizontalAxisResize [Property][Get/Set]

Gets or sets whether this pen allows the operator to interactively scale the horizontal axis using the mouse.

Defined As

[VBA] Boolean HorizontalAxisResize

[Cicode] INT HorizontalAxisResize

[C++] VARIANT_BOOL HorizontalAxisResize

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.

Limits

True (-1): Axis can be resized

False (0): Axis cannot be resized

See Also IPen.VerticalAxisResize [Property][Get/Set]

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim resize As Boolean‘Getting Property valueresize = pen.HorizontalAxisResize‘Setting Property valuepen.HorizontalAxisResize = False

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)INT bResize;// Getting current property value

Page 184: Vijeo Citect Process Analyst

168

bResize = _ObjectGetProperty(hPen, “HorizontalAxisResize”);// Setting Property_ObjectSetProperty(hPen, “HorizontalAxisResize”,0);

END

IPen.HorizontalAxisScroll [Property][Get/Set]

Gets or sets whether this pen allows the operator to interactively scroll the horizontal axis using the mouse.

Defined As

[VBA] Boolean HorizontalAxisScroll

[Cicode] INT HorizontalAxisScroll

[C++] VARIANT_BOOL HorizontalAxisScroll

Execution Result

If the property get/set succeeds the return value will be Success. If the return variable is bad then the return value will be InvalidArgument. If the pen is deleted then the return value will be GeneralFailure.

Limits

True (-1): Axis can be scrolled

False (0): Axis cannot be scrolled

See Also IPen.VerticalAxisScroll [Property][Get/Set]

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim scroll As Boolean‘Getting Property valuescroll = pen.HorizontalAxisScroll‘Setting Property valuepen.HorizontalAxisScroll = False

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)INT bScroll;// Getting current property valuebScroll = _ObjectGetProperty(hPen, “HorizontalAxisScroll”);// Setting Property_ObjectSetProperty(hPen, “HorizontalAxisScroll”, 0);

END

IPen.HorizontalAxisWidth [Property][Get/Set]

Gets or sets the width of the horizontal axis line and the associated interval markers.

Defined As

[VBA] Integer HorizontalAxisWidth

[Cicode] INT HorizontalAxisWidth

[C++] short HorizontalAxisWidth

Page 185: Vijeo Citect Process Analyst

169

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.

Limits

A valid width is 0-8 pixels.

See Also IPen.VerticalAxisWidth [Property][Get/Set]

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim width As Integer‘Getting Property valuewidth = pen.HorizontalAxisWidth‘Setting Property valuepen.HorizontalAxisWidth = 3

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)INT width;// Getting current property valuewidth = _ObjectGetProperty(hPen, “HorizontalAxisWidth”);// Setting Property_ObjectSetProperty(hPen, “HorizontalAxisWidth”, 3);

END

IPen.HorizontalGridlinesColor [Property][Get/Set]

Gets or sets the color used to draw the major horizontal gridlines.

Defined As

[VBA] Long HorizontalGridlinesColor

[Cicode] INT HorizontalGridlinesColor

[C++] OLE_COLOR HorizontalGridlinesColor

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.

Limits

A valid width is 0-8 pixels.

Remarks

To calculate the integer value required for a color apply the following formula (65536 * Blue) + (256 * Green) + (Red). Where Red, Green and Blue are 0-255

See Also IPen.HorizontalMinorGridlinesColor [Property][Get/Set]

Calling Syntax

Page 186: Vijeo Citect Process Analyst

170

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim color As Long‘Getting Property valuecolor = pen.HorizontalGridlinesColor‘Setting Property value to Redpen.HorizontalGridlinesColor = 255

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)INT color;// Getting current property valuecolor = _ObjectGetProperty(hPen, “HorizontalGridlinesColor”);// Setting Property to Red_ObjectSetProperty(hPen, “HorizontalGridlinesColor”, PackedRGB(255, 0, 0));

END

IPen.HorizontalGridlinesStyle [Property][Get/Set]

Gets or sets the line style used to draw the major horizontal gridlines.

Defined As

[VBA] Long HorizontalGridlinesStyle

[Cicode] INT HorizontalGridlinesStyle

[C++] LineStyle HorizontalGridlinesStyle

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the style is out of range, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.

See Also IPen.HorizontalMinorGridlinesColor [Property][Get/Set], LineStyle [Enumeration]

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim style As Long‘Getting Property valuestyle = pen.HorizontalGridlinesStyle‘Setting Property value to Dotpen.HorizontalGridlinesColor = 2

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)INT style;// Getting current property valuestyle = _ObjectGetProperty(hPen, “HorizontalGridlinesStyle”);

Page 187: Vijeo Citect Process Analyst

171

// Setting Property to Dot_ObjectSetProperty(hPen, “HorizontalGridlinesStyle”, 2);

END

IPen.HorizontalGridlinesWidth [Property][Get/Set]

Gets or sets the line width used when drawing the major horizontal gridlines.

Defined As

[VBA] Integer HorizontalGridlinesWidth

[Cicode] INT HorizontalGridlinesWidth

[C++] short HorizontalGridlinesWidth

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the width is out of range, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim width As Integer‘Getting Property valuewidth = pen.HorizontalGridlinesWidth‘Setting Property valuepen.HorizontalGridlinesWidth = 3

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)INT width;// Getting current property valuewidth = _ObjectGetProperty(hPen, “HorizontalGridlinesWidth”);// Setting Property t_ObjectSetProperty(hPen, “HorizontalGridlinesWidth”, 3);

END

IPen.HorizontalMinorGridlinesColor [Property][Get/Set]

Gets or sets the color used to draw the minor horizontal gridlines.

Defined As

[VBA] Long HorizontalMinorGridlinesColor

[Cicode] INT HorizontalMinorGridlinesColor

[C++] OLE_COLOR HorizontalMinorGridlinesColor

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.

Remarks

Page 188: Vijeo Citect Process Analyst

172

To calculate the integer value required for a color apply the following formula:

(65536 * Blue) + (256 * Green) + (Red)

where Red, Green, and Blue are 0-255.

See Also IPen.HorizontalGridlinesColor [Property][Get/Set]

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim color As Long‘Getting Property valuecolor = pen.HorizontalMinorGridlinesColor‘Setting Property value to Redpen.HorizontalMinorGridlinesColor = 255

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)INT color;// Getting current property valuecolor = _ObjectGetProperty(hPen, “HorizontalMinorGridlinesColor”);// Setting Property to Red_ObjectSetProperty(hPen, “HorizontalMinorGridlinesColor”, PackedRGB(255, 0, 0));

END

IPen.HorizontalMinorGridlinesStyle [Property][Get/Set]

Gets or sets the line style used to draw the minor horizontal gridlines.

Defined As

[VBA] Long HorizontalMinorGridlinesStyle

[Cicode] INT HorizontalMinorGridlinesStyle

[C++] LineStyle HorizontalMinorGridlinesStyle

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the style is out of range, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.

See Also IPen.HorizontalGridlinesStyle [Property][Get/Set], LineStyle [Enumeration]

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim style As Long‘Getting Property valuestyle = pen.HorizontalMinorGridlinesStyle

Page 189: Vijeo Citect Process Analyst

173

‘Setting Property value to Dotpen.HorizontalMinorGridlinesColor = 2

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)INT style;// Getting current property valuestyle = _ObjectGetProperty(hPen, “HorizontalMinorGridlinesStyle”);// Setting Property to Dot_ObjectSetProperty(hPen, “HorizontalMinorGridlinesStyle”, 2);

END

IPen.IsDeleted [Property][Get]

Returns whether this pen has been marked for deletion. That is, whether someone has called the Delete method on it or deleted it from the display.

Defined As

[VBA] Boolean IsDeleted

[Cicode] INT IsDeleted

[C++] VARIANT_BOOL IsDeleted

Execution Result

If the property get succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument.

See Also IPen.Delete [Method]

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim deleted As Booleandeleted = pen.IsDeleted

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)INT bDeleted;bDeleted = _ObjectGetProperty(hPen, “IsDeleted”);

END

IPen.IsSelected [Property][Get]

Returns whether this pen has been selected in the Process Analyst.

Defined As

[VBA] Boolean IsSelected

[Cicode] INT IsSelected

[C++] VARIANT_BOOL IsSelected

Execution Result

If the property get succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument.

Page 190: Vijeo Citect Process Analyst

174

See Also IPen.Select [Method]

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim selected As Booleanselected = pen.IsSelected

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)INT bSelected;bSelected = _ObjectGetProperty(hPen, “IsSelected”);

END

IPen.LocalTime [Property][Get/Set]

Get or Set whether the axis will display time in the computers current local format or in UTC (Universal Time Coordinate).

Defined As

[VBA] Boolean LocalTime

[Cicode] INT LocalTime

[C++] VARIANT_BOOL LocalTime

Execution Result

If the property get/set succeeds the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.

Limits

True (-1): Local format

False (0): UTC format

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim localTime As Boolean‘Getting Property valuelocalTime = pen.LocalTime‘Display time in UTCpen.LocalTime = False

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)INT bLocalTime;// Getting current property valuebLocalTime = _ObjectGetProperty(hPen, “LocalTime”);

Page 191: Vijeo Citect Process Analyst

175

// Display time in UTC_ObjectSetProperty(hPen, “LocalTime”, 0);

END

IPen.Name [Property][Get/Set]

Get or Set the name of this pen.

Defined As

[VBA] String Name

[Cicode] STRING Name

[C++] BSTR Name

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the length of the name is wrong then the return value will be InvalidArgument. If the pen is deleted then the return value will be GeneralFailure.

Remarks

The Process Analyst will use this name extensively throughout the user interface to reference this pen.

The name of the pen does not have to be unique, but it must be between 1 and 250 character long.

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim name As String‘Getting Property valuename = pen.Name‘Setting property valuepen.Name = “NicePen”

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)STRING name;// Getting current property valuename = _ObjectGetProperty(hPen, “Name”);// Setting property value_ObjectSetProperty(hPen, “Name”, “NicePen”);

END

IPen.RequestMode [Property][Get/Set]

Get or Set how multiple samples will be calculated on the server.

Defined As

[VBA] Integer RequestMode

[Cicode] INT RequestMode

[C++] RequestMode RequestMode

Page 192: Vijeo Citect Process Analyst

176

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the mode is out of range, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.

Remarks

When the pen makes a request for data and samples need to be compacted, it will use this mode to determine how the compaction will occur.

Changing this mode will clear the data cache and issue a new request for data.

See Also RequestMode [Enumeration]

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim requestMode As Integer‘Getting Property valuerequestMode = pen.RequestMode‘Setting mode to minimumpen.RequestMode = 1

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)INT requestMode;// Getting current property valuerequestMode = _ObjectGetProperty(hPen, “RequestMode”);// Setting mode to minimum_ObjectSetProperty(hPen, “RequestMode”, 1);

END

IPen.Stacked [Property][Get/Set]

Get or Set whether the pen is visually displayed stacked or overlaid.

Defined As

[VBA] Boolean Stacked

[Cicode] INT Stacked

[C++] VARIANT_BOOL Stacked

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.

Limits

True (-1): Stacked

False (0): Overlaid

Remarks

Page 193: Vijeo Citect Process Analyst

177

When stacked, pens will be drawn under each other; when overlaid, the pens will be drawn over the top of each other.

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim stacked As Boolean‘Getting Property valuestacked = pen.Stacked‘Setting Property valuepen.Stacked = True

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)INT bStacked;// Getting current property valuebStacked = _ObjectGetProperty(hPen, “Stacked”);// Setting property value_ObjectSetProperty(hPen, “Stacked”, -1);

END

IPen.TrendCursorLabelFillColor [Property][Get/Set]

Gets or sets the fill color used for any cursor label associated with this pen.

Defined As

[VBA] Long TrendCursorLabelFillColor

[Cicode] INT TrendCursorLabelFillColor

[C++] OLE_COLOR TrendCursorLabelFillColor

Execution Result

If the property get/set succeeds the return value will be Success. If the return variable is bad then the return value will be InvalidArgument. If the pen is deleted then the return value will be GeneralFailure.

Remarks

To calculate the integer value required for a color apply the following formula (65536 * Blue) + (256 * Green) + (Red). Where Red, Green and Blue are 0-255.

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim color As Long‘Getting Property valuecolor = pen. TrendCursorLabelFillColor‘Setting Property value to Redpen. TrendCursorLabelFillColor = 255

End Sub

Page 194: Vijeo Citect Process Analyst

178

[Cicode]

FUNCTION Example(OBJECT hPen)INT color;// Getting current property valuecolor = _ObjectGetProperty(hPen, “TrendCursorLabelFillColor”);// Setting Property to Red_ObjectSetProperty(hPen, “TrendCursorLabelFillColor”, PackedRGB(255, 0, 0));

END

IPen.TrendCursorLabelLineColor [Property][Get/Set]

Gets or sets the border color used for any cursor label associated with this pen.

Defined As

[VBA] Long TrendCursorLabelLineColor

[Cicode] INT TrendCursorLabelLineColor

[C++] OLE_COLOR TrendCursorLabelLineColor

Execution Result

If the property get/set succeeds the return value will be Success. If the return variable is bad then the return value will be InvalidArgument. If the pen is deleted then the return value will be GeneralFailure.

Remarks

To calculate the integer value required for a color apply the following formula (65536 * Blue) + (256 * Green) + (Red). Where Red, Green and Blue are 0-255.

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim color As Long‘Getting Property valuecolor = pen. TrendCursorLabelLineColor‘Setting Property value to Redpen. TrendCursorLabelLineColor = 255

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)INT color;// Getting current property valuecolor = _ObjectGetProperty(hPen, “TrendCursorLabelLineColor”);// Setting Property to Red_ObjectSetProperty(hPen, “TrendCursorLabelLineColor”, PackedRGB(255, 0, 0));

END

IPen.TrendCursorLabelTextColor [Property][Get/Set]

Gets or sets the text color used for any cursor label associated with this pen.

Defined As

[VBA] Long TrendCursorLabelTextColor

[Cicode] INT TrendCursorLabelTextColor

Page 195: Vijeo Citect Process Analyst

179

[C++] OLE_COLOR TrendCursorLabelTextColor

Execution Result

If the property get/set succeeds the return value will be Success. If the return variable is bad then the return value will be InvalidArgument. If the pen is deleted then the return value will be GeneralFailure.

Remarks

To calculate the integer value required for a color apply the following formula (65536 * Blue) + (256 * Green) + (Red). Where Red, Green and Blue are 0-255.

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim color As Long‘Getting Property valuecolor = pen. TrendCursorLabelTextColor‘Setting Property value to Redpen. TrendCursorLabelTextColor = 255

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)INT color;// Getting current property valuecolor = _ObjectGetProperty(hPen, “TrendCursorLabelTextColor”);// Setting Property to Red_ObjectSetProperty(hPen, “TrendCursorLabelTextColor”, PackedRGB(255, 0, 0));

END

IPen.VerticalAxisAutoscale [Property][Get/Set]

Gets or sets whether the vertical axis will automatically calculate its physical limits based on the sample values within its internal cache.

Defined As

[VBA] Boolean VerticalAxisAutoscale

[Cicode] INT VerticalAxisAutoscale

[C++] VARIANT_BOOL VerticalAxisAutoscale

Execution Result

If the property get/set succeeds the return value will be Success. If the return variable is bad then the return value will be InvalidArgument. If the pen is deleted then the return value will be GeneralFailure.

Remarks

Setting this property will turn off interactive Scrolling (IPen.HorizontalAxisScroll) and Scaling (IPen.HorizontalAxisResize).

Limits

True (-1): Autoscale enabled

Page 196: Vijeo Citect Process Analyst

180

False (0): Autoscale disabled

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim autoScale As Long‘Getting Property valueautoScale = pen. VerticalAxisAutoscale‘Setting Property valuepen. VerticalAxisAutoscale = True

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)INT autoScale;// Getting current property valueautoScale = _ObjectGetProperty(hPen, “VerticalAxisAutoscale”);// Setting Property_ObjectSetProperty(hPen, “VerticalAxisAutoscale”, -1);

END

IPen.VerticalAxisColor [Property][Get/Set]

Gets or sets the color used to draw the line, labels and interval markers of the vertical axis of this pen.

Defined As

[VBA] Long VerticalAxisColor

[Cicode] INT VerticalAxisColor

[C++] OLE_COLOR VerticalAxisColor

Execution Result

If the property get/set succeeds the return value will be Success. If the return variable is bad then the return value will be InvalidArgument. If the pen is deleted then the return value will be GeneralFailure.

Remarks

To calculate the integer value required for a color apply the following formula (65536 * Blue) + (256 * Green) + (Red). Where Red, Green and Blue are 0-255.

See Also IPen.HorizontalAxisColor [Property][Get/Set]

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim color As Long‘Getting Property valuecolor = pen.VerticalAxisColor‘Setting Property value to Redpen.VerticalAxisColor = 255

End Sub

Page 197: Vijeo Citect Process Analyst

181

[Cicode]

FUNCTION Example(OBJECT hPen)INT color;// Getting current property valuecolor = _ObjectGetProperty(hPen, “VerticalAxisColor”);// Setting Property to Red_ObjectSetProperty(hPen, “VerticalAxisColor”, PackedRGB(255, 0, 0));

END

IPen.VerticalAxisLabelType [Property][Get/Set]

Gets or sets a unit type which can be applied to the axis labels. This allows numbers on the axis to display with their unit. For example, setting the unit to “kg” will display “10 Kg” on the axis.

Defined As

[VBA] Integer VerticalAxisLabelType

[Cicode] INT VerticalAxisLabelType

[C++] AxisLabelType VerticalAxisLabelType

Execution Result

If the property get/set succeeds the return value will be Success. If the return variable is bad then the return value will be InvalidArgument. If the pen is deleted then the return value will be GeneralFailure.

Remarks

Label Types are fixed and cannot be added to.

See Also AxisLabelType [Enumeration]

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim labelType As Integer‘Getting Property valuelabelType = pen.VerticalAxisLabelType‘Setting Property value to Percentpen.VerticalAxisLabelType= 3

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)INT labelType;// Getting current property valuelabelType = _ObjectGetProperty(hPen, “VerticalAxisLabelType”);// Setting Property to Percent_ObjectSetProperty(hPen, “VerticalAxisLabelType”, 3);

END

IPen.VerticalAxisResize [Property][Get/Set]

Gets or sets whether this pen allows the operator to interactively scale the vertical axis by using the mouse.

Defined As

Page 198: Vijeo Citect Process Analyst

182

[VBA] Boolean VerticalAxisResize

[Cicode] INT VerticalAxisResize

[C++] VARIANT_BOOL VerticalAxisResize

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.

Limits

True (-1): Enable resize

False (0): Disable resize

Remarks

This only applies to analog pens.

See Also IPen.HorizontalAxisResize [Property][Get/Set]

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim resize As Boolean‘Getting Property valueresize = pen. VerticalAxisResize‘Setting Property valuepen. VerticalAxisResize = False

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)INT bResize;// Getting current property valuebResize = _ObjectGetProperty(hPen, “VerticalAxisResize”);// Setting Property_ObjectSetProperty(hPen, “VerticalAxisResize”,0);

END

IPen.VerticalAxisScroll [Property][Get/Set]

Gets or sets whether this pen allows the operator to interactively scroll the vertical axis by using the mouse.

Defined As

[VBA] Boolean VerticalAxisScroll

[Cicode] INT VerticalAxisScroll

[C++] VARIANT_BOOL VerticalAxisScroll

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.

Page 199: Vijeo Citect Process Analyst

183

Limits

True (-1): Enable scrolling

False (0): Disable scrolling

Remarks

This only applies to analog pens.

See Also IPen.HorizontalAxisScroll [Property][Get/Set]

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim scroll As Boolean‘Getting Property valuescroll = pen.VerticalAxisScroll‘Setting Property valuepen.VerticalAxisScroll = False

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)INT bScroll;// Getting current property valuebScroll = _ObjectGetProperty(hPen, “VerticalAxisScroll”);// Setting Property_ObjectSetProperty(hPen, “VerticalAxisScroll”, 0);

END

IPen.VerticalAxisWidth [Property][Get/Set]

Gets or sets the width of the vertical axis line and the associated interval markers.

Defined As

[VBA] Integer VerticalAxisWidth

[Cicode] INT VerticalAxisWidth

[C++] short VerticalAxisWidth

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.

Limits

A valid width is 0-8 pixels.

Remarks

This only applies to analog pens.

See Also IPen.HorizontalAxisWidth [Property][Get/Set]

Calling Syntax

Page 200: Vijeo Citect Process Analyst

184

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim width As Integer‘Getting Property valuewidth = pen.VerticalAxisWidth‘Setting Property valuepen.VerticalAxisWidth = 3

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)INT width;// Getting current property valuewidth = _ObjectGetProperty(hPen, “VerticalAxisWidth”);// Setting Property_ObjectSetProperty(hPen, “VerticalAxisWidth”, 3);

END

IPen.VerticalGridlinesColor [Property][Get/Set]

Gets or sets the color used to draw the major vertical gridlines.

Defined As

[VBA] Long VerticalGridlinesColor

[Cicode] INT VerticalGridlinesColor

[C++] OLE_COLOR VerticalGridlinesColor

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.

Remarks

To calculate the integer value required for a color apply the following formula (65536 * Blue) + (256 * Green) + (Red). Where Red, Green and Blue are 0-255.

See Also IPen.VerticalMinorGridlinesColor [Property][Get/Set]

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim color As Long‘Getting Property valuecolor = pen.VerticalGridlinesColor‘Setting Property value to Redpen. VerticalGridlinesColor = 255

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)INT color;// Getting current property value

Page 201: Vijeo Citect Process Analyst

185

color = _ObjectGetProperty(hPen, “VerticalGridlinesColor”);// Setting Property to Red_ObjectSetProperty(hPen, “VerticalGridlinesColor”, PackedRGB(255, 0, 0));

END

IPen.VerticalGridlinesStyle [Property][Get/Set]

Gets or sets the line style used to draw the major vertical gridlines.

Defined As

[VBA] Long VerticalGridlinesColor

[Cicode] INT VerticalGridlinesColor

[C++] LineStyle VerticalGridlinesColor

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the style is out of range, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.

See Also IPen.VerticalMinorGridlinesStyle [Property][Get/Set], LineStyle [Enumeration]

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim style As Long‘Getting Property valuestyle = pen.VerticalGridlinesColor‘Setting Property value to Dotpen.VerticalGridlinesColor = 2

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)INT style;// Getting current property valuestyle = _ObjectGetProperty(hPen, “VerticalGridlinesStyle”);// Setting Property to Dot_ObjectSetProperty(hPen, “VerticalGridlinesStyle”, 2);

END

IPen.VerticalGridlinesWidth [Property][Get/Set]

Gets or sets the line width used when drawing the major vertical gridlines.

Defined As

[VBA] Integer VerticalGridlinesWidth

[Cicode] INT VerticalGridlinesWidth

[C++] short VerticalGridlinesWidth

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the width is out of

Page 202: Vijeo Citect Process Analyst

186

range, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.

Limits

A valid width is 0-8 pixels.

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim width As Integer‘Getting Property valuewidth = pen.VerticalGridlinesWidth‘Setting Property valuepen.VerticalGridlinesWidth = 3

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)INT width;// Getting current property valuewidth = _ObjectGetProperty(hPen, “VerticalGridlinesWidth”);// Setting Property t_ObjectSetProperty(hPen, “VerticalGridlinesWidth”, 3);

END

IPen.VerticalMinorGridlinesColor [Property][Get/Set]

Gets or sets the color used to draw the minor vertical gridlines.

Defined As

[VBA] Long VerticalMinorGridlinesColor

[Cicode] INT VerticalMinorGridlinesColor

[C++] OLE_COLOR VerticalMinorGridlinesColor

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.

Remarks

To calculate the integer value required for a color apply the following formula (65536 * Blue) + (256 * Green) + (Red). Where Red, Green and Blue are 0-255.

See Also IPen.VerticalGridlinesColor [Property][Get/Set]

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim color As Long‘Getting Property valuecolor = pen. VerticalMinorGridlinesColor

Page 203: Vijeo Citect Process Analyst

187

‘Setting Property value to Redpen.VerticalMinorGridlinesColor = 255

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)INT color;// Getting current property valuecolor = _ObjectGetProperty(hPen, “VerticalMinorGridlinesColor”);// Setting Property to Red_ObjectSetProperty(hPen, “VerticalMinorGridlinesColor”, PackedRGB(255, 0, 0));

END

IPen.VerticalMinorGridlinesStyle [Property][Get/Set]

Gets or sets the line style used to draw the minor vertical gridlines.

Defined As

[VBA] Long VerticalMinorGridlinesStyle

[Cicode] INT VerticalMinorGridlinesStyle

[C++] LineStyle VerticalMinorGridlinesStyle

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the style is out of range, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.

See Also IPen.VerticalGridlinesStyle [Property][Get/Set], LineStyle [Enumeration]

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim style As Long‘Getting Property valuestyle = pen.VerticalMinorGridlinesStyle‘Setting Property value to Dotpen.VerticalMinorGridlinesColor = 2

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)INT style;// Getting current property valuestyle = _ObjectGetProperty(hPen, “VerticalMinorGridlinesStyle”);// Setting Property to Dot_ObjectSetProperty(hPen, “VerticalMinorGridlinesStyle”, 2);

END

IPen.Visible [Property][Get/Set]

Get or set whether this pen will be visually shown (True) or hidden (False) to the operator.

Defined As

Page 204: Vijeo Citect Process Analyst

188

[VBA] Boolean Visible

[Cicode] INT Visible

[C++] VARIANT_BOOL Visible

Execution Result

If the property get succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.

Limits

True (-1): Visible

False (0): Hidden

Calling Syntax

Assumes you have passed a valid pen object into the function.

[VBA]

Sub Example(pen As Object)Dim visible As Boolean‘Get the property valuevisible = pen.Visible‘ Set the property value pen.Visible = False

End Sub

[Cicode]

FUNCTION Example(OBJECT hPen)INT bVisible;// Get the property valuebVisible = _ObjectGetProperty(hPen, “Visible”, 0.5);// Set the property value_ObjectSetProperty(hPen, “Visible”, 0);

END

IPens InterfaceDefined As

[VBA] Object

[Cicode] OBJECT

[C++] IPens

Methods (2)

IPens.Create [Method]IPens.RemoveAll [Method]

Properties (5)

IPens.Count [Property][Get]IPens.Item [Property][Get]IPens._NewEnum [Property][Get]IPens.ItemByName [Property][Get]IPens.Pane[Property][Get]

Page 205: Vijeo Citect Process Analyst

189

IPens.Create [Method] Creates a new pen and adds it to this collection.

Defined As

[VBA] Create(penType As Integer, nameMode As Integer) as Object

[Cicode] OBJECT Create (INT penType, INT nameMode)

[C++] HRESULT Create(PenType penType, PenNameMode penNameMode, IPen** pen)

Parameters

penType

[in] Indicates the type of pen that will be created. See PenType Enumeration for the types of pen that can be created.

penNameMode

[in] Indicates how the name will be obtained for this pen. The Process Analyst provides options of PenNameMode_Comment, PenNameMode_Tag, and PenNameMode_Custom. Specifying PenNameMode_Comment will mean that the Process Analyst names the pen from the Comment field of the trend/alarm tag associated with the IPen.DataPoint property. Specifying PenNameMode_Tag will mean that the Process Analyst will name the pen as the value of the IPen.DataPoint property. Specifying PenNameMode_Custom causes the Process Analyst to provide a default name and leave setting the name to you via the IPen.Name property.

Execution Results

If the method succeeds the return value will be Success. If the pens collection is deleted, the return value will be GeneralFailure.

Remarks

If this method succeeds, a new Pen of the specified type is created and appended to the pens collection.

See Also IPen Interface, PenType [Enumeration], PenNameMode [Enumeration]

Calling Syntax

This example assumes there is a valid Pens collection object to be passed in to the example methods.

[VBA]

Sub Example(pens As Object)Dim pen As ObjectSet pen = pens.Create(4097, 1)

End Sub

[Cicode]

FUNCTION Example(OBJECT hPens)OBJECT hPen = _ObjectCallMethod(hPens, “Create” , 4097, 1);

END

Page 206: Vijeo Citect Process Analyst

190

IPens.RemoveAll [Method]

Removes all Pens from the Pens collection.

Defined As

[VBA] RemoveAll()

[Cicode] RemoveAll()

[C++] HRESULT RemoveAll()

Execution Result

If the property get/set succeeds the return value will be Success. If the pens collection is deleted the return value will be GeneralFailure.

Calling Syntax

This example assumes there is a valid Pens collection object to be passed into the example methods.

[VBA]

Sub Panes(pens As Object)pens.RemoveAll()

End Sub

[Cicode]

FUNCTION Example(OBJECT hPens)_ObjectCallMethod(hPens, “RemoveAll”);

END

IPens.Count [Property][Get]

Gets the number of Pens in this collection.

Defined As

[VBA] Long Count

[Cicode] INT Count

[C++] int Count

Execution Result

If the property get succeeds, the return value will be Success. If the pens collection is deleted, the return value will be GeneralFailure.

Calling Syntax

This example assumes there is a valid Pens collection object to be passed into the example methods.

[VBA]

Sub Example(Pens As Object)Dim count As Long‘Getting Property valuecount = Pens.Count

End Sub

[Cicode]

FUNCTION Example(OBJECT hPens)// Getting property valueINT nCount = _ObjectGetProperty(hPens, "Count");

END

Page 207: Vijeo Citect Process Analyst

191

IPens.Item [Property][Get]

Gets the Pen at the given index from this pen’s collection.

Defined As

[VBA] Item(index As Long) as Object

[Cicode] OBJECT Item(INT index)

[C++] Item(int index, IPen* Item)

Parameters

index

[in] Indicates the index of the pen item to return from this collection. (One based)

Execution Result

If the property get succeeds, the return value will be Success. If the index is out of range, the return value will be InvalidArgument. If the pen’s collection is deleted, the return value will be GeneralFailure.

Calling Syntax

This example assumes there is a valid Pens collection object to be passed into the example methods.

[VBA]

Sub Example(pens As Object)Dim pen As Object‘Getting Property valueSet pen = pens.Item(1)

End Sub

[Cicode]

FUNCTION Example(OBJECT hPens)// Getting property valueOBJECT hPen = _ObjectCallMethod(hPens, "get_Item", 1);

END

IPens._NewEnum [Property][Get]

This allows For.. Each.. Next integration in VB.

Calling Syntax

This example assumes there is a valid Pens collection object to be passed into the example methods. This property is not applicable to Cicode.

[VBA]

Sub Example(Pens As Object)Dim pen As ObjectDim count As Long‘Using Property For Each pen In Pens

count = count + 1Next pen

End Sub

IPens.ItemByName [Property][Get]

Gets the Pen of the given name from this Pens collection.

Defined As

Page 208: Vijeo Citect Process Analyst

192

[VBA] ItemByName(name As String) as Object

[Cicode] OBJECT ItemByName(STRING name)

[C++] ItemByName(STRING name, IPen* Item)

Parameters

name

[in] Indicates the name of the Pen item to return from this collection.

Execution Result

If the property get succeeds, the return value will be Success. If the pen does not exist, the return value will be InvalidArgument. If the pens collection is deleted, the return value will be GeneralFailure.

Calling Syntax

This example assumes there is a valid Pens collection object to be passed into the example methods.

[VBA]

Sub Example(Pens As Object)Dim pen As Object‘Getting Property valueSet pen = Pens.ItemByName(“CPU Usage”)

End Sub

[Cicode]

FUNCTION Example(OBJECT hPens)// Getting property valueOBJECT hPen = _ObjectCallMethod(hPens, "get_ItemByName", "CPU Usage");

END

IPens.Pane[Property][Get]

Gets the Pane that this Pens collection belongs to.

Defined As

[VBA] Object Pane

[Cicode] OBJECT Pane

[C++] HRESULT Pane(IPane** Pane)

Execution Result

If the property get succeeds the return value will be Success. If the pens collection is deleted the return value will be GeneralFailure.

Remarks

Each Pens collection belongs to a Pane.

Calling Syntax

This example assumes there is a valid Pens collection object to be passed into the example methods.

Page 209: Vijeo Citect Process Analyst

193

[VBA]

Sub Example(pens As Object)Dim pane As Object‘Getting Property valueSet pane = pens.Pane

End Sub

[Cicode]

FUNCTION Example(OBJECT hPens)// Getting property valueOBJECT hPane = _ObjectGetProperty(hPens, "Pane");

END

IProcessAnalyst InterfaceDefined As

[VBA] Object

[Cicode] OBJECT

[C++] IProcessAnalyst

Methods

IProcessAnalyst.BlockUpdates [Method]IProcessAnalyst.UnBlockUpdates [Method]IProcessAnalyst.CopyToClipboard [Method]IProcessAnalyst.CopyToFile [Method]IProcessAnalyst.FreezeEvent [Method]IProcessAnalyst.LoadFromFile [Method]IProcessAnalyst.PrintAll [Method]IProcessAnalyst.SaveToFile [Method]IProcessAnalyst.ShowProperties [Method]IProcessAnalyst.SubscribeForPropertyChange [Method]IProcessAnalyst.SynchroniseToNow [Method]IProcessAnalyst.UnsubscribePropertyChange [Method]

Properties

IProcessAnalyst.AdminPrivilegeLevel [Property] [Get]IProcessAnalyst.AutoScroll [Property][Get/Set]IProcessAnalyst.BackgroundColor [Property][Get/Set]IProcessAnalyst.CommandSystem [Property][Get]IProcessAnalyst.ContextMenu [Property][Get/Set]IProcessAnalyst.Cursors [Property][Get]IProcessAnalyst.DataRequestRate [Property][Get/Set]IProcessAnalyst.DisplayRefreshRate [Property][Get/Set]IProcessAnalyst.Language [Property] [Get/Set]IProcessAnalyst.LastSelectedPen [Property][Get]IProcessAnalyst.LockedPens [Property][Get/Set]IProcessAnalyst.ObjectView [Property][Get]IProcessAnalyst.NumberofSamples[Property][Get/Set]IProcessAnalyst.Panes [Property][Get]IProcessAnalyst.PrimaryPath [Property][Get/Set]IProcessAnalyst.SecondaryPath [Property][Get/Set]IProcessAnalyst.Toolbars [Property][Get]

Page 210: Vijeo Citect Process Analyst

194

IProcessAnalyst.WritePrivilegeLevel [Property][Get]IProcessAnalyst.ZoomMode [Property][Get/Set]

IProcessAnalyst.BlockUpdates [Method]

Blocks certain aspects of the Process Analyst’s redrawing and data updating.

Defined As

[VBA] BlockUpdates()

[Cicode] BlockUpdates()

[C++] HRESULT BlockUpdates()

Remarks

This method blocks three redraw systems: redraw for the chart, the Object View, and the toolbars.

Data updates are also blocked.

The current data requests are all cancelled.

The Process Analyst has a built-in counter to store how many times the block and unblock have been called, so that only the final UnBlockUpdates call actually unblocks the above mentioned data updates and redraw systems.

See Also IProcessAnalyst.UnBlockUpdates [Method]

Execution Result

If the function suceeds, the return value will be Success. If the function fails, the return value will be general failure.

Calling Syntax

This example assumes there is a valid Process Analyst object to be passed into the example methods.

[VBA]

Sub Example(ProcessAnalyst As Object)ProcessAnalyst.BlockUpdates()

End Sub

[Cicode]

FUNCTION Example(OBJECT hProcessAnalyst)_ObjectCallMethod(hProcessAnalyst, “BlockUpdates”);

END

IProcessAnalyst.UnBlockUpdates [Method]

Unblocks certain aspects of the Process Analyst’s redrawing and data updating.

Defined As

[VBA] UnblockUpdates()

[Cicode] UnblockUpdates()

[C++] HRESULT UnblockUpdates()

Remarks

This method unblocks three redraw systems: redraw for the chart, the Object View, and the toolbars.

Page 211: Vijeo Citect Process Analyst

195

Data updates are also unblocked.

The Process Analyst has a built-in counter to store how many times the block and unblock have been called, so that only the final UnBlockUpdates call actually unblocks the above mentioned data updates and redraw systems.

See Also IProcessAnalyst.BlockUpdates [Method]Execution Result

If the function suceeds, the return value will be Success. If the function fails, the return value will be general failure. If other BlockUpdates are in effect, a Success will be returned also (for those C++ users, S_FALSE will be returned in this case).

Calling Syntax

This example assumes there is a valid Process Analyst object to be passed into the example methods.

[VBA]

Sub Example(ProcessAnalyst As Object)ProcessAnalyst.UnblockUpdates()

End Sub

[Cicode]

FUNCTION Example(OBJECT hProcessAnalyst)_ObjectCallMethod(hProcessAnalyst, “UnblockUpdates”);

END

IProcessAnalyst.CopyToClipboard [Method]

Copies the data in the current viewable range for all visible pens to the clipboard.

Defined As

[VBA] CopyToClipboard()

[Cicode] CopyToClipboard()

[C++] HRESULT CopyToClipboard()

Remarks

The timestamp of each sample will be in local time defined by your computer. The start and end sample maybe generated for each pen to indicate the exported range of the data.

Execution Result

If the function succeeds the return value will be Success. If the function fails the return value will be GeneralFailure.

See Also IProcessAnalyst.CopyToFile [Method]

Calling Syntax

Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.

Page 212: Vijeo Citect Process Analyst

196

[VBA]

Sub Example()myPage_AN35.CopyToClipboard

End Sub

[Cicode]

Sub Example()OBJECT hProcessAnalyst = ObjectByName(“AN35”);_ObjectCallMethod(hProcessAnalyst, “CopyToClipboard”);

End Sub

IProcessAnalyst.CopyToFile [Method]

Saves the data in the current viewable range for all visible pens to the specified file.

Defined As

[VBA] CopyToFile(filename As String)

[Cicode] CopyToFile(STRING filename)

[C++] HRESULT CopyToClipBoard(BSTR filename)

Parameters

filename

[in] Indicates the name and path of the file that the data will be exported to.

Execution Result

If the function succeeds the return value will be Success. If the function fails the return value will be GeneralFailure.

Remarks

The timestamp of each sample will be in local time defined by your computer. The start and end sample maybe generated for each pen to indicate the exported range of the data.

See Also IProcessAnalyst.CopyToClipboard [Method]

Calling Syntax

Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.

[VBA]

Sub Example()myPage_AN35.CopyToFile “test.xls”

End Sub

[Cicode]

Sub Example()OBJECT hProcessAnalyst = ObjectByName(“AN35”);_ObjectCallMethod(hProcessAnalyst, “CopyToFile”, “test.xls”);

End Sub

IProcessAnalyst.FreezeEvent [Method]

Enables or disables a specified event from triggering.

Defined As

Page 213: Vijeo Citect Process Analyst

197

[VBA] FreezeEvent(eventName As String, freeze As Boolean)

[Cicode] FreezeEvent(STRING eventName, INT freeze)

[C++] HRESULT FreezeEvent(BSTR columnName, VARIANT_BOOL freeze)

Parameters

eventName

[in] Specifies the event that you want to cease receiving notifications for.

freeze

[in] Indicates whether to enable or disable the event. True(-1) enable the event. False(0) disable the event.

Execution Result

If the method succeeds, the return value will be Success. If the method fails, the return value will be GeneralFailure. If eventName is bad or does not exist, the return value will be InvalidArgument.

Remarks

All events exposed by the Process Analyst can be enabled or disabled. This method is particularly useful to prevent recursive behavior of functions that generate the same event that you are trying to handle.

Calling Syntax

This example assumes there is a valid Process Analyst object to be passed into the example methods.

[VBA]

Sub Example(analyst As Object)analyst.FreezeEvent "HorizontalAxisChanged" True

End Sub

[Cicode]

FUNCTION Example(OBJECT hAnalyst)_ObjectCallMethod(hAnalyst, "FreezeEvent","HorizontalAxisChanged", -1);

END

IProcessAnalyst.LoadFromFile [Method]

Loads a specified view into the Process Analyst.

Defined As

[VBA] LoadFromFile(filename As String, fileLocation As Integer)

[Cicode] LoadFromFile(STRING filename, INT fileLocation)

[C++] HRESULT LoadFromFile(BSTR filename, FileLocation fileLocation)

Parameters

filename

[in] Indicates a relative path and filename of the view to load into the Process Analyst. See Remarks, below.

fileLocation

[in] Indicates which known location to load the file from.

Page 214: Vijeo Citect Process Analyst

198

Execution Result

If the function succeeds the return value will be Success. If the filename is invalid the return value will be InvalidArgument. If the path indicated by fileLocation is invalid or offline then the return value will be PathNotFound. If any other problem occurs then the return value will be GeneralFailure.

Remarks

This method will replace the current view with the one in the specified file.

Absolute paths are not required for the filename as the method has been designed to load the specified file from your project directory(FileLocation_Local), my documents folder (FileLocation_User) or from the primary/secondary paths (FileLocation_Server).

When a file is loaded it will be synchronized with the other locations to ensure each location has the file which is the latest. If the file you are loading is older then one which exists in another location it will be replaced. Synchronization will not occur when loaded from a Web-client.

See Also FileLocation [Enumeration], IProcessAnalyst.PrimaryPath [Property][Get/Set], IProcessAnalyst.SecondaryPath [Property][Get/Set]

Calling Syntax

Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.

[VBA]

Sub Example()‘ Load the view from the servermyPage_AN35.LoadFromFile “Analyst Views\Test1.pav”, 1

End Sub

[Cicode]

FUNCTION Example()OBJECT hProcessAnalyst = ObjectByName(“AN35”);_ObjectCallMethod(hProcessAnalyst, “LoadFromFile”,“AnalystViews\Test1.pav”, 1);

END

IProcessAnalyst.PrintAll [Method]

Displays the Print configuration dialog.

Defined As

[VBA] PrintAll

[Cicode] PrintAll()

[C++] HRESULT PrintAll()

Execution Result

If the function succeeds the return value will be Success. If an unexpected error occurs then return value will be GeneralFailure.

Calling Syntax

Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.

Page 215: Vijeo Citect Process Analyst

199

[VBA]

Sub Example()myPage_AN35.PrintAll

End Sub

[Cicode]

FUNCTION Example()OBJECT hProcessAnalyst = ObjectByName(“AN35”);_ObjectCallMethod(hProcessAnalyst, “PrintAll”);

END

IProcessAnalyst.SaveToFile [Method]

Saves the current view using the specified name to the specified location.

Defined As

[VBA] SaveToFile(filename As String, fileLocation As Integer)

[Cicode] SaveToFile(STRING filename, INT fileLocation)

[C++] HRESULT SaveToFile(BSTR filename, FileLocation fileLocation)

Parameters

filename

[in] Indicates a relative path and filename which will be used during the saving of the view. See Remarks.

fileLocation

[in] Indicates which known location to save the file to.

Execution Result

If the function succeeds the return value will be Success. If the filename is invalid the return value will be InvalidArgument. If the path indicated by fileLocation is invalid or offline then the return value will be PathNotFound. If any other problem occurs, the return value will be GeneralFailure.

Remarks

On a client where the current user matches the WritePrivilegeLevel only the FileLocation_Server and FileLocation_User options will succeed. Saving using the FileLocation_Server option will save to the locations indicated by PrimaryPath and SecondaryPath properties and into the Project directory.

On a client where the current user does not match the WritePrivilegeLevel only the FileLocation_User will succeed.

On a webclient the FileLocation_User is the only option which will succeed.

See Also FileLocation [Enumeration], IProcessAnalyst.PrimaryPath [Property][Get/Set], IProcessAnalyst.SecondaryPath [Property][Get/Set], IProcessAnalyst.WritePrivilegeLevel [Property][Get]

Calling Syntax

Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.

Page 216: Vijeo Citect Process Analyst

200

[VBA]

Sub Example()‘ Save the view to the server and projectmyPage_AN35.SaveToFile “Analyst Views\Test1.pav”, 1

End Sub

[Cicode]

FUNCTION Example()OBJECT hProcessAnalyst = ObjectByName(“AN35”);‘ Save the view to the server and project_ObjectCallMethod(hProcessAnalyst, “SaveToFile”, “Analyst

Views\Test1.pav”, 1);END

IProcessAnalyst.ShowProperties [Method]

Displays the Process Analyst’s property configuration dialog.

Define As

[VBA] ShowProperties

[Cicode] ShowProperties()

[C++] HRESULT ShowProperties ()

Execution Result

If the function succeeds the return value will be Success. If an unexpected error occurs then the return value will be GeneralFailure.

Calling Syntax

Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.

[VBA]

Sub Example()myPage_AN35.ShowProperties

End Sub

[Cicode]

FUNCTION Example()OBJECT hProcessAnalyst = ObjectByName(“AN35”);_ObjectCallMethod(hProcessAnalyst, “ShowProperties”);

END

IProcessAnalyst.SubscribeForPropertyChange [Method]

Use this method to receive notifications of when a particular property changes. Notifications will be sent via the PropertyChanged event.

Defined As

[VBA] SubscribeForPropertyChange(interfaceName As String, propertyName As String)

[Cicode] SubscribeForPropertyChange(STRING interfaceName, STRING propertyName)

[C++] HRESULT SubscribeForPropertyChange(BSTR interfaceName, BSTR propertyName)

Parameters

Page 217: Vijeo Citect Process Analyst

201

interfaceName

[in] Specify the name of the interface that the property you want notifications for is defined on.

propertyName

[in] This is the name of the property you want to receive notifications for.

Execution Result

If the function succeeds, the return value will be Success. If the interfaceName or propertyName is a bad string, the return value will be InvalidArgument. If any other problem occurs, the return value will be GeneralFailure.

Remarks

The following set of properties are supported:

See Also IProcessAnalyst.UnsubscribePropertyChange [Method], PropertyChanged [Event]

Calling Syntax

Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.

[VBA]

Sub Example()myPage_AN35.SubscribeForPropertyChange “IProcessAnalyst”, “ZoomMode”

End Sub

[Cicode]

Sub Example()OBJECT hProcessAnalyst = ObjectByName(“AN35”);_ObjectCallMethod(hProcessAnalyst,“SubscribeForPropertyChange”, “IProcessAnalyst”,

“ZoomMode”);End Sub

IProcessAnalyst.SynchroniseToNow [Method]

Synchronizes all pens such that the date/time reflects “Now.”

Defined As

[VBA] SynchroniseToNow

[Cicode] SynchroniseToNow()

[C++] HRESULT SynchroniseToNow()

Execution Result

Interface name Property NameIProcessAnalyst AutoScrollIProcessAnalyst BackgroundColorIProcessAnalyst ContextMenuIProcessAnalyst LockedPensIProcessAnalyst DisplayRefreshRateIProcessAnalyst DataRequestRateIProcessAnalyst ZoomMode

Page 218: Vijeo Citect Process Analyst

202

If the function succeeds, the return value will be Success. If any other problem occurs, the return value will be GeneralFailure.

Remarks

The current span for each pen will be maintained. ‘Now’ is defined as the current time on the client machine.

Calling Syntax

Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.

[VBA]

Sub Example()myPage_AN35.SynchroniseToNow

End Sub

[Cicode]

Sub Example()OBJECT hProcessAnalyst = ObjectByName(“AN35”);_ObjectCallMethod(hProcessAnalyst, “SynchroniseToNow”);

End Sub

IProcessAnalyst.UnsubscribePropertyChange [Method]

Use this method to cancel notifications of when the specified property changes. Notifications will cease to be sent via the PropertyChanged event.

Defined As

[VBA] UnsubscribePropertyChange(interfaceName As String, propertyName As String)

[Cicode] UnsubscribePropertyChange(STRING interfaceName, STRING propertyName)

[C++] HRESULT UnsubscribePropertyChange(BSTR interfaceName, BSTR propertyName)

Parameters

interfaceName

[in] Name of the interface that the property you want to remove notifications for is defined on.

propertyName

[in] Name of the property you want to remove notifications for.

Execution Result

If the function succeeds, the return value will be Success. If the interfaceName or propertyName is a bad string, the return value will be InvalidArgument. If any other problem occurs, the return value will be GeneralFailure.

See Also IProcessAnalyst.SubscribeForPropertyChange [Method], PropertyChanged [Event]

Calling Syntax

Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.

Page 219: Vijeo Citect Process Analyst

203

[VBA]

Sub Example()myPage_AN35.UnsubscribePropertyChange “IProcessAnalyst”,“ZoomMode”

End Sub

[Cicode]

Sub Example()OBJECT hProcessAnalyst = ObjectByName(“AN35”);_ObjectCallMethod(hProcessAnalyst, “UnsubscribePropertyChange”,“IProcessAnalyst”,

“ZoomMode”);End Sub

IProcessAnalyst.AdminPrivilegeLevel [Property] [Get]

Retrieves the privilege level currently set for controlling administration features of the Process Analyst at Run-time.

Defined As

[VBA] Integer AdminPrivilegeLevel

[Cicode] INT AdminPrivilegeLevel

[C++] short AdminPrivilegeLevel

Execution Result

If the property get succeeds the return value will be Success. If the return variable is bad then the return value will be InvalidArgument.

Remarks

By default the level is 0 (Zero), which allows access to all features at run time. Setting this to any other level will require the operator viewing the Process Analyst to have a privilege equal to that level.

This property can only be set at design time (in the Graphics Builder property pages) and is recommended to prevent Operators from changing performance properties such as DataRequestRate and DisplayRefreshRate.

Limits

Privilege level defined in Vijeo Citect 1 - 8. 0 = no security.

Calling Syntax

Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.

[VBA]

Sub Example()Dim privilege As Boolean‘Getting Property valueprivilege = myPage_AN35.AdminPrivilegeLevel

End Sub

[Cicode]

FUNCTION Example()OBJECT hProcessAnalyst = ObjectByName(“AN35”);INT privilege;// Getting current property value

Page 220: Vijeo Citect Process Analyst

204

privilege = _ObjectGetProperty(hProcessAnalyst,“AdminPrivilegeLevel”);END

IProcessAnalyst.AutoScroll [Property][Get/Set]

Gets or Sets the automatic scrolling of all pens as time passes.

Defined As

[VBA] Boolean AutoScroll

[Cicode] INT AutoScroll

[C++] VARIANT_BOOL AutoScroll

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument.

Remarks

This function does not synchronize the pens to now. The display will be updated according to the value of the DisplayRefreshRate property.

Limits

True (-1): Autoscroll is On

False (0): Autoscroll is Off

Calling Syntax

Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.

[VBA]

Sub Example()Dim autoScroll As Boolean‘Getting Property valueautoScroll = myPage_AN35.AutoScroll‘Setting Property valuemyPage_AN35.AutoScroll = True

End Sub

[Cicode]

FUNCTION Example()OBJECT hProcessAnalyst = ObjectByName(“AN35”);INT autoScroll;// Getting current property valueautoScroll = _ObjectGetProperty(hProcessAnalyst, “AutoScroll”);// Setting Property to true_ObjectSetProperty(hProcessAnalyst, “AutoScroll”, -1);

END

IProcessAnalyst.BackgroundColor [Property][Get/Set]

Gets or sets the background color for the Process Analyst.

Defined As

[VBA] Long BackgroundColor

[Cicode] INT BackgroundColor

Page 221: Vijeo Citect Process Analyst

205

[C++] OLECOLOR BackgroundColor

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument.

Remarks

The background is the area under the panes. To calculate the integer value required for a color, apply the following formula:

(65536 * Blue) + (256 * Green) + (Red)

where Red, Green, and Blue are 0-255.

Limits

True (-1): Context menu is enabled

False (0): Context menu is disabled

Calling Syntax

Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.

[VBA]

Sub Example()Dim backgroundColor As Long‘Getting Property valuebackgroundColor = myPage_AN35.BackgroundColor‘Setting Property value to RedmyPage_AN35.BackgroundColor = 255

End Sub

[Cicode]

FUNCTION Example()OBJECT hProcessAnalyst = ObjectByName(“AN35”);INT backgroundColor;// Getting current property valuebackgroundColor = _ObjectGetProperty(hProcessAnalyst,“BackgroundColor”);// Setting Property to Red_ObjectSetProperty(hProcessAnalyst, “BackgroundColor”, 255);

END

IProcessAnalyst.CommandSystem [Property][Get]

Gets a reference to the Process Analyst’s Command System object. With this object you can execute commands, query command information, and create your own custom commands.

Defined As

[VBA] Object CommandSystem

[Cicode] OBJECT CommandSystem

[C++] ICommandSystem* CommandSystem

Execution Result

If the property get succeeds the return value will be Success. If the return variable is bad then the return value will be InvalidArgument.

Page 222: Vijeo Citect Process Analyst

206

Calling Syntax

Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.

[VBA]

Sub Example()Dim commandSystem As Object‘Retrieve command systemSet commandSystem = myPage_AN35.CommandSystem

End Sub

[Cicode]

FUNCTION Example()OBJECT hProcessAnalyst = ObjectByName(“AN35”);OBJECT hCommandSystem;// Retrieve command systemhCommandSystem = _ObjectGetProperty(hProcessAnalyst, “CommandSystem”);

END

IProcessAnalyst.ContextMenu [Property][Get/Set]

Enables or disables the context menu which is displayed at Run-time when an operator clicks the right mouse button on the graphical display.

Defines As

[VBA] Boolean ContextMenu

[Cicode] INT ContextMenu

[C++] VARIANT_BOOL ContextMenu

Execution Result

If the property get/set succeeds the return value will be Success. If the return variable is bad then the return value will be InvalidArgument.

Calling Syntax

Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.

[VBA]

Sub Example()Dim contextMenu As Boolean‘Getting Property valuecontextMenu = myPage_AN35.ContextMenu‘Disable the context menumyPage_AN35.ContextMenu = False

End Sub

[Cicode]

FUNCTION Example()OBJECT hProcessAnalyst = ObjectByName(“AN35”);INT contextMenu; // Getting current property valuecontextMenu =_ObjectGetProperty(hProcessAnalyst,“ContextMenu”);// Disable the context menu_ObjectSetProperty(hProcessAnalyst, “ContextMenu”, 0);

END

Page 223: Vijeo Citect Process Analyst

207

IProcessAnalyst.Cursors [Property][Get]

Gets a reference to the Process Analyst’s cursors collection. With this object you can create new, and browse existing cursors.

Defined As

[VBA] Object Cursors

[Cicode] OBJECT Cursors

[C++] ICursors* Cursors

Execution Result

If the property get succeeds the return value will be Success. If the return variable is bad then the return value will be InvalidArgument.

Calling Syntax

Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.

[VBA]

Sub Example()Dim cursors As Object‘Retrieve cursors collectionSet cursors = myPage_AN35.Cursors

End Sub

[Cicode]

FUNCTION Example()OBJECT hProcessAnalyst = ObjectByName(“AN35”);OBJECT hCursors;// Retrieve cursor collectionhCursors = _ObjectGetProperty(hProcessAnalyst, “Cursors”);

END

IProcessAnalyst.DataRequestRate [Property][Get/Set]

Indicates how often (in milliseconds) the Process Analyst Control will request data from the trend server(s). Internally the Process Analyst will choose the most optimum request rate for data, but this property can be used to slow the request down further.

Defined As

[VBA] Integer DataRequestRate

[Cicode] INT DataReqestRate

[C++] short DataRequestRate

Execution Result

If the property get/set succeeds the return value will be Success. If the return variable is bad then the return value will be InvalidArgument.

Remarks

This property is useful for controlling the load on a trend server. The higher the figure the less load will be put on the trend server(s).

Limits

Minimum = 10 milliseconds

Page 224: Vijeo Citect Process Analyst

208

Maximum = 60000 milliseconds (1 minute)

Default = 1000 milliseconds (1 second)

Calling Syntax

Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.

[VBA]

Sub Example()Dim requestRate As Integer‘Retrieve request raterequestRate = myPage_AN35.DataRequestRate‘Set request ratemyPage_AN35.DataRequestRate = 2000

End Sub

[Cicode]

FUNCTION Example()OBJECT hProcessAnalyst = ObjectByName(“AN35”);INT requestRate; // Retrieve property valuerequestRate = _ObjectGetProperty(hProcessAnalyst, “DataRequestRate”);// Set property value to 2 seconds_ObjectSetProperty(hProcessAnalyst, “DataRequestRate”, 2000);

END

IProcessAnalyst.DisplayRefreshRate [Property][Get/Set]

Indicates how fast the Process Analyst Control display is updated in milliseconds. The default is an update of 1 second, which provides optimum client performance and visual feedback.

Defined As

[VBA] Integer DisplayRefreshRate

[Cicode] INT DisplayRefreshRate

[C++] short DisplayRefreshRate

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument.

Remarks

This property is useful for controlling the performance of a client (CPU usage).

Limits

Minimum = 10 milliseconds (most machines will not be fast enough to keep up).

Maximum = 60000 milliseconds (1 minute).

Default = 1000 milliseconds (1 second).

Calling Syntax

Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.

Page 225: Vijeo Citect Process Analyst

209

[VBA]

Sub Example()Dim requestRate As Integer‘Retrieve request raterequestRate = myPage_AN35.DisplayRefreshRate‘Set request ratemyPage_AN35.DisplayRefreshRate = 2000

End Sub

[Cicode]

FUNCTION Example()OBJECT hProcessAnalyst = ObjectByName(“AN35”);INT requestRate;// Retrieve request raterequestRate = _ObjectGetProperty(hProcessAnalyst, “DisplayRefreshRate”);// Set request rate_ObjectSetProperty(hProcessAnalyst, “DisplayRefreshRate”, 2000);

END

IProcessAnalyst.Language [Property] [Get/Set]

This function allows dynamic changing of the user interface to the language specified.

Defined As

[VBA] String Language

[Cicode] STRING Language

[C++] BSTR Language

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument.

Remarks

To change languages you must have additional localized resource .dll files alongside the main resources.dll file. Additional language .dll files are named (and should be named) using the format “Resources_<languagecode>.dll”. The Process Analyst expects this format or the language will not be loaded.

For example, if you have a Chinese resource dll named “Resources_zh-CN.dll”, set the Language property to “zh-CN”. The .dll files are named according to the RFC 1766 standard for specifying culture names.

Specifying “.” resets the language back to the default.

Note: This method is not required to be called if you are using Vijeo Citect’s multilanguage feature to make the Process Analyst switch languages. For details, see Multi-language Support.

Calling Syntax

Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.

Page 226: Vijeo Citect Process Analyst

210

[VBA]

Sub Example()Dim language As String‘Retrieve current languagelanguage = myPage_AN35.Language‘Set language to JapanesemyPage_AN35.Language = “ja-JP”

End Sub

[Cicode]

FUNCTION Example()OBJECT hProcessAnalyst = ObjectByName(“AN35”);STRING language; // Retrieve current languagelanguage = _ObjectGetProperty(hProcessAnalyst, “Language”);// Set language to Japanese_ObjectSetProperty(hProcessAnalyst, “Language”, “ja-JP”);

END

IProcessAnalyst.LastSelectedPen [Property][Get]

Retrieves the last selected pen on the Process Analyst.

Defined As

[VBA] Object LastSelectedPen

[Cicode] OBJECT LastSelectedPen

[C++] IPen* LastSelectedPen

Execution Result

If the property get succeeds the return value will be Success. If the return variable is bad then the return value will be InvalidArgument.

Remarks

The last selected pen is also referred to as the “primary” selection. If there are no pens in the view, an invalid object will be returned.

Limits

A reference to the primary selected pen.

Invalid object when there are no pens on the display.

Calling Syntax

Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.

[VBA]

Sub Example()Dim selectedPen As Object‘Retrieve primary selectionSet selectedPen = myPage_AN35.LastSelectedPen

End Sub

Page 227: Vijeo Citect Process Analyst

211

[Cicode]

FUNCTION Example()OBJECT hProcessAnalyst = ObjectByName(“AN35”);OBJECT selectedPen;// Retrieve primary selectionselectedPen = _ObjectGetProperty(hProcessAnalyst, “LastSelectedPen”);

END

IProcessAnalyst.LockedPens [Property][Get/Set]

Determines whether all the pens across all panes in the Process Analyst control are locked together.

Defined As

[VBA] Boolean LockedPens

[Cicode] INT LockedPens

[C++] VARIANT_BOOL LockedPens

Execution Result

If the property get/set succeeds the return value will be Success. If the return variable is bad then the return value will be InvalidArgument.

Remarks

While this property is enabled, any operation applied to the selected pen is applied to all pens. When the property is disabled, the pens will lose the lock logic, and any interaction technique will apply to the individual pen with selection focus.

If this property is disabled and then enabled, all pens assume the same scale, timespan, and end time position as the selected pen.

Limits

True (-1): Pens are locked.

False (0): Pens are unlocked.

Calling Syntax

Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.

[VBA]

Sub Example()Dim locked As Boolean‘Get current locked statuslocked = myPage_AN35.LockedPens‘Turn off locked PensmyPage_AN35.LockedPens = False

End Sub

[Cicode]

FUNCTION Example()OBJECT hProcessAnalyst = ObjectByName(“AN35”);OBJECT lockedPens;// Get current locked statuslockedPens = _ObjectGetProperty(hProcessAnalyst, “LockedPens”);

Page 228: Vijeo Citect Process Analyst

212

// Turn off locked Pens_ObjectSetProperty(hProcessAnalyst, “LockedPens”, 0);

END

IProcessAnalyst.ObjectView [Property][Get]

Gets a reference to the ObjectView object. With this object you can manipulate the look of the ObjectView.

Defined As

[VBA] Object ObjectView

[Cicode] OBJECT ObjectView

[C++] IObjectView* ObjectView

Execution Result

If the property get succeeds the return value will be Success. If the return variable is bad then the return value will be InvalidArgument.

Calling Syntax

Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.

[VBA]

Sub Example()Dim objectView As Object‘Retrieve the objectviewSet objectView = myPage_AN35.ObjectView

End Sub

[Cicode]

FUNCTION Example()OBJECT hProcessAnalyst = ObjectByName(“AN35”);OBJECT objectView;// Retrieve the objectviewobjectView = _ObjectGetProperty(hProcessAnalyst, “ObjectView”);

END

IProcessAnalyst.NumberofSamples[Property][Get/Set]

Specifies the date/time axis span of each pen in number of samples. More or less detail for each pen can be displayed by increasing or decreasing the value of this property respectively.

Note: The value entered into the Number of Samples box in the Process Analyst Properties dialog box is closely tied to the display resolution. The default setting is ideal for screen resolutions from 1024x768 to 1280x1024. The association between Number of Samples and the display resolution occurs because for each sample shown on screen the Process Analyst attempts to leave a small gap to allow for sample markers. Because the Process Analyst shows samples when they occur, it requires less data than a traditional trend client. Retrieving data is expensive and the more data you retrieve the more time the request takes. It is recommended that this parameter not exceed 500.

Defined As

[VBA] Integer NumberofSamples

[Cicode] INT NumberofSamples

Page 229: Vijeo Citect Process Analyst

213

[C++] short NumberofSamples

Execution Result

If the property get/set succeeds the return value will be Success. If the return variable is bad, the return value will be InvalidArgument.

Remarks

This property is useful for controlling the performance of a client. (CPU usage).

By dividing a pen’s time span by the value of this property, you can calculate the current display period of the pen. The Process Analyst will only display a maximum of one sample per display period. See Data Compaction for details.

Limits

Minimum = 10

Maximum = 5000

Default = 300

See Also Exporting Pen Data

Calling Syntax

Assumes you have a page called "myPage" and the Process Analyst has been named "AN35".

[VBA]

Sub Example()Dim numOfSamples As Integer`Retrieve number of samplesnumOfSamples = myPage_AN35.NumberOfSamples`Set request ratemyPage_AN35.NumberOfSamples = numOfSamples

End Sub

[Cicode]

FUNCTION Example()OBJECT hProcessAnalyst = ObjectByName("AN35");INT numOfSamples;// Retrieve number of samplesnumOfSamples = _ObjectGetProperty(hProcessAnalyst, "NumberOfSamples");// Set request rate_ObjectSetProperty(hProcessAnalyst, "NumberOfSamples", 500);

END

IProcessAnalyst.Panes [Property][Get]

Gets a reference to the Panes collection. With this object you can create new, and browse existing panes.

Defined As

[VBA] Object Panes

[Cicode] OBJECT Panes

[C++] IPanes* Panes

Execution Result

Page 230: Vijeo Citect Process Analyst

214

If the property get succeeds the return value will be Success. If the return variable is bad then the return value will be InvalidArgument.

Calling Syntax

Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.

[VBA]

Sub Example()Dim panes As Object‘Retrieve the panes collectionSet panes = myPage_AN35.Panes

End Sub

[Cicode]

FUNCTION Example()OBJECT hProcessAnalyst = ObjectByName(“AN35”);OBJECT panes;// Retrieve the panes collectionpanes = _ObjectGetProperty(hProcessAnalyst, “Panes”);

END

IProcessAnalyst.PrimaryPath [Property][Get/Set]

Specifies the primary location for saving and loading Process Analyst views.

Defined As

[VBA] String PrimaryPath

[Cicode] STRING PrimaryPath

[C++] BSTR PrimaryPath

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument.

Remarks

The primary and secondary path properties together provide a file redundancy option for large systems that need to store Process Analyst Views in a shared location. Whenever a load operation occurs from either of these locations, the loaded file will be synchronized with each location, such that the latest version of the file appears in both locations.

See Also IProcessAnalyst.SecondaryPath [Property][Get/Set], IProcessAnalyst.LoadFromFile [Method], IProcessAnalyst.SaveToFile [Method]

Calling Syntax

Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.

[VBA]

Sub Example()Dim path As String‘Retrieve the pathpath = myPage_AN35.PrimaryPath

Page 231: Vijeo Citect Process Analyst

215

‘Set the pathmyPage_AN35.PrimaryPath = “\\computer1\PA Views”

End Sub

[Cicode]

FUNCTION Example()OBJECT hProcessAnalyst = ObjectByName(“AN35”);STRING path;// Retrieve the pathpath = _ObjectGetProperty(hProcessAnalyst, “PrimaryPath”);// Set the path_ObjectSetProperty(hProcessAnalyst, “PrimaryPath”, “\\computer1\PA Views”);

END

IProcessAnalyst.SecondaryPath [Property][Get/Set]

Specifies the secondary location for saving and loading Process Analyst views.

Defined As

[VBA] String SecondaryPath

[Cicode] STRING SecondaryPath

[C++] BSTR SecondaryPath

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument.

Remarks

The secondary and primary path properties together provide a file redundancy option for large systems that need to store Process Analyst Views in a shared location. Whenever a load operation occurs from either of these locations, the loaded file will be synchronized with each location, such that the latest version of the file appears in both locations.

See Also IProcessAnalyst.LoadFromFile [Method], IProcessAnalyst.PrimaryPath [Property][Get/Set], IProcessAnalyst.SaveToFile [Method]

Calling Syntax

Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.

[VBA]

Sub Example()Dim path As String‘Retrieve the pathpath = myPage_AN35.PrimaryPath‘Set the pathmyPage_AN35.SecondaryPath = “\\computer1\PA Views”

End Sub

[Cicode]

FUNCTION Example()OBJECT hProcessAnalyst = ObjectByName(“AN35”);STRING path; // Retrieve the path

Page 232: Vijeo Citect Process Analyst

216

path = _ObjectGetProperty(hProcessAnalyst, “SecondaryPath”);// Set the path_ObjectSetProperty(hProcessAnalyst, “SecondaryPath”, “\\computer1\PA Views”);

END

IProcessAnalyst.Toolbars [Property][Get]

Gets a reference to the Toolbars collection. With this object you can browse and modify existing toolbars.

Defined As

[VBA] Object Toolbars

[Cicode] OBJECT Toolbars

[C++] IToolbars* Toolbars

Execution Result

If the property get succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument.

Calling Syntax

Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.

[VBA]

Sub Example()Dim toolbars As Object‘Retrieve the toolbars collectionSet toolbars = myPage_AN35.Toolbars

End Sub

[Cicode]

FUNCTION Example()OBJECT hProcessAnalyst = ObjectByName(“AN35”);OBJECT toolbars;// Retrieve the toolbars collectiontoolbars = _ObjectGetProperty(hProcessAnalyst, “Toolbars”);

END

IProcessAnalyst.WritePrivilegeLevel [Property][Get]

Returns the privilege level required to save Process Analyst views to the Primary and Secondary paths.

Defined As

[VBA] Integer WritePrivilegeLevel

[Cicode] INT WritePrivilegeLevel

[C++] short WritePrivilegeLevel

Execution Result

If the property get succeeds the return value will be Success. If the return variable is bad then the return value will be InvalidArgument.

Remarks

The privilege cannot be set via automation. It must be set in the property pages at design time (for example, in Graphics Builder).

Page 233: Vijeo Citect Process Analyst

217

See Also IProcessAnalyst.SaveToFile [Method], IProcessAnalyst.PrimaryPath [Property][Get/Set], IProcessAnalyst.SecondaryPath [Property][Get/Set]

Calling Syntax

Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.

[VBA]

Sub Example()Dim privilege As Integer‘Retrieve the privilegeprivilege = myPage_AN35.WritePrivilegeLevel

End Sub

[Cicode]

FUNCTION Example()OBJECT hProcessAnalyst = ObjectByName(“AN35”);INTEGER privilege;// Retrieve the privilegeprivilege = _ObjectGetProperty(hProcessAnalyst, “WritePrivilegeLevel”);

END

IProcessAnalyst.ZoomMode [Property][Get/Set]

Enables or disables the box zooming mode for the Process Analyst.

Defined As

[VBA] Boolean ZoomMode

[Cicode] INT ZoomMode

[C++] VARIANT_BOOL ZoomMode

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument.

Remarks

Setting this mode will ensure only box zooming operations can occur; all other operations such as interactive scrolling and scaling will cease.

Limits

True (-1): Enable zoom mode.

False (0): Disable zoom mode.

Calling Syntax

Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.

[VBA]

Sub Example()Dim zoomMode As Boolean‘Retrieve the modezoomMode = myPage_AN35.ZoomMode

Page 234: Vijeo Citect Process Analyst

218

‘Set the pathmyPage_AN35.ZoomMode = True

End Sub

[Cicode]

FUNCTION Example()OBJECT hProcessAnalyst = ObjectByName(“AN35”);INT zoomMode;// Retrieve the zoomModezoomMode = _ObjectGetProperty(hProcessAnalyst, “ZoomMode”);// Set the zoomMode_ObjectSetProperty(hProcessAnalyst, “ZoomMode”, -1);

END

MouseDoubleClick [Event]

This event is raised whenever a mouse double-click occurs on the graphical chart area of the Process Analyst.

Defined As

[VBA] MouseDoubleClick(pen As Object, button As Integer)

[Cicode] MouseDoubleClick(OBJECT processAnalyst, OBJECT pen, INT button)

[C++] MouseDoubleClick(IPen pen, int button)

Parameters

pen

[in] Indicates which pen the double-click occurred on. This object will be invalid if no pen was double-clicked.

button

[in] Indicates which button was double-clicked: 0 = Left, 1 = Right.

processAnalyst

[in] Indicates the Process Analyst object that raised the event (Cicode only).

Calling Syntax

Assumes you have a Process Analyst on a page with an event class defined as myPage_AN35.

[VBA]

Sub myPage_AN35_MouseDoubleClick(pen As Object, button As Integer)End Sub

[Cicode]

FUNCTION myPage_AN35_MouseDoubleClick(OBJECT processAnalyst, OBJECT pen, INT button)END

MouseClick [Event] This event is raised whenever a single mouse click occurs on the graphical chart area of the Process Analyst.

Defined As

[VBA] MouseClick(pen As Object, button As Integer)

[Cicode] MouseClick(OBJECT processAnalyst, OBJECT pen, INT button)

Page 235: Vijeo Citect Process Analyst

219

[C++] MouseClick(IPen* pen, int button)

Parameters

pen

[in] Indicates which pen the click occurred on. This object will be invalid if no pen was clicked.

button

[in] Indicates which button was clicked: 0 = Left, 1 = Right.

processAnalyst

[in] Indicates the Process Analyst object that raised the event (Cicode only).

Calling Syntax

Assumes you have a Process Analyst on a page with an event class defined as myPage_AN35.

[VBA]

Sub myPage_AN35_MouseClick(pen As Object, button As Integer)End Sub

[Cicode]

FUNCTION myPage_AN35_MouseClick(OBJECT processAnalyst, OBJECT pen, INT button)END

PenCreated [Event] This event is raised whenever a pen is either created via the automation model, or added through the Add Pen dialog at run time.

Defined As

[VBA] PenCreated(pen As Object)

[Cicode] PenCreated(OBJECT processAnalyst, OBJECT pen)

[C++] PenCreated(IPen* pen)

Parameters

pen

[in] Refers to the pen that was created.

processAnalyst

[in] Indicates the Process Analyst object which raised the event. (Cicode only).

Calling Syntax

Assumes you have a Process Analyst on a page with an event class defined as myPage_AN35.

[VBA]

Sub myPage_AN35_PenCreated(pen As Object)End Sub

[Cicode]

FUNCTION myPage_AN35_PenCreated(OBJECT processAnalyst, OBJECT pen)END

Page 236: Vijeo Citect Process Analyst

220

PenDeleted [Event] This event is raised whenever a pen is deleted either by automation or via the interface.

Defined As

[VBA] PenDeleted(penName As String)

[Cicode] PenDeleted(OBJECT processAnalyst, STRING penName)

[C++] PenDeleted(BSTR penName)

Parameters

penName

[in] Contains the name of the pen that was deleted.

processAnalyst

[in] Indicates the Process Analyst object which raised the event. (Cicode only)

Calling Syntax

Assumes you have a Process Analyst on a page with an event class defined as myPage_AN35

[VBA]

Sub myPage_AN35_PenDeleted(penName As String)End Sub

[Cicode]

FUNCTION myPage_AN35_PenDeleted(OBJECT processAnalyst, STRING penName)END

PenRenamed [Event] This event is raised whenever a pen is renamed via automation or through the user interface.

Defined As

[VBA] PenRenamed(pen As Object)

[Cicode] PenRenamed(OBJECT processAnalyst, OBJECT pen)

[C++] PenRenamed(IPen* pen)

Parameters

pen

[in] Refers to the pen that was renamed.

processAnalyst

[in] Indicates the Process Analyst object which raised the event. (Cicode only).

Calling Syntax

Assumes you have a Process Analyst on a page with an event class defined as myPage_AN35.

Page 237: Vijeo Citect Process Analyst

221

[VBA]

Sub myPage_AN35_PenRenamed(pen As Object)End Sub

[Cicode]

FUNCTION myPage_AN35_PenRenamed(OBJECT processAnalyst, OBJECT pen)END

PenSelectionChanged [Event]

This event is raised whenever the selection changes in the Process Analyst.

Defined As

[VBA] PenSelectionChanged (pen As Object)

[Cicode] PenSelectionChanged (OBJECT processAnalyst, OBJECT pen)

[C++] PenSelectionChanged (IPen* pen)

Parameters

pen

[in] Refers to the pen that now has primary selection. This maybe invalid if the last pen was deleted from the view.

processAnalyst

[in] Indicates the Process Analyst object which raised the event. (Cicode only)

Remarks

Selection can change via user interaction (such as clicking on pens, deleting/adding pens) and automation.

Calling Syntax

Assumes you have a Process Analyst on a page with an event class defined as myPage_AN35.

[VBA]

Sub myPage_AN35_PenSelectionChanged(pen As Object)End Sub

[Cicode]

FUNCTION myPage_AN35_PenSelectionChanged(OBJECT processAnalyst, OBJECT pen)END

HorizontalAxisChanged [Event]

This event is raised when the date/time axis position or scale of a pen is changed.

Defined As

[VBA] HorizontalAxisChanged(pen As Object)

[Cicode] HorizontalAxisChanged(OBJECT processAnalyst, OBJECT pen)

[C++] HorizontalAxisChanged(IPen* pen)

Parameters

pen

Page 238: Vijeo Citect Process Analyst

222

[in] Refers to the pen that has changed. This will be invalid if pens are locked.

processAnalyst

[in] Indicates the Process Analyst object that raised the event (Cicode only).

Remarks

When the LockedPens property is True, this event is fired only once with the pen parameter marked as invalid.

See Also IProcessAnalyst.LockedPens [Property][Get/Set], VerticalAxisChanged [Event]

Calling Syntax

Assumes you have a Process Analyst on a page with an event class defined as AN35_E.

[VBA]

Sub AN35_E_HorizontalAxisChanged (pen As Object)End Sub

[Cicode]

FUNCTION AN35_E_HorizontalAxisChanged (OBJECT processAnalyst, OBJECT pen)END

VerticalAxisChanged [Event]

This event is raised whenever the vertical axis position or scale of a pen is changed.

Defined As

[VBA] VerticalAxisChanged(pen As Object)

[Cicode] VerticalAxisChanged(OBJECT processAnalyst, OBJECT pen)

[C++] VerticalAxisChanged(IPen* pen)

Parameters

pen

[in] Refers to the pen that has changed.

processAnalyst

[in] Indicates the Process Analyst object which raised the event. (Cicode only)

See Also HorizontalAxisChanged [Event]

Calling Syntax

Assumes you have a Process Analyst on a page with an event class defined as myPage_AN35.

[VBA]

Sub myPage_AN35_VerticalAxisChanged (pen As Object)End Sub

Page 239: Vijeo Citect Process Analyst

223

[Cicode]FUNCTION myPage_AN35_VerticalAxisChanged (OBJECT processAnalyst, OBJECT pen)END

CursorMoved [Event] This event is raised whenever the cursor position changes.

Defined As

[VBA] CursorMoved(cursor As Object, position As Integer)

[Cicode] CursorMoved (OBJECT processAnalyst, OBJECT cursor, INT position)

[C++] CursorMoved (IPen* pen, int position)

Parameters

cursor

[in] Refers to the cursor that has moved.

position

[in] Indicates the new position of the cursor.

processAnalyst

[in] Indicates the Process Analyst object which raised the event. (Cicode only).

Calling Syntax

Assumes you have a Process Analyst on a page with an event class defined as myPage_AN35.

[VBA]

Sub myPage_AN35_CursorMoved(pen As Object, position As Integer)End Sub

[Cicode]

FUNCTION myPage_AN35_CursorMoved(OBJECT processAnalyst, OBJECT cursor, INT position)END

Error [Event] This event is raised whenever an error is generated from the Process Analyst.

Defined As

[VBA] Error(errorCode As Integer, errorMessage As String)

[Cicode] Error(OBJECT processAnalyst, INT errorCode, STRING errorMessage)

[C++] Error(ErrorNotifyCode errorCode, BSTR errorMessage)

Parameters

errorCode

[in] Indicates the error that occurred. See the ErrorNotifyCode enumeration.

errorMessage

[in] Contains the message associated with the error code.

Page 240: Vijeo Citect Process Analyst

224

processAnalyst

[in] Indicates the Process Analyst object which raised the event. (Cicode only)

See Also ErrorNotifyCode [Enumeration]

Calling Syntax

Assumes you have a Process Analyst on a page with an event class defined as myPage_AN35.

[VBA]

Sub myPage_AN35_Error(errorCode As Integer, errorMessage As String)End Sub

[Cicode]

FUNCTION myPage_AN35_Error(OBJECT processAnalyst, INT errorCode, STRING errorMessage)END

PropertyChanged [Event]

This event is raised whenever a property that has been subscribed to has changed.

Defined As

[VBA] PropertyChanged(interfaceName As String, propertyName As String)

[Cicode] PropertyChanged (OBJECT processAnalyst, STRING interfaceName, STRING propertyName)

[C++] PropertyChanged (BSTR interfaceName, BSTR propertyName)

Parameters

interfaceName

[in] Indicates which interface the property which has changed belongs to.

propertyName

[in] Indicates which property has changed.

processAnalyst

[in] Indicates the Process Analyst object which raised the event. (Cicode only)

Remarks

For this event to be raised you must subscribe to one or more properties.

See Also IProcessAnalyst.SubscribeForPropertyChange [Method], IProcessAnalyst.UnsubscribePropertyChange [Method]

Calling Syntax

Assumes you have a Process Analyst on a page with an event class defined as myPage_AN35.

[VBA]

Sub myPage_AN35_PropertyChanged(interfaceName As String, propertyName As String)End Sub

Page 241: Vijeo Citect Process Analyst

225

[Cicode]

FUNCTION myPage_AN35_PropertyChanged(OBJECT processAnalyst, STRING interfaceName, STRING propertyName)END

OVItemAdded [Event] This event is raised whenever an item is added to the ObjectView.

Defined As

[VBA] OVItemAdded(item As Object)

[Cicode] OVItemAdded (OBJECT processAnalyst, OBJECT item)

[C++] OVItemAdded (IObjectViewItem* item)

Parameters

item

[in] A reference to the item that was added to the ObjectView.

processAnalyst

[in] Indicates the Process Analyst object which raised the event. (Cicode only)

Calling Syntax

Assumes you have a Process Analyst on a page with an event class defined as myPage_AN35.

[VBA]

Sub myPage_AN35_OVItemAdded(item As Object)End Sub

[Cicode]

FUNCTION myPage_AN35_OVItemAdded(OBJECT processAnalyst, OBJECT item)END

OVItemRemoved [Event]

This event is raised whenever an item is added to the ObjectView.

Defined As

[VBA] OVItemRemoved(item As Object)

[Cicode] OVItemRemoved(OBJECT processAnalyst, OBJECT item)

[C++] OVItemRemoved(IObjectViewItem* item)

Parameters

item

[in] A reference to the item that was removed from the ObjectView.

processAnalyst

[in] Indicates the Process Analyst object which raised the event. (Cicode only)

Calling Syntax

Assumes you have a Process Analyst on a page with an event class defined as myPage_AN35.

Page 242: Vijeo Citect Process Analyst

226

[VBA]

Sub myPage_AN35_OVItemRemoved(item As Object)End Sub

[Cicode]

FUNCTION myPage_AN35_OVItemRemoved(OBJECT processAnalyst, OBJECT item)END

OVItemSelected [Event] This event is raised whenever an item is selected in the ObjectView.

Defined As

[VBA] OVItemSelected(item As Object)

[Cicode] OVItemSelected(OBJECT processAnalyst, OBJECT item)

[C++] OVItemSelected(IObjectViewItem* item)

Parameters

item

[in] A reference to the item that was selected in the ObjectView.

processAnalyst

[in] Indicates the Process Analyst object which raised the event. (Cicode only)

Calling Syntax

Assumes you have a Process Analyst on a page with an event class defined as myPage_AN35.

[VBA]

Sub myPage_AN35_OVItemSelected(item As Object)End Sub

[Cicode]

FUNCTION myPage_AN35_OVItemSelected(OBJECT processAnalyst, OBJECT item)END

OVItemChecked [Event] This event is raised whenever an item is checked in the ObjectView.

Defined As

[VBA] OVItemChecked(item As Object)

[Cicode] OVItemChecked(OBJECT processAnalyst, OBJECT item)

[C++] OVItemChecked(IObjectViewItem* item)

Parameters

item

[in] A reference to the item that was checked in the ObjectView.

processAnalyst

[in] Indicates the Process Analyst object which raised the event. (Cicode only)

Page 243: Vijeo Citect Process Analyst

227

Calling Syntax

Assumes you have a Process Analyst on a page with an event class defined as myPage_AN35.

[VBA]

Sub myPage_AN35_OVItemChecked(item As Object)End Sub

[Cicode]

FUNCTION myPage_AN35_OVItemChecked(OBJECT processAnalyst, OBJECT item)END

OVColumnAdded [Event]

This event is raised whenever a column is added to the ObjectView.

Defined As

[VBA] OVColumnAdded(name As String)

[Cicode] OVColumnAdded(OBJECT processAnalyst, STRING name)

[C++] OVColumnAdded(BSTR name)

Parameters

item

[in] The name of the column that has been added

processAnalyst

[in] Indicates the Process Analyst object which raised the event. (Cicode only)

Calling Syntax

Assumes you have a Process Analyst on a page with an event class defined as myPage_AN35.

[VBA]

Sub myPage_AN35_OVColumnAdded(name As String)End Sub

[Cicode]

FUNCTION myPage_AN35_OVColumnAdded(OBJECT processAnalyst, STRING name)END

OVColumnRemoved [Event]

This event is raised whenever a column is removed to the ObjectView.

Defined As

[VBA] OVColumnRemoved(name As String)

[Cicode] OVColumnRemoved(OBJECT processAnalyst, STRING name)

[C++] OVColumnRemoved(BSTR name)

Parameters

item

[in] The name of the column that has been removed.

Page 244: Vijeo Citect Process Analyst

228

processAnalyst

[in] Indicates the Process Analyst object which raised the event. (Cicode only)

Calling Syntax

Assumes you have a Process Analyst on a page with an event class defined as myPage_AN35.

[VBA]

Sub myPage_AN35_OVColumnRemoved(name As String)End Sub

[Cicode]

FUNCTION myPage_AN35_OVColumnRemoved(OBJECT processAnalyst, STRING name)END

CommandExecuted [Event]

This event is raised when a command is executed.

Defined As

[VBA] CommandExecuted(commandId As String)

[Cicode] CommandExecuted (OBJECT processAnalyst, STRING commandId)

[C++] CommandExecuted (BSTR commandId)

Parameters

commandId

[in] Contains the unique identifier of the command that was executed.

processAnalyst

[in] Indicates the Process Analyst object which raised the event. (Cicode only)

Remarks

Each toolbar button is associated with a command so when they are pressed this event will be raised with the unique identifier of that command. You can then use that identifier to determine which command was executed.

By using this event you can implement your own custom commands.

See Also UpdateCommand [Event], ICommandSystem.Execute [Method]

Calling Syntax

Assumes you have a Process Analyst on a page with an event class defined as myPage_AN35.

[VBA]

Sub myPage_AN35_CommandExecuted(commandId As String)End Sub

[Cicode]

FUNCTION myPage_AN35_CommandExecuted(OBJECT processAnalyst, STRING commandId)END

Page 245: Vijeo Citect Process Analyst

229

UpdateCommand [Event]

This event is raised whenever the Process Analyst needs to refresh the state of its toolbars.

Defined As

[VBA] UpdateCommand(commandId As String)

[Cicode] UpdateCommand(OBJECT processAnalyst, STRING commandId)

[C++] UpdateCommand(BSTR commandId)

Parameters

commandId

[in] Contains the unique identifier of the command that needs to be refreshed.

processAnalyst

[in] Indicates the Process Analyst object which raised the event. (Cicode only)

Remarks

This event is only raised for custom commands. You should use this event as an opportunity to update the enable and/or the pressed state of the toolbar button associated with the command.

This event will be raised frequently so you should limit the amount of code executed in response to this event.

An Update will be triggered in at least the following scenarios:

Selection changes

Command execution

Calling Syntax

Assumes you have a Process Analyst on a page with an event class defined as myPage_AN35.

[VBA]

Sub myPage_AN35_UpdateCommand(commandId As Integer)End Sub

[Cicode]

FUNCTION myPage_AN35_UpdateCommand(OBJECT processAnalyst, INT commandId)END

AlarmType [Enumeration]

Specifies the visual representation for an alarm pen.

Defined As

[VBA] Integer

[Cicode] INT

[C++] AlarmType

Page 246: Vijeo Citect Process Analyst

230

Members

See Also IAlarmPen.AlarmType [Property][Get/Set]

AxisLabelType [Enumeration]

Specifies how the labels are drawn on the vertical axis.

Defined As

[VBA] Integer

[Cicode] INT

[C++] AxisLabelType

Members

Member Name Description ValueAlarmType_Digital The tag is digital alarm 0AlarmType_Analog The tag is an analog alarm 1AlarmType_Advanced The tag is an advanced alarm 2AlarmType_TimeStamped The tag is a time-stamped alarm 3AlarmType_MultiDigital The tag is a multi-digital alarm 4AlarmType_ArgyleAnalog The tag is a legacy Argyle analog alarm 5AlarmType_TimeStampedDigital The tag is a digital time-stamped alarm 6AlarmType_TimeStampedAnalog The tag is a analog time-stamped alarm 7

Member Name Description ValueAxisLabelType_NONE No labels will be visible on axis 0AxisLabelType_DOUBLE Displays in decimal format 1AxisLabelType_INTEGER Displays in integer format 2AxisLabelType_PERCENT Displays as “%” 3AxisLabelType_AMPS Displays as “A” 4AxisLabelType_DEGREES Displays as “deg” 5AxisLabelType_FEET Displays as “ft” 6AxisLabelType_FEETPERMIN Displays as “ft/min” 7AxisLabelType_FEETPERSEC Displays as “ft/s” 8AxisLabelType_GALLONS Displays as “gal” 9AxisLabelType_GALLONSPERHR Displays as “gal/h” 10AxisLabelType_GALLONSPERMIN Displays as “gal/min” 11AxisLabelType_GALLONSPERSEC Displays as “gal/s” 12AxisLabelType_HERTZ Displays as “Hz” 13AxisLabelType_KILOGRAMS Displays as “kg” 14AxisLabelType_KILOGRAMSPERHR Displays as “kg/h” 15AxisLabelType_KILOGRAMSPERMIN Displays as “kg/min” 16AxisLabelType_KILOGRAMSPERSEC Displays as “kg/s” 17AxisLabelType_KILOMETRESPERHR Displays as “kg/h” 18AxisLabelType_KILOPASCALS Displays as “kPa” 19AxisLabelType_KILOWATTS Displays as “kW” 20AxisLabelType_LITRES Displays as “l” 21AxisLabelType_LITRESPERHR Displays as “l/h” 22AxisLabelType_LITRESPERMIN Displays as “l/min” 23AxisLabelType_LITRESPERSEC Displays as “l/s” 24

Page 247: Vijeo Citect Process Analyst

231

LineStyle [Enumeration] Defines the drawing style for a line.

Defined As

[VBA] Integer

[Cicode] INT

[C++] LineStyle

Values

HatchStyle [Enumeration]

Defines the filling style for Alarm pens.

Defined As

[VBA] Integer

[Cicode] INT

[C++] HatchStyle

Members

See Also IAlarmPen.SetHatchStyle [Method], IAlarmPen.GetHatchStyle [Method]

AxisLabelType_METRES Displays as “m” 25AxisLabelType_METRESPERMIN Displays as “m/min” 26AxisLabelType_METRESPERSEC Displays as “m/s” 27AxisLabelType_REVS Displays as “Rev” 28AxisLabelType_REVSPERHR Displays as “Rev/h” 29AxisLabelType_REVSPERMIN Displays as “RPM” 30AxisLabelType_TONNES Displays as “t” 31AxisLabelType_TONNESPERHR Displays as “t/h” 32AxisLabelType_VOLTS Displays as “V” 33AxisLabelType_WATTS Displays as “W” 34AxisLabelType_LOOKUP Displays user-defined text for label 35

Member Name Description Value

Member Name Description ValueLineStyle_SOLID Draws a solid line (all line widths) 0LineStyle_DASH Draws a dashed line (line width 1 only) 1LineStyle_DOT Draws a dot line (line width 1 only) 2LineStyle_DASHDOT Draws a dash dot (line width 1 only) 3LineStyle_DASHDOTDOT Draws a dash dot dot (line width 1 only) 4LineStyle_NONE Draws no line 5

Member Name Description ValueHatchStyle_None No pattern 0HatchStyle_Horizontal Horizontal line pattern 1HatchStyle_Vertical Vertical line pattern 2HatchStyle_ForwardDiagonal Forward diagonal line pattern 3HatchStyle_BackwardDiagonal Backward diagonal line pattern 4HatchStyle_Cross Cross pattern 5HatchStyle_DiagonalCross Diagonal cross pattern 6

Page 248: Vijeo Citect Process Analyst

232

PenNameMode [Enumeration]

Defines how the pen name will be generated. It is used in conjunction with the IPens.Create method.

Defined As

[VBA] Integer

[Cicode] INT

[C++] PenNameMode

Members

See Also IPens.Create [Method], IPen.DataPoint [Property][Get/Set], IPen.Name [Property][Get/Set]

PenType [Enumeration] Defines the plotting style of a Process Analyst pen.

Defined As

[VBA] Integer

[Cicode] INT

[C++] PenType

Members

See Also IPens.Create [Method]

PointType [Enumeration]

Defines the visual cue applied to samples of a pen.

Defined As

[VBA] Integer

[Cicode] INT

[C++] PointType

Members

Member Name Description ValuePenNameMode_Comment The comment field obtained from the Vijeo Citect trend/alarm tag

will be used as the pen name.1

PenNameMode_Tag The value of the IPen.DataPoint property will be used as the pen name.

2

PenNameMode_Custom Indicates that you will be setting the name using the IPen.Name property.

3

Member Name Description ValuePenType_ANALOG A pen with an analog range 4097PenType_DIGITAL A pen with a range of 0 and 1 4098PenType_ALARM A pen represented as states 4099

Member Name Description ValuePointType_NONE No marker 0PointType_RECT A rectangular marker 1PointType_CIRCLE A circular marker 2PointType_PLUS A plus marker 3

Page 249: Vijeo Citect Process Analyst

233

See Also IPen.SetQualityCompactionPointType [Method]

RequestMode [Enumeration]

Defines the data acquisition method for a pen.

Defined As

[VBA] Integer

[Cicode] INT

[C++] RequestMode

Members

See Also IPen.RequestMode [Property][Get/Set]

ToolbarButtonType [Enumeration]

Defines the type of a toolbar button.

Defined As

[VBA] Integer

[Cicode] INT

[C++] ToolbarButtonType

Members

See Also ICommandSystem.Create [Method], ICommand.ButtonType [Property][Get]

LineType [Enumeration] Defines the visual representation of the lines between samples of an analog pen.

Defined As

[VBA] Integer

PointType_CROSS A cross marker 4PointType_TRIANGLE A triangular marker 5PointType_ELLIPSE A elliptical marker 6

Member Name Description Value

Member Name Description ValueRequestMode_Average The value will be an average of all the individual samples within the

multiple sample, as will the timestamp0

RequestMode_Minimum The value will be the minimum value out of all the individual samples within the multiple sample. The timestamp will be the average of all the individual samples.

1

RequestMode_Maximum The value will be the maximum value out of all the individual samples within the multiple sample. The timestamp will be the average of all the individual samples.

2

RequestMode_Newest The value will the latest arrived value out of all the individual samples within the multiple sample. The timestamp will be the average of all the individual samples.

3

Member Name Description ValueToolbarButtonType_Push Standard push button behavior. 0ToolbarButtonType_Toggle The button has two states: On and Off. 1ToolbarButtonType_Separator

A visual marker used to group buttons. 2

Page 250: Vijeo Citect Process Analyst

234

[Cicode] INT

[C++] LineType

Members

See Also IAnalogPen.LineInterpolation [Property][Get/Set]

ErrorNotifyCode [Enumeration]

Defines known errors that can occur during operation.

Defined As

[VBA] Integer

[Cicode] INT

[C++] ErrorNotifyCode

Members

See Also Error [Event]

QualityType [Enumeration]

Defines the known quality states of data.

Defined As

[VBA] Integer

[Cicode] INT

[C++] QualityType

Members

Member Name Description ValueLineType_STRAIGHT A single line is drawn from point A to point B. 0LineType_STEPPED The line drawn will maintain the value of the previous sample. When the

samples differ, a vertical line will be drawn to the new sample value.1

Member Name Description ValueErrorNotifyCode_None No error. 0ErrorNotifyCode_InvalidTag Occurs when the tag specified for the pen does not

exist.1

ErrorNotifyCode_CtapiConnectionOffline Occurs when connections cannot be made to the trend and/or alarm servers.

2

ErrorNotifyCode_Unknown Occurs when an unknown Vijeo Citect or Windows error occurs.

3

ErrorNotifyCode_NoServer Occurs when Vijeo Citect cannot find a server to get the data from.

4

ErrorNotifyCode_InvalidArgument Occurs when an invalid argument is specified. 5ErrorNotifyCode_OutOfMemory Occurs when a memory error is detected. 6ErrorNotifyCode_BadVersion Occurs when the trend and/or alarm servers do not

match the client version.7

ErrorNotifyCode_NoPrivilege Occurs when the current user does not have the required privileges to view the data.

8

Member Name Description ValueQualityType_Good The sample is good 0QualityType_NA Indicates a loss of connection 1

Page 251: Vijeo Citect Process Analyst

235

Remarks

An alarm pens “disabled” state is treated as QualityType_Gated.

See Also IPen.SetQualityLineStyle [Method]

QualityCompactionType [Enumeration]

Specifies the different types of presentation used for a sample.

Defined As

[VBA] Integer

[Cicode] INT

[C++] QualityCompactionType

Members

See Also IPen.SetQualityCompactionPointType [Method]

FileLocation [Enumeration]

Specifies the location to save and write Process Analyst views to.

Defined As

[VBA] Integer

[Cicode] INT

[C++] FileLocation

Members

See Also IProcessAnalyst.LoadFromFile [Method], IProcessAnalyst.SaveToFile [Method]

IToolbar InterfaceDefined As

[VBA] Object

[Cicode] OBJECT

[C++] IToolbar

QualityType_Gated Indicates the data was marked as unwanted 2Member Name Description Value

Member Name Description ValueQualityCompactionType_Single Representation when the marker represents a single

sample0

QualityCompactionType_Multiple Representation when the marker represents a calculation of two or more samples

1

QualityCompactionType_Interpolated Representation when the marker represents interpolated samples

2

Member Name Description ValueFileLocation_Local Refers to the project folder 0FileLocation_Server Refers to the both the primary/standby server paths 1FileLocation_User Refers to the My Documents folder 2

Page 252: Vijeo Citect Process Analyst

236

Methods (0)

Properties (2)

IToolbar.Visible [Property][Get/Set]IToolbar.Buttons [Property][Get]

IToolbar.Visible [Property][Get/Set]

Gets and Sets this Toolbars Visible state.

Defined As

[VBA] Boolean Visible

[Cicode] INT Visible

[C++] VARIANT_BOOL Visible

Execution Result

If the property get succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument.

Limits

True (-1): Visible

False (0): Invisible

Remarks

If the toolbar is not visible, all buttons tied to it will not appear. Only the main toolbar can be hidden. Setting the new toolbar to invisible will result in a GeneralFailure.

Calling Syntax

This example assumes there is a valid Toolbar object as retrieved from a Process Analyst’s Toolbars collection. (e.g., VBA: ProcessAnalyst.Toolbars.Item(1))

[VBA]

Sub Example(Toolbar As Object)Dim visible As Boolean‘Getting Property valuevisible = Command.Visible‘Setting Property valueCommand.Visible = False

End Sub

[Cicode]

FUNCTION Example(OBJECT hToolbar)// Getting property valueINT nVisible = _ObjectGetProperty(hToolbar, "Visible");// Setting property value_ObjectSetProperty(hToolbar, "Visible", 0);

END

IToolbar.Buttons [Property][Get]

Gets this Toolbars collection of Buttons.

Defined As

[VBA] Object Buttons

Page 253: Vijeo Citect Process Analyst

237

[Cicode] OBJECT Buttons

[C++] IToolbarButtons* Buttons

Execution Result

If the property get succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument.

Calling Syntax

This example assumes there is a valid Toolbar object as retrieved from a Process Analyst’s Toolbars collection. (e.g., VBA: ProcessAnalyst.Toolbars.Item(1))

[VBA]

Sub Example(Toolbar As Object)Dim buttons As Object‘Getting Property valueSet buttons = Command.Buttons

End Sub

[Cicode]

FUNCTION Example(OBJECT hToolbar)// Getting property valueOBJECT hButtons = _ObjectGetProperty(hToolbar, "Buttons");

END

IToolbars InterfaceDefined As

[VBA] Object

[Cicode] OBJECT

[C++] IToolbar

Methods (0)

Properties (3)

IToolbars.Count [Property][Get]IToolbars.Item [Property][Get]IToolbars._NewEnum [Property][Get]

IToolbars.Count [Property][Get]

Gets the number of Toolbars in this collection.

Defined As

[VBA] Long Count

[Cicode] INT Count

[C++] int Count

Execution Result

If the property get succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument.

Calling Syntax

Page 254: Vijeo Citect Process Analyst

238

This example assumes there is a valid Toolbars collection as retrieved from an ObjectView. (e.g., VBA: objectView.Toolbars).

[VBA]

Sub Example(Toolbars As Object)Dim count As Long‘Getting Property valuecount = Toolbars.Count

End Sub

[Cicode]

FUNCTION Example(OBJECT hToolbars)// Getting property valueINT nCount= _ObjectGetProperty(hToolbars, "Count");

END

IToolbars.Item [Property][Get]

Gets the Toolbar at a supplied index location in this collection.

Defined As

[VBA] Item(index As Long) as Object

[Cicode] OBJECT Item(INT index)

[C++] Item(int index, IToolbar* Item)

Parameters

index

[in] Indicates the index location of the child item to return from this collection. (One based) 1 = Main toolbar; 2 = Navigation toolbar.

Execution Result

If the property get succeeds, the return value will be Success. If the index is out of range, the return value will be InvalidArgument.

Calling Syntax

This example assumes there is a valid Toolbars collection as retrieved from an ObjectView. (e.g., VBA: objectView.Toolbars)

[VBA]

Sub Example(Toolbars As Object)Dim toolbar As Object‘Getting Property valueSet toolbar = Toolbars.Item(1)

End Sub

[Cicode]

FUNCTION Example(OBJECT hToolbars)// Getting property valueOBJECT hToolbar = _ObjectCallMethod(hToolbars, "get_Item", 1);

END

IToolbars._NewEnum [Property][Get]

This allows For.. Each.. Next integration in VB.

Calling Syntax

Page 255: Vijeo Citect Process Analyst

239

This example assumes there is a valid Toolbars collection as retrieved from an ObjectView (e.g., VBA: objectView.Toolbars). This property is not applicable to Cicode.

[VBA]

Sub Example(Toolbars As Object)Dim toolbar As ObjectDim count Object‘Using Property For Each toolbar In Toolbars

count = count + 1Next toolbar

End Sub

IToolbarButton InterfaceDefined As

[VBA] Object

[Cicode] OBJECT

[C++] IToolbar

Methods (0)

Properties (1)

IToolbarButton.CommandId [Property][Get]

IToolbarButton.CommandId [Property][Get]

Gets the ID of the associated command for this button.

Defined As

[VBA] String CommandId

[Cicode] STRING CommandId

[C++] BSTR CommandId

Calling Syntax

This example assumes there is a valid ToolbarButtons collection as retrieved from an ObjectView (e.g., VBA: objectView.Toolbars.Item(1).Buttons).

[VBA]

Sub Example(Buttons As Object)Dim commandId As String‘Getting Property valuecommandId = Buttons.CommandId

End Sub

[Cicode]

FUNCTION Example(OBJECT hButtons)// Getting property valueSTRING nCommandId = _ObjectGetProperty(hButtons, "CommandId");

END

Page 256: Vijeo Citect Process Analyst

240

IToolbarButtons InterfaceDefined As

[VBA] Object

[Cicode] OBJECT

[C++] IToolbar

Methods (3)

IToolbarButtons.Add [Method]IToolbarButtons.Remove [Method] IToolbarButtons.RemoveAll [Method]

Properties (3)

IToolbarButtons.Count [Property][Get]IToolbarButtons.Item [Property][Get]IToolbarButtons._NewEnum [Property][Get]

IToolbarButtons.Add [Method]

Adds a toolbar button linked to the command identified by the supplied Command Id to this Toolbar.

Defined As

[VBA] Add(CommandId as String)

[Cicode] Add (STRING CommandId)

[C++] HRESULT Add (BSTR CommandId)

Parameters

CommandId

[in] The Command ID of a command to link to the new button that is being added.

Execution Result

If this method succeeds, the return value will be Success. If the command ID is invalid, the return value will be InvalidArgument.

Remarks

If this method succeeds, the ID supplied will be linked to the new button that is added. The Commands properties will be applied to that button. (its icon, tooltip, security) If this button is pressed, the CommandExecuted event will raise with this Command ID.

See Also CommandExecuted [Event]

Calling Syntax

This example assumes there is a valid ToolbarButtons collection as retrieved from an ObjectView (e.g., VBA: objectView.Toolbars.Item(1).Buttons).

[VBA]

Sub Example(Buttons As Object)Buttons.Add(“Citect_Command_Help”)

End Sub

Page 257: Vijeo Citect Process Analyst

241

[Cicode]

FUNCTION Example(OBJECT hButtons)_ObjectCallMethod(hButtons, “Add”, “Citect_Command_Help”);

END

IToolbarButtons.Remove [Method]

Removes a button from this toolbar at the supplied index.

Defined As

[VBA] Remove(Index as Integer)

[Cicode] Remove (INT Index)

[C++] HRESULT Remove (int Index)

Parameters

Index

[in] The index of the button to remove from this toolbar. (1 Based)

Execution Results

If the method succeeds, the return value will be Success. If the index is out of range, the return value will be InvalidRange. If the method fails, the return value will be GeneralFailure.

Calling Syntax

This example assumes there is a valid ToolbarButtons collection as retrieved from an ObjectView. (e.g., VBA: objectView.Toolbars.Item(1).Buttons).

[VBA]

Sub Example(Buttons As Object)Buttons.Remove(1)

End Sub

[Cicode]

FUNCTION Example(OBJECT hButtons)_ObjectCallMethod(hButtons, “Remove”, 1);

END

IToolbarButtons.RemoveAll [Method]

Removes all buttons from this Toolbar.

Defined As

[VBA] RemoveAll()

[Cicode] RemoveAll()

[C++] HRESULT RemoveAll()

Execution Results

If this method succeeds, the return value will be Success. If this method fails, the return value will be GeneralFailure.

Calling Syntax

This example assumes there is a valid ToolbarButtons collection as retrieved from an ObjectView. (e.g., VBA: objectView.Toolbars.Item(1).Buttons)

Page 258: Vijeo Citect Process Analyst

242

[VBA]

Sub Example(Buttons As Object)Buttons.RemoveAll()

End Sub

[Cicode]

FUNCTION Example(OBJECT hButtons)_ObjectCallMethod(hButtons, “RemoveAll”);

END

IToolbarButtons.Count [Property][Get]

Gets the number of Buttons in this collection.

Defined As

[VBA] Long Count

[Cicode] INT Count

[C++] int Count

Calling Syntax

This example assumes there is a valid ToolbarButtons collection as retrieved from an ObjectView. (e.g., VBA: objectView.Toolbars.Item(1).Buttons).

[VBA]

Sub Example(Buttons As Object)Dim count As Long‘Getting Property valuecount = Buttons.Count

End Sub

[Cicode]

FUNCTION Example(OBJECT hButtons)// Getting property valueINT nCount = _ObjectGetProperty(hButtons, "Count");

END

IToolbarButtons.Item [Property][Get]

Gets the button at a supplied index location in this collection.

Defined As

[VBA] Item(index As Long) as Object

[Cicode] OBJECT Item(INT index)

[C++] Item(int index, IToolbarButton* Item)

Parameters

index

[in] Indicates the index location of the button to return from this collection. (One based)

Execution Results

If the property get succeeds, the return value will be success. If the index is out of range, the return value will be InvalidArgument. If the method fails, the return value will be GeneralFailure.

Page 259: Vijeo Citect Process Analyst

243

Calling Syntax

This example assumes there is a valid ToolbarButtons collection as retrieved from an ObjectView (e.g., VBA: objectView.Toolbars.Item(1).Buttons).

[VBA]

Sub Example(Buttons As Object)Dim toolbar As Object‘Getting Property valueSet toolbar = Buttons.Item(1)

End Sub

[Cicode]

FUNCTION Example(OBJECT hButtons)// Getting property valueOBJECT hToolbar = _ObjectCallMethod(hButtons, "get_Item", 1);

END

IToolbarButtons._NewEnum [Property][Get]

This allows For.. Each.. Next integration in VB.

Calling Syntax

This example assumes there is a valid ToolbarButtons collection as retrieved from an ObjectView (e.g., VBA: objectView.Toolbars.Item(1).Buttons). This property is not applicable to Cicode.

[VBA]

Sub Example(Buttons As Object)Dim button As ObjectDim count Object‘Using Property For Each button In Buttons

count = count + 1Next button

End Sub

ITrendCursor InterfaceDefined As

[VBA] Object

[Cicode] OBJECT

[C++] ITrendCursor

Methods

ITrendCursor.GetValue [Method]ITrendCursor.Delete [Method]

Properties

ITrendCursor.Color [Property][Get/Set]ITrendCursor.Width [Property][Get/Set]ITrendCursor.Position [Property][Get/Set]ITrendCursor.Visible [Property][Get/Set]ITrendCursor.Collection [Property][Get]ITrendCursor.Name [Property][Get/Set]

Page 260: Vijeo Citect Process Analyst

244

ITrendCursor.PenLabelVisible [Property][Get/Set]ITrendCursor.PenLabelWidth [Property][Get/Set]ITrendCursor.PenLabelHeight [Property][Get/Set]ITrendCursor.PenLabelX [Property][Get/Set]ITrendCursor.PenLabelY [Property][Get/Set]ITrendCursor.LabelsLocked [Property][Get/Set]

ITrendCursor.GetValue [Method]

Gets the value at the cursor for the given pen.

Defined As

[VBA] GetValue(pen As Object, asLocal As Boolean, time As Date, milli As Integer, value As String)

[Cicode] GetValue(OBJECT pen, INT asLocal, REAL time, INT milli, STRING value)

[C++] HRESULT Create GetValue(IPen* pen, VARIANT_BOOL asLocal, DATE *time, short *milli, BSTR *value)

Parameters

pen

[in] The pen for which the value is required.

asLocal

[in] Set to True (-1) if returned time is required in Local form (False (0) for UTC).

time

[out] The time represented by the cursor position. This is accurate to one second and must be combined with milli to give millisecond accuracy.

milli

[out] Added to time (see above) to give cursor time in millisecond accuracy.

value

[out] The value of the trend for the given pen at the returned time.

Execution Result

If the function succeeds, the return value will be Success. If one of the return variables are bad, then the return value will be InvalidArgument. If the cursor is deleted, the return value will be GeneralFailure.

Calling Syntax

This example assumes you have a valid reference to a cursor and a pen.

[VBA]

Sub Example(cursor As Object, pen As Object)Dim asLocal As BooleanDim cursorTime As DateDim milli As IntegerDim cursorValue As String

Page 261: Vijeo Citect Process Analyst

245

asLocal = 0cursor.GetValue pen, asLocal, cursorTime, milli, cursorValue

End Sub

[Cicode]

FUNCTION Example(OBJECT hCursor, OBJECT hPen)INT asLocal = 0;REAL time;INT milli;STRING value;_ObjectCallMethod(hCursor , "GetValue", hPen, asLocal, time, milli, value);

END

ITrendCursor.Delete [Method]

Deletes the cursor.

Defined As

[VBA] Delete()

[Cicode] Delete()

[C++] HRESULT Delete()

Execution Result

If the function succeeds, the return value will be Success. If the cursor is deleted, the return value will be GeneralFailure.

Remarks

This method will remove the cursor from the Process Analyst. Any current references to the cursor will continue to be valid; however, operations on them will result in failure.

Calling Syntax

This example assumes you have a valid reference to a cursor.

[VBA]

Sub Example(cursor As Object)cursor.Delete

End Sub

[Cicode]

FUNCTION Example(OBJECT hCursor)_ObjectCallMethod(hCursor, "Delete");

END

ITrendCursor.Color [Property][Get/Set]

Gets or Sets the line color of the cursor.

Defined As

[VBA] Long Color

[Cicode] INT Color

[C++] OLE_COLOR Color

Execution Result

Page 262: Vijeo Citect Process Analyst

246

If the property get/set succeeds the return value will be Success. If the return variable is bad then the return value will be InvalidArgument. If the cursor is deleted the return value will be GeneralFailure.

Remarks

The Cicode function PackedRGB can be used to convert an RGB color specification to the OLE_COLOR type used by the Process Analyst.

Calling Syntax

This example assumes you have a valid reference to a cursor.

[VBA]

Sub Example(cursor As Object)Dim trendCursorColor As Long‘Getting Property valuetrendCursorColor = cursor.Color‘Setting Property value (to red)cursor.Color = 255

End Sub

[Cicode]

FUNCTION Example(OBJECT hCursor)INT trendCursorColor;// Getting current property valuetrendCursorColor = _ObjectGetProperty(hCursor, “Color”);// Setting Property to blue_ObjectSetProperty(hCursor, “Color”, PackedRGB(0, 0, 255));

END

ITrendCursor.Width [Property][Get/Set]

Gets or Sets the line width of the cursor.

Defined As

[VBA] Long Width

[Cicode] INT Width

[C++] int Width

Execution Result

If the property get/set succeeds the return value will be Success. If the return variable is bad then the return value will be InvalidArgument. If the cursor is deleted the return value will be GeneralFailure.

Limits

Minimum (0)

Maximum (8)

Calling Syntax

This example assumes you have a valid reference to a cursor.

[VBA]

Sub Example(cursor As Object)Dim lineWidth As Long‘Getting Property value

Page 263: Vijeo Citect Process Analyst

247

lineWidth = cursor.Width‘Setting Property value cursor.Width = 5

End Sub

[Cicode]

FUNCTION Example(OBJECT hCursor)INT lineWidth;// Getting current property valuelineWidth = _ObjectGetProperty(hCursor, “Width”);// Setting Property to 5_ObjectSetProperty(hCursor, “Width”, 5);

END

ITrendCursor.Position [Property][Get/Set]

Get or Set the cursor’s physical position in the Process Analyst.

Defined As

[VBA] Long Position

[Cicode] INT Position

[C++] int Position

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the cursor is deleted, the return value will be GeneralFailure.

Remarks

The cursor position is measured as the number of pixels from the left of the Process Analyst graph.

Calling Syntax

This example assumes you have a valid reference to a cursor.

[VBA]

Sub Example(cursor As Object)Dim position As Integer‘Getting Property valueposition = cursor.Position‘Setting Property value cursor.Position = 300

End Sub

[Cicode]

FUNCTION Example(OBJECT hCursor)INT position;// Getting current property valueposition = _ObjectGetProperty(hCursor, “Position”);// Setting Property to (300)_ObjectSetProperty(hCursor, “Position”, 300);

END

ITrendCursor.Visible [Property][Get/Set]

Get or Set whether the cursor is visible.

Defined As

Page 264: Vijeo Citect Process Analyst

248

[VBA] Boolean Visible

[Cicode] INT Visible

[C++] VARIANT_BOOL Visible

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the cursor is deleted, the return value will be GeneralFailure.

Remarks

This property controls the visibility of the cursor. The visibility is also applied to all labels associated with the cursor.

See Also ITrendCursor.PenLabelVisible [Property][Get/Set]

Calling Syntax

This example assumes you have a valid reference to a cursor.

[VBA]

Sub Example(cursor As Object)Dim visibility As Boolean‘Getting Property valuevisibility = cursor.Visible‘Setting Property value (False)cursor.Visible = False

End Sub

[Cicode]

FUNCTION Example(OBJECT hCursor)INT visibility;// Getting current property valuevisibility = _ObjectGetProperty(hCursor, “Visible”);// Setting Property to False (0)_ObjectSetProperty(hCursor, “Visible”, 0);

END

ITrendCursor.Collection [Property][Get]

Obtain a reference to the ICursors collection that contains the cursor.

Defined As

[VBA] Object Collection

[Cicode] OBJECT Collection

[C++] HRESULT Collection(ICursors **cursor)

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the cursor is deleted, the return value will be GeneralFailure.

Calling Syntax

This example assumes you have a valid reference to a cursor.

Page 265: Vijeo Citect Process Analyst

249

[VBA]

Sub Example(cursor As Object)Dim cursors As Object‘Getting Property collectionSet cursors = cursor.Collection

End Sub

[Cicode]

FUNCTION Example(OBJECT hCursor)OBJECT hCursors;// Getting collectionhCursors = _ObjectGetProperty(hCursor, “Collection”);

END

ITrendCursor.Name [Property][Get/Set]

Get or Set the Name of the cursor.

Defined As

[VBA] String Name

[Cicode] STRING Name

[C++] BSTR Name

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the name is 0 characters or greater than 250, the return value will be InvalidArgument.

If the cursor is deleted, the return value will be GeneralFailure.

Remarks

When setting the name property, remember that cursor names must be unique. Setting the Name property will fail if a cursor with that name already exists.

Calling Syntax

This example assumes you have a valid reference to a cursor.

[VBA]

Sub Example(cursor As Object)Dim name As String‘Getting Property valuename = cursor.Name‘Setting Property valuecursor.Name = “NewCursor”

End Sub

[Cicode]

FUNCTION Example(OBJECT hCursor)STRING name;// Getting current property valuename = _ObjectGetProperty(hCursor, “Name”);// Setting Property_ObjectSetProperty(hCursor, “Name”, “NewCursor”);

END

Page 266: Vijeo Citect Process Analyst

250

ITrendCursor.PenLabelVisible [Property][Get/Set]

Get or Set the label visibility of the specified pen on this cursor.

Defined As

[VBA] Boolean PenLabelVisible(pen As Object)

[Cicode] INT PenLabelVisible(OBJECT pen)

[C++] HRESULT PenLabelVisible(IPen* pen, VARIANT_BOOL labelVisible)

Parameters

pen

[in] The pen for which cursor label is to be referenced.

Execution Result

If the property get/set succeeds, the return value will be Success. If the return variable is bad, the return value will be InvalidArgument. If the cursor is deleted, the return value will be GeneralFailure.

Limits

True (-1): Label is visible.

False (0): Label is hidden.

Remarks

Setting the visibility of the cursor using the Visible property will override the pen label visibility. For example, if a particular label is hidden using PenLabelVisible, this label will be shown again if Visible is set to True (-1).

See Also ITrendCursor.Visible [Property][Get/Set]

Calling Syntax

This example assumes you have a valid reference to a cursor and a pen.

[VBA]

Sub Example(cursor As Object, pen As Object)Dim labelVisible As Boolean‘Getting Property valuelabelVisible = cursor.PenLabelVisible(pen)‘Setting Property value (False)cursor.PenLabelVisible(pen) = False

End Sub

[Cicode]

FUNCTION Example(OBJECT hCursor, OBJECT hPen)INT labelVisible;// Getting current property valuelabelVisible = _ObjectCallMethod(hCursor,

"get_PenLabelVisible", hPen);// Setting Property to FALSE_ObjectCallMethod(hCursor , "put_PenLabelVisible", hPen, 0);

END

Page 267: Vijeo Citect Process Analyst

251

ITrendCursor.PenLabelWidth [Property][Get/Set]

Get or Set the label width of the specified pen on this cursor.

Defined As

[VBA] Double PenLabelWidth(pen As Object)

[Cicode] REAL PenLabelWidth (OBJECT pen)

[C++] HRESULT PenLabelWidth (IPen* pen, double labelWidth)

Parameters

pen

[in] The pen for which cursor label is to be referenced.

Execution Result

If the property get/set succeeds the return value will be Success. If the return variable is bad then the return value will be InvalidArgument. If the cursor is deleted the return value will be GeneralFailure.

Remarks

The value of width is represented in pixels.

See Also ITrendCursor.PenLabelHeight [Property][Get/Set], ITrendCursor.PenLabelX [Property][Get/Set], ITrendCursor.PenLabelY [Property][Get/Set]

Calling Syntax

This example assumes you have a valid reference to a cursor and a pen.

[VBA]

Sub Example(cursor As Object, pen As Object)Dim labelWidth As Double‘Getting Property valuelabelWidth = cursor.PenLabelWidth(pen)‘Setting Property value (100)cursor.PenLabelWidth(pen) = 100

End Sub

[Cicode]

FUNCTION Example(OBJECT hCursor, OBJECT hPen)REAL labelWidth;// Getting current property valuelabelWidth = _ObjectCallMethod(hCursor , "get_PenLabelWidth", hPen);// Setting Property to 100_ObjectCallMethod(hCursor , "put_PenLabelWidth", hPen, 100);

END

ITrendCursor.PenLabelHeight [Property][Get/Set]

Get or Set the label height of the specified pen on this cursor.

Defined As

[VBA] Double PenLabelHeight(pen As Object)

[Cicode] REAL PenLabelHeight (OBJECT pen)

[C++] HRESULT PenLabelHeight (IPen* pen, double labelHeight)

Parameters

Page 268: Vijeo Citect Process Analyst

252

pen

[in] The pen for which cursor label is to be referenced.

Execution Result

If the property get/set succeeds the return value will be Success. If the return variable is bad then the return value will be InvalidArgument. If the cursor is deleted the return value will be GeneralFailure.

Remarks

The value of height is represented in pixels.

See Also ITrendCursor.PenLabelWidth [Property][Get/Set], ITrendCursor.PenLabelX [Property][Get/Set], ITrendCursor.PenLabelY [Property][Get/Set]

Calling Syntax

This example assumes you have a valid reference to a cursor and a pen.

[VBA]

Sub Example(cursor As Object, pen As Object)Dim labelHeight As Double‘Getting Property valuelabelHeight = cursor.PenLabelHeight(pen)‘Setting Property value (100)cursor.PenLabelHeight (pen) = 100

End Sub

[Cicode]

FUNCTION Example(OBJECT hCursor, OBJECT hPen)REAL labelHeight;// Getting current property valuelabelHeight = _ObjectCallMethod(hCursor , "get_PenLabelHeight", hPen);// Setting Property to 100_ObjectCallMethod(hCursor , "put_PenLabelHeight", hPen, 100);

END

ITrendCursor.PenLabelX [Property][Get/Set]

Get or Set the label’s X-Axis position of the specified pen on this cursor.

Defined As

[VBA] Double PenLabelX(pen As Object)

[Cicode] REAL PenLabelX (OBJECT pen)

[C++] HRESULT PenLabelX (IPen* pen, double labelX)

Parameters

pen

[in] The pen for which cursor label is to be referenced.

Execution Result

If the property get/set succeeds the return value will be Success. If the return variable is bad then the return value will be InvalidArgument. If the cursor is deleted the return value will be GeneralFailure.

Page 269: Vijeo Citect Process Analyst

253

Remarks

The label position is represented in pixels.

See Also ITrendCursor.PenLabelWidth [Property][Get/Set], ITrendCursor.PenLabelHeight [Property][Get/Set], ITrendCursor.PenLabelY [Property][Get/Set]

Calling Syntax

This example assumes you have a valid reference to a cursor and a pen.

[VBA]

Sub Example(cursor As Object, pen As Object)Dim labelX As Double‘Getting Property valuelabelX = cursor.PenLabelX(pen)‘Setting Property value (100)cursor.PenLabelX(pen) = 100

End Sub

[Cicode]

FUNCTION Example(OBJECT hCursor, OBJECT hPen)REAL labelX;// Getting current property valuelabelX = _ObjectCallMethod(hCursor , "get_PenLabelX", hPen);// Setting Property to 100_ObjectCallMethod(hCursor , "put_PenLabelX", hPen, 100);

END

ITrendCursor.PenLabelY [Property][Get/Set]

Get or Set the label’s Y-Axis position of the specified pen on this cursor.

Defined As

[VBA] Double PenLabelY(pen As Object)

[Cicode] REAL PenLabelY (OBJECT pen)

[C++] HRESULT PenLabelY (IPen* pIPen, double labelY)

Remarks

The label position is represented in pixels

Syntax ITrendCursor.PenLabelWidth [Property][Get/Set], ITrendCursor.PenLabelHeight [Property][Get/Set], ITrendCursor.PenLabelX [Property][Get/Set]

Calling Syntax

This example assumes you have a valid reference to a cursor and a pen.

[VBA]

Sub Example(cursor As Object, pen As Object)Dim labelY As Double‘Getting Property valuelabelY = cursor.PenLabelY(pen)‘Setting Property value (100)cursor.PenLabelY(pen) = 100

End Sub

Page 270: Vijeo Citect Process Analyst

254

[Cicode]

FUNCTION Example(OBJECT hCursor, OBJECT hPen)REAL labelY;// Getting current property valuelabelY = _ObjectCallMethod(hCursor , "get_PenLabelY", hPen);// Setting Property to 100_ObjectCallMethod(hCursor , "put_PenLabelY", hPen, 100);

END

ITrendCursor.LabelsLocked [Property][Get/Set]

Get or Set whether the cursor label positions are locked.

Defined As

[VBA] Boolean LabelsLocked

[Cicode] INT LabelsLocked

[C++] VARIANT_BOOL LabelsLocked

Limits

True (-1): Labels are locked

False (0): Labels are unlocked

Remarks

If labels are locked, they will not move when the cursor position is changed.

Calling Syntax

This example assumes you have a valid reference to a cursor.

[VBA]

Sub Example(cursor As Object)Dim labelsLocked As Boolean‘Getting Property valuelabelsLocked = cursor.LabelsLocked‘Setting Property value (False)cursor.LabelsLocked = False

End Sub

[Cicode]

FUNCTION Example(OBJECT hCursor)INT labelsLocked;// Getting current property valuelabelsLocked = _ObjectGetProperty(hCursor, “LabelsLocked”);// Setting Property to False (0)_ObjectSetProperty(hCursor, “LabelsLocked”, 0);

END

Page 271: Vijeo Citect Process Analyst

Chapter 13: Cicode Programming Reference

Automation ExamplesThe best way of understanding how to use the Process Analyst’s automation model is to see some example code. The following examples cover the most important concepts of extensibility offered by the Process Analyst:

Event handling

Enumerating collections

Custom commands

Custom columns

All of the samples assume you are using the CSV example project and have pasted a new Process Analyst onto the test page provided by the project.

You will also need to configure the Process Analyst object’s Name and Event class by doing the following:

1 In the CSV example project open the “test” page in Graphics Builder

2 Click the Process Analyst icon in the toolbox to insert the control.

3 Resize the control to fit the test page.

4 Double-click the Process Analyst.

5 Click the Access/Identification tab.

6 Change the Object Name to CPA.

7 Change the Event class to CPA_E.

8 Click Apply and OK.

Handling an Event The Process Analyst contains many events that are triggered when certain actions occur. See “Events”.

To handle an event you must provide a handler for the event by prepending your Process Analyst’s event class name with the event name you want to handle and an underscore. To configure the event class, see “Automation Examples”.

The example below shows how to define a handler for the “MouseClick” event with an event class defined as “CPA_E”.

[VBA]

Sub CPA_E_MouseClick(pen As Object, button As Integer)End Sub

[Cicode]

FUNCTION CPA_E_MouseClick(OBJECT hPA, OBJECT hPen, INT button)END

The following example uses the MouseClick event to cancel the box zoom operation when the right mouse button is clicked.

Page 272: Vijeo Citect Process Analyst

256

Note: When referring to an ActiveX object in VBA, you need to prepend it with the page name and an underscore. In the example below, the page name is called “test”. The object name is “CPA” and the event class name is “CPA_E”.

[VBA]

Sub CPA_MouseClick(pen As Object, button As Integer)Dim bZoomMode As Boolean

If (button = 1) ThenbZoomMode = test_CPA.ZoomMode

If (bZoomMode = True) Thentest_CPA.ZoomMode = False

End IfEnd If

End Sub

[Cicode]

FUNCTION CPA_E_MouseClick(OBJECT hPA, OBJECT hPen, INT button)INT bZoomMode = 0;IF (button = 1) THEN

bZoomMode = _ObjectGetProperty(hPA, "ZoomMode")IF (bZoomMode = -1) THEN

_ObjectSetProperty(hPA, "ZoomMode", 0)END

ENDEND

Enumerating collections

The Process Analyst contains many “collections” such as Panes, Pens, Cursors, Commands, and so on. This example shows you how to enumerate through the buttons on the navigation toolbar.

[VBA]

Sub EnumerateToolbarButtons()Dim navBar As ObjectDim iButton As IntegerDim button As ObjectDim nButtons As Integer

‘ The Navigation toolbar is the 2nd toolbar in the collectionSet navBar = test_CPA.Toolbars.Item(2)If IsNull(navBar) = False Then

nButtons = navBar.Buttons.CountFor iButton = 1 To nButtons

Set button = navBar.Buttons(iButton)Next iButton

End IfEnd Sub

[Cicode]

FUNCTION EnumerateToolbarButtons()OBJECT hPA = ObjectByName("CPA");OBJECT hToolbars = _ObjectGetProperty(hPA, "Toolbars");// The Navigation toolbar is the 2nd toolbar in the collectionOBJECT hNavBar = _ObjectCallMethod(hToolbars, "get_Item", 2); OBJECT hButtons;

Page 273: Vijeo Citect Process Analyst

257

OBJECT hButton;INT nButtons;INT iButton;

IF (ObjectIsValid(hNavBar)) THENhButtons = _ObjectGetProperty(hNavBar, "Buttons");nButtons = _ObjectGetProperty(hButtons, "Count");

FOR iButton = 1 TO nButtons DOhButton = _ObjectCallMethod(hButtons, "get_Item", iButton);

ENDEND

END

Note: Many collections have an ItemById property that allows you to get the item you want without having to enumerate through the collection to find the item you want.

Implementing a custom command

Custom commands are easy to implement and involve creating a new command, adding it to a toolbar, and responding to the CommandExecuted event.

To add a new command and add it to the toolbar as a button:

1 Display the properties for your Process Analyst in the Graphics Builder

2 See Adding New Commands.

3 Use the following settings:

ID =“SelectedPen”

Tooltip = “Show the name of the selected pen”

Button style = <Push>

Enabled = <Checked>

Once you’ve done this, you need to write an event handler for the CommandExecuted event. This event will be called when the command is executed, whether by Cicode or by clicking on the respective toolbar button. The CommandExecuted event when triggered has a commandId parameter identifying the command executed by the operator.

This example implements a command that displays a message box showing the name of the primary selected pen.

See Also “CommandExecuted [Event]”

[VBA]

Sub CPA_E_CommandExecuted(commandId As String)Select Case commandId

Case "SelectedPen"Call OnSelectedPen()

End SelectEnd Sub

Sub OnSelectedPen()Dim pen As ObjectDim sName As String

Page 274: Vijeo Citect Process Analyst

258

Dim sMessage As String

Set pen = test_CPA.LastSelectedPen

If IsNull(pen) = False ThensName = pen.Name

End IfsMessage = "The name of the selected pen is:" + Chr(13) + sNameMsgBox sMessage, 48, "Citect"

End Sub

[Cicode]

FUNCTION CPA_E_CommandExecuted(OBJECT hPA, STRING commandId)SELECT CASE commandId

CASE "SelectedPen"OnSelectedPen(hPA);

END SELECTEND

FUNCTION OnSelectedPen(OBJECT hPA)OBJECT hPen;STRING sName;STRING sMessage;IF ObjectIsValid(hPA) THEN

hPen = _ObjectGetProperty(hPA, "LastSelectedPen");

IF ObjectIsValid(hPen) THENsName = _ObjectGetProperty(hPen, "Name");

ENDsMessage = "The name of the selected pen is:^n" + sName;Message("Citect", sMessage, 48);

ENDEND

Enabling and Disabling a CommandYou can also respond to the UpdateCommand event to control the enable/disable state of the command’s toolbar button. The example below disables the button if there are no pens.

[VBA]

Sub CPA_E_UpdateCommand(commandId As String)Select Case commandId

Case "SelectedPen"Call OnUpdatedSelectedPen()

End SelectEnd Sub

Sub OnUpdatedSelectedPen()Dim pen As ObjectDim command As ObjectDim sName As String

On Error Goto errHandler

Page 275: Vijeo Citect Process Analyst

259

Set command = test_CPA.CommandSystem.ItemById("SelectedPen")Set pen = test_CPA.LastSelectedPen

sName = pen.Namecommand.Enabled = TrueExit Sub

errHandler:command.Enabled = False

End Sub

[Cicode]

FUNCTION CPA_E_UpdateCommand(OBJECT hPA, STRING commandId)SELECT CASE commandId

CASE "PaneLock"OnUpdatePaneLock(hPA);

CASE "SelectedPen"OnUpdateSelectedPen(hPA);

END SELECTEND

FUNCTION OnUpdateSelectedPen(OBJECT hPA)OBJECT hPen = _ObjectGetProperty(hPA, "LastSelectedPen");OBJECT hCommandSystem = _ObjectGetProperty(hPA,"CommandSystem");OBJECT hCommand = _ObjectCallMethod(hCommandSystem,"get_ItemById", "SelectedPen");INT iError = 0;

ErrSet(1);_ObjectGetProperty(hPen, "Name");iError = IsError();

IF (iError <> 0) THEN_ObjectSetProperty(hCommand, "Enabled", 0);

ELSE_ObjectSetProperty(hCommand, "Enabled", -1);

ENDErrSet(0);

END

See Also “UpdateCommand [Event]”

Implementing a custom column

Custom columns are added to the Object View allowing you to display your own information associated with a pen.

The sample below implements a column that calculates the “Display Period” for each pen on the Process Analyst. The sample consists of three functions: an update function and two event handlers to ensure the column is updated when new pens are added and when the time span is changed.

The Update FunctionThe update function is complex since it needs to match an Object View pen item with a real pen object; however, this isn’t too difficult because the Object View tree always reflects how many panes and pens are being displayed.

Page 276: Vijeo Citect Process Analyst

260

The code achieves this by iterating through each pane and pen object in the Process Analyst while simultaneously keeping a running index count of which pane/pen item it matches up to in the Object View tree.

By using these indexes the code knows which row to update. A row update is achieved using the PutField method.

Note: Implementing your own column is CPU-intensive. Try to keep the amount of code required to calculate a row value as efficient as possible and be aware how often the code will be executed. Note also that, for efficiency, the BlockUpdates and UnblockUpdates functions are used to limit the number of updates made to the Object View.

Event HandlersOnce you have a function that implements your custom column, you need to know when to update that column. The most common method of doing this is to implement event handlers for particular Process Analyst events. The example below uses the PenCreated event and the HorizontalAxisChanged event. These events will ensure that the column values will be updated when pens are added to the display and when the time span changes.

See Also “IObjectViewItem.PutField [Method]”, “IProcessAnalyst.BlockUpdates [Method]”, “IProcessAnalyst.UnBlockUpdates [Method]”, “PenCreated [Event]”, “HorizontalAxisChanged [Event]”

[VBA]

Sub UpdateMyColumn()Dim iPaneItem As IntegerDim iPane As IntegerDim nPanes As IntegerDim nSamples As Integer

Dim penItem As ObjectDim paneItem As Object

nSamples = test_CPA.NumberOfSamplesiPaneItem = 0nPanes = test_CPA.Panes.CountFor iPane = 1 To nPanes

Dim pane As Object

Set pane = test_CPA.Panes.Item(iPane)If IsNUll(pane) = False Then

Dim pen As ObjectDim iPen As IntegerDim iPenItem As IntegerDim nPens As Integer

iPaneItem = iPaneItem + 1

Set paneItem = test_CPA.ObjectView.Items.Item(iPaneItem)

test_CPA.BlockUpdatesiPenItem = 0nPens = pane.Pens.CountFor iPen = 1 To nPens

Page 277: Vijeo Citect Process Analyst

261

Set pen = pane.pens.Item(iPen)

If IsNUll(pen) = False ThenDim dDiff As DoubleDim sText As string

Dim dtStart As DateDim dtEnd As DateDim dtStartMs As IntegerDim dtEndMs As Integer

iPenItem = iPenItem + 1

pen.GetHorizontalAxisTimeSpan dtStart, dtStartMs, dtEnd, dtEndMs, False

dDiff = ((CDbl(dtEnd) - CDbl(dtStart)) / nSamples) * 86400If (dDiff >= 0.001) Then

sText = CStr(Format(dDiff, "#0.000")) + " seconds"Else

sText = "0.001 seconds"End IfSet penItem = paneItem.Items.Item(iPenItem)

If IsNUll(penItem) = False ThenpenItem.Putfield "DisplayPeriod", sText

End IfEnd If

Nexttest_CPA.UnblockUpdates

End IfNext

End Sub

Sub CPA_E_HorizontalAxisChanged(hPen As Object)UpdateMyColumn

End Sub

Sub CPA_E_PenCreated(hPen As Object)UpdateMyColumn

End Sub

[Cicode]

FUNCTION UpdateMyColumn()OBJECThPA = ObjectByName("CPA");OBJECThPanes = _ObjectGetProperty(hPA, "Panes");OBJECThPane;OBJECThPens;OBJECThPen;OBJECThObjectView = _ObjectGetProperty(hPA, "ObjectView");OBJECThPaneItems = _OBJECTGetProperty(hObjectView, "Items");OBJECThPaneItem;OBJECThPenItems;OBJECThPenItem;

INT nPanes = _ObjectGetProperty(hPanes, "Count");

Page 278: Vijeo Citect Process Analyst

262

INT nPens;INT iPen;INT iPane = 0;INT nSamples = _ObjectGetProperty(hPA, "NumberOfsamples");INT iPenItem = 0;INT iPaneItem = 0;

REAL dDiff;REAL dtStart;REAL dtEnd;INT dtStartMs;INT dtEndMs;

STRINGsText;

FOR iPane = 1 TO nPanes DOhPane = _ObjectCallMethod(hPanes, "get_Item", iPane);

IF ObjectIsValid(hPane) THENhPens = _ObjectGetProperty(hPane, "Pens");nPens = _ObjectGetProperty(hPens, "Count");

iPaneItem = iPaneItem + 1;

_ObjectCallMethod(hPA, "BlockUpdates");hPaneItem = _ObjectCallMethod(hPaneItems, "get_Item", iPaneItem);iPenItem = 0;FOR iPen = 1 TO nPens DO

hPen = _ObjectCallMethod(hPens, "get_Item", iPen);

IF ObjectIsValid(hPen) THEN

iPenItem = iPenItem + 1;_ObjectCallMethod(hPen, "GetHorizontalAxisTimeSpan", dtStart, dtStartMs,

dtEnd, dtEndMs, 0);

dDiff = ((dtEnd - dtStart) / nSamples) * 86400;

IF dDiff > 0.001 THENsText = StrFormat(dDiff, 10, 3, "seconds");

ELSEsText = "0.001 seconds"

ENDhPenItems = _ObjectGetProperty(hPaneItem, "Items");hPenItem = _ObjectCallMethod(hPenItems, "get_Item", iPenItem);

_ObjectCallMethod(hPenItem, "PutField", "DisplayPeriod", sText);END

END_ObjectCallMethod(hPA, "UnblockUpdates");

ENDEND

END

FUNCTION CPA_E_HorizontalAxisChanged(OBJECT hPA, OBJECT hPen)UpdateMyColumn();

Page 279: Vijeo Citect Process Analyst

263

END

FUNCTION CPA_E_PenCreated(OBJECT hPA, OBJECT hPen)UpdateMyColumn();

END

Page 280: Vijeo Citect Process Analyst

264

Page 281: Vijeo Citect Process Analyst

IndexAacknowledgement, alarm, 12Add Cursor command, 25Add New Pens dialog box, 27Add Pane command, 43, 61Add Pen command, 61adding

panes, 43pens, 27toolbar commands, 53, 77

alarm acknowledgement, 12alarm label value, 26alarm pen types, 13alarm pens, 11, 45alarm states, 12alarm types, 11AlarmType enumeration, 229analog pens, 10association, tag, 65automation model, 83Autoscale Vertical Axis command, 61autoscaling, 61Autoscroll command, 21autoscrolling, 21axis

configuring, 47horizontal, 7vertical, 8

AxisLabelType enumeration, 230

BBack Half a Span command, 60Back One Span command, 60background color, configuring, 41, 43Boolean terms during searches, 27

Ccolumns, configuring Object View, 54command system, 81CommandExecuted event, 81, 228commands

Add Cursor, 25Add Pane, 43, 61Add Pen, 61adding new, 77Autoscale Vertical Axis, 61Autoscroll, 21Back Half a Span, 60Back One Span, 60Copy to Clipboard, 37, 60Copy to File, 37Edit Span, 22, 60Edit Vertical Scale, 23, 60editing, 78export, 60Forward Half a Span, 60Forward One Span, 60general, 61Help, 61interface, 61Load View, 56, 59Lock/Unlock Cursor Labels, 25, 61Lock/Unlock Pens, 16, 61Lock/Unlock Vertical Axis Scrolling, 61navigation, 60Print, 61Refresh Data, 61Remove Pane, 61Remove Pen, 28, 61Reset to Default Span, 23, 60Save View, 56, 59Show Properties, 61Show/Hide Cursor, 25, 61Show/Hide Cursor Labels, 25, 61Show/Hide Points, 61Synchronize to Now, 21, 60Toggle Auto-Scrolling, 21, 60Toggle Box Zoom, 21, 59Toggle Object View, 32, 61Toggle Span Lock, 20, 60Undo Last Zoom, 21, 60view, 59zoom, 59Zoom In 50%, 21Zoom in 50%, 59Zoom Out 50%, 21

Page 282: Vijeo Citect Process Analyst

266

Zoom out 50%, 59compaction, data, 5comparison, trend, 16configuring

appearance of pens, 44axes, 47chart panes, 43chart-wide properties, 41columns in Object View, 54cursor labels, 50cursors, 51data connection, 50defaults, 52design time properties, 77general properties, 41gridlines, 46pen quality, 49refresh rate, 41report options, 34, 36server paths, 42toolbars, 53

connection, data, 50context menu. See right-click menuCopy to Clipboard command, 37, 60Copy to File command, 37copying data, 37Create method, 81creating custom commands, 81cursor labels, 24, 50CursorMoved event, 223cursors, 24

configuring, 51custom commands, 81custom commands, adding, 77

Ddata

copying, 37exporting, 37

data compaction, 5data connection, configuring, 50data quality, 6data request mode, 50data request rate, configuring, 41date/time axis, 7

Daylight Savings, 18Daylight Savings time, 8defaults, configuring, 52deleting

pens, 28design time properties, configuring, 77digital pens, 11display, time, 7

EEdit Command dialog box, 78Edit Span command, 22, 60Edit Span dialog box, 22Edit Vertical Scale command, 23, 60Edit Vertical Scale dialog box, 23editing commands, 78effect, halo, 15end time, specifying, 18enumerations, automation model, 85Error event, 223ErrorNotifyCode enumeration, 234execution result, 83export commands, 60exporting data, 37

FFileLocation enumeration, 235filtering pens, 27Fit to unit, 20fixed height for panes, specifying, 44Forward Half a Span command, 60Forward One Span command, 60

Ggeneral commands, 61general properties, configuring, 41GetCommandSystem() property, 81graphics page, inserting onto, 65gridlines, 9, 46

Hhalo effect, 15HatchStyle enumeration, 231Help command, 61

Page 283: Vijeo Citect Process Analyst

267

HorizontalAxisChanged event, 221

IIAlarmPen interface, 85IAlarmPen.AlarmType property, 87IAlarmPen.GetFillColor method, 88IAlarmPen.GetHatchColor method, 89IAlarmPen.GetHatchStyle method, 91IAlarmPen.LineColor property, 85IAlarmPen.LineWidth property, 86IAlarmPen.SetFillColor method, 88IAlarmPen.SetHatchColor method, 90IAlarmPen.SetHatchStyle method, 91IAnalogPen interface, 92IAnalogPen.LineColor property, 92IAnalogPen.LineInterpolation property, 93IAnalogPen.LineWidth property, 94ICommand interface, 95ICommand.ButtonType property, 96ICommand.CommandId property, 95ICommand.Enabled property, 96ICommand.Pressed property, 97ICommand.Privilege property, 99ICommand.Tooltip property, 98ICommandSystem interface, 99ICommandSystem._NewEnum property, 101ICommandSystem.Count property, 100ICommandSystem.Create method, 102ICommandSystem.Execute method, 103ICommandSystem.Item property, 100ICommandSystem.ItemById property, 101ICommandSystem.Remove method, 103icons, custom, 81ICursors interface, 104ICursors._NewEnum property, 106ICursors.Count property, 107ICursors.Create method, 104ICursors.Item property, 106ICursors.ItemByName property, 107ICursors.RemoveAll method, 105IDigitalPen interface, 108IDigitalPen.Fill property, 111IDigitalPen.FillColor property, 108IDigitalPen.LineColor property, 109IDigitalPen.LineWidth property, 110

Insert ActiveX dialog box, 65interface commands, 61interfaces, automation model, 84interpolation, 10, 45IObjectView interface, 111IObjectView.BackgroundColor property, 113IObjectView.Columns property, 115IObjectView.ForeColor property, 114IObjectView.Height property, 113IObjectView.Items property, 115IObjectView.SelectedItem property, 116IObjectView.Visible property, 112IObjectViewColumn interface, 117IObjectViewColumn.Name property, 117IObjectViewColumn.Text property, 117IObjectViewColumn.Width property, 118IObjectViewColumns interface, 119IObjectViewColumns._NewEnum property, 124IObjectViewColumns.Add method, 119IObjectViewColumns.Count property, 122IObjectViewColumns.Hide method, 120IObjectViewColumns.Item property, 122IObjectViewColumns.ItemByName property, 123IObjectViewColumns.Remove method, 120IObjectViewColumns.Show method, 121IObjectViewItem interface, 124IObjectViewItem.Expanded property, 126IObjectViewItem.GetField method, 124IObjectViewItem.Items property, 128IObjectViewItem.PutField method, 125IObjectViewItem.Tag property, 127IObjectViewItems interface, 128IObjectViewItems._NewEnum property, 130IObjectViewItems.Count property, 129IObjectViewItems.Item property, 129IObjectViewPenItem interface, 130IObjectViewPenItem.BlockColor property, 130IObjectViewPenItem.Checked property, 131IObjectViewPenItem.Selected property, 132IPane interface, 132IPane.BackgroundColor property, 136IPane.Collection property, 134IPane.Delete method, 133IPane.FixedHeight property, 136IPane.Height property, 133

Page 284: Vijeo Citect Process Analyst

268

IPane.Name property, 135IPane.Pens property, 137IPanes interface, 138IPanes._NewEnum property, 141IPanes.Count property, 139IPanes.Create method, 138IPanes.Item property, 140IPanes.ItemByName property, 141IPanes.RemoveAll method, 139IPen interface, 142IPen.AddSample method, 143IPen.AxisBackgroundColor property, 162IPen.BlockRepaint property, 162IPen.Clear method, 144IPen.Collection property, 163IPen.DataPoint property, 164IPen.DataServer property, 164IPen.Delete method, 144IPen.GetDefaultSpan method, 145IPen.GetHorizontalAxisTimeSpan method, 146IPen.GetInformation method, 147IPen.GetStatistic method, 149IPen.GetVerticalAxisSpan method, 149IPen.GoToNow method, 150IPen.Height property, 165IPen.HorizontalAxisColor property, 166IPen.HorizontalAxisResize property, 167IPen.HorizontalAxisScroll property, 168IPen.HorizontalAxisWidth property, 168IPen.HorizontalGridlinesColor property, 169IPen.HorizontalGridlinesStyle property, 170IPen.HorizontalGridlinesWidth property, 171IPen.HorizontalMinorGridlinesColor property, 171IPen.HorizontalMinorGridlinesStyle property, 172IPen.HorizontalScrollBy method, 151IPen.HorizontalZoom method, 151IPen.IsDeleted property, 173IPen.IsSelected property, 173IPen.LocalTime property, 174IPen.Name property, 175IPen.PointsVisible property, 152IPen.PutHorizontalAxisTimeSpan method, 153IPen.PutVerticalAxisSpan method, 154IPen.RefreshData method, 155IPen.RequestMode property, 175

IPen.ResetToDefaultSpan method, 156IPen.Select method, 156IPen.SetDefaultSpan method, 157IPen.SetQualityCompactionPointType method, 158IPen.SetQualityLineStyle method, 158IPen.SetVerticalAxisLabelValue method, 159IPen.Stacked property, 176IPen.TrendCursorLabelFillColor property, 177IPen.TrendCursorLabelLineColor property, 178IPen.TrendCursorLabelTextColor property, 178IPen.VerticalAxisAutoscale property, 179IPen.VerticalAxisColor property, 180IPen.VerticalAxisLabelType property, 181IPen.VerticalAxisResize property, 181IPen.VerticalAxisScroll property, 182IPen.VerticalAxisWidth property, 183IPen.VerticalGridlinesColor property, 184IPen.VerticalGridlinesStyle property, 185IPen.VerticalGridlinesWidth property, 185IPen.VerticalMinorGridlinesColor property, 186IPen.VerticalMinorGridlinesStyle property, 187IPen.VerticalScrollBy method, 160IPen.VerticalZoom method, 161IPen.Visible property, 187IPens interface, 188IPens._NewEnum property, 191IPens.Count property, 190IPens.Create method, 189IPens.Item property, 191IPens.ItemByName property, 191IPens.Pane property, 192IPens.RemoveAll method, 190IProcessAnalyst interface, 81, 193IProcessAnalyst.AdminPrivilegeLevel property, 203IProcessAnalyst.AutoScroll property, 204IProcessAnalyst.BackgroundColor property, 204IProcessAnalyst.BlockUpdates method, 194IProcessAnalyst.CommandSystem property, 205IProcessAnalyst.ContextMenu property, 206IProcessAnalyst.CopyToClipboard method, 195IProcessAnalyst.CopyToFile method, 196IProcessAnalyst.Cursors property, 207IProcessAnalyst.DataRequestRate property, 207IProcessAnalyst.DisplayRefreshRate property, 208IProcessAnalyst.Language property, 209

Page 285: Vijeo Citect Process Analyst

269

IProcessAnalyst.LastSelectedPen property, 210IProcessAnalyst.LoadFromFile method, 197IProcessAnalyst.LockedPens property, 211IProcessAnalyst.ObjectView property, 212IProcessAnalyst.Panes property, 213IProcessAnalyst.PrimaryPath property, 214IProcessAnalyst.PrintAll method, 198IProcessAnalyst.SaveToFile method, 199IProcessAnalyst.SecondaryPath property, 215IProcessAnalyst.ShowProperties method, 200IProcessAnalyst.SubscribeForPropertyChangemethod, 200IProcessAnalyst.SynchroniseToNow method, 201IProcessAnalyst.Toolbars property, 216IProcessAnalyst.UnBlockUpdates method, 194IProcessAnalyst.UnsubscribePropertyChange meth-od, 202IProcessAnalyst.WritePrivilegeLevel property, 216IProcessAnalyst.ZoomMode property, 217IToolbar interface, 235IToolbar.Buttons property, 236IToolbar.Visible property, 236IToolbarButton interface, 239IToolbarButton.CommandId property, 239IToolbarButtons interface, 240IToolbarButtons._NewEnum property, 243IToolbarButtons.Add method, 240IToolbarButtons.Count property, 242IToolbarButtons.Item property, 242IToolbarButtons.Remove method, 241IToolbarButtons.RemoveAll method, 241IToolbars interface, 237IToolbars._NewEnum property, 238IToolbars.Count property, 237IToolbars.Item property, 238ITrendCursor interface, 243ITrendCursor.Collection property, 248ITrendCursor.Color property, 245ITrendCursor.Delete method, 245ITrendCursor.GetValue method, 244ITrendCursor.LabelsLocked property, 254ITrendCursor.Name property, 249ITrendCursor.PenLabelHeight property, 251ITrendCursor.PenLabelVisible property, 250ITrendCursor.PenLabelWidth property, 251

ITrendCursor.PenLabelX property, 252ITrendCursor.PenLabelY property, 253ITrendCursor.Position property, 247ITrendCursor.Visible property, 247ITrendCursor.Width property, 246

Llabel value, alarm, 26legends, report, 35line styles, 6LineStyle enumeration, 231LineType enumeration, 233Load dialog box, 56Load View command, 56, 59loading views, 56Lock pens check box, 42Lock/Unlock Cursor Labels, 61Lock/Unlock Cursor Labels command, 25Lock/Unlock Pens command, 16, 61Lock/Unlock Vertical Axis Scrolling command, 61locked pens, 16

Mmain page (Properties dialog), 39main toolbar, 3menu, right-click, 26mode, request, 6model, automation, 83mouse, using for interaction, 26MouseClick event, 218MouseDoubleClick event, 218multi-language support, 67multiple samples, 5

Nnavigating time, 20navigation commands, 60navigation toolbar, 17New Command dialog box, 77Now indicator, 8number of samples, 42

OObject View, 31

Page 286: Vijeo Citect Process Analyst

270

basic functions, 32configuring columns, 54creating columns, 79default columns for, 32editing columns, 79

Object View (Properties dialog), 40Operator (term defined), 1OVColumnAdded event, 227OVColumnRemoved event, 227overlaying pens, 9OVItemAdded event, 225OVItemChecked event, 226OVItemRemoved event, 225OVItemSelected event, 226

Ppanes

adding, 43configuring, 43

paths, server, configuring, 42Pen Details box, 28PenCreated event, 219PenDeleted event, 220PenNameMode enumeration, 232PenRenamed event, 220pens

adding, 27alarm, 11analog, 10appearance, 44axes, configuring, 47deleting, 28digital, 11filtering, 27gridlines, configuring, 46locked, 16overlaying, 9quality, configuring, 49selecting, 15stacking, 9unlocked, 16viewing details, 28

PenSelectionChanged event, 221PenType enumeration, 232permissions, 65

persistence, 81point styles, 5pointer, mouse, 26PointType enumeration, 232primary file server, 43Print command, 61Print dialog box, 34printing reports, 34Process Analyst button, 65Properties dialog box, 39property tree, 39PropertyChanged event, 224

Qquality

configuring pen, 49quality, data, 6QualityCompactionType enumeration, 235QualityType enumeration, 234

RRefresh Data command, 61refresh rate, configuring, 41Remove Pane command, 61Remove Pen command, 28, 61removing

chart panes, 43toolbar commands, 53

report legends, 35report options, configuring, 34, 36reports, 33

configuring, 34printing, 34

request mode, data, 6, 50RequestMode enumeration, 233Reset to Default Span command, 23, 60result, execution, 83right-click menu, 26, 40

Ssamples, number of, 42Save Process Analyst View dialog box, 56Save View command, 56, 59saving views, 56

Page 287: Vijeo Citect Process Analyst

271

scaling, 17scrolling, 16security, 65selecting

pens, 15time span, 20

server paths, configuring, 42Shift by unit, 19Show Properties command, 61Show/Hide Cursor command, 25, 61Show/Hide Cursor Labels command, 25, 61Show/Hide Points command, 61Span Picker, 20stacked pens, 9standby file server, 43start time, specifying, 18states, alarm, 12statistical analysis options (reports), 35stepped interpolation, 10, 45straight interpolation, 10, 45styles

line, 6point, 5

Synchronize to Now command, 21, 60system, command, 81

Ttag association, 65tag properties, viewing, 28time display, 7time format, 18time span

editing, 22term defined, 20

time, navigating, 20Toggle Auto-Scrolling command, 60Toggle Auto-scrolling command, 21Toggle Box Zoom command, 21, 59Toggle Object View command, 32, 61Toggle Span Lock command, 20, 60

toolbar, navigation, 17ToolbarButtonType enumeration, 233toolbars

adding commands to, 53changing order of commands, 54configuring, 53removing commands from, 53

toolbars (Properties dialog), 40Tooltip text, 78tree, property, 39types, alarm, 11types, alarm pen, 13

UUndo Last Zoom command, 21, 60universal time coordinate (UTC) format, 48unlocked pens, 16unstacked pens, 9UpdateCommand event, 81, 229User (term defined), 1

Vvalue, alarm label, 26variable height for panes, specifying, 44vertical (value) axis, 8VerticalAxisChanged event, 222view commands, 59viewing

pen details, 28views, 55

loading, 56saving, 56

Zzoom commands, 59Zoom In 50% command, 21Zoom in 50% command, 59Zoom Out 50% command, 21Zoom out 50% command, 59

Page 288: Vijeo Citect Process Analyst

272