Вы находитесь на странице: 1из 246

Symphony Plus

S+ Operations 1.1.0
Display Builder User Guide
Symphony Plus

S+ Operations 1.1.0
Display Builder User Guide
NOTICE
This document contains information about one or more ABB products and may include a description of or a
reference to one or more standards that may be generally relevant to the ABB products. The presence of
any such description of a standard or reference to a standard is not a representation that all of the ABB
products referenced in this document support all of the features of the described or referenced standard. In
order to determine the specific features supported by a particular ABB product, the reader should consult the
product specifications for the particular ABB product.
ABB may have one or more patents or pending patent applications protecting the intellectual property in the
ABB products described in this document.
The information in this document is subject to change without notice and should not be construed as a
commitment by ABB. ABB assumes no responsibility for any errors that may appear in this document.
In no event shall ABB be liable for direct, indirect, special, incidental or consequential damages of any nature
or kind arising from the use of this document, nor shall ABB be liable for incidental or consequential
damages arising from use of any software or hardware described in this document.
This document and parts thereof must not be reproduced or copied without written permission from ABB,
and the contents thereof must not be imparted to a third party nor used for any unauthorized purpose.
The software or hardware described in this document is furnished under a license and may be used, copied,
or disclosed only in accordance with the terms of such license. This product meets the requirements
specified in EMC Directive 2004/108/EC and in Low Voltage Directive 2006/95/EC.

TRADEMARKS
Symphony is a registered or pending trademark of ABB S.p.A.
All rights to copyrights, registered trademarks, and trademarks reside with their respective owners.
Copyright © 2012 ABB.
All rights reserved.
Release: July 2012
Document number: 2VAA001149C
TABLE OF CONTENTS

1. ABOUT THIS BOOK ................................................................................ 19

1.1 Scope ................................................................................................................ 19

1.2 Intended Audience ........................................................................................... 19

2. INTRODUCTION ...................................................................................... 20

2.1 Overview ........................................................................................................... 20

3. THE BASICS ............................................................................................ 21

3.1 Design Considerations .................................................................................... 21

3.2 Engineering Considerations ........................................................................... 21

4. GETTING STARTED ................................................................................ 23

4.1 Running Display Builder ................................................................................. 23

4.2 Layout and Menus ........................................................................................... 23

4.3 Opening Displays ............................................................................................ 24

4.4 Page Identification Area .................................................................................. 25

4.5 Saving Displays ............................................................................................... 26

4.6 Testing a Working Display .............................................................................. 26

4.7 Adding a Display to the Running System ...................................................... 26

4.8 Adding Multiple Displays to the Running System ........................................ 27

4.9 Window View Port (WVP) ................................................................................ 28

5. STATIC GRAPHIC OBJECTS ................................................................. 29

5.1 Adding Static Text ........................................................................................... 29

6. CREATING STATIC PIPES ..................................................................... 30


6.1 Creating a Simple Static Tank ........................................................................ 30

6.2 Creating a Simple Static Valve ....................................................................... 31

6.3 Using Libraries................................................................................................. 33

7. DYNAMIC TEMPLATE ELEMENTS ........................................................ 34


TABLE OF CONTENTS

7.1 Adding Analog Values ..................................................................................... 34

7.2 Adding Digital Status ...................................................................................... 36

7.3 Trend Charts .................................................................................................... 36

7.4 Bar Charts ........................................................................................................ 38

8. SYMBOLS ................................................................................................ 40

8.1 Local Static Symbols ....................................................................................... 40

8.2 Local Dynamic Symbols.................................................................................. 42

8.3 Static Global Symbols ..................................................................................... 43

8.4 Dynamic Global Symbols ................................................................................ 45

9. DYNAMIC BUTTONS .............................................................................. 50

9.1 Drawing a Dynamic Button ............................................................................. 50

9.2 Make the Button Dynamic (DINP) ................................................................... 50

9.3 Display Links from a Dynamic Button ........................................................... 51

9.4 Secondary Display from a Dynamic Button .................................................. 52

9.5 Applications Called from a Dynamic Button ................................................. 52

10. CONTROL POP-UPS (FACEPLATES) ................................................... 54

10.1 Database Definitions of Pop-ups (Faceplates) .............................................. 54

10.2 PRCMAN from a Button................................................................................... 54

10.3 PRCMAN from a Symbol ................................................................................. 55

10.4 Defining Custom Pop-ups ............................................................................... 56

11. REFERENCE GUIDE SECTIONS ............................................................ 58

11.1 Overview ........................................................................................................... 58

11.2 Graphic Displays ............................................................................................. 58


11.2.1 Background Data ..................................................................................... 58
11.2.2 Dynamic Data .......................................................................................... 58
11.2.3 Display Header ........................................................................................ 58
11.2.4 Data Presentation .................................................................................... 58
11.2.5 Color Representation ............................................................................... 59
TABLE OF CONTENTS

11.2.6 Logical Colors .......................................................................................... 62

11.3 Display Builder Registry Keys ........................................................................ 63

11.4 Files and Folders ............................................................................................. 64

11.5 Editable Format Files ...................................................................................... 64

11.6 Executable Format Files.................................................................................. 64

11.7 Text Format ...................................................................................................... 65

11.8 Library Format ................................................................................................. 65

11.9 SODG Displays ................................................................................................ 65

12. BUTTON BAR COMMANDS ................................................................... 66


12.1 Button Bar ........................................................................................................ 66

12.2 New ................................................................................................................... 66

12.3 Open ................................................................................................................. 66

12.4 Print .................................................................................................................. 68

12.5 Preview ............................................................................................................. 68

12.6 Save .................................................................................................................. 68

12.7 Save As ............................................................................................................. 68

12.8 Add To Library ................................................................................................. 69

12.9 Export to Text Form ......................................................................................... 69

12.10 Add To System ............................................................................................ 69

12.11 Cut ................................................................................................................ 70

12.12 Copy ............................................................................................................. 70

12.13 Paste ............................................................................................................ 70

12.14 Zoom In ........................................................................................................ 70

12.15 Zoom Out ..................................................................................................... 70

12.16 Graph Button ............................................................................................... 70

12.17 Grid and Snap to Grid Buttons .................................................................. 72

12.18 Header Button ............................................................................................. 73


TABLE OF CONTENTS

12.19 Object Button .............................................................................................. 73

12.20 Size and Position Button ............................................................................ 74


12.20.1 Snap To Grid Button ................................................................................ 74
12.20.2 Select Button ........................................................................................... 75

12.21 Transform Button ........................................................................................ 76


12.21.1 Raise ....................................................................................................... 76
12.21.2 Step Up .................................................................................................... 76
12.21.3 Step Down ............................................................................................... 76
12.21.4 Lower ....................................................................................................... 76
12.21.5 Show ........................................................................................................ 77
12.21.6 Hide ......................................................................................................... 77
12.21.7 Align Size and Position ............................................................................ 77
12.21.8 Mirror ....................................................................................................... 79
12.21.9 Flip ........................................................................................................... 79

12.22 Template Button .......................................................................................... 79


12.22.1 Trend Template ....................................................................................... 80
12.22.2 Horizontal Bar Template .......................................................................... 81
12.22.3 Vertical Bar Template .............................................................................. 82
12.22.4 Analog Value Template ........................................................................... 84
12.22.5 Tag Description Template ........................................................................ 85
12.22.6 Tag Name Template ................................................................................ 86
12.22.7 Digital Status Template ............................................................................ 87
12.22.8 Engineering Unit Template ...................................................................... 89
12.22.9 XY Plot Template ..................................................................................... 90

12.23 Symbol Library Button ............................................................................... 90

12.24 About Button ............................................................................................... 90

13. TOOL BAR COMMANDS ........................................................................ 91

13.1 ActiveX Button ................................................................................................. 91

13.2 Rectangle Button ............................................................................................. 91

13.3 Circle Button .................................................................................................... 91


13.3.1 Arc ........................................................................................................... 92

13.4 Line Button ....................................................................................................... 93


TABLE OF CONTENTS

13.5 Closed Polyline Button.................................................................................... 94

13.6 Open Polyline Button ...................................................................................... 95

13.7 Closed Spline Button ...................................................................................... 95

13.8 Open Spline Button ......................................................................................... 96

13.9 Text Button ....................................................................................................... 96

13.10 Parallelogram Button .................................................................................. 97

13.11 Array Button ................................................................................................ 97

13.12 Marker Buttons ............................................................................................ 98

13.13 Picture Button ............................................................................................. 98

13.14 Global Symbol Button ................................................................................ 99

13.15 WVP Button ............................................................................................... 100

13.16 Group Button ............................................................................................. 100

13.17 Ungroup Button......................................................................................... 100

13.18 Transform to Macro Symbol Button ........................................................ 100

13.19 Split Macro Symbol Button ...................................................................... 100

13.20 Align Commands....................................................................................... 100

14. CONTEXT MENU ................................................................................... 102

14.1 Context Menu – Element Specific Functions .............................................. 102


14.1.1 Element Name ....................................................................................... 104
14.1.2 Graphic Attributes .................................................................................. 104
14.1.3 Polygonize ............................................................................................. 107
14.1.4 Rotate .................................................................................................... 108
14.1.5 Edit Font ................................................................................................ 108
14.1.6 Edit Text ................................................................................................ 108
14.1.7 Triangle Up / Triangle Down / Rectangle / Diamond .............................. 109
14.1.8 Change Picture ...................................................................................... 109
14.1.9 Open Symbol ......................................................................................... 109
14.1.10 Change Symbol ..................................................................................... 110
14.1.11 Transform to Local Macro Symbol ......................................................... 110
14.1.12 Replace with Symbol ............................................................................. 110
TABLE OF CONTENTS

14.2 Context Menu – Dynamic Functions ............................................................ 110


14.2.1 Transform to Dynamic ........................................................................... 111

14.3 Remove Dynamic ........................................................................................... 111

14.4 Dynamics ........................................................................................................ 111

14.5 Script .............................................................................................................. 112

14.6 Context Menu – Copy and Paste Functions ................................................ 113


14.6.1 Undo ...................................................................................................... 113
14.6.2 Cut ......................................................................................................... 113
14.6.3 Copy ...................................................................................................... 113
14.6.4 Paste ..................................................................................................... 113
14.6.5 Delete .................................................................................................... 113
14.6.6 Group ..................................................................................................... 113
14.6.7 Ungroup ................................................................................................. 113

15. DYNAMIC OBJECTS ............................................................................. 114

15.1 Default Name of Dynamic Objects ............................................................... 114

15.2 Default Attributes of Dynamic Objects ........................................................ 114

15.3 Linked Tags of Dynamic Objects ................................................................. 115

16. ACTIONS................................................................................................ 115

16.1 Introduction to Actions ................................................................................. 115


16.1.1 Actions on the Display Header............................................................... 115
16.1.2 Actions on a Dynamic Object ................................................................. 116
16.1.3 Load Page ............................................................................................. 116
16.1.4 Remove Page ........................................................................................ 117
16.1.5 Active Program ...................................................................................... 117

16.2 Add/Remove Actions ..................................................................................... 118


16.2.1 Activation Keys ...................................................................................... 118

17. GENERIC OPTIONS .............................................................................. 119

17.1 Defining Tags Using a Suffix ........................................................................ 119

17.2 Activation Keys for Generic Options ........................................................... 119

18. MACRO SYMBOLS ............................................................................... 121


TABLE OF CONTENTS

18.1 Border Color of the Macro Symbol (SYM_GROUP) .................................... 122

19. GLOBAL SYMBOLS .............................................................................. 123

19.1 To Create a New Global Symbol ................................................................... 123

19.2 Additional Attributes for the Global Symbols. ............................................ 123

19.3 To Modify a Global Symbol ........................................................................... 124

19.4 To Insert a Global Symbol in a Graphic Page ............................................. 124

19.5 Customize the Global Symbol Attributes .................................................... 125

19.6 Border Color of the Global Symbol .............................................................. 126

19.7 Resizing Global Symbols .............................................................................. 126

19.8 Managing of Tag Names in Global Symbols ............................................... 126

19.9 To Change the State of a Global Symbol ..................................................... 127

19.10 Tips for Correct Use of Global Symbols ................................................. 128

20. PLANT LIBRARIES ............................................................................... 128

20.1 To Create a Plant Library .............................................................................. 128

20.2 To Delete a Plant Library ............................................................................... 128

20.3 Tips for the Use of the Plant Libraries ......................................................... 128

20.4 Standard Faceplates ...................................................................................... 129

20.5 Customized Faceplates ................................................................................. 129

20.6 Faceplate Display Areas ............................................................................... 129

21. PARAMETRIC DISPLAYS ..................................................................... 130


21.1 Cascading Pages ........................................................................................... 130

21.2 Add to System................................................................................................ 131

21.3 Tag List Log ................................................................................................... 131

21.4 Displays Distribution ..................................................................................... 131

21.5 Export for WEB .............................................................................................. 131

21.6 Tag Browser ................................................................................................... 132

22. HEADERS .............................................................................................. 133


TABLE OF CONTENTS

22.1 Introduction .................................................................................................... 133

22.2 General Diagram Info .................................................................................... 133

22.3 Header Page ................................................................................................... 133


22.3.1 Page Title............................................................................................... 134
22.3.2 Type ....................................................................................................... 134
22.3.3 Keep Ratio ............................................................................................. 135
22.3.4 Scroll Bar ............................................................................................... 135
22.3.5 Multilanguage ........................................................................................ 135
22.3.6 Security .................................................................................................. 135
22.3.7 Page ...................................................................................................... 135
22.3.8 Modifier .................................................................................................. 135
22.3.9 Window Dimensions .............................................................................. 135
22.3.10 Network Configuration ........................................................................... 136

23. DIAGRAMS ............................................................................................ 137

23.1 Introduction to Diagrams .............................................................................. 137


23.1.1 Real Time Values and Diagrams ........................................................... 137
23.1.2 Historical Values and Diagrams ............................................................. 137
23.1.3 Alarm Information and Diagrams ........................................................... 137
23.1.4 Database Fields and Diagrams.............................................................. 137

23.2 Diagram Considerations ............................................................................... 139

23.3 General Diagram Info .................................................................................... 139

23.4 DALF Diagram ................................................................................................ 141


23.4.1 Format ................................................................................................... 142
23.4.2 Output .................................................................................................... 143
23.4.3 DALF Example....................................................................................... 144

23.5 DNNV Diagram ............................................................................................... 144


23.5.1 Number of Variables .............................................................................. 145
23.5.2 Custom .................................................................................................. 145
23.5.3 Output .................................................................................................... 146
23.5.4 DNNV Example...................................................................................... 146

23.6 DINP Diagram ................................................................................................. 148


23.6.1 Normal ................................................................................................... 149
23.6.2 Keep ...................................................................................................... 149
TABLE OF CONTENTS

23.6.3 DINP Example ....................................................................................... 150

23.7 DTRN Diagram ............................................................................................... 150


23.7.1 Layout .................................................................................................... 151
23.7.2 Curves ................................................................................................... 152
23.7.3 Span ...................................................................................................... 152
23.7.4 Color ...................................................................................................... 152
23.7.5 Configuration Parameters ...................................................................... 152

23.8 DXYP Diagram................................................................................................ 153


23.8.1 Layout .................................................................................................... 154
23.8.2 Color ...................................................................................................... 154
23.8.3 Configuration Parameters ...................................................................... 155
23.8.4 X Parameters / Y Parameters ................................................................ 155

23.9 DDYN Diagram ............................................................................................... 156


23.9.1 Symbol Attributes................................................................................... 156
23.9.2 Items ...................................................................................................... 157
23.9.3 DDYN Diagram Scripts .......................................................................... 159

23.10 DDYA Diagram .......................................................................................... 159


23.10.1 Symbol Attributes................................................................................... 160
23.10.2 Low Limit................................................................................................ 160
23.10.3 High limit ................................................................................................ 160
23.10.4 Items ...................................................................................................... 160
23.10.5 DDYA Diagram Scripts .......................................................................... 161

23.11 DRDR Diagram .......................................................................................... 162


23.11.1 Layout .................................................................................................... 162
23.11.2 Color ...................................................................................................... 162
23.11.3 Configuration Parameters ...................................................................... 163

23.12 Parameters ................................................................................................ 163


23.12.1 Color ...................................................................................................... 163
23.12.2 Marker ................................................................................................... 163
23.12.3 Values .................................................................................................... 164

23.13 DALL Diagram ........................................................................................... 164


23.13.1 Alarm Group .......................................................................................... 164
23.13.2 Alarm Priority ......................................................................................... 164
23.13.3 DALL Example ....................................................................................... 164
TABLE OF CONTENTS

24. VARIABLES ........................................................................................... 166

24.1 Introduction .................................................................................................... 166

24.2 Variable Common Info ................................................................................... 166

24.3 Name ............................................................................................................... 166

24.4 Type ................................................................................................................ 166

24.5 IDPT ................................................................................................................ 166

24.6 Data ................................................................................................................. 167

24.7 Time ................................................................................................................ 168

24.8 Realtime Database Variable .......................................................................... 168

24.9 Tag Name........................................................................................................ 169

24.10 Tag Type .................................................................................................... 169

24.11 Normal Factor ............................................................................................ 170

24.12 Information ................................................................................................ 170

24.13 File Access Variable ................................................................................. 173

24.14 Mod............................................................................................................. 174

24.15 File .............................................................................................................. 174

24.16 External File Access Variable .................................................................. 174

25. SCRIPTING LANGUAGE ...................................................................... 176

25.1 Introduction .................................................................................................... 176

25.2 Predefined Values .......................................................................................... 176

25.3 Variables ......................................................................................................... 176


25.3.1 Conventions and Types ......................................................................... 176

25.4 Attributes ........................................................................................................ 177

25.5 Access ............................................................................................................ 177

25.6 Integer Attributes ........................................................................................... 177

25.7 Real Attributes ............................................................................................... 177

25.8 String Attributes ............................................................................................ 178

25.9 Graph Attributes ............................................................................................ 178


TABLE OF CONTENTS

25.10 Operators ................................................................................................... 178


25.10.1 Arithmetic Operators .............................................................................. 178
25.10.2 Priority Order ......................................................................................... 178
25.10.3 Comparison Operators .......................................................................... 179
25.10.4 Logical Operators .................................................................................. 179

25.11 Parentheses ............................................................................................... 179

25.12 Statement................................................................................................... 179


25.12.1 Assignments .......................................................................................... 179
25.12.2 Structured Statements ........................................................................... 179

25.13 Comments ................................................................................................. 180

25.14 Procedures and Functions ....................................................................... 180

25.15 Procedure Declaration .............................................................................. 180

25.16 Function Declaration ................................................................................ 180

25.17 Predefined Function ................................................................................. 180


25.17.1 Mathematical Functions ......................................................................... 180
25.17.2 Miscellaneous Functions ....................................................................... 181
25.17.3 Graphic Objects Functions..................................................................... 181

25.18 Additional Functions ................................................................................ 181

25.19 Events ........................................................................................................ 185

25.20 Predefined Color Names .......................................................................... 185

25.21 Typical Script ............................................................................................ 197

25.22 Enable Typical Script Processing ........................................................... 197

25.23 Create a Text File Containing the Common Script Code ....................... 197

25.24 Global script .............................................................................................. 199

25.25 Logical Colors ........................................................................................... 199

25.26 Input Parameters ....................................................................................... 199

25.27 Scripting Language Examples ................................................................. 200


25.27.1 Get tags value via script using the keywords ......................................... 200
25.27.2 Tag Value via Script using a Function ................................................... 201

25.28 Color Management .................................................................................... 201


TABLE OF CONTENTS

25.28.1 Decimal Code of the Color ..................................................................... 201


25.28.2 RGB Function ........................................................................................ 202
25.28.3 Logical Colors ........................................................................................ 202
25.28.4 Predefined Colors .................................................................................. 202

25.29 Composite Object (Group) Management ................................................ 202

25.30 Show/Hide Management ........................................................................... 203


25.30.1 Example 1: Object.Show ....................................................................... 203
25.30.2 Example 2: Composite Object ............................................................... 203
25.30.3 Example 3: Object on a Page or Faceplate ........................................... 203

25.31 Blink Management .................................................................................... 204


25.31.1 Example 1: Blink On .............................................................................. 204
25.31.2 Example 2: Composite Object ............................................................... 204
25.31.3 Example 3: Object on a Page or Faceplate ........................................... 204
25.31.4 Example 4: Logical Blinking Color ......................................................... 204

25.32 Ghost Management ................................................................................... 205


25.32.1 Example 1: Object.Ghostelement .......................................................... 205
25.32.2 Example 2: Composite Object ............................................................... 205
25.32.3 Example 3: Object on a Page or Faceplate ........................................... 205

25.33 Quality and Alarm Management (IsBad, IsAlm, IsToAck) ...................... 206
25.33.1 IsBad / IsBad_n .................................................................................... 206
25.33.2 IsAlm / IsAlm_n / IsToAck / IsToAck_n .............................................. 206

25.34 Object.string-Value and Text Format for Analog Fields ........................ 206

25.35 Using Input Parameters ............................................................................ 207


25.35.1 Example 1: Input Parameter Used Directly as Object Background ....... 207
25.35.2 Example 2: Input Parameter Used Indirectly as Object Background .... 207
25.35.3 Example 3: Input Parameter Used as Tagread Function Parameter .... 207

25.36 TagRead Function (As Example of Additional Functions) .................... 207


25.36.1 Example 1: TagRead function with direct parameters .......................... 208
25.36.2 Example 2: TagRead function with Atom input parameter .................... 208

25.37 Rotate, Object.Rotationstep and Object.Currentrotationstep ............... 208


25.37.1 Example 1: Rotate Function.................................................................. 208
25.37.2 Example 2: Object.Rotationstep and Object.Currentrotationstep.......... 209

25.38 Text alignment Within the Rectangle - Example..................................... 209


TABLE OF CONTENTS

25.39 Concat Function - Example ...................................................................... 211

25.40 SetFont Function - Example .................................................................... 211

26. SYMBOLS AND FACEPLATES ............................................................ 212

26.1 Source Code Management ............................................................................ 212

26.2 Test ................................................................................................................. 212

26.3 General Workflow for Migration ................................................................... 212

26.4 Setup the Development System ................................................................... 213

26.5 Symbols .......................................................................................................... 214

26.6 Faceplates ...................................................................................................... 219

26.7 General Layout for Faceplates ..................................................................... 219

26.8 Header Area.................................................................................................... 221

26.9 Indicator Area ................................................................................................. 222

26.10 Standard View ........................................................................................... 223

26.11 Button Area ............................................................................................... 223

26.12 Switch Faceplate Views ............................................................................ 226

26.13 Detailed View ............................................................................................. 228

26.14 Reduced View ............................................................................................ 230

26.15 ToolTips for command buttons ............................................................... 230

26.16 General Graphics ...................................................................................... 231


26.16.1 Images and Icons .................................................................................. 231
26.16.2 Global Symbols...................................................................................... 231

26.17 Script Code Snippets ................................................................................ 232

26.18 National Language Support ..................................................................... 232

26.19 Object Type Properties ............................................................................. 233

26.20 TagRead, QualityDetail, DataQuality ....................................................... 234

26.21 fncAnd, fncOr ............................................................................................ 234

26.22 Operator Note ............................................................................................ 234

26.23 RGB ............................................................................................................ 234


TABLE OF CONTENTS

26.24 Fonts .......................................................................................................... 234

26.25 Event and Alarm list.................................................................................. 235

26.26 Debugging ................................................................................................. 235

26.27 Polyline with Gradient Color .................................................................... 235

26.28 Test............................................................................................................. 236

27. SYSTEM PROGRAMS ........................................................................... 239

27.1 Introduction .................................................................................................... 239

27.2 PRCBTN .......................................................................................................... 239

27.3 PRCMAN ......................................................................................................... 241

27.4 ACKNWL ......................................................................................................... 242

27.5 DBMENU ......................................................................................................... 242

27.6 MMIACT .......................................................................................................... 242

28. TERMINOLOGY ..................................................................................... 244

28.1 Abbreviations and Acronyms ....................................................................... 244


SPlus Operations Display Builder User Guide ABOUT THIS BOOK

1. ABOUT THIS BOOK

1.1 Scope
The ABB Operator Station is called Symphony Plus Operations or S+ Operations. The operator displays or mimics are
created with the ABB Display Builder software.
The goal of this manual is to allow first time users to get familiar with the Display Builder software. This manual covers the
basics of display creation, and it will show examples for the following key topics:
 static shapes
 dynamic value fields
 bar and trend charts
 dynamic buttons
 simple symbols
 simple faceplates
Not all features in the Display Builder is addressed in this manual; the following high level topics are not covered in this
manual:
 Display Scripting
 Custom control configuration using PRCBTN

1.2 Intended Audience


+
This manual is intended for anyone who would like to generate ABB S Operations graphics.
There is no required knowledge of software drawing packages. For most applications no specialized knowledge is
required. Some helpful topics for more advanced applications would include:

+
Understanding of the S Operations database structure.
 Understanding of the SYSSETUP tool for:
o Logical colors
o Color/Blink override table

2VAA001149C 19
SPlus Operations Display Builder User Guide INTRODUCTION

2. INTRODUCTION

2.1 Overview
The Display Builder is the application for creating and updating static and dynamic objects within the Graphic Displays of
Symphony Plus.
The displays consist of a working or editable version and a running version. The running version is the display that
operators use to control plant operations. The working or editable version is the source display.
Display developers modify the working version of the displays. Once the working version is ready for plant operations the

“Add to System” button in the Display Builder is used to make or update the running version of the display.

Running displays needs to be loaded on all operator stations.

Note: It is possible to have running versions of the displays on a central server, (see the directories section of the S+
Operations registry), however is in not recommended and it limits some of the stand-alone and redundancy capabilities.
The working versions of the displays do not need to be on all clients. Some engineering standards or practices should be
put in place to ensure that two different versions of the working display do not exist.

Try to define only one location to be the master for all displays.

20 2VAA001149C
SPlus Operations Display Builder User Guide THE BASICS

3. THE BASICS

3.1 Design Considerations


Before starting a major project it is important to define some standards. These standards should include:
 Screen size. The Display size should be consistent. The sizing of the display will be based on screen resolution
and display ratio, for example 4:3 or 16:9. Remember the entire screen is not available for the active display;
header and footer space needs to be considered.
 Definition of colors and backgrounds. The default background is gray, but black backgrounds may be better in
some control room settings or migration from legacy systems.
 Definitions of text sizes, text colors and fonts. The text should be tested with the display at full size and at
various resized views.
 Common set of symbols
 Consistent Navigation and Menus
 Consistent methodology for control interaction
To set the default screen size, run the system setup tool and select:
Registry -> APPS -> IbDisp

Figure 3-1: system setup tool


The following setting can be set:
XA_WIDTH – defines the default display width (#WVP rectangle)
XA_HEIGHT – defines the default display height (#WVP rectangle)
XA_RGBCOL – defines the RGB color used as the display background.
The background RGB color is defined in a numeric format. A black background would be 0 (RGB of 0,0,0), and a gray
background would be 8421504 or #808080 (RGB of 128,128,128).

3.2 Engineering Considerations


It is important to note that complete testing of displays cannot be done without a fully configured database and some level
of I/O or link simulation. The most common areas that are overlooked in display checks are:
 Mismatched or missing tags
 Feedback indicators
 Correct logic state and engineer unit descriptions

2VAA001149C 21
SPlus Operations Display Builder User Guide THE BASICS

 Channel failure indications


For projects with multiple display developers it is important to define some best practices. Some typical best practices for
engineering include:
 One central location for all working displays
 Periodic backup are done
 Backup are safely defined such that users never accidentally work on older versions
 Clear breakdown of work, this will ensure the two people never work on the same display at the same time
 Methodology for keeping all the servers up to date with the latest displays and database

22 2VAA001149C
SPlus Operations Display Builder User Guide GETTING STARTED

4. GETTING STARTED

4.1 Running Display Builder


The Display Builder can be called by:
 Select All Programs from the Start button, and then select Display Builder.

Figure 4-1: Open Display Builder

 Entering Display Builder from the run or command window


Editing an existing display while in the Power Explorer

Figure 4-2: Display on Main window of Display Builder

Notes:
 Displays can only be edited if the user has the correct security and the source or working display exists on the
operator station being use.

4.2 Layout and Menus


Within the Display Builder there are three main areas on the screen:
2VAA001149C 23
SPlus Operations Display Builder User Guide GETTING STARTED

 Object List –shows all items, including group sub items, on a display. This list is sorted in the order that the
objects were created or in alphabetical order.
 Display Area – this shows the actual display. More than one display can be edited at the same time. Tabs at the
top of the display area show the different displays that are open.
 Properties Window – this shows detailed information on the selected object, its dynamics, header and layout
information.

Figure 4-3: Display Builder –Main Window

 To offer more available space to edit displays, the Object List and Properties Window can be hidden or set to
floating and then resized.
 To re-open either the Object List or Properties Window once they are hidden, Right Click on the top two menu
bars, for a selection dialog.

Figure 4-4: Object and Properties list

4.3 Opening Displays


 When Display Builder is launched it will open a new display called DisplayBuilder1.

 To open different displays select the Open button.

 The Open button also shows the last sixteen displays that were opened.

24 2VAA001149C
SPlus Operations Display Builder User Guide GETTING STARTED

Figure 4-5: Open New Display

 It is possible to view and exit multiple displays at the same time.


 The display area can be setup to view displays as individual windows, a window with tabs of displays, or a
variation of both. By default the presentation is set to a single window with tabs. To change this, set
“APPS\Layout” registry to NO.
 To have a display in a dedicated window, “Click” on the display tab and “Drag” it out. To combine windows,
“Drag” the tab to the required window.

Figure 4-6: Display in a dedicated window

4.4 Page Identification Area


The Page Identification, located in the upper left corner of the display window, shows the name of the presently open
display.

Figure 4-7: Page Identification Area

2VAA001149C 25
SPlus Operations Display Builder User Guide GETTING STARTED

4.5 Saving Displays


The saved displays can be put in any location however it is recommended to use a common directory for all servers and
clients on a project. An example directory could be:

C:\Program Data\ABB Symphony Plus\Operations\display\work


 This is the default directory for the working displays. The working directory location can be modified in the
SYSSETUP tool under the REGISTRY heading and then, DIRECTORIES.
 If the file is saved in the defined working directory then the display can be directly edited from the Power Explorer.

Figure 4-8: Display in Operation Explorer

4.6 Testing a Working Display

A working display can be tested using the Preview Button.


The advantage of using the preview option is it allows for testing of the display without overwriting the running display.

4.7 Adding a Display to the Running System

A working display can be moved to the running system by selecting the (Add to System) Button.
The “Add to System” button will only add the display to the connected server; by default it will not add the display to all the
servers and clients.
To add displays to all nodes, there are two options:
 Use the automatic “Update Servers” option
 Manually copy the running displays to all nodes

 There are two folders bin and binsym. The binsym folder saves the symbols while the bin is used
by the main display.

Manual copying of running displays is recommended for the engineering phase

The automatic “Update Servers” option is useful once the plant is operational and all servers are connected and
functioning. The automatic “Update Servers” option has some limitations such as:
 If servers are missing the procedure will be slower
 If servers are offline their displays will be out-of-sync.
 Displays are updated on all servers. This can be a problem if testing is required and the running displays is being
used by operations people

26 2VAA001149C
SPlus Operations Display Builder User Guide GETTING STARTED

To configure the automatic “Update Servers” options the SYSSETUP tool is used. Under the REGISTRY options, APPS,
and then IbDisp select the options:
 Update Servers – YES
 Server1, Server2 … Serverx – is a list of the names of clients and servers that need to be updated

Figure 4-9: Update Server

Use REGEDIT to add registry items that do not exist

4.8 Adding Multiple Displays to the Running System


When migrating an existing system, or when moving displays between servers it is often necessary to add multiple
working files to the running system. This option is possible using the “Add to System” option under the “Save” button.

Figure 4-10: Add to System


For common engineer servers that are used on multiple projects it is often useful to remove old project displays before
loading new displays. The Remove from System option can be used for removing these old displays. The standard file
delete of the running display file directory cannot be done. By default the running display file directory is:

C:\Program Files\ABB Symphony Plus\Operations\display\bin


There are two limitations with the Add to System and the Remove from System options and these are:
 Even if the Update Servers option is enabled, the Add to System or Remove from System will only update the
local server.
 At least one display needs to be already open

2VAA001149C 27
SPlus Operations Display Builder User Guide GETTING STARTED

4.9 Window View Port (WVP)


The Window View Port (WVP) is the object that defines the size of the graphic. This object is automatically created in a
new display.
Items that exist outside of the Window View Port can be saved but they will not show up in the final running graphic.

Do not delete the #WVP object. Errors will result.

 For custom displays it is possible to adjust the size of the Window View Port.
 To adjust the default size, click on the #WVP object and manual resize it. The resizing can also be done using the

(Size and Position) tool

Figure 4-11: Size and Position Window

28 2VAA001149C
SPlus Operations Display Builder User Guide STATIC GRAPHIC OBJECTS

5. STATIC GRAPHIC OBJECTS


Static graphic objects are items that exist on a display to better explain the function of the graphic. These static items
could be titles, boxes or graphics representations of process equipment.
These static graphic objects can be copied and pasted on the same graphic or on other graphics, however each instance
of the object is unique and a color change on one instance will not be propagated to other instances. For objects to have
their properties propagated to other instances of the object, the object needs to be made into a dynamic symbol.
To better understand static graphic objects the following examples will be used:
 Create a static title
 Create static pipes, tanks and valves
 Show how libraries can be used
For this first example the Object List is not required and is hidden. The Properties Window is useful when adding and
modifying static elements.

5.1 Adding Static Text

To add text click on the (Text) button in the second menu, then click on the display where the text should go.
A dialog will come up allowing the user to enter the required text. The text can be repositioned by selecting it and
dragging it to a new position.
The Properties Window can be used to:
 Change text color
 Change Fill Style, (this includes Shadowing)
 Change Orientation, (Horizontal or Vertical)

Figure 5-1: Adding Static Text

It should be noted that text underlining is not supported in the Font properties, to add underlining use the line tool
to create a horizontal line.

2VAA001149C 29
SPlus Operations Display Builder User Guide CREATING STATIC PIPES

6. CREATING STATIC PIPES

A static pipe can be drawn using the (Rectangle) Tool. Using the Rectangle Tool, a rectangle representing the pipe
can be positioned on the display.
The Properties Window is used to define the pipe (or rectangle) attributes. The key points for a static pipe are:
 Fill Style, use Horizontal for horizontal pipe and vertical for vertical pipes
 Color to define the piping. For a 3D look use two different colors

Figure 6-1: Static Pipe Creation

6.1 Creating a Simple Static Tank

A static tank can be drawn using the (Rectangle) Tool. The tank is drawn first as a rectangle.
The Properties Window is then used to modify the presentation. The key items are:
 Fill Style is Vertical (for vertical tanks)
 Smoothness is 100%. This makes the top and bottom of the rectangle into semi-circles
 Supports and banding can be added to the tank. This is done by adding rectangles with no fill style on.

30 2VAA001149C
SPlus Operations Display Builder User Guide CREATING STATIC PIPES

Figure 6-2: Simple Static Tank Creation

6.2 Creating a Simple Static Valve

For detailed work a grid can be turned on to help with dimensions and sizing. To enable the grid select the (Snap to
Grid) button on the top menu bar.

 A static valve can be drawn using the (Closed Polyline) Tool.


 To draw the valve shape:
 Drag the mouse to draw a straight line
 Click to create an end point or vertex.
 Right Click to complete the shape
 To modify the valve shape click on the vertex that needs to be adjusted, then use the mouse to drag it to the new
location, and release the mouse at the desired location.
 The Properties Window is used to define the fill color and the fill style.

Figure 6-3: Simple Static Valve Creation

 To add a valve cap the Circle tool is used. Once a circle is added, right click to access the arc tool.

2VAA001149C 31
SPlus Operations Display Builder User Guide CREATING STATIC PIPES

Figure 6-4: Use of arc tool for Static Valve Creation

 The valve cap then needs to be filled, to do this use Properties Window and:
 Set foreground color to desired color
 Set fill color to FORE (or foreground)

 The final step is to define a valve step, this done with rectangle tool. Like the valve cap the Properties Window
is used to define the foreground color and fill style to FORE.

Figure 6-5: Define Valve in Static Valve Creation

32 2VAA001149C
SPlus Operations Display Builder User Guide CREATING STATIC PIPES

6.3 Using Libraries


Libraries can be built to assist display development. A library is a collection of entities that are grouped together.
To create a symbols library, save a display and then select”Add To Library” item in “Save “menu.
 Libraries are accessed using the Symbol Lib Button as shown below.

Figure 6-6: Open Symbols Library

 A selected symbol library will open like a display. The library is not editable without System Administrator rights.
 Objects on the Symbol Library can be dragged and dropped into the working display.

Figure 6-7: Symbol Libraries

2VAA001149C 33
SPlus Operations Display Builder User Guide DYNAMIC TEMPLATE ELEMENTS

7. DYNAMIC TEMPLATE ELEMENTS


This section will introduce the built in templates that can be used to create displays with dynamic elements.
Some examples will examine the creation of a display with:
 Dynamic analog values
 Dynamic digital status
 Trend charts
 Bar charts
To a functioning example it is important that a database be configured with analog and digital tags, and to have some level
of simulation available.
For these first examples the Object List is not required and is hidden. The Properties Window is useful when adding and
modifying template elements.

The templates are accessed using the button on the first menu bar. The following templates are available:

Figure 7-1: Select Template

7.1 Adding Analog Values


To add an analog value or to show a digital 0-1 values follow the steps below:

 Select the Template button then select Analog Value, next click on the display in the location where
the text value should appear.
 The Properties Window can be used to modify the colors and font.
 Right Click on the Analog Value and select the option “Dynamic” and this will open the display diagram
configuration dialog. An Alphanumeric diagram type named “DALF” will be automatically setup.

34 2VAA001149C
SPlus Operations Display Builder User Guide DYNAMIC TEMPLATE ELEMENTS

Figure 7-2: Adding Analog Values

 The Diagram configuration dialog is used to define items as below:


o Which tag (or tags) are to be used
o How the data is presented. How many decimals points
o If the color is static or if the color follows the defined quality colors
o How often the data is refreshed
o If the color will blink on alarm
 To select a tag for the diagram it is possible to manually type in the tagname or to scroll to the tagname. For very
large databases it is possible to create queries to filter create a shorter selection list. To enter a filter criteria select
the Query button. Typical filters are based on:
o NAME –tag name
o DESC – tag description
o ALMGROUP – numeric alarm group
 For strings the LIKE option is used and the single quotes are required. The “*” character is used for wild cards.

Figure 7-3: Setting Tagname


2VAA001149C 35
SPlus Operations Display Builder User Guide DYNAMIC TEMPLATE ELEMENTS

 The number of decimal points and the number of characters can be adjusted. To change this select the DALF
diagram tab and then modify the Format entry.
 Analogs are usually FLOAT, but other formats are possible. The default formatting code for floats is: %6.2f, where
6=the number of digits and 2= the number of decimals. For one decimal and eight characters the format would be:
%8.1f, but the size should also be increased to 8.

Figure 7-4: Analog Value example

7.2 Adding Digital Status


A digital status is the logic state of a Boolean tag type, for example a pump tag in the 0-state would be STOPPED and in
the 1-state it would be RUNNING. The Digital Status will show the logic state text (STOPPED or RUNNING), and not the
value 0 or 1. To show the 0-1 indications of digital tags use the Analog Value option.

 To add digital status to a display, select the (Template) button then select Digital Status, next click on
the display in the location where the text value should appear.
 The Properties Window can be used to modify the colors and font.
Digital status text comes from the database and not the display.

 By default the color of the Digital Status is adjusted based on the system alarm and return-to-normal colors. For
details on this see the BATTDECK.XML in the /DECK directory.
 Once a Digital Status is dropped on a display the Properties Window is used to adjust:
o Foreground and background colors
o Font size, type and weight
o Orientation, horizontal or vertical

Figure 7-5: Digital Value example

7.3 Trend Charts

Basic Trend Charts can be created with the Trend Template.


To create a new trend:
 Select the Trend Template
 Drag the mouse to define the placement of the trend
36 2VAA001149C
SPlus Operations Display Builder User Guide DYNAMIC TEMPLATE ELEMENTS

 Right Click on the element and select “Dynamic”


 Select the DTRN diagram, and define:
o Grid, Frame, Background and Text Colors
o Layout
o Time Span, in seconds
o Number of tags, or curves
o Tag names to trend

Figure 7-6: Trend Chart Creation

Figure 7-7: Trend Chart -Dynamics

 The default is one tag, to increase the number of tags toggle the curves selection, this will increase the number of
curves that show at the bottom. The tags are selected by clicking on the appropriate curve. When a curve is
selected a dialog will be called to:o
o Define the tag name to use
o Select the Low and High Range. By default this is dynamically extracted from the database
o Define the color of the curve

2VAA001149C 37
SPlus Operations Display Builder User Guide DYNAMIC TEMPLATE ELEMENTS

Figure 7-8: Set Curve Parameters

 The basic trend template is a building block to create more advanced symbols and display.

Figure 7-9: Trend Chart

Review the symbol library to check from more advanced trend charts.

7.4 Bar Charts


Bar chart templates exist for both horizontal and vertical bars. These templates will create basic bar charts. To create a
new bar chart:
 Select the appropriate bar chart (horizontal or vertical)
 Drag the mouse to the desire location of the bar chart
 Select the required tag
 If necessary resize the bar to the required size

38 2VAA001149C
SPlus Operations Display Builder User Guide DYNAMIC TEMPLATE ELEMENTS

The scaling of the bar is based on the High and Low instrument levels for analogs.

Review the symbol library to check from more advanced bar charts.

2VAA001149C 39
SPlus Operations Display Builder User Guide SYMBOLS

8. SYMBOLS
A symbol is a grouping of display objects. This grouping of display objects can represent a static object like a tank or they
can be animated to change color or position based on dynamic values in the database.
Symbols can also be either local or global.
A local symbol named Group if static or Macro Symbol if dynamic is a unique group of object symbol that exists on a
display. Local symbols can be copied between displays or copied multiple times on a display. Each version of a local
symbol is unique, and changes to one local symbol will not be translated to other local symbols. For dynamic local
symbols all the tags are “hard coded”.
A global symbol is stored as a separate group of files. When a global symbol is changed the change will be reflected in all
displays that reference that global symbol.

When a symbol is changed all effected displays need to be “Added to System” again.
Opening a display older than one of its symbols, Display Builder automatically sets the
display as modified.

8.1 Local Static Symbols


A local static symbol is created using the standard drawing tools.
 To show the creation of a local static symbol a simple pump example will be used.

 The first step is to use the Circle tool to define the pump body. The Properties Window is used to set the
foreground color and the fill style of FORE.

Figure 8-1: Local Static Symbol Creation

 The inlet and outlet of the pump are drawn using the Rectangle tool. The Properties Window is used to set
the foreground color and the fill style of FORE.

40 2VAA001149C
SPlus Operations Display Builder User Guide SYMBOLS

Figure 8-2: Using Rectangle tool for Static Symbol Creation

 Many more details could be added to the pump, but for simplicity some simple outlining will be shown. The
outlining is added using the circle tool.
 Once all the detail is added to the pump, use the mouse to select the all the pump object, then Right-Click and
select Group. Grouped objects can be renamed, and copied, resized, and referenced to in script.

Figure 8-3: Static Symbol Creation Final

2VAA001149C 41
SPlus Operations Display Builder User Guide SYMBOLS

8.2 Local Dynamic Symbols


A local dynamic symbol is first created as a static set of objects, and then the common set of objects are grouped together
and animated. For the simple static pump example the pump body, inlet and outlet components will be animated but the
outlines will be left as static.
For this example the static pump must be ungrouped (if it is already grouped). To ungroup an object, highlight it and:
 Right Click select Element Name. If an element name is used clear the entry.
 Right Click select Ungroup.
 To add dynamics to a common set of object, use the “Shift” key and select multiple objects. Once all the required
objects are highlighted “Right Click” and select “Group”.
 After all the common objects are grouped together, select “Transform to Dynamic”. For the diagram type use
DDYN, this diagram type is designed for digital state changes.

Figure 8-4: Logical Symbol Creation- Dynamics

 The DDYN diagram type needs to have a tag defined and the color states need to be defined.

42 2VAA001149C
SPlus Operations Display Builder User Guide SYMBOLS

Figure 8-5: Logical Symbol Creation –DDYN Diagram

 Ensure that the and are selected.


 The dynamic object will need to be pushed to the background to show the outlined objects.

8.3 Static Global Symbols


A static global symbol is created using the standard drawing tools.
 To show the creation of a remote static symbol a hopper will be used.

2VAA001149C 43
SPlus Operations Display Builder User Guide SYMBOLS

 The hopper will consist of two rectangles created with the rectangle tool and a triangle created with the
closed polyline tool. The Properties Window was used to change the foreground and background colors, the fill
style and the line width.

Figure 8-6: Static Global Symbol Creation

 To define a global symbol, select the header button. In the Header dialog, Header page section, define:
o Page Title – this is the caption that will appear in the symbol library for the display type to be symbol.
o Symbol as page type

Figure 8-7: Edit Header


44 2VAA001149C
SPlus Operations Display Builder User Guide SYMBOLS

 Once the header definition is complete, the final step is to Save the symbol.

 Select the Add to System button.


 After the symbol has been saved and added to the system it is available for use on displays, to test the static

symbol open a new display, with the New Button.

 Global symbols can be referenced with the Global Symbol button.

Figure 8-8: Global Symbols

8.4 Dynamic Global Symbols


A dynamic global symbol is created using the standard drawing tools.
 To show the creation of a remote dynamic symbol a circuit breaker will be used. This symbol will be passed two
digital values, the first digital will change the position of the circuit breaker and the second signal will be an alarm
indication.

 A circuit breaker will consist of two circles and two lines, using the Circle and Line Tools a circuit breaker
symbol can be drawn. For this example a 1-state will be shown as RED and CLOSED, a 0-state will be shown as
WHITE and OPEN.

Figure 8-9: Dynamic Global Symbol

 The Text Tool is used to add the “A” character. Using the Properties Window the text color and font can be
changed.

2VAA001149C 45
SPlus Operations Display Builder User Guide SYMBOLS

Figure 8-10: Adding Text for Dynamic Global Symbol

 To change the static lines and text to dynamic objects, select each item individually and Right-Click on it, then
select “Dynamic” and change the Diagram Type to DDYN.

Figure 8-11: Text for Dynamic Global Symbol- DDYN

 The DDYN diagram is used to set the color of the object based on a real time value. For this example the goal is
to make the object toggle between visible and invisible. To make the object appear invisible the background color
is selected.

46 2VAA001149C
SPlus Operations Display Builder User Guide SYMBOLS

Figure 8-12: Text for Dynamic Global Symbol- DDYN

 Under the Var tab for both circuit breaker lines leave the tagname definition as:

For the “A” Character “Var” tab define the tagname as:

 The %TAG% is a placeholder for the first tag to be passed to the symbol, this first tag would be the circuit breaker
position. The %TAG1% is the placeholder for the second tag, which is the circuit breaker alarm indication.
 A symbol can have up to 10 placeholders (%TAG%, %TAG1, %TAG2% … %TAG9%).

 To define the displays as a symbol select the header button. In the header dialog define:
o Page Title – this is the caption that will appear in the symbol library
o For the display type select: symbol.

 Once the header definition is complete, the final steps is to Save the symbol.

 Select the “Add to System” button.

 After the symbol has been saved and added to the system it is available for use on displays. To test the static

symbol a new display can be opened with the New Button. Global symbols can be referenced with the
Global Symbol button.

2VAA001149C 47
SPlus Operations Display Builder User Guide SYMBOLS

Figure 8-13: Global Symbols for Dynamic Symbol Buttons

 When a dynamic symbol is used on a display, the tag names need to be entered for the animation. The tab “Tag
Selection: (x)” is used to enter the tags that need to be passed. The “x” is the total number of tagnames to be
pass, (2 in this example).

Figure 8-14: Tag Selection for Dynamic Global Symbol

 The second tag name to be configured for the alarm indication.

48 2VAA001149C
SPlus Operations Display Builder User Guide DYNAMIC BUTTONS

9. DYNAMIC BUTTONS
A dynamic button is a hot spot on a display that is used to:
 Move to a new graphic
 Call up a popup or mini-display
 Do a control action
 Launch a program
Typically a dynamic button looks like a 3D gray button, but it could be drawn to look like any graphic element, for example
a pump symbol could be a dynamic button.
To create a dynamic button, the step would be:
 Draw a element on the graphic, (or use an existing element)
 Make the element dynamic
 Select the diagram type of DINP (Input Diagram)
 Configure the action that the diagram should do

9.1 Drawing a Dynamic Button


To draw dynamic buttons use the Rectangle Tool. Then draw a rectangle to represent the button. Use the Properties
Window to:
 Define the colors of the button.
 Fill Style should be FORE
 Define the Shadow Thickness, this will give the button a 3D look

Figure 9-1: Drawing a Dynamic Button

9.2 Make the Button Dynamic (DINP)


To make the static button into a dynamic push button:
 Right Click on the button, and select the option “Transform to dynamic”

50 2VAA001149C
SPlus Operations Display Builder User Guide DYNAMIC BUTTONS

Figure 9-2: Transform to Dynamic

 An Element Dialog will appear. This is used to give the object a specific name. Either a unique name can be used
or the default can be selected.
 Right Click on the button again , and select the option “Dynamic”
 Change the Diagram type to “DINP”

Figure 9-3: Change to Dynamic DINP

9.3 Display Links from a Dynamic Button


A button can be used for navigation between displays and trend pages. It is important to not use the same name for a
display and trend, if the same name exists the link to the display will be chosen.

2VAA001149C 51
SPlus Operations Display Builder User Guide DYNAMIC BUTTONS

Figure 9-4: Dynamic Button- Load Page

9.4 Secondary Display from a Dynamic Button


A button can call up a secondary display in a new window. This secondary display can be called by the position of the
secondary window is relative to the position of the main window. The top left is at position 0, 0.

Figure 9-5: Secondary Display from a Dynamic Button

9.5 Applications Called from a Dynamic Button


A button can launch executable programs, by selecting the “Active Program” option.

52 2VAA001149C
SPlus Operations Display Builder User Guide DYNAMIC BUTTONS

Figure 9-6: Active Program


The application must be in the command path, and the application must be loaded on all clients and servers that the
dynamic button is used on.

2VAA001149C 53
SPlus Operations Display Builder User Guide CONTROL POP-UPS (FACEPLATES)

10. CONTROL POP-UPS (FACEPLATES)


A control Pop-up or Faceplate is a small dedicated window that is used for control or detailed monitoring of important
database tags. The access and use of pop-ups can be restricted by the user’s security level.
The definition of which control pop-up is used is set at the database level and not within the display. By defining the pop-
up at the database level there is consistence interface for that tag no matter where it is called.

10.1 Database Definitions of Pop-ups (Faceplates)


The definition of the pop-ups is done for each tag in the tag database. To access the tag database online within the Power
Explorer select:

Figure 10-1: Tag Database


The database has a field called “Faceplate Name”, (this can be found under the “Process” tab), defines which pop-up is
used for the defined tag.
The default “Faceplate Name” is typically set to PRCMAN. If the Faceplate name is left blank then there will be no popup
called when control is selected.

10.2 PRCMAN from a Button


The program called PRCMAN is used to automatically call the default pop-up that is to be used for control. PRCMAN will
select the correct default pop-up to match the tag type. For example if the tag is an analog tag type PRCMAN will use the
default analog popup.
To use PRCMAN on a button:
 Create a button, and make it dynamic
 Select Diagram type DINP
 Have the button “Active Program”, the “Prog Name” is PRCMAN and the Extra Par is the tagname to be used.

54 2VAA001149C
SPlus Operations Display Builder User Guide CONTROL POP-UPS (FACEPLATES)

Figure 10-2: PRCMAN Example

 This example would look like the following on a working system.

Figure 10-3: PRCMAN Example on a working system

 For a working system the button should have some text on or near it to explain the function of the button.

10.3 PRCMAN from a Symbol


The pop-up program called PRCMAN can also be used with a dynamic symbol.

2VAA001149C 55
SPlus Operations Display Builder User Guide CONTROL POP-UPS (FACEPLATES)

Figure 10-4: PRCMAN from Dynamic Symbol


The important points in configuring PRCMAN with a symbol are:
 Define a “touch area”, this could be a dedicated button or the symbol itself
 Define the “touch area” to be a DINP diagram type
 Define the program name to be PRCMAN
 The “Extra Par” is the tagname. For a global symbol %TAG% is the first tag passed to the symbol.
 When the dynamic symbol is used a display, define the tag to be passed to the symbol for indication and control
functions
For this example the result would look like the following:

Figure 10-5: PRCMAN from Dnamic Symbol Final

10.4 Defining Custom Pop-ups


The list of pop-ups available will vary based on the project standards, interface type and customer preferences.
To define a custom pop-up for a tag:
 The pop-up must be loaded on the system. Pop-up typically are named POP_*
 In the Faceplate name enter: PRCTRL.pop_name
As an example a popup called POP_ANALOG1 could be associated to a tag value.

56 2VAA001149C
SPlus Operations Display Builder User Guide CONTROL POP-UPS (FACEPLATES)

Figure 10-6: Defining Custom Pop-ups


To add a dynamic link on an Analog value:
 Highlight the object and select “Dynamic”
 Click on “Active Program”
 Use the default dialog with PRCMAN
This example would look like the following when the value was clicked on.

Figure 10-7: Analog Value with Popup link

2VAA001149C 57
SPlus Operations Display Builder User Guide REFERENCE GUIDE SECTIONS

11. REFERENCE GUIDE SECTIONS

11.1 Overview
The Display Builder is application for creating and updating static and Dynamic Objects within the Graphic Displays of S+
Operations.
It consists of an off-line tool that allows you to create and modify plant Graphic Displays. The tool runs on the same
system where S+ Operations is installed, either on the Client or the Server. It can be used by all operators or maintenance
people who have the Windows rights to modify plant data.
The S+ Operations Graphic Display Builder is implemented as single tool. It is independent from the S+ Operations
application. You can run it along with any other applications on your Windows workstation.

11.2 Graphic Displays


The Graphic Display Builder creates graphic displays that are used in the S+ Operations Explorer for viewing, trending and
controlling process data.
The main elements of a Graphic Display are the following:
 Background data
 Dynamic data
 Display header

11.2.1 Background Data


Static elements are considered part of the Graphic Display background. The static information may consist of shapes,
lines, text, special characters, etc.

11.2.2 Dynamic Data


Each Graphic Display may contain Dynamic Objects to represent plant status. The Graphic Display Builder automatically
assigns a name to these objects when the dynamic is associated.
The dynamic data can be:
 Basic graphic diagrams such as simple value fields, bar charts etc.
 Symbols composed of a grouping of basic graphic diagrams

11.2.3 Display Header


Each Graphic Display contains a Header block of information. The Graphic Display Header contains information such as:
 The Graphic Display name and description. This text is displayed in the Title Area of the S+ Operations Explorer.
 Links (to step forward or backward to other Graphic Displays).
 Security access. This would allow or disallow viewing of the graphic based on the user’s log in access rights.
 Parameters (to define layout options of the current display).

11.2.4 Data Presentation


The representation of variables depends on different format methods. The most commonly used are the following:
 Numerical values.
 Bar-charts.
 Trends.
 X-Y plot.
 Radar.
 Alphanumeric information of a tag
 Graphic symbols representing a tag status.

58 2VAA001149C
SPlus Operations Display Builder User Guide REFERENCE GUIDE SECTIONS

These methods, together with the ability to change the color, size, orientation, position and drawing attributes of the
graphic objects allows you to generate very complex Graphic Displays.
The template tool button is called to create these different data presentations.

Figure 11-1: Template Tool Button

11.2.5 Color Representation


The color representation is based on the type of diagram used and the options picked for that diagram type.
 Static elements such as boxes, circle and lines or symbols created with these basic elements can be either set to
a fixed color or they can use logical colors.

Figure 11-2: Color Replacement

 If a logical color is changed the display will automatically pick up the new.
 The definition of the logical colors is done in the file BLCOLDECK.XML. This file is found in the DECK directory.
 New colors name can also be added to this file.
The syntax of the BLCOLDECK.XML is as follows:
<COLOR name="plgManual" descr="Manual mode" colorname="light grey" r="235" g="235"
b="235" />
Where:
name = the logical color name
descr = description of the use of the logical color
colorname = a definition of what the color looks like.
r = red RGB value (0-255)
g = green RGB value (0-255)
b = blue RGB value (0-255)

Some logical colors have blink color and so they have three more parameters as below:
R_BLINK
2VAA001149C 59
SPlus Operations Display Builder User Guide REFERENCE GUIDE SECTIONS

G_BLINK
B_BLINK
When you assign a dynamic including a logical color having blink color, every second the object will blink between its
main color and blink color.
 After the file BLCOLDECK.XML is updated it must be imported using the SYSSETUP program

Figure 11-3: SysSetup Program


Dynamic symbols manage color based on their diagram type.

Table 11-1: Dynamic Symbols

Diagram Type Color Management Adjustable by:


DALL – Alarm Diagram Based on alarm summary Battdeck.xml
DALF – Alphanumeric Fixed, based on system colors, or script Battdeck.xml
DDYA – Dynamic Analog Configured in diagram
DDYN – Dynamic Digital Configured in diagram
DNNV – Multivariable Fixed, based on system colors, or script Battdeck.xml
DINP – Data Input Fixed, based on system colors, or script Battdeck.xml
DRDR – Radar Diagram Configured in diagram
DTRN – Trend Diagram Configured in diagram
DXYP – XY Plot Diagram Configured in diagram

 For diagram types that support fixed or system colors, the Output option of the diagram type tab sets the color
definition.

60 2VAA001149C
SPlus Operations Display Builder User Guide REFERENCE GUIDE SECTIONS

Figure 11-4: Output Option- Color Replacement

 The static color is the color that the diagram is drawn in. Process variables can be based on a color override rule.
 The color override allows data to be displayed using a color based on tag quality attributes such as Alarm
condition.
Validity checks
 Optionally, the color override can append two suffix characters to the value (for color blind users). The suffix is
also based on the quality attribute of the tag.
 The OIS_COLOR is determined using the file BATTDECK.XML. The BATTDECK.XML defines the colors for all
the possible states that a tag can be in.
 The BATTDECK.XML can use fixed colors or logical colors. The syntax of the BATTDECK is as follows:
<ITEM pos="0" bit="IMP" type="BC" lcolor="plaErrorSymbol" symbol="NI" invert="Y" descr="Not implemented" />
<ITEM pos="1" bit="IMP" type="FC" lcolor="plaErrorText" symbol="NI" invert="Y" descr="Not implemented" />
<ITEM pos="2" bit="INSV" type="BC" color="AQUA" symbol="IN" descr="Inserted value" />
<ITEM pos="3" bit="INSV" type="FC" color="BLUE" symbol="IN" descr="Inserted value" />
Where:
pos = bit position in quality definition (do not change)
bit = short description of bit (do not change)
type = definition as either foreground color, or background color (do not change)
lcolor = logical color name (Note: use lcolor or color, not both)
color = name of color, color must be a defined name (Note: use lcolor or color, not both)
symbol = characters (up to 3) to show on console for this state
descr = long description of bit (do not change)
After the BATTDECK.XML is modified it needs to be imported into the system, this done using SYSSETUP.

2VAA001149C 61
SPlus Operations Display Builder User Guide REFERENCE GUIDE SECTIONS

Figure 11-5: Import to SysSetup


For DNNV and DALF diagram types it is possible to use script to manage the color definition. The colors can be either
“hard coded” in the script or Global Script variables can be used. Below is an example of a “hard coded” color in script.
// Example of script for color change
// values of 0-10 and 90-100 are red
// values of 11-89 green
thevalue = toNumber(value);
if ((thevalue <= 10) || (value >= 90) ){
object.foregroundName = "red";
} else {
object.foregroundName = "green";
}
object.string = value;

11.2.6 Logical Colors


Selecting a Logical Color as object foreground or background, in Properties Window L.C. name will be shown, otherwise
the color will be presented split into its components R, G, B.

 Selecting a Logical Color, Display Builder will automatically add LcFb() or LcBg() functions to object script:

 The first parameter of this function is fixed (SO_Obj), the second one represents the eventual subelement name,
the third one represents L.C. name.
 This function run-time assigns the L.C. to the object. For this reason, if an object is saved with a Logical Color as
foreground, changing RGB value of L.C., automatically object foreground/background changes.
 This function is always written after events declarations and before attributes assignment. Example:
62 2VAA001149C
SPlus Operations Display Builder User Guide REFERENCE GUIDE SECTIONS

proc OnClick() { // functions/procedures declarations


}

when click OnClick; // events declarations

// LcFg() and LcBg() will be here

object.foreground = fgc; // attributes assignments


object.background = bgc;
 Selecting a generic RGB where before a L.C. was assigned, the corresponding row in the script is removed.
 Selecting\deselecting a L.C. to a subelement, both group script and subelement script are updated. The row in
group script will have subelement name as second parameter, while subelement script will have an empty ("")
second parameter. If a subelement has no name, Display Builder will give it a random name:

The name is so formatted: RND_InitialOfObjectType_RandomHexNumber.


If in the script a L.C. name is present that is not present in L.C. list, stored RGB value will be considered.

As for object foreground and background, also display background now works with Logical Colors:

11.3 Display Builder Registry Keys


The Windows registry subkeys used by the Display Builder program are defined under the APPS\IbDisp key.
 See the S+ Operations Installation Manual for more information about using the Windows registry.

Table 11-2: Display Builder Registry Keys

Registry Key Type Default Description


DefaultRefreshTime DWORD 5 Default refresh time assigned to new dynamic
FixedGblSymSize String YES YES to use Global symbols with creation size
NO to resize global symbols
RESIZE_TEXT to resize global symbols and internal text fonts
GlobalScriptFile String File including Global definitions used run-time to customize
options in the scripts.
LIBSuffix String LIB Library name suffix
ScriptFile String Script file definition
Server1…Server64 String Undefined PC node name of servers and clients that will be updated when
a display is “added to the system”.
Note: UpdateServers need to be set also.
SizeSuffix DWORD 0 Size of TagName suffix
StartSuffix DWORD 0 Start character (base 1) of TagName suffix
SYSMGR String NO YES to enable system manager functions.
AUTOLIB to enable new function to create automatically
displays including configured global symbols
(the options could be used together putting registry = YES

2VAA001149C 63
SPlus Operations Display Builder User Guide REFERENCE GUIDE SECTIONS

AUTOLIB)
TagListLog String NO YES to create log file with tag list
UpdateServers String NO YES to enable the update of new displays on defined PC(s)
DefDisplayBg String plgDisplayBg Display background color is default dark Green
DefObjectBg String plgfillcolortext New object background color is white
DefObjectFg String plgText1 New object foreground color is white
XA_CUSTOM_COLORS BINARY Empty List of RGB codes of defined custom colors
XA_HEIGHT DWORD 680 Height of #WVP object
XA_RGBCOL DWORD -1 RGB color of Graphic Display background (-1 to use system
setting)
XA_WIDTH DWORD 920 Width of #WVP object

A running displays is effected by registry settings for TNTExplorer

11.4 Files and Folders


The Display Builder uses following Directories registry keys to identify its folders:

Eix_work
Defines the folder where editable format Graphic Display files are saved.

Eix_bin
Defines the folder where the executable format Graphic Display files are saved. This folder is used by programs like S+
Operations Explorer.

Eix_tmp
Defines the folder where the text format Graphic Display files are saved.

XA_PATH
Defines the list of the folders where the included pictures (if defined without specific path) are searched.

XA_SYMBOLS
Defines the folder where the library Graphic Display files are saved.

Eix_sym
Define the folder where the the executable format Symbol files are saved.

Eix_sysbin

Define the folder where the system symbols and faceplates are released.

11.5 Editable Format Files


Editable format files include all elements to define a Graphic Display. These files are identified with the following
extensions:

Table 11-3: Editable Files Format

Extension Purpose
.UCBG Defines each graphic portion and defines the scripts.
.UCBP Defines Header information.
.UCBD Defines information related to the Diagrams
.UCBV Defines information related to the Variables
.UCBX Information related to the ActiveX objects. This file is present only if ActiveX objects are included in the
Graphic Display.

11.6 Executable Format Files


Executable Format files include all elements required for realtime processes, like S+ Operations Explorer, to show the
Graphic Display with the current plant status.
These files are located in the folder identified by the Eix_bin registry key, and can be created by:
 The Display Builder with Add to System command.
64 2VAA001149C
SPlus Operations Display Builder User Guide REFERENCE GUIDE SECTIONS

 The SODG translator


 The EIXCMP compiler.
Each executable format file is identified with these extensions:

Table 11-4: Executable File Format

Extension Purpose
.G Defines each graphic portion and defines the scripts.
.PAGE Defines Header information.
.DIAG Defines information related to the Diagrams
.VAR Defines information related to the variables
.OLEX Information related to the ActiveX objects. This file is present only if ActiveX objects are included in the
Graphic Display.

11.7 Text Format


Text format files that can be created by the Export to text form command in the Display Builder and can created by the
SODG translator.
Text format is used for source system Faceplates in the Eix_spg folder. The Text Format includes the files with following
extension:

Table 11-5: Text format Extensions

Extension Purpose
.G Defines each graphic portion and defines the scripts.
.DIAG_A Defines information related to the Diagrams in text format
.PGVAR_A Defines Header and variables information in text format.
ActiveX objects are ignored in this format.

11.8 Library Format


Library Format files can be created by the Add To Library command in Display Builder
Library Format includes files with following extension:

Table 11-6: Library Format Extensions

Extension Purpose
.SYM Defines each graphic portion and defines the scripts.
.UCBP Defines Header information.
.UCBD Defines information related to the Diagrams
.UCBV Defines information related to the variables

ActiveX objects are ignored in this format.

11.9 SODG Displays


ABB (Bailey) consoles that use the SODG (Screen Oriented Display Graphic) formatted graphics can be imported into the
S+ Operations system. ABB (Bailey) console that use the SODG format include: MCS, PCV and OIS family of consoles.

Importing of SODG graphic requires the .DT files.


The original SODG .DR and .DY need to be converted to .DT format in WinTools or Composer.

2VAA001149C 65
SPlus Operations Display Builder User Guide BUTTON BAR COMMANDS

12. BUTTON BAR COMMANDS

12.1 Button Bar


The button bar contains the main commands for the Display Builder.

Figure 12-1: Display Builder - Menu Area

12.2 New

 The New button will create a new display file.


 When a new display file is created it will use the defined defaults for background color and display size.
 Creating a new graphic display will also create a Window View Port object or #WVP object. The #WVP defines the
usable graphic display area.
 At run time the #WVP object re-scales the Graphic Display to the available display area.
 The #WVP object is created with a default size of 920x680 pixels. The default size can be changed using the
Windows registry:

APPS\IbDisp\XA_WIDTH APPS\IbDisp\XA_HEIGHT
 The size of the WVP rectangle depends on the screen resolution of the monitor and the layout of S+ Operations
Explorer.
 The following table shows the recommended values for the default layout of S+ Operations Explorer. The registry
keys XA_WIDTH and XA_HEIGHT are displayed along the top row. The screen resolution of your monitor
resolution is displayed in the first column.

Table 12-1: Screen Resolutions

Resolution XA_WIDTH XA_HEIGHT


1024x768 829 594
1280x1024 1085 850

Do not put graphic outside the WVP rectangle otherwise they will not be visible
run time.
 The size of the #WVP can be checked or resized by selecting the object and checking its properties.

12.3 Open

 Clicking on the Open button allows the user to open existing displays.
 The default directory is the WORK directory. The work directory is defined in the EIX_WORK registry setting.
 Select the .UCBG file and click the Open button to open the Graphic Display.

66 2VAA001149C
SPlus Operations Display Builder User Guide BUTTON BAR COMMANDS

Figure 12-2: Display Builder - Open window

 By clicking on the “right side” of the open button it is possible to open the sixteen most recently closed display
files.

Figure 12-3: Open Button

 The Settings menu option will open a dialog that shows the Display Builder registry settings. This dialog is view
only.

2VAA001149C 67
SPlus Operations Display Builder User Guide BUTTON BAR COMMANDS

Display Builder Registry Settings

12.4 Print

 The Print button will print the editable version of the display. A print preview and print setup is available.

Printing displays for the S+ Operations offers more options and it shows live
data.

 When in Print Preview mode the cursor will change to magnifying glass. The exit “Print Preview” mode hit the
“Esc” key.

12.5 Preview

 The Preview button is used to preview a display in runtime.


 This option allows for the dynamic real time testing of a display without calling up the S+ Operations Explorer. The
displays will show all will put Display Builder into a Print Preview mode.
 For this option to function fully the S+ server software must be running and either a demo simulator or a real I/O
must be connected.

12.6 Save

The Save button will store the Graphic Display as a file with the extension .UCBG.

12.7 Save As
The Save As function is available by clicking on the right side of the Save button.

68 2VAA001149C
SPlus Operations Display Builder User Guide BUTTON BAR COMMANDS

Figure 12-4: Save As

 Use the *.UCBG* file extension.

12.8 Add To Library


Select Add To Library from the Save menu to export the current Graphic Display to a library page. Library pages are
saved in Library Format. Library files use the naming convention LIB_currentname.*.
They are stored in a folder that you define in the Windows registry with the key name XA_SYMBOLS.
To delete a display library from your system, you must delete all its files from the XA_SYMBOLS folder.
The Add To Library can be enabled/disabled using following APPS\IbDisp\SYSMGR registry key:
 YES to enable
 NO to disable

12.9 Export to Text Form


The Export to Text Form option has been included to support legacy applications that support this function.
For most application this feature is not require. One possible application would be to review the script code. The .G file
contains all the script used on the graphic. Care must be taken if these text files are modified, and it is recommended that
backup be made prior to exporting.

12.10 Add To System

The Add to System button adds a display to the S+ Operations Explorer running system. Prior to adding the
system the display must be saved. Multiple displays can be added to the S+ Operations Explorer running system, using
the Add to System menu option on the Save button.

Figure 12-5: Add To System


The Add to System menu option is typically used when a project is moved to another independent system.
The Executable Format files and log files are created in the Eix_bin or Eix_sym folder.

2VAA001149C 69
SPlus Operations Display Builder User Guide BUTTON BAR COMMANDS

To duplicate running displays between nodes a copy of the Eix_bin can also be
used.
The Remove From System menu option will remove Graphic Displays from the S+ Operations system.

12.11 Cut
The Cut button is used to delete objects on a display. The Cut button will be enabled if display objects are select.

Figure 12-6: Cut Option


Once an object or objects are selected clicking on the Cut button will remove the object(s) from the display. The objects
are moved to a paste buffer so they can be copied or pasted to the existing display or another display. An Undo option is
available. The Undo will only undo the last operation. Not all actions can be undone. The actions which may be undone
are resizing, position change and object delete.

12.12 Copy

The Copy Button will perform the standard Windows copy operations. Groups of display object can be selected by
using the Shift key. If a group of objects is selected the “Shift” key can used to de-selected highlighted objects.

12.13 Paste

The Paste Button will perform the standard Windows paste operations. If display objects are selected the user is
prompted for tag names before the object is inserted. It is not possible to copy and paste tag names in the middle of
pasting display objects on to a graphic. If objects are selected it is possible to right click on the background of a display
and a “Paste” menu will appear.

12.14 Zoom In
The clicking on the Zoom In button will increase the current zoom factor.

Figure 12-7: Zoom In Option


The Zoom To function will zoom to the size of selected region of the display. The Zoom Reset will return the display to
the default size.

12.15 Zoom Out

The Zoom Out button will decrease the current zoom factor, decreasing the Graphic Display details.

12.16 Graph Button

The Graph button is used to change the drawing or the default background/foreground colors and display layers.
The color options are:

70 2VAA001149C
SPlus Operations Display Builder User Guide BUTTON BAR COMMANDS

 Drawing color
 Default Foreground Color
 Default Background Color
Double-click a color option button to change the color.

Default Drawing and Background Colors


The Drawing and Background colors are set to the Windows color by default. To modify this default, you can use the
Display Builder registry key named XA_RGBCOL to define the RGB color.
For example, you could set:

Table 12-2: Background Colors

Red XA_RGBCOL = ff
Green XA_RGBCOL = ff00
Blue XA_RGBCOL = ff0000
White XA_RGBCOL = ffffff

For others colors you must define the value for red (lower), green (middle) and blue (higher) and set the hexadecimal
mask with these values. For example to set the color gray use the value: c0c0c0 (red = 192, green = 192, blue = 192).
An invalid RGB color (for example fffffff) will set the color to the default value.

Layers Options
You can change the layers options. Layers can be used to show/hide objects on the display:
There are two columns to define layers:
 Current Layers - select the layers to be displayed.
 Default Layers - select the layers assigned by default to new objects.
For most applications layers are never used.
Advanced applications that require dynamic hiding and showing of objects could use layers. To make use of layers display
scripting is required to dynamically change the Current Layer mask for the page so that only a sub-group of objects are
displayed.
To do this, use a script with the string command: graph.layers = mask;
The mask field is a bit-mask where bit 0 = layer 0, bit 1 = layer 1, etc. Use the mask field to specify which layers to enable.
As an example to show layers layers 1,2 3 use : graph.layers = 2^0+2^1+2^2;
When we open a display, the display builder searches the script file inside the folder of the active display.
If available, click on Open script file the script file will be displayed.

2VAA001149C 71
SPlus Operations Display Builder User Guide BUTTON BAR COMMANDS

Figure 12-8: Display Builder - Graph Properties Editor

12.17 Grid and Snap to Grid Buttons

The Grid button enables and disables the Grid options of the Graphic Display. The grid helps to fit and align
objects within the drawing.
The Grid options are:
 Disabled.
 Enabled and not visible.
 Enabled and visible.
 Grid spacing.
The grid spacing option is only meaningful if the grid has been enabled. The available spacing values range from 2 to 100
pixels. Values of 0 or 1 automatically disable the grid.

72 2VAA001149C
SPlus Operations Display Builder User Guide BUTTON BAR COMMANDS

Figure 12-9: Display Builder - Grid Selection Window


For detailed display work it is recommended that the grid be enabled and that the display be zoomed in at the required
level.

The Snap To Grid button is used to align all selected objects to the grid. The grid must be enabled using the Grid
command.

12.18 Header Button

The Header button is used to define the system properties of the selected Graphic Display.
The Header is managed as a specific Diagram.
The display header is used to define:
 The display type: symbol or standard display
 Security
 Forward and Back key selects
 Window characteristics
 Actions on display open and display close

12.19 Object Button

The Object button is used to define characteristics of a single object or group of objects. The object button will call
up an object menu; this menu will change slightly based on what is selected. The object menu can also be called by “right-
clicking” on a selected object or objects.

2VAA001149C 73
SPlus Operations Display Builder User Guide BUTTON BAR COMMANDS

Circle Object DALF – Dynamic Alphanumeric

Figure 12-10: Object Properties

12.20 Size and Position Button

The Size and Position button will assign the size and position for the selected object. The Size and Position
Button can only be used with a single object or with a single grouped object.

Figure 12-11: Size and Position


For detailed work the “Size and Position” dialog is useful to ensure that the correct dimensions
are used.

12.20.1 Snap To Grid Button

The Snap To Grid button is used to align all selected objects to the grid. The grid must be enabled using the Grid
command.

74 2VAA001149C
SPlus Operations Display Builder User Guide BUTTON BAR COMMANDS

12.20.2 Select Button

The Select Button is used to select and then manage objects.

Figure 12-12: Select Button

 The Select All menu option is useful for moving all objects or for copying all display objects to another display.
 The Select All Hidden Objects is used to select hidden objects. Once the hidden objects are selected they can
be made visible using the Transform Button with the Show option.

Figure 12-13: Show Option


Hidden Objects are often found after a SODG migration. The Hidden Objects tend to be “Key Selects”
for faceplates and display.
 The Select by Name menu selection is used to select objects by name.
 Object are typically selected manually but for complex displays with many overlapping objects this can be a
difficult operation to do manually. The Select by Name option can help with this operation.

2VAA001149C 75
SPlus Operations Display Builder User Guide BUTTON BAR COMMANDS

Figure 12-14: Element Name

12.21 Transform Button

The Transform Button is used to modify some visual aspects of the selected object(s).
 The Transform Button is enabled only if there are some selected objects.

Figure 12-15: Transform Button

12.21.1 Raise
The Raise menu option will move the selected objects on top of other objects.

12.21.2 Step Up
The Step Up menu option will move objects through the various planes of the drawing.
Selected objects will move one plane upward, so that an object previously above the moved objects will now appear
behind. This command does not necessarily move selected objects to the actual foreground. It just moves objects one
step up towards the foreground.

12.21.3 Step Down


The Step Down menu option will move objects through the various planes of the drawing.
Selected objects will move one plane downward, so that an object previously below the moved objects will now appear
above. This command does not necessarily move selected objects to the actual background. It just moves objects one
step closer to the background.

12.21.4 Lower
The Lower menu option will move all selected objects behind all other objects in the drawing.

76 2VAA001149C
SPlus Operations Display Builder User Guide BUTTON BAR COMMANDS

12.21.5 Show
The Show menu option will make visible objects that were previously hidden. Objects that are presently visible will not be
affected.

Hidden Objects are often found after a SODG migration. The Hidden Objects
tend to be “Key Selects” for faceplates and display.

To find hidden object use the Select Button, with the “Select All Hidden Objects” option.

12.21.6 Hide
The Hide menu option will hide all selected objects.

Hiding objects is not recommended. If objects are not required it is recommended that that are
moved off of the display.

12.21.7 Align Size and Position


The Align Size and Position is very useful for manipulating multiple objects into a more presentable format.

Figure 12-16: Align Size and Position


You can use following options.

For the X axis:


 Align: define a space (expressed in pixels) between the selected objects.
 Leave as is: the position relative to the X axis will not change.
 Left: all selected objects are aligned to the left.
 Center: all selected objects are vertically centered.

2VAA001149C 77
SPlus Operations Display Builder User Guide BUTTON BAR COMMANDS

 Right: all selected objects are aligned to the right.


 Side By Side: all selected objects are vertically ordered and separated by space defined by the Align option.
 Width: a specified width is assigned to all selected objects.

For the Y axis:


 Align: define a space (expressed in pixels) between the selected objects.
 Leave as is: the position relative to the Y axis will not change.
 Top: all selected objects are aligned to the top.
 Center: all selected objects are horizontally centered.
 Bottom: all selected objects are aligned to the bottom.
 Side By Side: all selected objects are horizontally ordered and separated by space defined by the Align option.
 Height: a specified height is assigned to all selected objects.
Click Apply to set the selections, Cancel to exit from the dialog, Reset to set all options to their initial status, or Undo to
restore the previous size or position of selected objects.
Align Size and Position Example: Evenly spacing objects horizontally
The goal is to have all the objects in a horizontally lined up and spaced evenly apart.

Figure 12-17: Align objects


Step 1: Align horizontally.

78 2VAA001149C
SPlus Operations Display Builder User Guide BUTTON BAR COMMANDS

Figure 12-18: Align objects horizontally


Step 2: Space objects evenly. Note: 50 was used in this example

Figure 12-19: Align objects evenly at 50

12.21.8 Mirror
The Mirror menu option will simulate a reflected image on the vertical axis. Selected objects will have the appearance of a
mirrored image.

12.21.9 Flip
The Flip menu option will flip the selected objects horizontally (from top to bottom).

12.22 Template Button

The Template Button is contains a set common predefined symbols. By clicking on the right side of the button
the template menu is shown.

2VAA001149C 79
SPlus Operations Display Builder User Guide BUTTON BAR COMMANDS

Figure 12-20: Template Button

12.22.1 Trend Template


The Trend option will create a trend based on the DTRN, Trend Diagram.
 Once the Trend option is selected, a trend rectangle needs to be drawn and this will define the size and position of
the trend on the display.
 By default the user is only prompted for the first tag name on the trend.
 To change details on the trend or add more tag names to the trend, “right click” on the trend object and select
Dynamics.

Figure 12-21: Dynamics of Trend

 The Trend – DTRN Dialog allows for color changes and tag changes.
 To increase the number of tag used on the trend, select the Curves option and increase the count. Up to 10 tags
can be trended on one plot. To define the tag name and color used click on the required curve.

80 2VAA001149C
SPlus Operations Display Builder User Guide BUTTON BAR COMMANDS

Figure 12-22: DTRN diagrams of Trend


For more details on trends see the section on DTRN diagrams.

12.22.2 Horizontal Bar Template


The Horizontal Bar Template will create a local dynamic symbol based on the DNNV (Multivariable Tag) diagram.
After the Horizontal Bar option is selected, a rectangle needs to be drawn and this will define the position and size of the
bar on the display.
By default the user is only prompted for the first tag name on the trend.

Figure 12-23: Horizontal Bar Template


The color of the bar is by default based on the dynamic color definition of the tag used. If the normal color of the value is
green the bar will be green in the normal range. If the high and low alarm colors are red, when the value goes into the high
or low range the bar color will change to red. The same will hold true for all other qualities, such as high instrument, 3-
high, 2-high, 2-low,3-low, low instrument, channel failure, old value etc.
The color definition is configured in the BATTDECK.XML file.
The background color of the bar can be changed by “right clicking” on the bar and select Graphic attributes.

2VAA001149C 81
SPlus Operations Display Builder User Guide BUTTON BAR COMMANDS

Figure 12-24: Horizontal Bar Graphic attributes


The Background color will be the color of the outline box. By selecting the Fill Style to be FORE the color of the
background of the bar will be set to the Foreground color.
Changing the dynamic bar color to a static color is possible. To change the dynamic bar color to a static color, “right click”
on the bar and select “Script”.
if (first == 0) {
d_perc = object.RECT.width/100;
object.RECT.fillStyle = 2;
object.RECT.background = object.RECT.foreground;
//object.DESCR.show = FALSE;
first = 1;
}
if (value > 100) {
value = 100;
}
if (value < 0) {
value = 0;
}
object.SLIDER.width = value*d_perc;
object.SLIDER.y = 0;
//object.SLIDER.foreground = fgc; // this line commented out
object.SLIDER.foregroundName = "blue"; // this line added
The last line: object.SLIDER.foreground = fgc , references the dynamic variable for the foreground color
(fgc).
A line can be added that fixes the slider, or dynamic bar color. See the scripting section of the manual for more details.

12.22.3 Vertical Bar Template


The Vertical Bar Template will create a local dynamic symbol based on the DNNV (Multivariable Tag) diagram.
After the Vertical Bar option is selected, a rectangle needs to be drawn and this will define the position and size of the bar
on the display. By default the user is only prompted for the first tag name on the trend.

82 2VAA001149C
SPlus Operations Display Builder User Guide BUTTON BAR COMMANDS

Figure 12-25: Vertical Bar Template


The color of the bar is by default based on the dynamic color definition of the tag used. If the normal color of the value is
green the bar will be green in the normal range. If the high and low alarm colors are red, when the value goes into the high
or low range the bar color will change to red. The same will hold true for all other qualities, such as high instrument, 3-
high, 2-high, 2-low,3-low, low instrument, channel failure, old value etc.
The color definition is configured in the BATTDECK.XML file.
The background color of the bar can be changed by “right clicking” on the bar and select “Graphic attributes”.
The Background color will be the color of the outline box. By selecting the Fill Style to be FORE the color of the
background of the bar will be set to the Foreground color.
Changing the dynamic bar color to a static color is possible. To change the dynamic bar color to a static color, “right click”
on the bar and select “Script”.
if (first == 0) {
d_perc = object.RECT.width/100;
object.RECT.fillStyle = 2;
object.RECT.background = object.RECT.foreground;
//object.DESCR.show = FALSE;
first = 1;
}
if (value > 100) {
value = 100;
}
if (value < 0) {
value = 0;
}
object.SLIDER.width = value*d_perc;
object.SLIDER.y = 0;
//object.SLIDER.foreground = fgc; // this line commented out
object.SLIDER.foregroundName = "blue"; // this line added
The last line: object.SLIDER.foreground = fgc , references the dynamic variable for the foreground color
(fgc).
A line can be added that fixes the slider, or dynamic bar color. See the scripting section of the manual for more details.

2VAA001149C 83
SPlus Operations Display Builder User Guide BUTTON BAR COMMANDS

12.22.4 Analog Value Template


The Analog Value Template will create a logical dynamic symbol based on the Dynamic Alphanumeric Diagram (DALF)
that will show real time values.
 Analog Value template can use any tag type that supports the real time value as an integer, float, or 0-1 transition.
 After the Analog Value option is selected, a rectangle needs to be drawn and this will define the position and size
of the value on the display. Once the position is defined a dialog will appear for entering the tag name.

Figure 12-26: Analog Value Template

 The First Text String is used as a place holder, to show the location and format of the symbol.
 To change the Font of the symbol, “right click” on the symbol and select Edit Font.

Figure 12-27: Font Change


The color of the value is by default based on the dynamic color definition of the tag used. If the normal color of the value is
green the value will be green in the normal range. If the high and low alarm colors are red, when the value goes into the
high or low range the color of the value will change to red. The same will hold true for all other qualities, such as high
instrument, 3-high, 2-high, 2-low,3-low, low instrument, channel failure, old value etc.
The background color of the value can be changed by “right clicking” on the bar and select “Graphic attributes”.

84 2VAA001149C
SPlus Operations Display Builder User Guide BUTTON BAR COMMANDS

Figure 12-28: Analog Value –Graphic Attributes


By default the color of the dynamic value is based on the color definition of the point. The color definition is configured in
the BATTDECK.XML file.
To make the color of the value static instead of dynamic, “right click” on the value and select the “Graphic attributes”
option. Next select a foreground color to be used. “Right click” again on the symbol and then select script. In the script
comment out or remove the reference to the dynamic foreground color.
fg_col =-2;
bg_col = 0;
al_col = -1;
//object.foreground = fgc; // Comment out color change
object.string = value;
For more details on modifying this symbol see the DALF diagram section of this manual.

12.22.5 Tag Description Template


The Tag Description Template will create a dynamic symbol based on the Dynamic Alphanumeric Diagram (DALF) that
shows the long description of a tag. The Tag Description symbol is typically used on popup or faceplates displays.
After selecting the Tag Description option, click on the display, to define the location for the tag description symbol. A
dialog will appear for the configuration of the required tag name.

Figure 12-29: Tag Description Template


The First Text String is a place holder to show example text. The actual tag description will over write this text when the
display is used in S+ Operations.

2VAA001149C 85
SPlus Operations Display Builder User Guide BUTTON BAR COMMANDS

By default the tag description is only update once at display call-up time.

 The color of the text is static and it can be adjusted by “right clicking” on the symbol and then selecting Graphic
attributes.
 The font can be adjusted by “right clicking” on the symbol and then selecting Edit Font.
 The number characters and starting character position can be adjusted by “right clicking” on the symbol and then
selecting “Dynamics”.
 The number of characters shown is defined by the “Size” option under the DALF diagram tab. The starting
character position is defined by the Offset option under the VAR tab.

Figure 12-30: DALF Diagram for Tag Description

 Custom presentations can be done, see the sections of the DALF Diagram and the scripting for more details.

12.22.6 Tag Name Template


The Tag Name Template will create a dynamic symbol based on the Dynamic Alphanumeric Diagram (DALF) that shows
the tag name.
 The Tag Name symbol is typically used on popup or faceplates displays.
 After selecting the Tag Name option, click on the display, to define the location for the tag description symbol. A
dialog will appear for the configuration of the required tag name.

86 2VAA001149C
SPlus Operations Display Builder User Guide BUTTON BAR COMMANDS

Figure 12-31: Tag Name Template


The First Text String is a place holder to show example text. The actual tag name will over write this text when the
display is used in S+ Operations.

By default the tag name is only update once at display call-up time.

The color of the text is static and it can be adjusted by “right clicking” on the symbol and then selecting “Graphic
attributes”.
The font can be adjusted by “right clicking” on the symbol and then selecting “Edit Font’.
Custom presentations can be done, see the sections of the DALF Diagram and the scripting for more details.

12.22.7 Digital Status Template


The Digital Status Template will create a dynamic symbol based on the Dynamic Alphanumeric Diagram (DALF) that will
show the active logic state description.
The Digital Status Template can be used with all tag that supports a logical state description. These tag types include:
 Digital and Advanced Digital (DADIG)
 Remote Control Memories (RCM)
 Device Drivers (DD) and Multistate Device Drivers (MSDD)
 Device Status (DEVSTAT)
 Remote Motor Control Blocks (RMCB)
 Text Strings
After selecting the Digital Status option, click on the display, to define the location for the digital status symbol. A dialog will
appear for the configuration of the required tag name.

2VAA001149C 87
SPlus Operations Display Builder User Guide BUTTON BAR COMMANDS

Figure 12-32: Digital Status Template

 The First Text String is used as a place holder, to show the location and format of the symbol.
 To change the Font of the symbol, “right click” on the symbol and select “Edit Font”.

Figure 12-33: Font Change –Tag name


The color of the value is by default based on the dynamic color definition of the tag used. If the normal color of the value is
green the status text will be green. If the alarm color is red, the status text will change to red when the tag goes to the
alarm state.
Color changes will also appear for qualities, such as inserted, alarm inhibited, channel failure, old value etc.S
The background color of the value can be changed by “right clicking” on the bar and select “Graphic attributes”.

88 2VAA001149C
SPlus Operations Display Builder User Guide BUTTON BAR COMMANDS

Figure 12-34: Font Change Graphic attributes


By default the color of the dynamic value is based on the color definition of the point. The color definition is configured in
the BATTDECK.XML file.
To make the color of the value static instead of dynamic, “right click” on the value and select the “Graphic attributes”
option. Next select a foreground color to be used. “Right click” again on the symbol and then select script. In the script
comment out or remove the reference to the dynamic foreground color.
fg_col =-2;
bg_col = 0;
al_col = -1;
//object.foreground = fgc; // Comment out color change
object.string = value;
For more details on modifying this symbol see the DALF diagram section of this manual.

12.22.8 Engineering Unit Template


The Engineering Unit Template will create a dynamic symbol based on the Dynamic Alphanumeric Diagram (DALF) that
shows the tag’s engineering unit.

A valid Engineering Unit must be defined for the tag. Digital tags do not support
engineering units.
 After selecting the Engineering Unit option, click on the display, to define the location for the engineering unit
symbol. A dialog will appear for the configuration of the required tag name.

Figure 12-35: Engineering Unit Template

2VAA001149C 89
SPlus Operations Display Builder User Guide BUTTON BAR COMMANDS

 The First Text String is a place holder to show example text. The engineering unit will over write this text when
the display is used in S+ Operations.
By default the engineering unit is only update once at display call-up time.

 The color of the text is static and it can be adjusted by “right clicking” on the symbol and then selecting “Graphic
attributes”.
 The font can be adjusted by “right clicking” on the symbol and then selecting “Edit Font’.
 Custom presentations can be done, see the sections of the DALF Diagram and the scripting for more details.

12.22.9 XY Plot Template


The XY Plot Template creates a dynamic XY Plot based on the DXYP Diagram. For details on this symbol see the section
on the DXYP Diagram.

12.23 Symbol Library Button

The Symbol Library Button is used to access predefined libraries.


 Symbol Library button is enabled if one or more Graphic Displays are defined in the library.
 The library pages cannot be modified directly, they are intended to be used to create project displays. After a
library is selected, an object in the library can be dragged or copies on the working display.

Figure 12-36: Plant Library

 For more details on library creation and maintenance refer to the section on Plant Libraries.

12.24 About Button

The About Button will show the present version of the Display Builder.

Figure 12-37: About Button

S+ Display Builder can import PGP (Power Generation Portal) displays, but S+ displays cannot
be downgraded to PGP.
90 2VAA001149C
SPlus Operations Display Builder User Guide TOOL BAR COMMANDS

13. TOOL BAR COMMANDS


The second button bar of Display Builder is called the Tool Bar. The Tool Bar contains a set command buttons used to
draw and manipulate display elements or objects.

Figure 13-1: Tool Bar Commands

13.1 ActiveX Button

rd
The ActiveX Button is used to insert an ActiveX object. ActiveX objects are 3 party components that can be
embedded into Display Builder.
Some typical ActiveX components include:
 Adobe Documents
 Microsoft Word Documents
 Microsoft Excel Documents
 Visio Drawing
To embed an Active X comment, click on the ActiveX button then draw a rectangle to define the location and size of the
component. An “Insert OLE Control” Dialog will appear, and this is used to define the OLE or ActiveX component to use.

Figure 13-2: Insert OLE Control Command


When a display is exported to all servers and clients it is important to have all the required ActiveX components loaded or
the ActiveX feature will not operate.

The use of ActiveX components is not recommended for most applications, because of speed
and dependency issues.

13.2 Rectangle Button

The Rectangle Button is used to draw rectangles and squares.


 To draw a rectangle, click on the Rectangle button and then click and drag to draw the dimensions.
 To specific a rectangle, use Shift key while dragging to draw.

13.3 Circle Button

The Circle Button is used to draw a circle, ellipse or arc.


 To draw a shape click and the Circle button then click on the display and drag to draw the figure.
 You can click the Shift key while dragging to create a circle.
 An ellipse can be converted to a circle by “right clicking” on the object and then select “Circle”.
 A circle can be converted to an ellipse by dragging the edges.

2VAA001149C 91
SPlus Operations Display Builder User Guide TOOL BAR COMMANDS

Figure 13-3: Circle Button

 A circle or an ellipse can also be adjusted to be an arc or pie. (A pie is a filled arc).

13.3.1 Arc
An arc or pie can be created from a circle or ellipse.
 To create an arc or pie, “right click” on the circle or ellipse, and then select “Arc”.
 The Arc dialog is used to define the arc size in 0-360 degree. The starting point for 0 degrees is the left edge, and
180 degree is the right edge.

Figure 13-4: Arc Selection

 To create a pie select the “Type” as pie and then add a fill color and fill style.

92 2VAA001149C
SPlus Operations Display Builder User Guide TOOL BAR COMMANDS

Figure 13-5: Arc Creation

Figure 13-6: Arc Created

13.4 Line Button

The Line Button is used to insert a straight line. Press and drag to draw the figure.
 A “right click” on the line, is used to access the “Graphic attributes” options. The “Graphic attributes” dialog is used
to change the line color and fill style.

2VAA001149C 93
SPlus Operations Display Builder User Guide TOOL BAR COMMANDS

Figure 13-7: Line Creation

 A line does not support shadowing or fill styles.

Line styles are only valid for line thicknesses of a width of 5 or lower.

13.5 Closed Polyline Button

The Closed Polyline Button is used to create a closed polyline shapes.


 A closed polyline is a multi-sided shape where each side of the shape is straight. For shapes that have curved
sides see the closed spline.
 To start drawing, click on the Closed Polyline button, and then click on the display to create the starting point.
Continue clicking to create multiple intermediate points. “Right click” to create the ending point. The first and the
last points are connected with the intermediate point to close the figure.

Figure 13-8: Polyline Creation


The closed polyline supports line styles and the following fill styles:
 FORE and BACK
 DITHER styles
 HATCH styles
 GRID styles

Closed polylines are typically used to draw valves.

94 2VAA001149C
SPlus Operations Display Builder User Guide TOOL BAR COMMANDS

Figure 13-9: Valve Creation

13.6 Open Polyline Button

The Open Polyline Button is used to create an open polyline. An open polyline is a set of straight line segments
that are not connected together.
 To create shapes with curved line segments instead of the straight line segments see the Open Spline button.
 To create an open polyline click on the Open Polyline button and then click on the display to create the starting
point. Continue clicking to create multiple intermediate points. “Right click” to create the ending point. The first and
the last points are connected with the intermediate point to create a line.

Figure 13-10: Open Polyline Creation


Open polylines can have shadowing, line style and the following fill styles:
 FORE and BACK
 DITHER styles
 HATCH styles
 GRID styles

13.7 Closed Spline Button

The Closed Spline Button is used to create a closed spline. A spline is a shape consisting of curved line
segments.
 To create a shape click on the Closed Spline button and then click on the display to create the starting point.
Continue clicking to create multiple intermediate points. “Right click” to create the ending point. The first and the
last points are connected with the intermediate point to close the figure.
 All points are linked with curves.
 The shape can be modified by “right clicking” on the shape and then drag the pivot points to the required position.

Figure 13-11: Closed Spline Creation


Closed polylines cannot have shadowing.
2VAA001149C 95
SPlus Operations Display Builder User Guide TOOL BAR COMMANDS

They do support line style and the following fill styles:


 FORE and BACK
 DITHER styles
 HATCH styles
 GRID styles

13.8 Open Spline Button

The Open Spline Button is used to create an open spline. A spline is a shape consisting of curved line segments.
 To create a shape click on the Open Spline button and then click on the display to create the starting point.
Continue clicking to create multiple intermediate points. “Right click” to create the ending point. The first and the
last points are connected with the intermediate point to close the figure.
 All points are linked with curves.
 Open polylines cannot have shadowing.
They do support line style and the following fill styles:
 FORE and BACK
 DITHER styles
 HATCH styles
 GRID styles

13.9 Text Button

The Text Button is used to create a text object.


 To add some text, click the Text button, and then click on the display to select the location of the text. An edit text
dialog is used for typing in the text.
 Using the properties window it is possible change the presentation of the text.

Figure 13-12: Text Creation


Some of the options include:
 Text color
96 2VAA001149C
SPlus Operations Display Builder User Guide TOOL BAR COMMANDS

 Fill Style
 Font
 Vertical or horizontal text

13.10 Parallelogram Button

The Parallelogram Button is used to create a four point polyline with parallel sides. Click three times to create the
parallelogram.

13.11 Array Button

The Array Button used to create a table array.


 Press and drag to draw the figure. You can press the Shift key while dragging to create a regular square.

Figure 13-13: Modify Array

 By default the array is 4x4, to change this “right click” on the array and then select “Modify Array”.

Figure 13-14: Modify Array Box

 Each cell in the array has the same size. To create a table with different sized cells multiple array objects are
used. The Size and Position button is used to line up each the array objects.
 After the correct positioning is done the individual arrays can be grouped together. To group objects high light all
the objects, hold the “Shift” key and “Right Click”, then select Group.

2VAA001149C 97
SPlus Operations Display Builder User Guide TOOL BAR COMMANDS

Figure 13-15: Group Array

13.12 Marker Buttons

The Marker Button is used to create markers, which are a small triangular, rectangular or diamond shaped
symbols.
 Click where you want to create your marker.
 Markers are predefined shapes. To change the marker, “right click” on it and select the required shape.

Figure 13-16: Marker Styles

 By default the markers are quite small, 6x6. The size and ratio can be changed by the Size and Position button.

13.13 Picture Button

The Picture Button is used to insert a picture, and then select the image file in GIF, JPG, JPEG or ICO format.
 Click to specify the upper left-hand corner of the image, and then drag to create the drawing area for the image.
Click in the drawing area to position the picture.
 The image will retain its original size when it is first put on the graph. Images can be resized; however some level
of pixilation could occur if the image is expanded.

98 2VAA001149C
SPlus Operations Display Builder User Guide TOOL BAR COMMANDS

 Picture object support line widths and line styles but they do not support color backgrounds or fill properties.
 Picture objects can be made into dynamic symbols, and tags can be referenced.

When displays are copied to other servers the images files are automatically deployed to the
servers.

13.14 Global Symbol Button

The Global Symbol Button is used to preview and insert a Global Symbol on to a display.
 A global symbol is a reusable component that is generated once and then reused throughout a project.
 Some common uses for a global symbol would include:
o A commonly used static representation, such was a tank.
o A common display link button or a menu banner
o A dynamic symbol that changes appearance based on plant conditions, for example a valve or pump.
 The Global Symbols dialog will preview the symbol.

Figure 13-17: Global Symbols Dialog

 If the symbol is dynamic then tag names will need to be passed to the symbol. The global symbol dialog will
identify the number of tags that are being passed.
 Up to 10 tags can be passed to a symbol; the “Tag Selection” shows the number of tags. The selector beside the
“Tag Name” selects the passed tag index.
Understanding the use of the symbol is important if multiple tags are being
passed.

Fill the Filter and Custom Filter tab


Filter: This helps to select the symbol category based on the Prefix. Select the required category from the filter tab, and
the list of symbols are displayed below. The filters are defined in BFilterSymDeck.xml file.
Custom Filter: This helps to filter symbols based on the character we type in the custom filter box. There are two ways to
filter the symbols
 Filters based on the start of the symbol name.
 Typing asterisk (*) before the string the symbol list id filtered searching the string inside the Symbol names and
not only at the beginning.

2VAA001149C 99
SPlus Operations Display Builder User Guide TOOL BAR COMMANDS

13.15 WVP Button

The WVP Button is used for adding a Window View Port.


 Click the WVP button to manage the #WVP object for the current drawing. The #WVP object is the rectangle that
defines the page area.
 If #WVP object already exists when WVP is clicked, the #WVP object will be selected. Otherwise a #WVP object
will be created with default size (920*680 pixels). At run time this object is hidden.
 For advanced applications it is possible to toggle between different WVP objects. This is used for popups or
faceplates that are toggled between a small version and a larger version.

13.16 Group Button


This is used to group objects giving them the same graphic attributes. For eg. Moving and resizing the objects maintaining
their relative ratio.

13.17 Ungroup Button


This is used to ungroup objects that are grouped.

13.18 Transform to Macro Symbol Button

The Transform to Macro Symbol button is used to group selected objects in one Macro Symbol. Macro Symbols
can be used to collect Dynamic Objects so that a single tag can be assigned to the group.
Three cases are possible when you click Transform to Macro Symbol:
 When object(s) are selected, a rectangle named #SYM and a Macro Symbol named #SYM_GROUP are created.
The rectangle becomes a boundary box of the selected objects. The Macro Symbol includes the selected objects
and the #SYM rectangle.
 When #SYM object(s) are selected, a Macro Symbol with the selected #SYM object and all other objects in the
selected area will be created.
 When no objects are selected, drag to identify an area that includes all selected objects. Step1.

13.19 Split Macro Symbol Button

The Split Macro Symbol Button is used to ungroup all selected Macro Symbols. This allows you to access single
objects in the Macro Symbol.
After you perform a save or export operation the objects will be re-grouped in the Macro Symbol.

13.20 Align Commands


The align commands (Left, Vertical, Right, Bottom, Horizontal, Top, Center) will align the selected objects.

Figure 13-18: Align Commands

Left: All selected objects will be aligned to the horizontal position of the left-most object in the selection.

Vertical: All selected object will be centered using the average vertical position.

Right: All selected objects will be aligned to the horizontal position of the right-most object in the
selection.

100 2VAA001149C
SPlus Operations Display Builder User Guide TOOL BAR COMMANDS

Bottom: All selected objects will be aligned to the vertical position of the lowest object in the selection.

Horizontal: All selected object will be centered using the average horizontal position.

Top: All selected objects will be aligned to the vertical position of the highest object in the selection.

Center: The same center is assigned to all selected objects.

2VAA001149C 101
Splus Operations Display Builder User Guide CONTEXT MENU

14. CONTEXT MENU


Each object or group of objects that is drawn in Display Builder includes a context menu. “Right click” on the object to
access the context menu.

Figure 14-1: Context menu


The context menu is broken into four categories:
 Element specific functions
 Graphic orientated functions
 Dynamic functions
 Cut and Paste functions

The options shown on the context menu will vary based on the object or objects
selected.

14.1 Context Menu – Element Specific Functions


The context menu with element specific items comes in will vary based on the object type.

102 2VAA001149C
SPlus Operations Display Builder User Guide CONTEXT MENU

Table 14-1: Context Menus

Object Type Menu Options Shown

ActiveX Object Specific Menu, usually with Open and


Edit
Rectangle Element Name
Graphic Attribute
Polygonize
Circle Element Name
Graphic Attribute
Circle
Polygonize
Arc
Line, Closed Polyline, Open Polyline, Element Name
Close Spline, Open Spline,
Parallelogram, Graphic Attribute
Rotate
Text Element Name
Graphic Attribute
Edit Font
Edit Text
Array Element Name
Graphic Attribute
Modify Array
Marker Element Name
Graphic Attribute
Triangle Up
Triangle Down
Rectangle
Diamond
Picture Element Name
Graphic Attribute
Change Picture
Global Symbol Open Symbol
Change Symbol
Transform to local Symbol
Local Symbol Split Macro Symbol
Replace with Symbol
WVP (Window View Port) Element Name
Graphic Attribute
Polygonize

2VAA001149C 103
SPlus Operations Display Builder User Guide CONTEXT MENU

14.1.1 Element Name


This option is available on all objects except global symbols and ActiveX elements
 Select Element Name to define the name of selected object.
 Element Name is only enabled if a single named object is selected.

Figure 14-2: Display Builder - Element Name

 If Element Name is blank the object is not named.


 Defining the element name for reusable objects or for symbols is useful and it makes management of the displays
easier. It is not necessary to name static elements that are used for backgrounds or “one of” applications.
 If an element is to be manipulated in the script of another object it must have an element name.
 The specific name of the object is also used to determine the order of the object.
 All objects named $ will be displayed above (raised)
 All objects named _$ will be displayed below.

14.1.2 Graphic Attributes


This option is available on all objects except global symbols and ActiveX elements.
The graphic attributes manages the following object attributes:
 Foreground Color.
 Background Color.
 Shadow.
 Fill Style.
 Line Style.
 Layers Mask.
Selecting Graphic attributes will launch the “Attributes Editor” dialog.

Figure 14-3: Display Builder - Attributes Editor


104 2VAA001149C
SPlus Operations Display Builder User Guide CONTEXT MENU

Change Color
 Clicking on the Foreground or Background buttons, will be activated the Color dialog.

Figure 14-4: Display Builder - Colors Editor


The selection of colors can be by:
 Basic colors - 48 predefined basic colors
 User defined color – color selected from color chart
 red/green/blue (RGB) value
 Hue/Saturation/Luminosity value
 Custom colors – a user defined pallet of up to 16 preselected colors
 Logical color – a color defined by a “logical color” name that could be changed later
By clicking on the right color table, the user can select a detailed color and save it in the Custom Colors table using Add
to Custom Colors button; on OK, all custom colors will be saved in a specific Display Builder registry named
XA_CUSTOM_COLORS to be memorized for future uses.
Fill Style
 The fill style is very useful in giving objects texture and shading.
 It is important to select the correct fill style for the selected object.

Figure 14-5: Fill Style


The main fill categories include:
 Generic fills, this is use on all object except lines
o EMPTY, FORE, BACK
o DITHER25/50/75

2VAA001149C 105
SPlus Operations Display Builder User Guide CONTEXT MENU

o HATCH1…4.
o DB_Hatch1/2, DB_Grid and Grid
 RECT fills, this is used only on rectangle objects (not parallelograms)
 CIRCLE fills, this is used only on circle objects (not arcs)
The fill style is not applicable to all object types, for example a line does not have a fill type.
Shadow
 The shadow option is very useful in the drawing of buttons and menu selects.
 To give the 3 dimensional look of a button, a rectangle is created and a shadow thickness is defined.

Figure 14-6: Shadow Style


Line Style
Line style can be used on all object types. The Line style supports:
 Line width, and
 Line style (normal, dashed, double_dashed, dash_dot, long_dash, dash_double_dot, triple_dot

Figure 14-7: Line Style


If the line width is too thick, the line will always look solid even if another option is picked.

Layers
Layers can be used with script to show or hide objects.

Check to Apply All Attributes Check Box

106 2VAA001149C
SPlus Operations Display Builder User Guide CONTEXT MENU

Use the CHECK TO APPLY ALL ATTRIBUTES check box when you want to apply attributes from one object to multiple
objects:
 Select the objects to be edited.
 Hold down SHIFT and right-click on an object, and then select Graphic Attributes.
The current attributes of the object that you right-clicked are displayed. The attributes of the other selected objects are not
displayed.
If you want to apply all the current attributes of this object to the other selected objects:
 Select the CHECK TO APPLY ALL ATTRIBUTES check box.
 Click APPLY or OK
If you want to only apply changed attributes for this object to the other selected objects:
 Change the attributes on the object.
 Clear the CHECK TO APPLY ALL ATTRIBUTES check box.
 Click APPLY or OK.
If you do not change any attributes, and the CHECK TO APPLY ALL ATTRIBUTES check box is clear when you click
APPLY or OK, no changes will be made.

14.1.3 Polygonize
This option is available on rectangle, circle and Window View Ports (WVP) objects.
 Select Polygonize to transform a single circle or rectangle object to a polyline object.

Figure 14-8: Select Polygonize

 Once an object is made into a polyline element it is possible to do fine adjustments to the presentation. Below is
an example of a circle that was converted to a polyline element

Figure 14-9: Polygonize


Polygonize is necessary for rotation of rectangles and circle shapes. Once a circle or rectangle is polygonized, it
cannot be converted back.

2VAA001149C 107
SPlus Operations Display Builder User Guide CONTEXT MENU

14.1.4 Rotate
This option is only available for line, polyline, spline and parallelogram objects.
 Select Rotate to change the rotation angle of the selected object(s). You can rotate a line, polyline or a
parallelogram object.

Figure 14-10: Rotate Option

 You can also select multiple objects. If you rotate a group of objects or multiple objects, the objects will rotate
around the center of the group.

14.1.5 Edit Font


This option is only available for text objects or for groups containing text objects.
 Select Edit Font to change the font type, size and format on text objects.

Figure 14-11: Edit Font

14.1.6 Edit Text


This option is only available for text objects or for groups containing text objects.
 Select Edit Text to edit the text string.

108 2VAA001149C
SPlus Operations Display Builder User Guide CONTEXT MENU

Figure 14-12: Edit Text

 There is no automatic line wrap but multiple lines can be entered.

14.1.7 Triangle Up / Triangle Down / Rectangle / Diamond


This option is only available for marker objects.
 Select Triangle Up / Triangle Down / Rectangle / Diamond to change the shape of a selected marker object.

14.1.8 Change Picture


This option is only available for picture objects.
 Select Change Picture to change the picture for the selected object.

Figure 14-13: Change Picture

 Enter the name of the picture file or use the browse button (...) to access picture files.
 The Display Builder uses a Windows registry key called Directories\XA_PATH to identify the standard S+
Operations path name.
 Where possible save a file to the standard S+ Operations path, then S+ Operations will always be able to find the
file, even if S+ Operations is installed on another system.
 If the file is saved to a non-standard S+ Operations path, then another S+ Operations system may not be able to
locate the file.

Always store files in standard S+ Operations paths so that the files can be accessed by other S+ Operations
systems.

14.1.9 Open Symbol


This option is only available for Global Symbol objects.

2VAA001149C 109
SPlus Operations Display Builder User Guide CONTEXT MENU

 Open Symbol will open the selected symbol in Display Builder for editing. If the source file for the symbol is not in
the working display directory then a File Dialog will be opened.

Once a symbol is modified, all displays that use the symbol should be “Added to System”,
this will update the displays with the change.

14.1.10 Change Symbol


This option is only available for Global Symbol objects.
 Select Change Symbol to change a Global Symbol object.

Figure 14-14: Change Symbol

 Enter the name of the desired symbol, or use the browse button (...) to select symbols.

14.1.11 Transform to Local Macro Symbol


This option is only available for Global Symbol objects.
 Select Transform to Local Macro Symbol to transform a Global Symbol to a local Macro Symbol.
 Local Macro Symbols can be edited and manipulated on the existing graphic.
 Once a global symbol is transformed to a local symbol it cannot be transformed back to a global symbol. The
Replace with Symbol option will enable the local symbol to be replaced with a global symbol.
For emailing of graphic using local symbols reduces the requirement of sending extra global
symbol files.

14.1.12 Replace with Symbol


This option is only available for Local Macro Symbol objects.
 Select the Replace with Symbol option to change a local Macro Symbol with a Global Symbol object.

Figure 14-15: Replace Symbol

 Enter the name of the desired symbol, or use the browse button (...) to select symbols.

14.2 Context Menu – Dynamic Functions


The dynamic functions are used to add advanced functionality to a graphic element or group of elements.
Typically dynamic functions are used in global symbols but they can also be used on standard elements on a display. A
good example of a dynamic object on a display is a navigation or display link.

110 2VAA001149C
SPlus Operations Display Builder User Guide CONTEXT MENU

Table 14-2: Context Menu -dynamic functions

Object Commands Available


Static object  Transform to Dynamic
(rectangle, circle, polyline, spline or text)  Script
Dynamic object  Remove Dynamics
(rectangle, circle, polyline, spline or text)  Dynamic
 Script
Global Symbol None available
Local Macro Symbol None available

ActiveX None available

14.2.1 Transform to Dynamic


Select Transform to Dynamic to transform a single object without dynamics to a Dynamic Object.
 The new Dynamic Object is assigned default dynamic attributes.

Figure 14-16: Transform to Dynamic

 The default element name is VARxx, where xx is the next available index. The default diagram type is a DNNV or
Dynamic Multivariable Diagram.
 To change the Diagram type, select the option Dynamics.

14.3 Remove Dynamic


 Select Remove Dynamic to remove dynamic attributes from a single selected Dynamic Object.
“Remove dynamic” will also remove script. So it is advisable to save any custom to a text file before
removing dynamics.

 Removing the dynamic will also remove any scripting that was defined

14.4 Dynamics
The Dynamics option is used to full define and change the type of Diagram used.

Table 14-3: Dynamics Options

Diagram Type Function Typical Applications


DALL – Create custom alarm screens  Custom alarm screens
Alarm
DALF - Shows dynamics text and  Showing real time values and status
values
Alphanumeric  Show tag information (limits, units etc.)
DDYN – Changes color based on digital  Dynamic valves
state and quality
Dynamic Digital  Dynamic pumps

2VAA001149C 111
SPlus Operations Display Builder User Guide CONTEXT MENU

DDYA – Changes color based on  Analog valve indication (shows


analog ranges opening and closing)
Dynamic Analog
DINP – Launches applications and  Display links
other graphics
Input  Control buttons

rd
Launch 3 party applications
DNNV - Advanced function that  Any application where more than 1 tag
requires scripting and uses 1- is required for the logic
Multi-variable 10 tags in logic
DRDR Create radar charts  Radar/spider charts for profile
comparisons
Radar
 Bearing temperatures or vibrations
DTRD - Trend Charts  Display based trends
Trend
DXYP – XY Plots  Performance curves
XY Plots  Pump efficiency curves

See the Diagrams section of this manual for more details on configuring the different diagram types.

Changing a diagram type will also remove script. So it is advisable to save any custom to a text file
before removing dynamics.

14.5 Script
 Select Script to display and modify script text for a single selected object.
 A script can be defined for both Dynamic and Non-Dynamic Objects.

Figure 14-17: Edit Script

 Some diagram types will automatically generate script.


 User defined custom script is required for DNNV (Multi-variable) diagrams, for the other diagram types user
defined custom script is not necessarily required.
Example of where script can be used includes:
 Custom or variable color applications
 Variable Fonts and Font sizes based on dynamic conditions
 Variable line wrap for strings
The short cut menus to edit a script are as below:
 Ctrl+F is used to find the string in the script or text

112 2VAA001149C
SPlus Operations Display Builder User Guide CONTEXT MENU

 Ctrl+R is used to replace the string in the script or text


 Ctrl+G is used to Go to a specific line the string in the script or text
 Ctrl+Shift : If a bracket is highlighted using Ctrl+Shift the cursor moves down to the closing bracket.

14.6 Context Menu – Copy and Paste Functions


The Copy and Paste Functions follow the standard Window’s Copy and Paste methodologies.

14.6.1 Undo
Select Undo to undo or cancel the last action executed. This command is enabled only if the clipboard is not empty.
The Undo function is designed for drawing changes.
Some limitations of the Undo include:
 Only a single level of Undo
 Undo is not supported for script changes
 Undo is not supported for changes in the dynamic Diagram dialog

14.6.2 Cut
Select Cut to perform a standard Windows cut operation.

14.6.3 Copy
Select Copy to perform a standard Windows copy operation.

14.6.4 Paste
Select Paste to perform a standard Windows paste operation.

14.6.5 Delete
Select Delete to erase the selected objects from the drawing. This command can be canceled using the Undo command.

14.6.6 Group
Static elements, such are rectangles and circles, can be grouped together.
To group static elements together:
 Drag the mouse cursor to create a rectangle that contains all the required elements, or
 Hold the “Shift” key while selecting items. If the “Shift” key is held down elements can be selected and de-
selected.
Once the required elements are selected, continue holding down the “Shift” key and “right click” on any selected item, the
Group option can be accessed.
The Group command is not supported for Dynamic Objects.

14.6.7 Ungroup
Select Ungroup to separate objects from a selected group in to individual components.

2VAA001149C 113
SPlus Operations Display Builder User Guide DYNAMIC OBJECTS

15. DYNAMIC OBJECTS


A Dynamic Object is a text or graphic drawing (simple or complex) that can change attributes based on value(s)/quality
status of linked tag(s).
When to create a dynamic object
 An existing template is not available
 The required functionality is not available as an existing global symbol
Dynamic objects can exist either within a global symbol or directly on the display.
A custom dynamic object can do a variety of specialized applications, below is partial list of possible functions,
applications and implementation suggestions.

Table 15-1: Possible functions of Dynamic Objects

Function Possible Application How to do it


Button Call displays Usually a DINP (input) diagram is used.
Do control Select an Action
rd
Call 3 party applications
Moving Object Dynamic Pointers DDYA (dynamic analog) diagram for simple apps.
Moving Belts DNNV diagram with script for advanced apps
Resizing Dynamic bars DNNV diagram with script
Color Change Pumps DDYN (dynamic digital) diagram for simple apps.
Valves DNNV diagram with script for advanced apps
Line or pipes
Permissive pages
Dynamic Text Alarm Indications Digital Status template
Selected Modes DALF (alphanumeric) diagram for simple apps
DNNV diagram with script for advanced apps
Toggling Pictures Fancy Pumps DNNV diagram with script
Fancy Valves
Hiding/Showing Alarm Indications DDYN (dynamic digital) diagram for simple apps.
Objects DNNV diagram with script for advanced apps

15.1 Default Name of Dynamic Objects


A default name VARn is assigned automatically when a dynamic is assigned to an object; n is a progressive number
automatically generated to create a new object name. You can change this name using the Element Name option.

15.2 Default Attributes of Dynamic Objects


When an object or group of objects is made dynamic its default diagram type is a DNNV a multi-variable diagram. Other
diagram types can be selected.
With exception of a DINP, input diagram which is used for button applications, all diagram types require tags.
For dynamic object on displays the tags names are fully defined. For dynamic objects used on global symbols placeholder
can be used. The placeholders allow the symbols to be used generically and the tag names are then passed once the
global symbol is defined the display.

114 2VAA001149C
SPlus Operations Display Builder User Guide ACTIONS

15.3 Linked Tags of Dynamic Objects


Normally the tag names are not defined in a global symbol, instead placeholders are used. Up to 10 placeholders are
supported. The default syntax for the placeholder is:
 %TAG% to identify the first tag.

th
%TAG1% to identify the second tag, up to %TAG9% to represent the 10 tag.
There aren’t limits on a number of different tags referenced in a symbol; of these tags you can use a limitless number of
atoms.

16. ACTIONS
16.1 Introduction to Actions
An action can be:
 Moving the present display or popup to a different display or popup
 Open a secondary window
 Closing the present display or popup
 Launch a popup
 Do a direct control operation, (rather than doing it in a popup)

rd
Call a 3 party application
 Call a drop down menu
Actions can occur when:
 A display or popup is opened
 A display or popup is closed
 An area of the display, usually a button, is “Clicked”
Actions that are launched when the display is opened or closed are defined in the display header.
Actions that are launched when an area of the display are “clicked” are defined in the dynamic itself.
From a display it is not possible to launch an action based on a state change or a timer. Some options to do this include:
 The Calculation Package
 Event bits defined in the tag database and an API program
 A scheduled or event driven report

16.1.1 Actions on the Display Header

The display header is accessed by the Header button.


Typically the display header is not used for actions. Applications that have been done include:
 launch a dedicated popup with a specific display
 for IEC 60870-5-104 popups issue a Select before Operate command when the popup is called, and issue a
“De-select” command when the popup is closed

rd
launch a 3 party application when a specific display is called
 The header definition does not show a “Load Page” option, but it is possible to launch a secondary window using
the PWCHILD command.
 To load a trend page or an alarm group, as a secondary page, you must use PWCHILD as an active program
 The “Active Program” offers the option to call one program, if more than one program needs to be called then a
batch file or script could be launched.

2VAA001149C 115
SPlus Operations Display Builder User Guide ACTIONS

16.1.2 Actions on a Dynamic Object


Actions are defined on the General Diagram tab of Diagram Dialog, and then the Action Tab is selected.

Figure 16-1: General Diagram Tab


The Action tab offers the following are the actions available.
 Load Page - For Diagrams only.
 Remove Page - For Diagrams only.
 Active Program - For both Headers and Diagrams.

16.1.3 Load Page


Use Load Page to change a page on S+ Operations Explorer, or to show a secondary page.
 Set attributes by selecting Load Page on the associated action list.

Figure 16-2: Load PageChange Page Action Type


Use Change Page Action Type to select the way a Graphic Display will be loaded:

Table 16-1: Action Type Description

Action Type Description


116 2VAA001149C
SPlus Operations Display Builder User Guide ACTIONS

Data Backward Change accessed data (for File access only).


Data Forward Change accessed data (for File access only).
Page Backward Call page defined as Page Backward in the
Header.
Page Forward Call page defined as Page Forward in the Header.
Page Name Call defined page.
Page Previous Call previously displayed page (temporal order).
Recall Saved Page Display previously saved page
Save Page Save current page to recall it with the Recall action.

Page Name
If you select Page Name as the Change Page Action Type, you must specify the name of the Graphic Display to load.

Load a page as a secondary one


Select Load a page as a secondary one to load the specified display page. A chevron defines a secondary page.
Since S+ Operations Explorer manages all change page actions on the primary page, this option is only available for the
Page Name option of Change Page Action Type.
A secondary page is loaded as a sub-window to the currently displayed page. You need to enter the coordinates to
position the secondary page.
Low Left X (LLX) position.
Low Left Y (LLY) position.
Upper Right X (URX) position.
Upper Right Y (URY) position.
These values define the position of the window corners on the secondary page. The values are not absolute values; they
are used to re-scale the window dimension proportionally to the page dimension.
The range of values for the X and Y coordinates are:
X position: 0 - 800
Y position: 0 - 600

To use the dimensions defined in the Header of the secondary page define: LLX = URX and LLY = URY

16.1.4 Remove Page


Use Remove Page to close a loaded page. At run time this action is only enabled in a secondary page definitions in order
to remove the secondary page.

16.1.5 Active Program


Use Active Program to make an application or system program active.

Figure 16-3: General Diagram Info - Active Program Sub-window

Par Int
An integer value can be defined to be passed as parameter to the activated program.

Extra Par

2VAA001149C 117
SPlus Operations Display Builder User Guide ACTIONS

A string of parameters can be defined to be passed as command string to the activated program.

Prog Name
Prog Name is the name of the program to be activated. It can be either an executable or a command program.

16.2 Add/Remove Actions


Actions can be applied to Diagrams or to Headers.
 The method to add or remove actions is the same for both Headers and Diagrams. Only the layout of displayed
information is different.

16.2.1 Activation Keys


You can set up shortcut keys that can be used to activate actions.
 Activation Keys are local to the display and are only available is the display how the Window’s focus.
 Overall system wide activations keys can be defined, in the S+ Operations menus. These activation or hot keys
are usually reserved to function keys (F1 to F12).
Activation keys can only be used with Diagrams, not Headers.

 Click the Activation Keys tab to define additional shortcut keys for the action.

Figure 16-4: General Diagram Info - Activation Keys


Shortcut keys can be defined using either one or two keys:
Select First Key to define the first key to press.
 If Second Key is not defined then the First Key will be the only key required to activate the action.
Select Second Key to define the second key to press.
 If Second Key is defined then both the First Key and then the Second Key must be pressed in sequence to
activate the action.

118 2VAA001149C
SPlus Operations Display Builder User Guide GENERIC OPTIONS

17. GENERIC OPTIONS


The Generic Options dialog is called when a dynamic object is “double-clicked”.
 The Generic Options is used to change the tags linked to the object.

Figure 17-1: Generic Option

 A similar dialog box is displayed whenever you new object is created.


 The Tag Selection (n) field displays the amount of tags linked to this Dynamic Object, where n is the number of
linked tags.

17.1 Defining Tags Using a Suffix


For applications where the database tags use common names (like PV-TAG-01, PV-TAG-02...) you can define two
Windows registry keys to store the suffix names.
APPS\IbDisp\SizeSuffix
APPS\IbDisp\StartSuffix
StartSuffix defines the position (base 1) of the first character of the sub-string.
SizeSuffix the number of the characters in the suffix name.
When these registry keys are defined the Tag Definition dialog box will display the suffix name as the Tag Name.

IT
See the Inform S+ Operations Installation Manual for information about Windows registry keys.

Tag Name (Suffix)


Tag Name defines the order of the tag.

The Tag Name text box shows the name of the tag. This is an alphanumeric string. The tag name is uniquely identified in
the tag database.

To change the tag name enter a new name, or use the browse button (...) to access the Tag Browser.

17.2 Activation Keys for Generic Options


Use Activation Keys to define the keyboard buttons associated with the action of the left mouse button.

2VAA001149C 119
SPlus Operations Display Builder User Guide GENERIC OPTIONS

Figure 17-2: Activation Keys for Generic Options


Two keys are available:
 First to activate the action using a single keyboard button.
 Second to activate the action using the sequence of the first and second keyboard buttons.

Extra Parameters
Use Extra Parameters to define any extra parameters associated to the action:
 If the action is a Load Page you can define a page name.

 If the action is an Active Program (the program name is displayed in the title) you can define the program
parameters.

 If the action is an Active Program and the program is a system program using a single tagname (PRCMAN,
OPERPA, PRCBTN, PRCCMD, PRCCM1, DBDISP, ACKNWL, MYSELF), the program name is displayed as title:
if the tagname used as program parameter is not equal of the tagname used for the dynamic, the field is enabled
and includes the tagname, else is disabled.

 If the action is an Active Program and the program is the system program PRCBTN used to execute multi
commands, the program name is displayed in title and the field is disabled.

Details
Click Details to access to the Action details. The specific action is associated to the selected object is displayed.

First Text
Use First Text to change the first text string in the selected object, if a text string exists.
This text can be used to change a text object in a group without using the Ungroup command.

120 2VAA001149C
SPlus Operations Display Builder User Guide MACRO SYMBOLS

18. MACRO SYMBOLS


A Macro Symbol is a particular group of objects. Macro Symbols are usually used to group Dynamic Objects that use the
same tag name. The tag name can be defined by double-clicking the Macro Symbol.
For example, to create a Macro Symbol to display the following information:
TAGNAME - TAGDESCRIPTION - VALUE
 Use the template tool to configure the three components

Figure 18-1: Template tool

 Place the three individual components in their require location.

Figure 18-2: Template components

 Combine to make a Macro Symbol

 Select all the required dynamic symbols and click the Transform to Macro Symbol button.

Figure 18-3: Transformed to Macro

 You can then double-click the Macro Symbol to enter a new tag name. This tag name will be automatically
assigned to all single objects in the Macro Symbol.

Figure 18-4: Tag name for Macro Symbol


2VAA001149C 121
SPlus Operations Display Builder User Guide MACRO SYMBOLS

 All objects of a Macro Symbol are included in a specific rectangle named SYM_GROUP.

 The Split Macro Symbol Button is used to split the group in to single objects. After saving the drawing,
the Macro Symbol will be recreated with the original group of objects.
 Macro Symbols are useful for creating table of values.

18.1 Border Color of the Macro Symbol (SYM_GROUP)


The color of the “boder” is used to identify the status of the linked tags with following rule:
 black - all linked tags are valid
 blue - one or more of the linked tags are not defined in the Data Base: you have to check all tagnames to identify
the invalid tag(s).

122 2VAA001149C
SPlus Operations Display Builder User Guide GLOBAL SYMBOLS

19. GLOBAL SYMBOLS


A Global Symbol is an object that contains one or more objects (static or dynamic). which constitute the graphic
representation of one particular part of the plant or equipment.
The purpose of a Global Symbol is to provide a common method to display and animate all the plant devices of the same
type (switches, pumps, engines, etc.). The Global Symbol also allows easier management of common display elements.
Moving the mouse on a global symbol, its name and linked tags are shown in the status bar.

19.1 To Create a New Global Symbol

 In the Display Builder select the New button

 On toolbar, click Header button


 In the Header tab, select Symbol for the Display type
 Click OK.
 On the standard toolbar click AddToSys. The new symbol will be available for configuration.
 Save the Global Symbol.
Display Builder does not provide a method to distinguish Global Symbols from other types of graphic pages.
To identify Global Symbols easily it is a good practice to add a prefix to all Global Symbol names, such as
SYM_. You can also store all Global Symbols in a dedicated folder.

19.2 Additional Attributes for the Global Symbols.


For a Global Symbol it is possible to define some additional option to customize the parameters used in the scripts of the
objects included in the symbol.
 In the Header Page tab, when the SYMBOL check is selected, is displayed an additional button named SYMBOL
Attributes.
 When selected is activated a dialog to define/change the attributes of the global symbol.
 The page as shown above is displayed. Click on Add/Manage to define a new attribute

Figure 19-1: Global Symbols - Global Symbol Attributes – Add/Manage

 Click OK to add the new item.

2VAA001149C 123
SPlus Operations Display Builder User Guide GLOBAL SYMBOLS

Figure 19-2: Delete Item

 In the script you can use the item COL_IF_BAD to change a color attribute of the object (for example
object.foregroundName = COL_IF_BAD; as default the color will be “cyan”).
 Click on the value of an item to change it.
When the default value of an item of a global symbol already used in some display, in the display the value will
be maintained the old value (for example, if you change in the header of the global symbol “cyan” to “red”, in
the displays where the symbol is already included will be maintained “cyan”
 You can use Delete Item to remove an unused item from the list. Click OK to assign the defined attributes to the
global symbol.

19.3 To Modify a Global Symbol


 You can modify Global Symbols in the same manner that you modify other objects.
 After making changes, click AddToSys on the standard toolbar to activate the modifications.

19.4 To Insert a Global Symbol in a Graphic Page


To insert a Global Symbol in a Graphic Display click Global Symbol in the Objects toolbar:

Figure 19-3: Insert Global Symbols


124 2VAA001149C
SPlus Operations Display Builder User Guide GLOBAL SYMBOLS

 Select a Global Symbol from the list of all available Global Symbols.
o A preview of selected Global Symbol is displayed.
o Click OK or double-click the symbol name to add it to the Graphic Display.
 Specify the name of the tag (or the tags) to animate the symbol.
 Customize the attributes of the symbol, (for example text for buttons)
 Click OK.
 Position the new symbol on the Graphic Display.
 The new symbol will be included with a rectangle as border; the color of this rectangle is used to identify the status
of the tags linked to the symbol:
o black = all linked tags are valid
o red = the number of linked tags is changed

19.5 Customize the Global Symbol Attributes


If you have configured some SYMBOL attribute or if the global symbol includes only rotatable objects, the Generic
Options window will include an additional button named Global Symbol Attributes.

Figure 19-4: Select Global Symbol Attributes

 Selecting this button displays a window to customize the defined symbol attributes.

2VAA001149C 125
SPlus Operations Display Builder User Guide GLOBAL SYMBOLS

Figure 19-5: Global Symbol Attributes


Following fields can be shown in the list :
Attributes/ROTATE - is shown only if the symbol includes all rotatable objects.
Details/Name(s) - is shown only if some Details Item has been defined for the symbol.
 Clicking on the values of the items is possible to customize the values for the selected symbol.
 After to OK, the selected ROTATE value will be applied to the symbol; the Details will be applied run-time when
the script wil be executed.

19.6 Border Color of the Global Symbol


The color of the “border” is used to identify the status of the linked tags with following rule:
 black - all linked tags are valid
 red - in the Global Symbol the number of linked tags has changed; you have to check all tag names to verify if are
defined in the right way.
 blue - one or more of the linked tags are not defined in the Data Base: you have to check all tagnames to identify
the invalid tag(s).

19.7 Resizing Global Symbols


You can define Windows registry keys to control how Global Symbols are resized.

To Retain the Original Size


 Set the registry key FixedGblSymSize = YES to retain the original size.
 You can change the size of the Global Symbol, but when you save the Graphic
 Display the Global Symbol will be resized to the original size.

To Allow Resizing Global Symbols


Set the registry key FixedGblSymSize = NO to allow resizing Global Symbols.

All graphic objects in a Global Symbol will be resized except for text.

19.8 Managing of Tag Names in Global Symbols


A Global Symbol normally is not linked to a particular tag when is created. Instead it refers to a generic tag. Generally the
real tag name is specified when the Global Symbol is added to a Graphic Display.
126 2VAA001149C
SPlus Operations Display Builder User Guide GLOBAL SYMBOLS

The name of the generic tag is %TAG%. You can append the name of an atom to generic tag, for example:
%TAG%.atomname.
The animation of a Global Symbol can depend on any or all of these attributes:
 A tag (%TAG%).
 The associated atoms (%TAG%.atomname).
 On many tags (%TAG%, %TAG2%, … %TAGn%).
Each Global Symbol can reference up to unlimited number of different tags. It is also possible for each tag to reference
additional information.

Different Methods for Managing Tags


Two examples are provides below of different management methods for tags.
Example 1: A Global Symbol that uses two different tags to animate the color of an object.
When the Global Symbol is created the generic tags will be called:
 %TAG% for the first tag.
 %TAG1% for the second.
When the Global Symbol is added to a Graphic Display you can define the two real tag names. You must replace:
 %TAG% with TAGNAME1
 %TAG1% with TAGNAME2.
Example 2: A Global Symbol that uses two different atoms to animate the color of an object.
In this example there are two atoms associated with the same tag. When the Global Symbol is created the generic tags
will be called:
 %TAG%.atom1.
 %TAG%.atom2.
When the Global Symbol is added to a Graphic Display you can define only one real tag name. You must replace:
 %TAG% with TAGNAME1.

19.9 To Change the State of a Global Symbol


When a Global Symbol is modified, it is possible to update its state in one or more of the Graphic Displays that refer to the
Global Symbol.

To Update One Graphic Display:

 After modifying the Global Symbol open the Graphic Display and then click the Save button and the

“Add To System” button.

To Update Multiple Graphic Pages:


 From the toolbar click the right side of the Save button then select “Add to System”.

Figure 19-6: Add to System


2VAA001149C 127
SPlus Operations Display Builder User Guide

 Select all files that relate to the Graphic Displays that include the Global Symbol. Click OK.

19.10 Tips for Correct Use of Global Symbols


As described above, a Global Symbol can refer to one or to multiple tags. Each tag can be addressed by specifying atom
names.

Note that whenever Global Symbols are changed, the total number of tags cannot be changed.

These are some hints concerning modifying Global Symbols.


 Global symbols with one tag can be modified in any way, as long as the number of tags is not modified.
 If you change the number of tags in a Global Symbol, and the Global Symbol is included in Graphic Displays, the
border of the Global Symbol will be red when you open the Graphic Display.
o You will need to manually re-check all tags associated with the Global Symbol.
 The reordering of objects associated with a Global Symbol with multiple tags can causes problems. Links to tags
can become invalid. Make sure to manually re-check tag definitions in each instantiation of the Global Symbol.

20. PLANT LIBRARIES


A Plant Library is a read-only storage area for global or local dynamic symbols.
When you configure a Graphic Display you can open a library, select an object and copy or drag the object to the Graphic
Display.

20.1 To Create a Plant Library


To create a Plant Library follow these steps:
 Set the Windows registry key APPS\IbDisp\SYSMGR to YES AUTOLIB: YES to enable the Add To Library
function, AUTOLIB to enable the multi-selection on the global symbols list.
 Create or open to modify a Graphic Display.
 Execute the procedure to insert a global symbol in the display, but select more than one symbol; after the click on
the OK button, all selected items will be automatically added to the current display, ordered from top left to right,
row by row, without any request to specify the tag names.
 Save the Graphic Display. The name of the Graphic Display will be the name that will appear in the list of the
available libraries.
 Select Add to Library from the File menu. The Graphic Display will be added to the directory of the graphic
libraries.
Click Plant Libraries on the Symbols toolbar to show all libraries.

20.2 To Delete a Plant Library


To delete a Plant Library you must delete all files with this name:
LIB_*name.* files
Here, name is the name of the library. The folder for storage of library files is defined by the Windows registry key
XA_SYMBOLS.

20.3 Tips for the Use of the Plant Libraries


All global symbols included in the Plant Libraries, can be removed from system using specific function.
I this way, these global symbols will not be visible in the list of configured, but their replacement, during the load and save
procedure of the displays, will be skipped.
When a global symbol included in a Plant Library and removed from system, will be changed, you will have to:
 Open, modify, save and Add to System the global symbol.
 Make Add to Sys of all displays (included also the displays used to generate the Plant Libraries) that use the
changed symbol.
 Make Add to Library of the displays used to generate the Plant Libraries.
128 2VAA001149C
SPlus Operations Display Builder User Guide PLANT LIBRARIES

 Use the function “Remove from system” to delete the executable files of the modified global symbol.Customized
Faceplates

20.4 Standard Faceplates


Standard Faceplates are distributed with the S+ Operations system to display and control the plant tags.
The Faceplates are managed by the PRCTRL program. They are distributed in Text Format (display/spg) and in
Executable Format (display/bin).

20.5 Customized Faceplates


You can change Faceplates to customize them for your system. To customize the Faceplates:
Activate the EIXCMP program to export the standard Faceplate files in to editable format. These files will be stored in the
display/work folder.
 Open the Graphic Display with the Display Builder.
 Select Save As from the File menu to create the new Faceplate
o If you put the prefix POP_ on the name of the file, the file will be displayed in the selectable faceplates
list during database configuration.
 Customize the Faceplate, save and add it to system.
The new Faceplate is available to be used with your tag.

20.6 Faceplate Display Areas


Inside a Faceplate display there are three areas identified by rectangles:
 #WVP rectangle - An area that includes all objects that will be displayed on Faceplate activation.
 #WVP1 rectangle - An area that includes all objects that will be displayed on TOGGLE command. This is normally
used to display addition information about a tag.
 #WVP2 rectangle - An area that includes all objects that will be displayed when the “only commands” Faceplate is
requested (using the PRCCMD program name in the display action).
The run-time size of the Faceplate is a function of the size of WVP rectangle and of the dimensions defined in the Header
of the Faceplate.

2VAA001149C 129
SPlus Operations Display Builder User Guide PARAMETRIC DISPLAYS

21. PARAMETRIC DISPLAYS


Parametric displays are pages that include Dynamic Objects with tags that can be specified at run time during a Load
Page action.
Tag names in parametric displays can be an existing point. You can also indicate only a part of the tag name with a suffix
that will be specified on a Load Page action.
 See the Action Section for more information on the Load Page action. Parametric displays can be used when you
need two identical displays where:
 One display will be used to present the tags of Plant1.
 One display will be used to present the tags of Plant2. You can define the names of tags in a database as follows:
 Plant1 = 1nnn.
 Plant2 = 2nnn.
You only need to create one display. The tag names can be defined with the wildcard characters %TAG%nnn.
On the Load Page action you can define the call pages as follows (this is case sensitive):
T=1 for Plant1.
T=2 for Plant2 .
You can specify the suffix names using:
 %TAG% wildcard characters for the first name.
 %TAG1% for the second name, etc.
The limit for the maximum number of characters is:
 80 for the Faceplate parameter in the database.
 31 for Load Page action definitions.

21.1 Cascading Pages


When you have a “cascade” of pages with parametric tagnames, you can only specify the parameters for the first page.
If no parameters are specified, the same additional parameters will be added to the following page names.
You can use the syntax ,T== for a parameter that will be unchanged from the previous display. This option can be useful
for “cascading” pages that have different origins.
For example:
Page P_A is called with P_A,T=1,T=AA,T=BB and from P_A, page P_A_A is called with
P_A_A,T==,T=XX,T=YY P_A_A will display the tags for Plant1
Page P_A is called with P_A,T=2,T=AA,T=CC and from P_A, page P_A_A is called with
P_A_A,T==,T=XX,T=YY P_A_A will display the tags for Plant2
The Faceplates managed by the PRCTRL program are parametric displays, where the first (and normally the only)
parameter is the complete tag name.
For example, when you choose Prctrl.pop_ana for the tag PV-TAG-01 in the Faceplate field of the database, the control
display will automatically be called with POP_ANA,T=PV-TAG-01.
You can also create customized Faceplates that use more than one parametric tagname. If you enter a Faceplate in the
database field as follows:
Prctrl.pop_ana,T=AA,T=BB
The control display will be loaded with:
POP_ANA,T=PV-TAG-01,T=AA,T=BB
In the Faceplate the wildcard characters %TAG% will be resolved with the complete tagname (PV-TAG-01), %TAG1%
with AA and %TAG2% with BB.

In the parametric displays is better to check the “NO HISTORY” flag in the Header, because if the page is
called without specifying the plant number all tags would be unresolved.

130 2VAA001149C
SPlus Operations Display Builder User Guide PARAMETRIC DISPLAYS

21.2 Add to System

The primary role of the Add to System button is to enable Graphic Displays for presentation on the S+ Operations
system.
The following additional options are available with the “Add to System” button:
 Tag list log
 Display distribution

21.3 Tag List Log


The Windows registry key APPS\IbDisp\TagListLog manages the output of the list of the tag used in the display.
If is set to YES, the Add to System option will create a log file in the Eix_bin folder; the file is named dispname.LOG. and
includes a list of all the tags used for the variables in the Graphic Display.
The list does not include the tags used for actions.
Alternative the utility TNTDisplayUpdTag.exe can used. TNTDisplayUpTag will:
 List undefined tags
 List used tags
 List actions
 List display links
 List static text

21.4 Displays Distribution


You can use the Displays Distribution option to automatically distribute executable files to other systems connected on a
network.
This feature allows you to maintain the “source” of all Graphic Displays on one centralized PC.
To configure your system for distribution:
 Set the Windows registry key APPS\IbDisp\UpdateServers is set to YES,
 Define registry keys named Servern (where n is a progressive number 1 based). These string-type entries specify
the names of the client or multimaster PCs to update.
When you select Add to System from the File menu, the Display Builder activates a procedure to copy the executable
format files from the local folder Eix_bin to the Eix_bin folders of all the designated systems.

21.5 Export for WEB


You can use Add To System to create XML output files for the WEB utility.
Activate TNTXML
First make sure that the TNTXML program is active. To do this:
 The S+ Operations system must be active.
 The WEB extensions must be licensed.

Create an XML file


You can then create an XML format file. Select Add to System from the File menu.
S+ Operations will create an image in XML format from the static part of the Graphic Display. The file is called
displayname.tnt, and is stored in the \xml web folder.
The WEB utility uses this file to display the background of the page before requesting an update of the Dynamic Objects in
the Graphic Display.
If this file does not exist, the WEB utility will first request the background, and the the update (after each refresh) of the
Dynamic Objects.

2VAA001149C 131
SPlus Operations Display Builder User Guide PARAMETRIC DISPLAYS

21.6 Tag Browser


Use the Tag Browser to find the configured tags. To access the Tag Browser, click this button:

 All configured tags are listed on the right. You can select an alarm group, perform a query, or you can enter the
tag name directly using Enter tag name.

Figure 21-1: Tag Browser

 Select the tag name, and then click OK to assign the selected tag to your object.

132 2VAA001149C
SPlus Operations Display Builder User Guide HEADERS

22. HEADERS

22.1 Introduction
The Header contains general information such as: display title, display security level, page size, page modifications, etc.
All information is organized in two tabs: General Diagram Info and Header Page.

22.2 General Diagram Info


Click the General Diagram Info tab to display information about actions:

Figure 22-1: Edit Header-General Diagram Info

22.3 Header Page


Click Header page to display details about the Header.

2VAA001149C 133
SPlus Operations Display Builder User Guide HEADERS

Figure 22-2: Edit Header- Header Page

22.3.1 Page Title


Page Title is an alphanumeric string containing the title that will appear in the S+ Operations Explorer toolbar.

22.3.2 Type
SYMBOL
 Select SYMBOL to designate that the current Graphic Display is a Global Symbol.
 A Global Symbol can be used to define a specific animated object that will be included in more that one Graphic
Display.

History
If History is selected when you open this Graphic Display in S+ Operations Explorer the name of the Graphic Display will
be added to the list of recently opened files.

No History
If No History is selected you open this Graphic Display in S+ Operations Explorer the name of the Graphic Display will not
be added to the list of recently opened files.
This Graphic Display will be only loaded using:
 The Page By Name function.
 The Load Page command in the S+ Operations Explorer menu.
 A Load Page action.

134 2VAA001149C
SPlus Operations Display Builder User Guide HEADERS

22.3.3 Keep Ratio


 Select Keep Ratio to present the Graphic Display with the ratio aspect. The Graphic Display will be shown on the
screen using the maximum available area. The x/y factor defined in the #WVP object will be maintained.
 If this option is cleared, and if the Windows registry key KeepRatio is set to NO, the page will be displayed using
all the available area, ignoring the initial size of the #WVP object. In general these Graphic Displays will appear
“stretched”.

22.3.4 Scroll Bar


Select the Scroll Bar option to present the Graphic Display using the scroll bar.
 The Graphic Display will be shown on the screen using the size of configured area (size of the #WVP object). The
scroll bar will be displayed if the dimension of the Graphic Display is greater than the dimension of the screen.
 You must select Scroll Bar if you want to use the zoom options of S+ Operations Explorer.

22.3.5 Multilanguage
Select Multilanguage to execute the translation of all text in the currently selected language. This will occur during a Load
Page action on S+ Operations Explorer.

22.3.6 Security
This box contains two fields.
 Level is a numeric value in the range 0 to 16 representing the security level to access the Graphic Display. Only
S+ Operations users who have a greater security level can gain access to the Graphic Display. Use the
increment/decrement arrows to change the value.
 Group is a numeric value in the range 0 to 16 representing the security group entitled to access the page. Only
S+ Operations users who are members of this group can gain access to the Graphic Display. Use the
increment/decrement arrows to change the value.

22.3.7 Page
 Fwd: defines the name of a Graphic Display for forwarding. The forward page can be activated using the Page
Forward action. This is an alphanumeric string with a maximum length of 31 characters.
 Bck: defines the name of a Graphic Display for moving backward. The backward page can be activate using the
Page Backward action. This is an alphanumeric string with a maximum length of 31 characters.

22.3.8 Modifier
Use Page Mod to define a page modifier. You can access a file and define a pointer to a word to be read in the file.

22.3.9 Window Dimensions


Use Window Dimensions to define the dimensions of the display when the display is loaded as a secondary page.
If the activation commands of the secondary page map the coordinates:
URX to LLX.
URY to LLY.
The secondary page will be located in the following position:
LLX = specified value for LLX.
LLY = specified value for LLY.
URX = LLX + width.
URY = LLY + height.
If the activation command of the secondary page does not map these coordinates, the window size is defined by the
activation command.
Width: defines the width of the secondary page.
 The maximum supported width is 800 pixels.

2VAA001149C 135
SPlus Operations Display Builder User Guide HEADERS

Height: defines the height of the secondary page.


 The maximum supported height is 600 pixels.

22.3.10 Network Configuration


Network Configuration show a string with nodes where the display is deployed.

136 2VAA001149C
SPlus Operations Display Builder User Guide DIAGRAMS

23. DIAGRAMS

23.1 Introduction to Diagrams


Diagrams are graphic components that are built into Display builder. Each Diagram type has a specific application or use.
The application will also define the type of data accessed.

Type Description Data that can be accessed


DALF Alphanumeric Diagram Real time values
Database fields
DNNV Multivariable Diagram Real time values
Database fields
DINP Data Input Diagram Can change color based on a tag’s quality
DDYN Dynamic Digital Diagram Usually for real time digital values
DDYA Dynamic Analog Diagram Usually for real time analog values
DTRN Trending Diagram Playback history
DXYP XYPlot Diagram Real time and historical values
DRDR Radar Diagram Real time values
DALL Alarm List Diagram Alarm Values

23.1.1 Real Time Values and Diagrams


 To show real time values the template tool button, with “Analog Value” option is the easiest method. Similarly for
digital status indications the “Digital Status” option can be used.
 To create a custom presentation either the DALF or DNNV Diagrams can be used.
 The Diagram is the element that defines the “graphic type” of a Dynamic Object. The Diagram definition is
organized in two tabs: General Diagram Info and Specific Diagram.

23.1.2 Historical Values and Diagrams


Historical values can be shown as Trend Values using the DTRN Diagram. There is no Diagram type to show a specific
historical value on a display. To meet this functionality a calculation tag would be created that accessed the required
historical data at the required tag. For example to show a single value of the Plant Megawatts last hour, a calculation tag
would be create that accesses this historical data. The calculation tag would then be used like a “real time” tag.

23.1.3 Alarm Information and Diagrams


Alarm information can be shown in a number of formats:
 Alarm Summaries can be shown using a DALL diagram
 Individual tag alarm information can be shown using either a DALF or DNNV

23.1.4 Database Fields and Diagrams


Virtually every field in the tag database can be accessed by either DALF or DNNV.
Some common fields accessed are:
 Engineering Units
 Tag descriptions
 Analog limit ranges such as: Low, Low-Low, High, High-High
 Alarm Comments
 PCU, Module, and Block information
When a new Diagram is created, the default field is the tag value. To access a different field, select the Var tab in the
Diagram dialog, and then select a new field from the Information code dialog.
Most of the key fields are available in the Information Code field.

2VAA001149C 137
SPlus Operations Display Builder User Guide DIAGRAMS

Additional fields can be accessed by selecting:


 DB_INFO_PAR in the Information Code,
 DB_INFO_PAR_STRING in the Information Code, (For string values).
 DB_INFO_PAR_STRING_EX in the Information Code, ( For extended strings)

Figure 23-1: Database fields and Diagrams


There are also system parameters that can be accessed, examples of these are:
 Name of connected server
 Logged in user
 Server status
 Time and date
To access the system parameters select: DB_INFO_SYI in the Information Code.

138 2VAA001149C
SPlus Operations Display Builder User Guide DIAGRAMS

Figure 23-2: System Parameters in the Information Code

23.2 Diagram Considerations


When developing graphics there are many choices make.
Some considerations that should be evaluated are:
 Check if the graphic is a prototype. For prototypes reduce engineering hour by not using DNNV with script.
 Check the colors change in the future, if not use DDYN for digital symbols instead of DNNV.
 Check if the customer needs to change the symbols, if so try to reduce the amount of script used.
Some recommendations:
 Where possible try to use a DDYN symbol (with no script) instead of a DNNV with script.
 Where possible try not have symbol call other symbols.
 Where possible try a few smaller dynamic symbols rather complex grouped objects with complex script.

23.3 General Diagram Info


Click the General Diagram Info tab to display information about a Diagram:

2VAA001149C 139
SPlus Operations Display Builder User Guide DIAGRAMS

Figure 23-3: General Diagram Info

Diagram Name
Diagram Name is a unique name within the Graphic Display. It is automatically assigned when the Dynamic Object is
created.
The Diagram Name cannot be modified here. You can change the Diagram Name by changing the name of the object.

Diagram Type
Select the type of the Diagram from the list:

Table 23-1: Diagram Type Description

Type Description Configure Variables Max. Variables


DALF Alphanumeric Diagram Needed 1
DNNV Multivariable Diagram Needed 10
DINP Data Input Diagram Not needed 0
DDYN Dynamic Digital Diagram Needed 1
DDYA Dynamic Analog Diagram Needed 1
DTRN Trending Diagram Not needed 0
DXYP XYPlot Diagram Not needed 0
DRDR Radar Diagram Not needed 0
DALL Alarm List Diagram Not needed 0

140 2VAA001149C
SPlus Operations Display Builder User Guide DIAGRAMS

Variables
Click Configure to change the number of the variables linked to the Diagram.

Figure 23-4: Diagram and Variable Management

 You can change the number of the variables that you want use to animate the object using the
increment/decrement arrows near the number of variables field.
 For each linked variable retrieved from the Real Time Data Base, is shown the linked tag and the Data Base info.

Visibility for not implemented


 Select Check for Visible to make the object visible when the linked tag is not configured. This object will be
managed as a tag with a status value of BAD.
 Clear Check for Visible to make the object invisible if the tag linked to this Diagram is not defined in the real-time
database.
This option is enabled only for DNNV, DALF, DDYN and DDYA Diagrams.

Action/Activation Keys
 Select the Action or Activation Keys tab to add actions to the Diagram. Actions allow you to perform optional
procedures during a run-time presentation.

23.4 DALF Diagram


The DALF Diagram type defines alphanumeric Diagrams.

2VAA001149C 141
SPlus Operations Display Builder User Guide DIAGRAMS

Figure 23-5: DALF Diagram

23.4.1 Format
Select the format of the output string from the Format list. Formats are listed in the table below.
Also enter the Format Type in the box to the right of the Format list.

Table 23-2: Format Codes

Format Example of Format Format Type


DATE DD-MMM-YYYY None
DATE_TIME DD-MMM-YYYY HH:MM:SS.MSEC None
DOUBLE 111.11 %f (f = type floating)
FLOAT 111.11 %f (f = type floating)
HEXA X0011 %X (X = type hexadecimal)
INT 111 %d (d = type decimal)
STRING TEXT %s (s = type string)
TIME_CENTISECONDS HH:MM:SS.mm None
TIME_DAYOFWEEK NNN None
TIME_MILLISECONDS HH:MM:SS.mmm None
TIME_SECONDS DDD HH:MM:SS None
TIME_WEEK WW None

142 2VAA001149C
SPlus Operations Display Builder User Guide DIAGRAMS

23.4.2 Output
Select the Output format from the Output list. Output formats are listed in the table below. Table6 Output specifies the
color of the displayed data along with quality status management.

Table 23-3: DALF Diagram - Outputs

Output Description
NO SUFFIX Only value - Color from BATTDECK file
OIS_COLOR Color management like OIS
OIS_COLOR_BLINK_ALARM Like OIS - Blinking if in alarm
OIS_COLOR_BLINK_ALARM_AND_NORMAL Like OIS - Always blinking
OIS_COLOR_BLINK_NORMAL Like OIS - Blinking if normal
STATIC_COLOR Static color
SUFFIX_NO_BLANK Dynamic color with qual (100.00HH)
SUFFIX_NO_VALUE Dynamic color only qual (HH)
SUFFIX_WITH_BLANK Dynamic color with qual (100.00 HH)

Colors and Quality Suffix


The colors and quality suffix are function of:
 The selected Output type.
 The script.
 The quality status of the linked tag.
If you select an Output format with the words “Like OIS”, you need to define the colors for foreground, background and
alarm in the script.
You can specify the color as an RGB number, or as a negative index using the following standard colors.

Table 23-4: DALF Diagram - Index Color Table

Index Color
0 Black
1 Red
2 Green
3 Yellow
4 Blue
5 Magenta
6 Cyan
7 White
A typical script for an OIS output type is:
fg_col = -2; // green if normal
bg_col = 0; // black color for background
al_col = -1; // red if alarm
object.string = value; // only for Text objects
object.foreground = fgc;
object.background = bgc;
The definition and use of foreground/background colors depends on the graphic object attributes.

Tag Priority
Colors and suffixes can be controlled by the priority of tags. You can use the
BATTDECK file to specify priorities for the single quality status color and suffix.
 See the S+ Operations Configuration Manual for additional information.
Tags with an undefined priority (0) will be set to the default priority colors and suffix. This default priority is defined in the
Windows registry key:
APPS\TntExplorer\UndefinedDefaultPriority

2VAA001149C 143
SPlus Operations Display Builder User Guide DIAGRAMS

If this registry key is not defined, the default priority will be set to 1. A typical script for these output types is:
object.string = value; // only for Text objects
object.foreground = fgc;
object.background = bgc;
The definition and use of foreground/background colors depends on the object attributes.

23.4.3 DALF Example


Example: Show the last time stamp beside the value.
Step 1: Add the value to the display
 For this step use the template button and the “Analog Value”.
 Select a tag and add the object to the display. Format the text Font as required.
Step 2: Add the time stamp object to the display
 For this step copy the value object and move it to the required location.
 Next “right click” on the object and select “Dynamic”.
 Change the Information Code to: DB_INFO_TIMESTAMP_TEXT.
 Also ensure to change the Format to STRING, (%S)
 The result should look like the following:

Figure 23-6: DALF Example

23.5 DNNV Diagram


The DNNV type defines multi-variable Diagram: this is the default Diagram type created when you transform to dynamic a
static object.

144 2VAA001149C
SPlus Operations Display Builder User Guide DIAGRAMS

Figure 23-7: DNNV Diagram

23.5.1 Number of Variables


The Number of Variables shows the number of the variables belonging to this multivariable Diagram. There is a maximum
of 10 variables.

23.5.2 Custom
Select Custom to manage the animation of the selected object using the script language. At run-time the following
information is available for each linked variable:
value Value of the tag (string or float as function of linked variable
fgc Foreground color in RGB format. It is retrieved from the BATTDECK configuration as function of current
quality of the tag.
bgc Background color in RGB format. It is retrieved from the BATTDECK configuration as function of current
quality of the tag.
blink Blinking flag. It is retrieved from the BATTDECK configuration as function of current quality of the tag (1 =
enabled).
badq Code to indicate the bad quality status of the tag
almq Code to indicate the alarm status of the tag
IsBad Flag to indicate the bad status of the tag (1 = BAD).
IsAlm Flag to indicate the alarm status of the tag (1 = ALARM).
IsToAck Flag to indicate the un-acknowledge status of the tag (1 = to be acknowledged).
 The names of the information are as described for the first linked tag.
 For any other tags (from second to tenth) the names will be formatted using the name followed by _n, where n is
the tag order

2VAA001149C 145
SPlus Operations Display Builder User Guide DIAGRAMS

For example, for the third tag the names will be:
value_3, fgc_3, bgc_3, blink_3, badq_3, almq_3, IsBad_3, IsAlm_3, IsToAck_3
You can use this information to animate your object. You can change the color, the blinking behavior, the position and any
other possible attribute of the object.

Table 23-5: DNNV Diagram - BADQ codes

Output Description
QGood Good status (IsBad = 0)
QSubs Inserted value (IsBad = 0)
QInib Alarms inhibited (IsBad = 0)

Table 23-6: DNNV Diagram - BADQ codes

Output Description
QDise Off scan (IsBad = 1)
QBad Chann. fail., Old, Bad calc. (IsBad = 1)

Table 23-7: DNNV Diagram - ALMQ codes

Output Description
NoAlm PV - No alarm
LowAl PV - Low alarm
HigAl PV - High alarm
Lo2Al PV - Low 2 alarm
Hi2Al PV - High 2 alarm
Lo3Al PV - Low 3 alarm
Hi3Al PV - High 3 alarm
LDvAl PV - Low deviation alarm
HDvAl PV - High deviation alarm
NoAl_0 DI - No alarm status 0
NoAl_1 DI - No alarm status 1
NoAl_2 DI - No alarm status 2
NoAl_3 DI - No alarm status 3
Alm_0 DI - Alarm status 0
Alm_1 DI - Alarm status 1
Alm_2 DI - Alarm status 2
Alm_3 DI - Alarm status 3

23.5.3 Output
Select the Output format from the Output list. Output formats are listed in Table below. For output type “like OIS”,

Table 23-8: DNNV Diagram - Outputs

Output Description
DYN_COLOR Foreground color from BATTDECK
DYN_COLOR_BG Background color from BATTDECK
NO_COLOR Color is unused
OIS_COLOR Color management like OIS
OIS_COLOR_BLINK_ALARM Like OIS - Blinking if in alarm

23.5.4 DNNV Example


Example: Average 2 readings if both good
Step 1: Add a Text Object and Format as required
Step 2: Select the Object, “right click”, then select “Dynamic”
Step 3: Configure 2 variables. Select the “General Diagram Info” tab and click the Configure button. Increase the number
of tags to 2.

146 2VAA001149C
SPlus Operations Display Builder User Guide DIAGRAMS

Figure 23-8: DNNV Configure


Step 4: Define the 2 tag names. For this select the two VAR tab and enter the tag names.

Figure 23-9: Define Tags toVariables


Step 4: Write the script to monitor the quality and do the average.
To add the script, “right click” on the DNNV object and select script. For this example the script would:

2VAA001149C 147
SPlus Operations Display Builder User Guide DIAGRAMS

object.foreground = fgc;
object.background = bgc;
// if both values good average the value
if (!isBad && !isBad_2) {
object.string = (value + value_2)/2;
} else {
object.string = "Both bad";
}
// if first value is bad use the second value
if (isBad) {
object.string = value_2;
}
// if second value is bad use the first value
if (isBad_2) {
object.string = value;
}

Notes:
 The ! character mean NOT
 The && means “AND”,
 isBad is the quality of tag 1 and isBad is the quality of tag 2
 value is the value of tag 1, value_2 is the value of tag 2

Figure 23-10: Script of DNNV Example


The result (with some added text) should look like:

Figure 23-11: Output of DNNV Example

23.6 DINP Diagram


The DINP type defines a data input Diagram.
148 2VAA001149C
SPlus Operations Display Builder User Guide DIAGRAMS

Figure 23-12: DINP Diagram

23.6.1 Normal
Select Normal to specify that the Diagram area will not be highlighted when it is selected at run time.

23.6.2 Keep
Select Keep to specify that the Diagram area will be highlighted when it is selected at run time.

Keep Option
If you select the Keep option, you must add special instructions in the script to manage the selection of the object:
 Unselected status (value = 0).
 Selected status (value = 1).
The following script shows an example of how to set a green rectangle when the object is not selected, and a red
rectangle when the object is selected:

Figure 23-13: DINP Diagram - Keep Script Example


At runtime the selected status (with a value = 1 in the script) will be automatically removed (with a value = 1 in the script)
when:
 Another object with the Keep option is clicked.
 A secondary page or faceplate is closed.

2VAA001149C 149
SPlus Operations Display Builder User Guide DIAGRAMS

23.6.3 DINP Example


Example: Create a button to call the operating parameters for a tag
Step 1: Add rectangle and give it shadowing.
Using either the Properties window or “right click” on the rectangle and select “Graphic Attributes”, change the Shadow
thickness.
Step 2: Make the rectangle dynamic and a DINP diagram type.
Step 3: Define the Active Program.
For the Active Program select OPERPA and then define tag name to be passed in Extra Par field.

Figure 23-14: DINP Example

23.7 DTRN Diagram


The DTRN Diagram type defines a trend object.
 The Template button and the Trend menu option will create a DTRN diagram.
 There are some important rules to remember when using DTRN diagrams:
 By default only the main tag is trended
o For OPC tags with Atoms, a CALC tag will need to be added for trended the ATOMS
o For Symphony stations, the Setpoint and Control Output are automatically saved. Use the syntax of
TAGNAME-SP and TAGNAME-CO
 High Instrument and Spans need to be defined or the tag will appear to be flat lined at 0
 The DTRN is a basic or primitive element, see the symbol library for advanced Trend symbols that include
scaling and legend information
The S+ Operations system contains a number of different trend chart options. Trends can be:
 Configured on a graphic using the DTRN diagram
 Configured as a Trend Group
 Configured in the S+ Operations Historian

150 2VAA001149C
SPlus Operations Display Builder User Guide DIAGRAMS

Table 23-9: Trend Options

Trend Option Advantage Disadvantage


DTRN Diagram on a Display  Can be integrated with display data  Cannot save history to a file
 Can use the display navigation  Cannot view history in table form
 Similar tag integration as displays  Base Diagram needs some added
configuration
Trend Group  Full featured trend  Cannot have display information
integrated in
 Can modify online
 No display menu integration
S+ Operation Historian  Full featured trend with added summary  Cannot have display information
information integrated in
 Web integration  No display menu integration

By default the DTRN has only one tag defined, and its time span is 1200 seconds.

Figure 23-15: DTRN Diagram

23.7.1 Layout
Select options to be displayed on the Diagram during run time:

Table 23-10: Layout Options

Time Displays the time axis.


Limits Displays scale limits.
Grid Displays a grid.
Date Displays the date on the time axis.

Defining Layout Using the Windows Registry


Others parameters for the trend layout can be changed by defining the Windows registry key called
APPS\TntExplorer\TrendDisplayMask.
0x10 - to show the selected tag parameters
0x20 - to enable the display of the cursor on mouse click
0x40 - to enable the display of the time and value cursor on mouse click
0x100 - to activate the “paused” trend
2VAA001149C 151
SPlus Operations Display Builder User Guide DIAGRAMS

0x200 - to enable the display of the main information of the trend


0x400 - to enable the display of the date
0x1000 - to display the trend curve in interpolate mode
0x2000- to enable the display of the markers
0x4000- to display the trend with a filled area
When this option is defined with one tag in the trend:
o The area between the curve and the time axis will be filled with the curve color.
When this option is defined with two or more tags in the trend:
o The area between first and second curve will be filled using the color of “lower” curve.
0x8000- to display the range of the tag at right of the trend
0x40000000 - to display the trends defined with a DTRN diagram in transparent mode

Using a transparent trend, you can insert an image as trend background but, run- time, zoom-in/out trend
actions will be executed only on the trend and nothing will be executed on the image.
If the APPS\TntExplorer\TrendDisplayMask registry key is not defined, all of the options are disabled (mask = 0).
The registry setting defines the parameters for all “DTRN” trends layout, but is possible customize single trend using the
script of the trend object.
In the script you can define the variable TrendDisplayMask that will be used to overwrite the value of the registry.
For example, to add the transparent option only on specific trend, add to the script following code:
DefMask = XXX; // value of your TrendDisplayMask registry
TrendDisplayMask = DefMask + 2^30; // registry setting + transparent
For example, to define a new trend layout filled, with right legend and transparent:
TrendDisplayMask = 2^14+2^15+2^30; // filled, right,transparent

23.7.2 Curves
Curves represent the number of tags to be displayed within the trend. The number of curves range is from 1 to 10.

23.7.3 Span
Span represents the span time of the trend (in seconds).

23.7.4 Color
Color defines the trend colors.
If the fields in this area are set to -1, the default trend colors defined in the APPS\TntExplorer Windows registry keys are
used.
Grid: represents the color index (range 0-63) of the trend grid.
Frame: represents the color index (range 0-63) of the trend frame.
BckGnd: represents the color index (range 0-63) of the trend “border”.
Text: represents the color index (range 0-63) of the trend scale.

23.7.5 Configuration Parameters


The Configuration Parameters area displays the data of defined curves.
Curve Color: defines the color (range 0-63) of the curve.
Var Name: defines the name of variable associated to the curve to be displayed on the trend. This parameter can
undefined when a tag name is used.
Tag Name: defines the name of the tag associated to the trend curve. This parameter can be undefined when a variable
name is used.
All curve Configuration Parameters can be set or modified by double-clicking the row that defines a curve. You can then
define the curve parameters:

152 2VAA001149C
SPlus Operations Display Builder User Guide DIAGRAMS

Figure 23-16: DTRN Diagram - Set Curve Parameters

Tag Name (check for IDPT)


 Defines the name of the tag
Select the IDPT option when an indirect access to the tag is done through a variable containing all the references.

Range
The presentation limits of the measure on the trend are defined by:
Low from DB: defines the low scale limit; if selected, the low scale limit defined in the tag database is used; otherwise, the
entered valid value is used.
High from DB: defines the high scale limit; if selected, the high scale limit defined in the tag database is used; otherwise,
the entered valid value is used.
Color: defines the color (range 0-63) of the curve. Enter the color index or click the button to open the color selection
table:

Figure 23-17: DTRN Diagram - Table of Colors

23.8 DXYP Diagram


The DXYP type defines a XY Plot Diagram. This type of Diagram does not require any configuration of variables in the
properties page.

2VAA001149C 153
SPlus Operations Display Builder User Guide DIAGRAMS

Figure 23-18: DXYP Diagram

23.8.1 Layout
X Limits: enables the display of the scale on the X axis.
Y Limits: enables the display of the scale on the Y axis.
Grid: enables the display of the grid.
X Tics: defines the number of tics on the X axis.
Y Tics: defines the number of tics on the Y axis.
Curves: defines the number of curves to be displayed in the XY Plot
 The number of curves range is from 1 to 10.
Type: defines the type of the XY Plot; the types are listed in the table below.Table11

Table 23-11: DXYP Diagram - XY Plot Types

Type Description
NORMAL Independent curves on filled background
NORMAL_TRANSPARENT Independent curves on transparent background
LINKED Linked curves on filled background
LINKED_TRANSPARENT Linked curves on transparent background
FILLED Linked and filled area between first two curves on filled background
FILLED_TRANSPARENT Linked and filled area between first two curves on transparent background
NORMAL_NO_LINKED Independent points on filled background
NORMAL_NO_LINKED_TRANSPARENT Independent points on transparent background

23.8.2 Color
Defines the colors of the XYPlot frames.
If the fields in this area are set to -1, the default trend colors defined in the Windows registry key called APPS\TntExplorer
are used.
Grid: represents the color index (range 0-63) of the XYPlot grid.
Frame: represents the color index (range 0-63) of the XYPlot frame.
BckGnd: represents the color index (range 0-63) of the XYPlot border.
Text: represents the color index (range 0-63) of the XYPlot scale.

154 2VAA001149C
SPlus Operations Display Builder User Guide DIAGRAMS

23.8.3 Configuration Parameters


Each row, in this area, displays the definition data of a curve of the XYPlot.
Col: defines the color (range 0-63) of the curve.
Sample: defines the number of samples used to create a XYPlot single point (sample = 1) or multipoint (sample > 1).
Var X: defines the name of variable, associated to the curve, to be displayed on the X axis; it can be left undefined when
the tag name (Tag X) is used.
Tag X: defines the name of the tag, associated to the curve, to be displayed on the X axis; it can be left undefined when
the variable name (Var X) is used.
Var Y: defines the name of variable, associated to the curve, to be displayed on the Y axis; it can be left undefined when
the tag name (Tag Y) is used.
Tag Y: defines the name of the tag, associated to the curve, to be displayed on the Y axis; it can be left undefined when
the variable name (Var Y) is used.
All the parameters can be set or modified by double-clicking the row defining a curve. You can then define the curve
parameters.

Figure 23-19: DXYP Diagram - Set Curve Parameters

23.8.4 X Parameters / Y Parameters


Tag Name: defines the name of the point. Tag Name is only enabled if Checked for FILE access is clear.
Checked for FILE access, is selected when the data used to plot the XYPlot is retrieved from a data file.
Click the Browse button to define the access to the data file.

Low from DB: defines the low scale limit. If this option is selected, the low scale limit defined in the tag database is used.
Otherwise, the entered valid value is used.
High from DB: defines the high scale limit. If this option is selected, the high scale limit defined in the tag database is
used; otherwise, the entered valid value is used.
Color: defines the color (range 0-63) of the curve. Enter the color index or click the button to open the color selection
table.
Samples: Defines the number of samples used to plot the curve.
A single sample will be displayed as single point (with defined marker). Multiple samples will be displayed as a curve.
Marker: Defines the curve marker.

2VAA001149C 155
SPlus Operations Display Builder User Guide DIAGRAMS

If Marker is not defined, a filled circle will be used for the single sample. The allowed markers are listed below:

Table 23-12: DXYP Diagram - Markers

Marker Description
NONE Continuous curve
CIRCLE Empty circle
FILLED CIRCLE Filled circle
DIAMOND Empty diamond
FILLED DIAMOND Filled diamond
BOX Empty box
FILLED BOX Filled box

Table 23-13: DXYP Diagram - Markers

Marker Description
TRIANGLE UP Empty triangle up
FILLED TRIANGLE UP Filled triangle up
TRIANGLE DOWN Empty triangle down
FILLED TRIANGLE DOWN Filled triangle down
TRIANGLE LEFT Empty triangle left
FILLED TRIANGLE LEFT Filled triangle left
TRIANGLE RIGHT Empty triangle right
FILLED TRIANGLE RIGHT Filled triangle right
BAR CHART Empty bars (height = XY point)
FILLED BAR CHART Filled bars (height = XY point)

23.9 DDYN Diagram


The DDYN type defines a dynamic Diagram for analog or digital points.

Figure 23-20: DDYN Diagram

23.9.1 Symbol Attributes


Blink if UnAcked
If Blink if UnAcked is set, the object blinks when the associated tag is to be acknowledged.

Change Foreground
If Change Foreground is set, the resulting color is assigned to the object foreground.

156 2VAA001149C
SPlus Operations Display Builder User Guide DIAGRAMS

Change Background
If Change Background set, the resulting color is assigned to the object background.

Num Alm
Num Alm defines the number of tag statuses managed from the variable. The value ranges from 0 to 9 for analog tags, or
a maximum of 8 for digital tags.
During the configuration phase, the typology of the tag to be displayed through this
Diagram must be known, in order to select the proper number of statuses.

Num Qual
Num Qual defines the number of quality statuses managed from the variable. The value ranges from 0 to 5.

Num Rng
Num Rng defines a range of values within the each variable that will assume specified characteristics. The value ranges
from 0 to 25.

23.9.2 Items
In the lower area of the dialog box a row is dedicated to the definition of each item. The number of rows corresponds to
the number of items defined.
Double-click a row to set or change the parameters:

Figure 23-21: DDYN Diagram - Modify List Item Parameters

# Item
Defines the item number of the currently displayed parameter.

Parameters
Value: defines the status (analog or digital) the variable can assume
The status values to manage a digital tag are:
 Digit_Alm_0
 Digit_Alm_1
 Digit_Alm_2
 Digit_Alm_3
 Digit_NoAl_0
 Digit_NoAl_1
 Digit_NoAl_2

2VAA001149C 157
SPlus Operations Display Builder User Guide DIAGRAMS

 Digit_NoAl_3
The status values to manage a analog tag are:
 Anal_No_alm
 Anal_Low_alm
 Anal_High_alm
 Anal_Low2_alm
 Anal_High2_alm
 Anal_Low3_alm
 Anal_High3_alm
 Anal_LowDev_alm
 Anal_HighDev_alm
The status values to manage a quality status are:
 Substituted
 Inhibited
 Disestablished
 Bad Quality
 Suspect
A range status uses floating values.
Foreground Color: defines the foreground color (range 0-63) used to represent the variable when in the specified status.
Enter the color index or click the button to open the color selection table.
Blink: enables blink for the variable.
Move: enables the object movement according to the number of pixels value defined for this state.
Delta move X: number of pixels to move object on the X axes. Move to left if a positive value, to right if negative.
Delta move Y: number of pixels to move object on the Y axes. Move down if a positive value, up if negative.

Visibility
You can use the move options to set the object to not visible. If either Delta move X or Delta move Y are set to 5000,
the object will not be visible.

In the Graphic Displays produced with the SODG translator, there are many objects with the DDYN/DDYA
Diagrams. It can be difficult to understand the operation of the Dynamic Objects in this Diagram.

For these Dynamic Objects the SODG translator creates unique scripted objects. You cannot create similar objects with
the Display Builder.
Typically these object only have a single line as a script:
object.dynoValue = value;
If you want to analyze one of these objects, follows these steps:
 Select the object.
 Remove the Dynamic Object.
 Right-click and then select Ungroup.
 Without clicking on the Graphic Display, select Show from the Transform menu.
 Click the object and try to move it. You will see that the object was composed of overwritten objects, each with a
different color and each named with a number.
 To use the graphic drawing for other Dynamic Objects, use only one of these objects, with the object name
removed.
 You can use a DDYN or DDYA Diagram to change the colors of the object.
 Select Change Foreground and/or Change Background DDY* options:
158 2VAA001149C
SPlus Operations Display Builder User Guide DIAGRAMS

Figure 23-22: DDYN Diagram - Change DDY* options

23.9.3 DDYN Diagram Scripts


The DDYN Diagram automatically manages the change of colors, blink, position, etc. However you can add a script to
execute other functions.
At runtime the script variable “value” will have a number (zero based) that is the index of the parameters defined for the
Diagram.
For example, with the parameters shown in the previous figure, at run time you execute the following script:
if (value == 0) { // Digit_NoAl_0

} else if (value == 1) { // Digit_Alm_0

} else if (value == 2) { // Digit_NoAl_1

} else if (value == 3) { // Digit_Alm_1

} else if (value == 4) { // Bad Quality


} else {

// if the Diagram is correctly configured, the script will not go to this point.
}

23.10 DDYA Diagram


The DDYA type defines a dynamic Diagram for analog points.

2VAA001149C 159
SPlus Operations Display Builder User Guide DIAGRAMS

Figure 23-23: DDYA Diagram

23.10.1 Symbol Attributes


Blink if UnAck
The object blinks when the associated tag is acknowledged.

Change Foreground
The resulting color is assigned to the object foreground.

Change Background
The resulting color is assigned to the object background.

23.10.2 Low Limit


Low Limit represents the low limit of the range for the dynamic management.

23.10.3 High limit


High Limit represents the high limit of the range for the dynamic management.

23.10.4 Items
The items listed on the bottom show analog range definitions. Double-click a row to set or change the current parameters:

160 2VAA001149C
SPlus Operations Display Builder User Guide DIAGRAMS

Figure 23-24: DDYA Diagram - Modify List Item Parameters

# Item
Defines the item whose parameters are currently displayed.

Parameters
Foreground Color: Defines the foreground color (range 0-63) used to represent the variable when in the specified status.
Enter the color index or click the button to open the color selection table.
Blink: enables blink for the variable.
Move: enables the object movement according to the number of pixels value defined for this state.
Delta move X: number of pixels to move object on the X axis. Move to left if a positive value, to right if negative.
Delta move Y: number of pixels to move object on the Y axis. Move down if a positive value, up if negative.

Visibility
You can use the move options to set the object to not visible. If either Delta move X or Delta move Y are set to 5000,
the object will not be visible.

23.10.5 DDYA Diagram Scripts


The DDYA Diagram automatically manages the change of colors, blink, position, etc. However you can add a script to
execute other functions. The script variable “value” will have a run-time a number (zero based) that is the index of the
parameters defined for the Diagram.
For example, at run time you execute the following script:
If (value == 0) { // Low

} else if (value == 1) { // Low+Al

} else if (value == 2) { // Mid

} else if (value == 3) { // Mid+Al

} else if (value == 4) { // High

} else if (value == 5) { // High+Al

2VAA001149C 161
SPlus Operations Display Builder User Guide DIAGRAMS

} else if (value == 6) { // Bad Quality

23.11 DRDR Diagram


The DRDR type defines a Radar Diagram. This type of Diagram does not require any configuration of variables in the
properties page.

Figure 23-25: DRDR Diagram

23.11.1 Layout
Scale: enables the display of the scale. Tics define the number of tics for the Scale.
Grid: enables the display of the grid. Tics define the number of tics for the Grid.
Curves: defines the number of curves to be displayed in the Radar. The number of curves range is from 1 to 10.
Items: defines the number of “points” to be displayed in the Radar for each curve. The number of items range is from 3 to
10.
Type: defines the type of the Radar; the types are listed in the table belowTable13.
Low Limit: defines the low scale limit.
High Limit: defines the high scale limit.

Table 23-14: DRDR Diagram - Radar Types

Type Description
NORMAL Filled background
TRANSPARENT Transparent background

23.11.2 Color
Color defines the Radar colors.
If the fields in this area are set to -1, the default trend colors defined in the APPS\TntExplorer Windows registry keys are
used.
Grid: represents the color index (range 0-63) of the Radar grid. Frame: represents the color index (range 0-63) of the
Radar frame. BckGnd: represents the color index (range 0-63) of the Radar “border”.
Text: represents the color index (range 0-63) of the Radar scale.

162 2VAA001149C
SPlus Operations Display Builder User Guide DIAGRAMS

23.11.3 Configuration Parameters


This area shows the parameters of each defined curve.
Color: defines the color (range 0-63) of the curve.
Var n: defines the name of variable associated with the curve to be displayed on the Radar. This parameter can undefine
when a tag name (Tag n) is used.
Tag n: defines the name of the tag associated with the Radar curve. This parameter can be undefined when a variable
name (Var n) is used.

Figure 23-26: DRDR Diagram - Set Curve Parameters

23.12 Parameters
Only the fields of the defined items are enabled.
Title: These fields are enabled only on first curve. Title defines the title of the point in the radar Diagram. It is an
alphanumeric string
Tag Name: defines the name of the point. Tag Name is only enabled if Checked for FILE access is clear.
Checked for FILE access is selected when the data used to plot the Radar is retrieved from a data file.
Click the browse button to define the access to the data file.

23.12.1 Color
Color defines the color (range 0-63) of the curve. Enter the color index or click the button to open the color selection table.

23.12.2 Marker
Marker defines the curve marker. The allowed markers are listed in the table belowTable14:

Table 23-15: DRDR Diagram - Markers

Marker Description
NONE Continuous curve
CIRCLE Empty circle
FILLED CIRCLE Filled circle
DIAMOND Empty diamond
FILLED DIAMOND Filled diamond
BOX Empty box
FILLED BOX Filled box
TRIANGLE UP Empty triangle up
FILLED TRIANGLE UP Filled triangle up
TRIANGLE DOWN Empty triangle down
FILLED TRIANGLE DOWN Filled triangle down
2VAA001149C 163
SPlus Operations Display Builder User Guide DIAGRAMS

TRIANGLE LEFT Empty triangle left

Table 23-16: DRDR Diagram - Markers

Marker Description
FILLED TRIANGLE LEFT Filled triangle left
TRIANGLE RIGHT Empty triangle right
FILLED TRIANGLE RIGHT Filled triangle right

23.12.3 Values
Enable: select this box to display the points value and to set the color that will be used to display the values.

23.13 DALL Diagram


The DALL Diagram defines an alarm list Diagram. Using this Diagram you can display on your page a list of alarms by
group or/and by priority.
This type of Diagram does not require any configuration of variables in the properties page.

Figure 23-27: DALL Diagram

23.13.1 Alarm Group


You can choose to display alarms of all groups or of selected group.

23.13.2 Alarm Priority


You can choose to display alarms of all priorities or of a selected priority.

23.13.3 DALL Example


Example: Display with 2 Alarm Group Elements

For this example the goal is to have 2 boxes on the display, one box with Alarm Group 1 and a second with Alarm Group 2
Step 1: Add rectangle and define it as a DALL diagram type
 After drawing a rectangle “right click” on it and select the “Transform to Dynamic” menu option.
 Next select the Diagram type as DALL, and Select the Alarm Group to be “Alarm Group 1”
164 2VAA001149C
SPlus Operations Display Builder User Guide DIAGRAMS

Step 2: Add second rectangle and define it as a DALL diagram type


 After drawing a rectangle “right click” on it and select the “Transform to Dynamic” menu option.
 Next select the Diagram type as DALL, and Select the Alarm Group to be “Alarm Group 2”
The final result should look like the screen below.

Figure 23-28: DALL Final Output

2VAA001149C 165
SPlus Operations Display Builder User Guide VARIABLES

24. VARIABLES

24.1 Introduction
Variables allow you to link Dynamic Objects to the S+ Operations internal database.
The type of variable defines the environment where the data must be retrieved (Realtime Database, Data Files). Other
information is used to specify data format.

24.2 Variable Common Info


General information on variables is similar to the general information for Diagrams. An example of Variable Common
Information dialog box is shown below.

Figure 24-1: Variables - Example of Variable Common Info

24.3 Name
Name is an alphanumeric string containing the name of the variable. The name is unique within the Graphic Display; it is
automatically assigned during the Graphic Display definition phase and cannot be modified.

24.4 Type
Define the type of the variable. Allowed types are:
Realtime DataBase: variable values are retrieved from a Realtime Database.
File Access: variable values are retrieved from a data file by specifying the address.
External File Access: variable values are retrieved from a set of data in a file:
 This type is only enabled to define indirect access of IDPT for DXYP Diagrams.

24.5 IDPT
This option defines an indirect access to the tag through a variable containing all of the references.

166 2VAA001149C
SPlus Operations Display Builder User Guide VARIABLES

 If not selected, the tag access is direct. That is, the tag name only is associated to the variable, and allows data
retrieval.
 If selected, you must define the variable through which to access the tag (in an indirect way).
The IDPT mechanism is supported only for the variable of Realtime Database type.

24.6 Data
This area contains data information common to all type of variables.
All fields in this area are updated with default values based on the type of the data selected for the Realtime Database
access.
The only exception is the Realtime Database variable coded DB_INFO_VALUE.
 For the DB_INFO_VALUE code you must change the defaults based on the type (analog, di, txtsel ...) of the
specified tag.

Entry:
Entry defines if data entry is allowed. This field is enabled only for a variable with File Access type.
Allowed values are listed in the table below.

Table 24-1: Variable - Data Entry

Entry Description
NO_DATA_ENTRY Data entry is not allowed
NO_VALIDATION Data entry is allowed (not validated)

Type:
Type defines the type of data to read from selected database or file. Allowed values are listed in the table below.

Table 24-2: Variable - Data Types

Type Description
MISDICODE Keyword to read a digital data (bits)
TIMECODE Keyword to read a variable representing a time
MISPVCODE Keyword to read an analog value
TEXTCODE Keyword to read a text string
IDPTCODE Keyword to read a Point ID
NUMBERCODE Keyword to read a number

Sub-code:
Sub-code specifies the sub-type of data. Allowed sub-codes are listed in the table below:

Table 24-3: Variable - Data Sub-code

Type Sub-code Description


MISDICODE No sub-code
ABSOLUTIME Absolute Time
Format: according to TIME64
DELTATIME Delta time in seconds
TIMECODE Format: Integer 4 bytes
JULIANTIME Internal S+ Operations absolute time
Format: Integer 4 bytes

Table 24-4: Variable - Data Sub-code

Type Sub-code Description


REAL Format Real (4 bytes)
INT2B Format Integer (2 bytes)
INT4B Format Integer (4 bytes)
MISPVCODE UNBYTE Format Integer (1 byte)
REAL8 Format Real (8 bytes)
TEXTCODE ASCII ASCII string
ASCIIZ ASCII string with zero
DIGITALPOINT Tagidx number of a DIGITAL tag (DI)
ANALOGPOINT Tagidx number of an ANALOG tag (PV)
2VAA001149C 167
SPlus Operations Display Builder User Guide VARIABLES

UNDEFINEDPOINT Tagidx number of an undefined point. It can be


either PV or DI. If the most significative bit is 1,
the point is a DI
TAGIDXPOINT The point can be either PV or DI. Format to read
is a TAGIDX structure
SETPOINT Use TAGIDX to found the index of the Set Point of
a control station.
IDPTCODE CONTROLOUTPUT Use TAGIDX to found the index of the Control
Output of a control station.
RATIOINDEX Use TAGIDX to found the index of the Ratio Index
of a control station.
STATIONSTATUS Use TAGIDX to found the index of the Station
Status
NUMBERCODE INTEGER Format Integer 4 bytes
FLOATING Format Floating Point 4 bytes

Quality:
Quality defines the quality management for the variable. Allowed values are listed in the table below:

Table 24-5: Variable - Quality

Quality Description
NO_QUAL No quality to read - quality status is ignored
USE_QUAL Quality is defined (as quality status bit map)

All Bits:
All Bits is only enabled for MISPVCODE and MISDICODE types.
This option allows you to use all value bits of a specific data type (for example MSDD, RCM etc.). No filters will be applied
during run time to the Realtime value.
The following two fields are enabled only when the MISDICODE type is selected. A digital value can be read as a bit map
(16 bits). These fields specify:
Start Bit: defines the bit (range 0-15) from which to start reading the value
Num Bits: defines number (range 1-16) of bits to be read starting from the Start Bit. The two settings are equivalent:
Start Bit = 0 and Num Bits = 0.
Start Bit = 0 and Num Bits = 16.
TextLength:
TextLength is only enabled for the TEXTCODE type. It defines the number of characters to be read for the text string

24.7 Time
Defines the refresh time of the variable. Refresh time is the number of seconds between two subsequent accesses to a
database to update the value of the variable.

24.8 Realtime Database Variable


These variables are retrieved from a Realtime Database (RTDB).

168 2VAA001149C
SPlus Operations Display Builder User Guide VARIABLES

Figure 24-2: Realtime Database Variables

24.9 Tag Name


Defines the name of the tag associated to the variable.
It is possible to get dynamically run-time the tagname (or part of the tagname) from a Data Base field or from an atom
value, using following syntax:
 {<Tag->DB_FieldName>} to read the tagname from the field FieldName of the Data Base of the tag named Tag.
 {<Tag->AtomName>} to read the tagname from the value of the specified AtomName atom of the tag named Tag.
Tag can be also defined as %TAG% and specified when the page is loaded.

24.10 Tag Type


This is a read-only field that shows the type of the subtype tag. It indicates if you want to read from the database either:
 The value of specified tag (TAGIDXPOINT - default)
 The value of a subtype of the tag:
o SETPOINT for the SP
o CONTROLOUTPUT for the CO
o RATIOINDEX for the RI.
These codes can be generated only by the SODG translator.

IT
See the Inform S+ Operations Configuration Manual for more information about the SODG translator.
If you want to access, for example, the value of the set point of the station, you can use the name TAGNAME-SP or
TAGNAME.SP.

2VAA001149C 169
SPlus Operations Display Builder User Guide VARIABLES

24.11 Normal Factor


The Normal Factor is used to convert the RTDB value as a percentage of the scale range.
Allowed normal factor values are defined in the table below.

Table 24-6: Realtime Database Variables - Normal Factor

Normal Factor Description


DEF_NO_NORM No factor applied
DEF_NORM_VALUE The value read from the database is the re-scaled percentage (0:100 scale)
respect to the presentation limits

24.12 Information
Code:
Table below defines the codes (sorted by name) and their descriptions.

Table 24-7: Realtime Database Variables – Codes

Code Description
DB_INFO_ALMGRP Alarm group index
DB_INFO_ALMPRI The alarm priority index
DB_INFO_ALMST Alarm status, quality, group
DB_INFO_ALMST1 Alarm status (1 char)
DB_INFO_ALMST2 Alarm status (2 chars)
DB_INFO_ALMTXT Alarm text descriptor
DB_INFO_BLOCK The number of block (for C-Net tags)
DB_INFO_CO_STRING Control Output string
DB_INFO_CO_VALUE Control Output value
DB_INFO_CTRLINH Control inhibit status
DB_INFO_DESC The description of the tag
DB_INFO_DI_STATE_0 The digital state 0 descriptor
DB_INFO_DI_STATE_1 The digital state 1 descriptor
DB_INFO_DI_STATE_2 The digital state 2 descriptor
DB_INFO_DI_STATE_3 The digital state 3 descriptor
DB_INFO_EXTDESC The extended description of the tag
DB_INFO_HIG_DEF High presentation limit
DB_INFO_HIG_HIG_VAL The high-high alarm limit
DB_INFO_HIG_INST The high instrument limit
DB_INFO_HIGH_VAL The high alarm limit
DB_INFO_LOW_DEF Low presentation limit
DB_INFO_LOW_INST The low instrument limit
DB_INFO_LOW_LOW_VAL The low-low alarm limit
DB_INFO_LOW_VAL The low alarm limit
DB_INFO_MODULE The number of module (for C-Net tags)
DB_INFO_NEG_ROC Negative rate of change
DB_INFO_OIS_INDEX OIS index
DB_INFO_OIS_QUAL OIS quality (multi chars)
DB_INFO_OIS_QUAL1 OIS quality (1 char)
DB_INFO_PAR Database parameter in default format
DB_INFO_PAR_STRING Database parameter in text format
DB_INFO_PAR_STRING_EX DB parameter and its description in
text format
DB_INFO_PCU The number of PCU (for C-Net tags)
DB_INFO_POINTNAME Tag name
DB_INFO_POS_ROC Positive rate of change
DB_INFO_PSN Customer identifier (Text format)
DB_INFO_QUAL1 The word 1 quality
DB_INFO_QUAL2 The word 2 quality
DB_INFO_QUALNDX Quality in extended format
DB_INFO_RI_STRING Ratio Index string value
DB_INFO_RI_VALUE Ratio Index value
DB_INFO_RING The number of Loop (for C-Net tags)
DB_INFO_SIG_HIG HH3 value
DB_INFO_SIG_LOW LL3 value
170 2VAA001149C
SPlus Operations Display Builder User Guide VARIABLES

DB_INFO_SODG The information like SODG commands


DB_INFO_SP_STRING Set Point string
DB_INFO_SP_VALUE Set Point value
DB_INFO_STRINGVALUE Tag value read from the database in
ASCII format
DB_INFO_SYI System option parameters
DB_INFO_TAGTYPE Type of the tag
DB_INFO_TIMESTAMP_TEXT Time stamp in text format
DB_INFO_TOTAL_1_DAY The totalized value over last day
DB_INFO_TOTAL_1_HOUR The totalized value over last hour
DB_INFO_TOTAL_1_MIN The totalized value over last minute
DB_INFO_TOTAL_1_MONTH The totalized value over last month
DB_INFO_TOTAL_1_YEAR The totalized value over last year
DB_INFO_TOTAL_10_MIN The totalized value over last 10
minutes
DB_INFO_TOTAL_30_MIN The totalized value over last 30
minutes
DB_INFO_TOTAL_8_HOUR The totalized value over last 8 hours
DB_INFO_TXTSEL The text selector index
DB_INFO_UNITS The engineering unit of the tag (ASCII)
DB_INFO_VALUE Tag value read from the database in
real format

Offset:
Defines a offset (range 0-131) within a text string read from the database.
 This field is meaningful only when the selected code is DB_INFO_DESC or DB_INFO_TXTSEL.

Generic Info:
This field is meaningful only when the selected code is DB_INFO_PAR* or DB_INFO_SYI. It defines the subcodes of
selected items.
DB_INFO_PAR: With the DB_INFO_PAR code you can access all Database information of selected tag. For example, to
read from Database the TAGNAME you can use either:
 DB_INFO_TAGNAME.
 DB_INFO_PAR with the DB_TAGNAME Generic Info option.
o The Generic info list will be loaded with all configured options.
DB_INFO_SYI: With this code you can access at run time the “Internal flags” of the system:
 The Generic info list will be loaded with all configured system options.

SODG Command:
Defines the command sub-code to operate like an SODG command.
 This field is meaningful only when the selected code is DB_INFO_SODG. The supported SODG commands are
listed in the table below.

Table 24-8: Realtime Database Variables - SODG Commands

Code Description
SODG_CMD_33 Alarm comment
SODG_CMD_37 Logic state descriptor
SODG_CMD_43_32 Output indicator: zero and one state
SODG_CMD_43_33 Output indicator: zero state only
SODG_CMD_43_34 Output indicator: one state only
SODG_CMD_44_32 RCM feedback indicator: zero and one state
SODG_CMD_44_33 RCM feedback indicator: zero state only
SODG_CMD_44_34 RCM feedback indicator: one state only
SODG_CMD_45_32 RCM set permissive indicator: zero and one state
SODG_CMD_45_37 RCM set permissive indicator: zero state only
SODG_CMD_45_38 RCM set permissive indicator: one state only
SODG_CMD_46 RCM override indicator
SODG_CMD_47 Station mode - type 1
SODG_CMD_48 Station status - type 1
SODG_CMD_54_46 Exception report discrete dynamic symbol: digital dynamic symbol
2VAA001149C 171
SPlus Operations Display Builder User Guide VARIABLES

SODG_CMD_54_56 Exception report discrete dynamic symbol: MSDD dynamic symbol -


current state
SODG_CMD_54_57 Exception report discrete dynamic symbol: MSDD dynamic symbol -
requested state
SODG_CMD_54_58_03 Exception report discrete dynamic symbol: ANALOG - Calibration
Quality
SODG_CMD_54_58_04 Exception report discrete dynamic symbol: ANALOG - Point disabled
SODG_CMD_54_58_06 Exception report discrete dynamic symbol: DI, RCM, DD, MSDD,
RMCB - State
SODG_CMD_54_58_08 Exception report discrete dynamic symbol: ALL - Red tag status
SODG_CMD_54_58_09 Exception report discrete dynamic symbol: STATION - Set point
tracking
SODG_CMD_54_58_10 Exception report discrete dynamic symbol: STATION - Bypass mode
SODG_CMD_54_58_11 Exception report discrete dynamic symbol: STATION - Mode interlock
SODG_CMD_54_58_12 Exception report discrete dynamic symbol: STATION - Output tracking
SODG_CMD_54_58_13 Exception report discrete dynamic symbol: STATION - Analog output
status
SODG_CMD_54_58_14 Exception report discrete dynamic symbol: STATION - Computer
status
SODG_CMD_54_58_15 Exception report discrete dynamic symbol: STATION - Station level
SODG_CMD_54_58_16 Exception report discrete dynamic symbol: STATION - Cascade, ratio
or normal
SODG_CMD_54_58_17 Exception report discrete dynamic symbol: STATION - Auto/manual
SODG_CMD_54_58_18 Exception report discrete dynamic symbol: RCM - Logic set
SODG_CMD_54_58_19 Exception report discrete dynamic symbol: RCM - Set permissive
SODG_CMD_54_58_20 Exception report discrete dynamic symbol: RCM - Logic reset
SODG_CMD_54_58_21 Exception report discrete dynamic symbol: RCM - Override
SODG_CMD_54_58_22 Exception report discrete dynamic symbol: RCM - Feedback
SODG_CMD_54_58_23 Exception report discrete dynamic symbol: RCM - Set command
SODG_CMD_54_58_24 Exception report discrete dynamic symbol: RCM - Reset command
SODG_CMD_54_58_25 Exception report discrete dynamic symbol: DD, MSDD - Feedback
status
SODG_CMD_54_58_26 Exception report discrete dynamic symbol: DD, MSDD - Status
override
SODG_CMD_54_58_27 Exception report discrete dynamic symbol: DD - Mode
SODG_CMD_54_58_28 Exception report discrete dynamic symbol: MSDD - Requested state
SODG_CMD_54_58_29 Exception report discrete dynamic symbol: MSDD - Last good state
SODG_CMD_54_58_30 Exception report discrete dynamic symbol: DD, MSDD, RMCB -
Feedback 1 state
SODG_CMD_54_58_31 Exception report discrete dynamic symbol: DD, MSDD, RMCB -
Feedback 2 state
SODG_CMD_54_58_32 Exception report discrete dynamic symbol: MSDD - Feedback 3 state
SODG_CMD_54_58_33 Exception report discrete dynamic symbol: MSDD - Feedback 4 state
SODG_CMD_54_58_35 Exception report discrete dynamic symbol: MSDD - Control override
SODG_CMD_54_58_36 Exception report discrete dynamic symbol: MSDD - Mode
SODG_CMD_54_58_37 Exception report discrete dynamic symbol: RMCB - Bad start
SODG_CMD_54_58_38 Exception report discrete dynamic symbol: RMCB - Fault
SODG_CMD_54_58_39 Exception report discrete dynamic symbol: RMCB - Start permissive 1
SODG_CMD_54_58_40 Exception report discrete dynamic symbol: RMCB - Start permissive 2
SODG_CMD_54_58_41 Exception report discrete dynamic symbol: RMCB - Error code
SODG_CMD_54_58_42 Exception report discrete dynamic symbol: RMSC - Tracking
SODG_CMD_54_58_43 Exception report discrete dynamic symbol: STATION – PV status
SODG_CMD_54_58_51 Exception report discrete dynamic symbol: N90STA - Backup status
SODG_CMD_54_58_52 Exception report discrete dynamic symbol: N90STA - Local I/O error
SODG_CMD_54_58_53 Exception report discrete dynamic symbol: N90STA - Remote I/O error
SODG_CMD_54_58_65 Exception report discrete dynamic symbol: TEXSTR - Echo control
SODG_CMD_54_58_66 Exception report discrete dynamic symbol: TEXSTR - String Interlock
SODG_CMD_54_58_67 Exception report discrete dynamic symbol: TEXSTR - Truncated
SODG_CMD_57 RMSC - tracking indicator
SODG_CMD_58 DD or MSDD override
SODG_CMD_59_33 Feedback indicator: feedback 1
SODG_CMD_59_34 Feedback indicator: feedback 2
SODG_CMD_59_47 Feedback indicator: MSDD - feedback 1
SODG_CMD_59_48 Feedback indicator: MSDD - feedback 2
SODG_CMD_60 Mode
SODG_CMD_61_33 MSDD output indicator: default output
SODG_CMD_61_34 MSDD output indicator: output 1 indicator
172 2VAA001149C
SPlus Operations Display Builder User Guide VARIABLES

SODG_CMD_61_47 MSDD output indicator: output 2 indicator


SODG_CMD_61_48 MSDD output indicator: output 3 indicator
SODG_CMD_62 MSDD control override
SODG_CMD_63 Node status - Number
SODG_CMD_64 Node status - Node text
SODG_CMD_65_50 Node status: short form error
SODG_CMD_65_51 Node status: long form off line error
SODG_CMD_65_52 Node status: long form module error
SODG_CMD_65_53 Node status: long form communication error
SODG_CMD_65_54 Node status: long form node status error
SODG_CMD_66_51 Node status: node text - len 4
SODG_CMD_66_52 Node status: module text - len 6
SODG_CMD_66_53 Node status: communication system text - len 20
SODG_CMD_66_54 Node status: node status text - len 11
SODG_CMD_67 Module address
SODG_CMD_68 Module status - type and configuration error
SODG_CMD_69 Module status - mode
SODG_CMD_70 Module status - error indicator
SODG_CMD_71 Module status - status bytes
SODG_CMD_74 Station mode - type 2
SODG_CMD_75 Station status - type 2
SODG_CMD_76 Station tracking - type 2
SODG_CMD_77 Station mode - type 3
SODG_CMD_79 Text selector
SODG_CMD_80_33 RMCB texts: Bad start text
SODG_CMD_80_34 RMCB texts: Fault indication text
SODG_CMD_81_33 RMCB permissive indicator: permissive 1
SODG_CMD_81_34 RMCB permissive indicator: permissive 2
SODG_CMD_92 RMCB error code text
SODG_CMD_95 Device status: description
SODG_CMD_96 Device type
SODG_CMD_97_32 Device number
SODG_CMD_97_61 Device sub-number
SODG_CMD_100 Red tag status - text
SODG_CMD_103 Alarm priority

IT
For details on the SODG Utility, see the .Inform S+ Operations Configuration Manual.
After changing codes or sub-codes S+ Operations will configure the variable to allow access to the database
in the correct format.

24.13 File Access Variable


These variables are retrieved through access to a data file.

2VAA001149C 173
SPlus Operations Display Builder User Guide VARIABLES

Figure 24-3: File Access Variables

24.14 Mod
The modifiers used to compute the word number to access a file according to the following formula:
If Mod1<0==>Mod1 = RECSIZE
If Mod2<0==>Mod2 = (-Mod2) * RECSIZE
IOFF = (ICRT-1) * Mod2 + PAGEMOD * Mod1
READ_WORD = IOFF + (Rec-1) * RECSIZE + Word - 1
Where
RECSIZE= Size of the record in the file,
PAGEMOD= Page Modifier defined in the Header,
ICRT = Current index of the MMI Interface (Dynamically assigned in Realtime by the system).
Mod1: defines the first modifier value to access, as a function of the page modifier, to the block in the record.
Mod2: defines the second modifier value to access, as a function of the MMI number, to a specific record.

24.15 File
This area contains the information required to access the data file.
File: defines a data file of the S+ Operations internal database containing the information to be read. Rec: defines the
number of the record within the file.
Word: defines the number of the word within the record.

24.16 External File Access Variable


These variables are retrieved from a data file defined in an extended and general form.

174 2VAA001149C
SPlus Operations Display Builder User Guide VARIABLES

Figure 24-4: External File Access Variables

File, Rec and Word:


These three fields specify the parameters (file, record and word number) to access a file containing the information to be
retrieved.

Mod1, Mod2:
First and second modifier to access information in the data file.

Action Key:
Defines how the data file is accessed. Two are the allowed access orders
MULTI_SAMPLE_BW: values are retrieved from the file starting from the word CURMOD = (Max-Inc+1) and the “Inc”
value decrements until the CURMOD value is less than the Min. value.
MULTI_SAMPLE_FW: values are retrieved from the file starting from the word CURMOD = maximum (Ini, Min) and the
“Inc” value increments until the CURMOD value is greater than the Max. value.
The word to access the file is computed according to the following formula:
If Mod1< 0 ==> Mod1=RECSIZE
If Mod2 < 0 ==> Mod2=(-Mod2)*RECSIZE
IOFF = (ICRT-1) * Mod2 + CURMOD * Mod1
READ_WORD = IOFF + (Rec-1) * RECSIZE + Word - 1
where
RECSIZE= Size of the record in the file,
CURMOD= Modifier related to the current sample,
ICRT = Current index of the MMI Interface (Dynamically assigned in Realtime by the system).

Min:
Minimum limit.

Max:
Maximum limit.

Ini
Initial limit.

Inc
Increment size.

2VAA001149C 175
SPlus Operations Display Builder User Guide SCRIPTING LANGUAGE

25. SCRIPTING LANGUAGE

25.1 Introduction
This section describes Scripting Language elements used for creating, editing and customizing symbols and other graphic
Symphony Plus Display Builder elements. The section also provides script examples useful for understanding script
functioning.
The Display Builder Scripting Language provides an easy way to animate the Dynamic Objects. The syntax is like the “C”
language:
 It is case sensitive.
 The standard instructions separator is “;”.
The details of the commands used to define a script are described in the following sections.

25.2 Predefined Values


The predefined variables and constants are listed below.
Note: do not use predefined system variables as internal script variables .

Table 25-1: Predefined Values

Attribute Description
It controls the conversions from a real number to a string. This global variable is a string
textFormat
containing the format to be used. By default its value is “%g”
mouseX Return the x mouse position in the window. It is read-only predefined variable
mouseY Return the y mouse position in the window. It is read-only predefined variable
TRUE Logical constant. Value = 1
FALSE Logical constant. Value = 0
PI Arithmetic (pi greek) constant. Value = 3.141592653589
E Exponential constant. Value = 2.718281828459
GAMMA Constant. Value = 0.577215664901
DEG Constant. Value = 57.29577951308
PHI Constant. Value = 1.618033988749

25.3 Variables

25.3.1 Conventions and Types


Un-initialized Variables
Variables do not necessarily need to be declared. They are considered declared when they are initialized. An
un-initialized variable will always have a value of 0.
Un-initialized variables are typically used to take advantage of the default value of 0. The following syntax can
be used to execute instructions only the first time the script is executed.
if (firstTime == 0) {
// instructions to be executed the first time only
firstTime = 1;
}
The first character of a variable must be an alphanumeric character (a-z, A-Z). The following types are implicitly
recognized:
realReal numbers.
stringCharacter

176 2VAA001149C
SPlus Operations Display Builder User Guide SCRIPTING LANGUAGE

The keyword declare can be used to explicitly declare a variable (e.g. declare a;).
By default, a variable is local to its script. The keyword global can be used to declare global variables (e.g.
global a = 0;).

25.4 Attributes
Special variables can be used to access the various attributes of objects.

25.5 Access
The generic form to access the attributes of the objects is: ObjectName.ElementName.Attribute where:
ObjectName Is the name of the object.
ElementName Is the name of the element in the main object (for example the element of a group), it is optional.
Attribute Is the name of desired attribute.

In the script the main object is simply identified with the name “object”.
For example:
object/blink = TRUE;
This line in the script sets the main object to be blinking.

25.6 Integer Attributes


The predefined Integers attributes for objects and elements are listed below.

Table 25-2: Integer Attributes

Attribute Description
allowResize TRUE if the object can be resized
angle1 The starting angle of an arc (in 1/64th degrees)
angle2 The ending angle of an arc (in 1/64th degrees)
arcMode 0 for pie, 1 for chord
background The fill color index (RGB)
Blink TRUE if the element should blink
Closed TRUE if the polyline is closed
currentRotationStep The current step in a rotation animation
fillStyle Fill style code
Flat TRUE if the polyline is displayed as a spline
foreground The outline color index (RGB)
Frame The current image index of an animated GIF image
ghostElement TRUE if the element is a ghost element (visible but not selectable)
lineArrow Arrows for lines and polylines
lineStyle Line style
lineWidth Line width
numFrames Total number of images of an animated GIF image
rotationStep The rotation increment value
shadowInverted TRUE if the shadow is displayed inverted (released)
shadowThickness The shadow thickness for poly-lines and parallelograms
show TRUE if the element must be visible

25.7 Real Attributes


The predefined Real attributes for objects and elements are listed below.

Table 25-3: Real Attributes

Attribute Description
height The height in pixel at zoom 1.0
width The width in pixel at zoom 1.0
x The X position in pixel at zoom 1.0
y The Y position in pixel at zoom 1.0

2VAA001149C 177
SPlus Operations Display Builder User Guide SCRIPTING LANGUAGE

Real Attributes that can be found only in Graphic Display derived from SODG translator and don’t have effect in script
related to objects created by the DisplayBuider.

Table 25-4: Real Attribute

Attribute Description
dynoValue Value of a Dynamic Object
dynoUserMaximum Maximum possible value for a Dynamic Object
dynoUserMinimum Minimum possible value for a Dynamic Object

25.8 String Attributes


The predefined Strings attributes for objects and elements are listed below.

Table 25-5: String Attributes

Attribute Description
backgroundName Fill color name (e.g. ”#0000ffff0000” or “green”)
foregroundName Outline color name (e.g. ”#00000000ffff” or “blue”)
imageName Image file name
name Element name
string String of text element

25.9 Graph Attributes


The reading Graph attributes are listed below.

Table 25-6: Graph Attributes

Attribute Type Description


animationTimeOut Integer Indicates the animation period in milliseconds
blinkingTimeOut Integer Indicates the blinking period in milliseconds (not for logical colors blinking)
Indicates the visible layers of the current graph. This attribute is a combination of bits,
layers Integer where each bit indicates the corresponding layer visibility.
For example, to show layers 1,2,3 use graph.layers = 2^0+2^1+2^2; in the script.
zoom Real Indicates the zoom factor of the current graph.

25.10 Operators
The following sections list the predefined operators.

25.10.1 Arithmetic Operators


Table 25-7: Arithmetic Operators

Operator Description
+ Addition or unary plus
- Subtraction or unary minus
* Multiplication
/ Division
^ Power

25.10.2 Priority Order


Table 25-8: Priority Table

Operator Priority
^ Highest
+, - (unary)
*, /
+, - Lowest

178 2VAA001149C
SPlus Operations Display Builder User Guide SCRIPTING LANGUAGE

25.10.3 Comparison Operators


Table 25-9: Comparison Operators

Operator Description
== Equality
!= Inequality
> Greater than
< Less than
>= Greater than or equal
<= Less than or equal

25.10.4 Logical Operators


Table 25-10: Logical Operators

Operator Description
! Negation (Not)
|| Logical OR
&& Logical AND

25.11 Parentheses
Parentheses are used to resolve precedence conflicts, to delimit arguments of function calls and to bound if
and while statements.

25.12 Statement

25.12.1 Assignments
The assignment operator is the equal character =.
Example: a = 3;

25.12.2 Structured Statements


A value can be tested with the if statement.
if (expression) statement;
if (expression) {
statement;
}
if (expression) statement else statement;
if (expression) {
statement;
} else if (expression) {
statement;
} else {
statement;
}
if (expression) {
statement;
} else {
statement;
}

2VAA001149C 179
SPlus Operations Display Builder User Guide SCRIPTING LANGUAGE

The while keyword can be used to program loops:


while (expression) statement;
while (expression) {
statement;
}
Note: when while loop is used inside the function, function return shall be managed outside while (expression)
statement.

25.13 Comments
Comments start with the // characters and continue until the end of the line.
Example:
// This is a comment line
a = 1; // This is a comment following a command line

25.14 Procedures and Functions


Procedures and functions are declared before the script body (the main statement of the script) providing the
name and the type (procedure or function) of the entity. A function always returns a value while a procedure
never does. Parameters are not explicitly declared but can be referenced using the $i symbol where i is the
index of the parameter. Functions must use the return instruction to return a value and exit from the function.
Procedure can use the return instruction (without any parameters) to exit.

25.15 Procedure Declaration


proc ProcName() {
statement
}

25.16 Function Declaration


func FuncName() {
statement
}
Example:
func MySum() {
return $1+$2;
}
object.string = MySum(5, 6); // The MySum() call inside the script

25.17 Predefined Function


The following functions are predefined in the script language.

25.17.1 Mathematical Functions


Table 25-11: Mathematical Functions

Function Description
abs(x) Calculate the absolute value of x
acos(x) Calculate the arc cosine of x in the range 0 to PI radians
asin(x) Calculate the arc sine of x in the range -PI/2 to PI/2 radians
atan(x) Calculate the arc-tangent of x
ceil(x) Return the smallest integer that is greater than or equal to x
cos(x) Calculate the cosine of x
cosh(x) Calculate the hyperbolic cosine of x
exp(x) Calculate the exponential of x
floor(x) Return the largest integer that is less than or equal to x

180 2VAA001149C
SPlus Operations Display Builder User Guide SCRIPTING LANGUAGE

hypo(x,y) Calculate the length of the hypotenuse of a right triangle, given the length of the two sides x and y
int(x) Convert x to an integer
j0(x) Bessel function of the first kind, order 0
j1(x) Bessel function of the first kind, order 1
jn(x,n) Bessel function of the first kind, order n
ln(x) Calculate the natural logarithm of x
log(x) Calculate the 10-based logarithm of x
max(x,y) Return the greater of two specified values
min(x,y) Return the smaller of two specified values
mod(x,y) Return the remainder of the first operand divided by the second
sin(x) Calculate the sine of x
sinh(x) Calculate the hyperbolic sine of x
sqrt(x) Calculate the square root of x
tan(x) Calculate the tangent of x
tanh(x) Calculate the hyperbolic tangent of x
y0(x) Bessel function of the second kind, order 0
y1(x) Bessel function of the second kind, order 1
yn(x,n) Bessel function of the second kind, order n

25.17.2 Miscellaneous Functions


Table 25-12: Miscellaneous Functions

Function Description
beep() Play a sound
concat(s1,s2) Append s2 to s1. The variable s2 must be a string, s1 can be a string or a number
len(s) Return the length of the string s
random() Generate a pseudo-random number in the range 0-1
Extract a substring of length len characters form the string s1, starting at position pos
subString(s1, pos, len, s2)
(zero-based); the results is returned in s2
toNumber(s) Convert the string in float number

25.17.3 Graphic Objects Functions


Table 25-13: Graphic Objects Functions

Function Description
Return the X coordinates of the point specified by its index; obj must be a line or a
getXPoint(obj, index)
polyline
Return the Y coordinates of the point specified by its index; obj must be a line or a
getYPoint(obj, index)
polyline
setXPoint(obj, index) Set the X coordinates of the point specified by its index; obj must be a line or a polyline
setYPoint(obj, index) Set the Y coordinates of the point specified by its index; obj must be a line or a polyline
getNumPoints(obj) Return the number of points of the object; obj must be a line or a polyline
raise(obj) Move the given object to the foreground
lower(obj) Move the given object to the background
stepUp(obj) Raise the given object in the graphic planes
stepDown(obj) Lower the given object in the graphic planes
Rotate the given object around its center; the rotation angle is given in the angle
rotate(obj,angle) parameter and is expressed in degrees (positive angle for clockwise rotation). Works
only for rotatable objects (line, polyline, parallelogram, grouped or not)
Do the same action that the rotate function, but if the object contains not rotatable
rotateAll(obj,angle)
elements, those elements are only moved. Works only if the object is a group

25.18 Additional Functions


All returned values, for this functions, are double type; sample of using in paragraph 4.11 and 4.15.
The functions that are using as parameters SO_Tag in case of DNNV multitag, can be called also with SO_TAGn where n
can be 2-10. In the functions where it is used, SO_Obj can’t be changed with another script variable: must be SO_Obj.

2VAA001149C 181
SPlus Operations Display Builder User Guide SCRIPTING LANGUAGE

Table 25-14: Additional Functions

S+ Functions Description

double ret = TagRead(SO_Obj, SO_Tag, Atom,


Read DB value
Output)
double ret = TagStr(SO_Obj, SO_Tag, Atom,
Read DB value in string format
Output)
double ret = QualityDetail(SO_Obj, SO_Tag,
Read the tag quality code
Atom, Output)
double ret = DataQuality(SO_Obj, SO_Tag,
Read the tag quality string code
Atom, Output)
double Output = fncAnd (A,B) A and B
double Output = fncOr (A,B) A or B
double ret = SetMltStr(SO_Obj, SubObject, String) Set object text value with translated string
double ret = fncMlt(SO_Obj, String, Output) Translate string to current language
double ret = fncTrace(Fmt, P1,P2,P3) Trace string in the error log (useful for script debug)
double RgbGrad = fncRgbGrad(RGBCol, Mult,
Return color gradient
deltaCol)
double RgbCol = RGB(R,G,B) Return the RGB color starting from R G and B
double Pos = fncAlign(RefObjPos, RefObjSz,
Align object position using a reference object
ObjectSz, AlignCode)
double ret = AdjFontByW(SO_Obj, SubObject, Adjust font to maintain the text within the requested
MaxFontH, Width) width
double ret = AdjFontByH(SO_Obj, SubObject,
Adjust font to obtain requested height
Height)
double FontSz = GetFont(SO_Obj, SubObject,
Get object Font name and Font size
Output)
double ret = SetFontSize(SO_Obj, SubObject,
Change object font size
FontSz)
double ret = SetFont (SO_Obj, SubObject,
Change object font
NewFont)
double ret = fmtTT(SO_Obj, SO_Tag, Atom,
Format default string for tooltip
Output)

Functions details:
double ret = TagRead(SO_Obj, SO_Tag, Atom, Output) – Read DB value
SO_Obj - fixed variable that is loaded run-time with the address of the object
SO_Tag - fixed variable that is loaded run-time with the TAGNAME linked to the symbol - instead of SO_Tag is
possible to use a script variable loaded with another tagname (for example, a tagname read from a SO_Tag DB field)
Atom - Atom name (empty for maintag) - can be a variable or directly a string with the atom name
Output - DB value read. The value will be in the "DB Format" (string if it is a text, double if it is an analog/digital/...
value): script variables used to read a string are not usable to read analog values and vice versa
ret - return code (optional) 0 => FAIL != 0 => OK
double ret = TagStr(SO_Obj, SO_Tag, Atom, Output) - Read DB value in string format
SO_Obj - fixed variable that is loaded run-time with the address of the object
SO_Tag - fixed variable that is loaded run-time with the TAGNAME linked to the symbol - instead of SO_Tag is
possible to use a script variable loaded with another tagname (for example, a tagname read from a SO_Tag DB field)
Atom - Atom name (empty for maintag) - can be a variable or directly a string with the atom name
Output - DB value read in string format – In case of analog DB value the decimal place are like configured in DB
ret - return code (optional) 0 => FAIL != 0 => OK
double ret = QualityDetail(SO_Obj, SO_Tag, Atom, Output) - Read the tag quality code
SO_Obj - fixed variable that is loaded run-time with the address of the object

182 2VAA001149C
SPlus Operations Display Builder User Guide SCRIPTING LANGUAGE

SO_Tag - fixed variable that is loaded run-time with the TAGNAME linked to the symbol - instead of SO_Tag is
possible to use a script variable loaded with another tagname (for example, a tagname read from a SO_Tag DB field)
Atom - Atom name (empty for maintag) - can be a variable or directly a string with the atom name
Output - Tag quality code (0, 68, 192, … like 800XA QualityCode)
Ret - return code (optional) 0 => FAIL != 0 => OK
double ret = DataQuality(SO_Obj, SO_Tag, Atom, Output) - Read the tag quality string code
SO_Obj - fixed variable that is loaded run-time with the address of the object
SO_Tag - fixed variable that is loaded run-time with the TAGNAME linked to the symbol - instead of SO_Tag is
possible to use a script variable loaded with another tagname (for example, a tagname read from a SO_Tag DB field)
Atom - Atom name (empty for maintag) - can be a variable or directly a string with the atom name
Output - Tag quality string code ("Bad", "Uncertain", "Good", … like 800XA DataQuality)
ret - return code (optional) 0 => FAIL != 0 => OK
double Output = fncAnd (A,B) – A and B
double Output = fncOr (A,B) – A or B
double ret = SetMltStr(SO_Obj, SubObject, String) – Set object text value with translated string
SO_Obj - fixed variable that is loaded run-time with the address of the object
SubObject - In case of group, name of the text subobject
String - String to translate in the current “language” before to load as string in the text object
ret - return code (optional) 0 => FAIL != 0 => OK
double ret = fncMlt(SO_Obj, String, Output) – Translate string to current language
SO_Obj - fixed variable that is loaded run-time with the address of the object
String - text to translate
Output - script variable (string type) where will be loaded the translated string
ret - return code (optional) 0 => FAIL != 0 => OK
double ret = fncTrace(Fmt, P1,P2,P3) – Trace string in the error log (useful for script debug)
Fmt - Format for trace string – To format the parameters are accepted only %f or %s
P1/P2/P3 - parameters to use to format the trace string – if not used put 0 as parameter
Ret - return code (optional) 0 => FAIL != 0 => OK
double RgbGrad = fncRgbGrad(RGBCol, Mult, deltaCol) – Return color gradient
RGBCol - RGB color
Mult - Multiplier to calculate the gradient of RGBCol
deltaCol - delta on single color – normally used 10
RgbGrad - RGB color gradient
double RgbCol = RGB(R,G,B) – Return the RGB color starting from R G and B
R - red
G - green
B - blue
RgbCol – RGB color calculated as ((R+ (B*256)+(G*256*256)).
double Pos = fncAlign(RefObjPos, RefObjSz, ObjectSz, AlignCode) – Align object position using a reference object
RefObjPos – Reference object position (x or y)
RefObjPos – Reference object position (width or height)
ObjectSz – Object size (width or height)
AlignCode – requested alignment: 0=left/top 1=center 2=right/bottom
Pos – Object position to align the object (x or y)

2VAA001149C 183
SPlus Operations Display Builder User Guide SCRIPTING LANGUAGE

double ret = AdjFontByW(SO_Obj, SubObject, MaxFontH, Width) – Adjust font to maintain the text within the
requested width
SO_Obj - fixed variable that is loaded run-time with the address of the object
SubObject - In case of group, name of the text subobject
MaxFontH - max font size that can be used
Width - Max width that can be used for the text object – the font is reduced in order to maintain the text width
within this value
ret - return code (optional) 0 => FAIL != 0 => OK
double ret = AdjFontByH(SO_Obj, SubObject, Height) – Adjust font to obtain requested height

SO_Obj - fixed variable that is loaded run-time with the address of the object
SubObject - In case of group, name of the text subobject
Height - Height requested for the text object – the font size is changed in order to obtain the text height near the
requested value.
ret - return code (optional) 0 => FAIL != 0 => OK

double FontSz = GetFont(SO_Obj, SubObject, Output) – Get object Font name and Font size

SO_Obj - fixed variable that is loaded run-time with the address of the object
SubObject - In case of group, name of the text subobject
Output - script variable (string type) where will be loaded the font name.
FontSz - Font size (0 -> error on parameters or execution)

double ret = SetFontSize(SO_Obj, SubObject, FontSz) – Change object font size

SO_Obj - fixed variable that is loaded run-time with the address of the object
SubObject - In case of group, name of the text subobject
FontSz - Font Size to assign to the text object
ret - return code (optional) 0 => FAIL != 0 => OK

double ret = SetFont (SO_Obj, SubObject, NewFont) – Change object font

SO_Obj - fixed variable that is loaded run-time with the address of the object
SubObject - In case of group, name of the text subobject
NewFont - string with the new font setting: example “Font( Arial,12,Regular, *)”
ret - return code (optional) 0 => FAIL != 0 => OK

* Note: NewFont format: “Font(FontName,FontSize,FontWeight,FontItalic)”


FontWeight: - regular /bold/light/medium/demibold
FontItalic: -*/italic/oblique (oblique type in Alpha1 version is not managed)

double ret = fmtTT(SO_Obj, SO_Tag, Atom, Output) – Format default string for tooltip

SO_Obj - fixed variable that is loaded run-time with the address of the object
SO_Tag - fixed variable that is loaded run-time with the TAGNAME linked to the symbol - instead of SO_Tag is
possible to use a script variable loaded with another tagname (for example, a tagname read from a SO_Tag DB field)

184 2VAA001149C
SPlus Operations Display Builder User Guide SCRIPTING LANGUAGE

Atom - Atom name (empty for maintag) - can be a variable or directly a string with the atom name
Output - script variable (string type) where will be loaded the formatted tooltip – the system uses the script variable
ToolTipText to identify the string to show as tooltip; using ToolTipText as OutVal the formatted string will be immediatly
available

NOTE: the default tooltip is formatted as TAGNAME / SKZ where SKZ is the value of the .ALI atom related to TAG+ATOM
string. For example:

fmtTT(SO_Obj, SO_Tag, “.X1”, ToolTipText);


with SO_Tag=TF_MELANA_01 and TF_MELANA_01.X1.ALI = “XJ01”

25.19 Events
Objects can be configured to call a procedure when certain events occur. The following is a list of the supported events.

Table 25-15: Miscellaneous Events

Events Triggered when


click Left mouse button down
release Left mouse button up
dbclick Double click
rclick Right mouse button down
rrelease Right mouse button up
rdbclick Right mouse double click

To declare an event:
when event functionName.
Example for a text object:
proc ShowPush() {
object.string = “pushed”;
}
proc ShowRelease() {
object.string = “released”;
}
when click ShowPush;
when release ShowRelease;

25.20 Predefined Color Names


Predefined color names usable in the script to assign colors in the string format are as follows:

Table 25-16: Predefined Color Names

Color Name RGB


AliceBlue 240 248 255
AntiqueWhite 250 235 215
AntiqueWhite1 255 239 219
AntiqueWhite2 238 223 204
AntiqueWhite3 205 192 176
AntiqueWhite4 139 131 120
BlanchedAlmond 255 235 205
BlueViolet 138 43 226
CadetBlue 95 158 160
CadetBlue1 152 245 255
CadetBlue2 142 229 238
CadetBlue3 122 197 205
CadetBlue4 83 134 139
CornflowerBlue 100 149 237
DarkBlue 0 0 139
DarkCyan 0 139 139
2VAA001149C 185
SPlus Operations Display Builder User Guide SCRIPTING LANGUAGE

DarkGoldenrod 184 134 11


DarkGoldenrod1 255 185 15
DarkGoldenrod2 238 173 14
DarkGoldenrod3 205 149 12
DarkGoldenrod4 139 101 8
DarkGray 169 169 169
DarkGreen 0 100 0
DarkGrey 169 169 169
DarkKhaki 189 183 107
DarkMagenta 139 0 139
DarkOliveGreen 85 107 47
DarkOliveGreen1 202 255 112
DarkOliveGreen2 188 238 104
DarkOliveGreen3 162 205 90
DarkOliveGreen4 110 139 61
DarkOrange 255 140 0
DarkOrange1 255 127 0
DarkOrange2 238 118 0
DarkOrange3 205 102 0
DarkOrange4 139 69 0
DarkOrchid 153 50 204
DarkOrchid1 191 62 255
DarkOrchid2 178 58 238
DarkOrchid3 154 50 205
DarkOrchid4 104 34 139
DarkRed 139 0 0
DarkSalmon 233 150 122
DarkSeaGreen 143 188 143
DarkSeaGreen1 193 255 193
DarkSeaGreen2 180 238 180
DarkSeaGreen3 155 205 155
DarkSeaGreen4 105 139 105
DarkSlateBlue 72 61 139
DarkSlateGray 47 79 79
DarkSlateGray1 151 255 255
DarkSlateGray2 141 238 238
DarkSlateGray3 121 205 205
DarkSlateGray4 82 139 139
DarkSlateGrey 47 79 79
DarkTurquoise 0 206 209
DarkViolet 148 0 211
DeepPink 255 20 147
DeepPink1 255 20 147
DeepPink2 238 18 137
DeepPink3 205 16 118
DeepPink4 139 10 80
DeepSkyBlue 0 191 255
DeepSkyBlue1 0 191 255
DeepSkyBlue2 0 178 238
DeepSkyBlue3 0 154 205
DeepSkyBlue4 0 104 139
DimGray 105 105 105
DimGrey 105 105 105
DodgerBlue 30 144 255
DodgerBlue1 30 144 255
DodgerBlue2 28 134 238
DodgerBlue3 24 116 205
DodgerBlue4 16 78 139
FloralWhite 255 250 240
ForestGreen 34 139 34
GhostWhite 248 248 255
GreenYellow 173 255 47
HotPink 255 105 180
HotPink1 255 110 180
HotPink2 238 106 167
HotPink3 205 96 144

186 2VAA001149C
SPlus Operations Display Builder User Guide SCRIPTING LANGUAGE

HotPink4 139 58 98
IndianRed 205 92 92
IndianRed1 255 106 106
IndianRed2 238 99 99
IndianRed3 205 85 85
IndianRed4 139 58 58
LavenderBlush 255 240 245
LavenderBlush1 255 240 245
LavenderBlush2 238 224 229
LavenderBlush3 205 193 197
LavenderBlush4 139 131 134
LawnGreen 124 252 0
LemonChiffon 255 250 205
LemonChiffon1 255 250 205
LemonChiffon2 238 233 191
LemonChiffon3 205 201 165
LemonChiffon4 139 137 112
LightBlue 173 216 230
LightBlue1 191 239 255
LightBlue2 178 223 238
LightBlue3 154 192 205
LightBlue4 104 131 139
LightCoral 240 128 128
LightCyan 224 255 255
LightCyan1 224 255 255
LightCyan2 209 238 238
LightCyan3 180 205 205
LightCyan4 122 139 139
LightGoldenrod 238 221 130
LightGoldenrod1 255 236 139
LightGoldenrod2 238 220 130
LightGoldenrod3 205 190 112
LightGoldenrod4 139 129 76
LightGoldenrodYello w 250 250 210
LightGray 211 211 211
LightGreen 144 238 144
LightGrey 211 211 211
LightPink 255 182 193
LightPink1 255 174 185
LightPink2 238 162 173
LightPink3 205 140 149
LightPink4 139 95 101
LightSalmon 255 160 122
LightSalmon1 255 160 122
LightSalmon2 238 149 114
LightSalmon3 205 129 98
LightSalmon4 139 87 66
LightSeaGreen 32 178 170
LightSkyBlue 135 206 250
LightSkyBlue1 176 226 255
LightSkyBlue2 164 211 238
LightSkyBlue3 141 182 205
LightSkyBlue4 96 123 139
LightSlateBlue 132 112 255
LightSlateGray 119 136 153
LightSlateGrey 119 136 153
LightSteelBlue 176 196 222
LightSteelBlue1 202 225 255
LightSteelBlue2 188 210 238
LightSteelBlue3 162 181 205
LightSteelBlue4 110 123 139
LightYellow 255 255 224
LightYellow1 255 255 224
LightYellow2 238 238 209
LightYellow3 205 205 180
LightYellow4 139 139 122

2VAA001149C 187
SPlus Operations Display Builder User Guide SCRIPTING LANGUAGE

LimeGreen 50 205 50
MediumAquamarine 102 205 170
MediumBlue 0 0 205
MediumOrchid 186 85 211
MediumOrchid1 224 102 255
MediumOrchid2 209 95 238
MediumOrchid3 180 82 205
MediumOrchid4 122 55 139
MediumPurple 147 112 219
MediumPurple1 171 130 255
MediumPurple2 159 121 238
MediumPurple3 137 104 205
MediumPurple4 93 71 139
MediumSeaGreen 60 179 113
MediumSlateBlue 123 104 238
MediumSpringGreen 0 250 154
MediumTurquoise 72 209 204
MediumVioletRed 199 21 133
MidnightBlue 25 25 112
MintCream 245 255 250
MistyRose 255 228 225
MistyRose1 255 228 225
MistyRose2 238 213 210
MistyRose3 205 183 181
MistyRose4 139 125 123
NavajoWhite 255 222 173
NavajoWhite1 255 222 173
NavajoWhite2 238 207 161
NavajoWhite3 205 179 139
NavajoWhite4 139 121 94
NavyBlue 0 0 128
OldLace 253 245 230
OliveDrab 107 142 35
OliveDrab1 192 255 62
OliveDrab2 179 238 58
OliveDrab3 154 205 50
OliveDrab4 105 139 34
OrangeRed 255 69 0
OrangeRed1 255 69 0
OrangeRed2 238 64 0
OrangeRed3 205 55 0
OrangeRed4 139 37 0
PaleGoldenrod 238 232 170
PaleGreen 152 251 152
PaleGreen1 154 255 154
PaleGreen2 144 238 144
PaleGreen3 124 205 124
PaleGreen4 84 139 84
PaleTurquoise 175 238 238
PaleTurquoise1 187 255 255
PaleTurquoise2 174 238 238
PaleTurquoise3 150 205 205
PaleTurquoise4 102 139 139
PaleVioletRed 219 112 147
PaleVioletRed1 255 130 171
PaleVioletRed2 238 121 159
PaleVioletRed3 205 104 137
PaleVioletRed4 139 71 93
PapayaWhip 255 239 213
PeachPuff 255 218 185
PeachPuff1 255 218 185
PeachPuff2 238 203 173
PeachPuff3 205 175 149
PeachPuff4 139 119 101
PowderBlue 176 224 230
RosyBrown 188 143 143

188 2VAA001149C
SPlus Operations Display Builder User Guide SCRIPTING LANGUAGE

RosyBrown1 255 193 193


RosyBrown2 238 180 180
RosyBrown3 205 155 155
RosyBrown4 139 105 105
RoyalBlue 65 105 225
RoyalBlue1 72 118 255
RoyalBlue2 67 110 238
RoyalBlue3 58 95 205
RoyalBlue4 39 64 139
SaddleBrown 139 69 19
SandyBrown 244 164 96
SeaGreen 46 139 87
SeaGreen1 84 255 159
SeaGreen2 78 238 148
SeaGreen3 67 205 128
SeaGreen4 46 139 87
SkyBlue 135 206 235
SkyBlue1 135 206 255
SkyBlue2 126 192 238
SkyBlue3 108 166 205
SkyBlue4 74 112 139
SlateBlue 106 90 205
SlateBlue1 131 111 255
SlateBlue2 122 103 238
SlateBlue3 105 89 205
SlateBlue4 71 60 139
SlateGray 112 128 144
SlateGray1 198 226 255
SlateGray2 185 211 238
SlateGray3 159 182 205
SlateGray4 108 123 139
SlateGrey 112 128 144
SpringGreen 0 255 127
SpringGreen1 0 255 127
SpringGreen2 0 238 118
SpringGreen3 0 205 102
SpringGreen4 0 139 69
SteelBlue 70 130 180
SteelBlue1 99 184 255
SteelBlue2 92 172 238
SteelBlue3 79 148 205
SteelBlue4 54 100 139
VioletRed 208 32 144
VioletRed1 255 62 150
VioletRed2 238 58 140
VioletRed3 205 50 120
VioletRed4 139 34 82
WhiteSmoke 245 245 245
YellowGreen 154 205 50
alice blue 240 248 255
antique white 250 235 215
aquamarine 127 255 212
aquamarine1 127 255 212
aquamarine2 118 238 198
aquamarine3 102 205 170
aquamarine4 69 139 116
azure 240 255 255
azure1 240 255 255
azure2 224 238 238
azure3 193 205 205
azure4 131 139 139
beige 245 245 220
bisque 255 228 196
bisque1 255 228 196
bisque2 238 213 183
bisque3 205 183 158

2VAA001149C 189
SPlus Operations Display Builder User Guide SCRIPTING LANGUAGE

bisque4 139 125 107


black 0 0 0
blanched almond 255 235 205
blue violet 138 43 226
blue 0 0 255
blue1 0 0 255
blue2 0 0 238
blue3 0 0 205
blue4 0 0 139
brown 165 42 42
brown1 255 64 64
brown2 238 59 59
brown3 205 51 51
brown4 139 35 35
burlywood 222 184 135
burlywood1 255 211 155
burlywood2 238 197 145
burlywood3 205 170 125
burlywood4 139 115 85
cadet blue 95 158 160
chartreuse 127 255 0
chartreuse1 127 255 0
chartreuse2 118 238 0
chartreuse3 102 205 0
chartreuse4 69 139 0
chocolate 210 105 30
chocolate1 255 127 36
chocolate2 238 118 33
chocolate3 205 102 29
chocolate4 139 69 19
coral 255 127 80
coral1 255 114 86
coral2 238 106 80
coral3 205 91 69
coral4 139 62 47
cornflower blue 100 149 237
cornsilk 255 248 220
cornsilk1 255 248 220
cornsilk2 238 232 205
cornsilk3 205 200 177
cornsilk4 139 136 120
cyan 0 255 255
cyan1 0 255 255
cyan2 0 238 238
cyan3 0 205 205
cyan4 0 139 139
dark blue 0 0 139
dark cyan 0 139 139
dark goldenrod 184 134 11
dark gray 169 169 169
dark green 0 100 0
dark grey 169 169 169
dark khaki 189 183 107
dark magenta 139 0 139
dark olive green 85 107 47
dark orange 255 140 0
dark orchid 153 50 204
dark red 139 0 0
dark salmon 233 150 122
dark sea green 143 188 143
dark slate blue 72 61 139
dark slate gray 47 79 79
dark slate grey 47 79 79
dark turquoise 0 206 209
dark violet 148 0 211
deep pink 255 20 147

190 2VAA001149C
SPlus Operations Display Builder User Guide SCRIPTING LANGUAGE

deep sky blue 0 191 255


dim gray 105 105 105
dim grey 105 105 105
dodger blue 30 144 255
firebrick 178 34 34
firebrick1 255 48 48
firebrick2 238 44 44
firebrick3 205 38 38
firebrick4 139 26 26
floral white 255 250 240
forest green 34 139 34
gainsboro 220 220 220
ghost white 248 248 255
gold 255 215 0
gold1 255 215 0
gold2 238 201 0
gold3 205 173 0
gold4 139 117 0
goldenrod 218 165 32
goldenrod1 255 193 37
goldenrod2 238 180 34
goldenrod3 205 155 29
goldenrod4 139 105 20
gray 190 190 190
gray0 0 0 0
gray1 3 3 3
gray10 26 26 26
gray100 255 255 255
gray11 28 28 28
gray12 31 31 31
gray13 33 33 33
gray14 36 36 36
gray15 38 38 38
gray16 41 41 41
gray17 43 43 43
gray18 46 46 46
gray19 48 48 48
gray2 5 5 5
gray20 51 51 51
gray21 54 54 54
gray22 56 56 56
gray23 59 59 59
gray24 61 61 61
gray25 64 64 64
gray26 66 66 66
gray27 69 69 69
gray28 71 71 71
gray29 74 74 74
gray3 8 8 8
gray30 77 77 77
gray31 79 79 79
gray32 82 82 82
gray33 84 84 84
gray34 87 87 87
gray35 89 89 89
gray36 92 92 92
gray37 94 94 94
gray38 97 97 97
gray39 99 99 99
gray4 10 10 10
gray40 102 102 102
gray41 105 105 105
gray42 107 107 107
gray43 110 110 110
gray44 112 112 112
gray45 115 115 115

2VAA001149C 191
SPlus Operations Display Builder User Guide SCRIPTING LANGUAGE

gray46 117 117 117


gray47 120 120 120
gray48 122 122 122
gray49 125 125 125
gray5 13 13 13
gray50 127 127 127
gray51 130 130 130
gray52 133 133 133
gray53 135 135 135
gray54 138 138 138
gray55 140 140 140
gray56 143 143 143
gray57 145 145 145
gray58 148 148 148
gray59 150 150 150
gray6 15 15 15
gray60 153 153 153
gray61 156 156 156
gray62 158 158 158
gray63 161 161 161
gray64 163 163 163
gray65 166 166 166
gray66 168 168 168
gray67 171 171 171
gray68 173 173 173
gray69 176 176 176
gray7 18 18 18
gray70 179 179 179
gray71 181 181 181
gray72 184 184 184
gray73 186 186 186
gray74 189 189 189
gray75 191 191 191
gray76 194 194 194
gray77 196 196 196
gray78 199 199 199
gray79 201 201 201
gray8 20 20 20
gray80 204 204 204
gray81 207 207 207
gray82 209 209 209
gray83 212 212 212
gray84 214 214 214
gray85 217 217 217
gray86 219 219 219
gray87 222 222 222
gray88 224 224 224
gray89 227 227 227
gray9 23 23 23
gray90 229 229 229
gray91 232 232 232
gray92 235 235 235
gray93 237 237 237
gray94 240 240 240
gray95 242 242 242
gray96 245 245 245
gray97 247 247 247
gray98 250 250 250
gray99 252 252 252
green yellow 173 255 47
green 0 255 0
green1 0 255 0
green2 0 238 0
green3 0 205 0
green4 0 139 0
grey 190 190 190

192 2VAA001149C
SPlus Operations Display Builder User Guide SCRIPTING LANGUAGE

grey0 0 0 0
grey1 3 3 3
grey10 26 26 26
grey100 255 255 255
grey11 28 28 28
grey12 31 31 31
grey13 33 33 33
grey14 36 36 36
grey15 38 38 38
grey16 41 41 41
grey17 43 43 43
grey18 46 46 46
grey19 48 48 48
grey2 5 5 5
grey20 51 51 51
grey21 54 54 54
grey22 56 56 56
grey23 59 59 59
grey24 61 61 61
grey25 64 64 64
grey26 66 66 66
grey27 69 69 69
grey28 71 71 71
grey29 74 74 74
grey3 8 8 8
grey30 77 77 77
grey31 79 79 79
grey32 82 82 82
grey33 84 84 84
grey34 87 87 87
grey35 89 89 89
grey36 92 92 92
grey37 94 94 94
grey38 97 97 97
grey39 99 99 99
grey4 10 10 10
grey40 102 102 102
grey41 105 105 105
grey42 107 107 107
grey43 110 110 110
grey44 112 112 112
grey45 115 115 115
grey46 117 117 117
grey47 120 120 120
grey48 122 122 122
grey49 125 125 125
grey5 13 13 13
grey50 127 127 127
grey51 130 130 130
grey52 133 133 133
grey53 135 135 135
grey54 138 138 138
grey55 140 140 140
grey56 143 143 143
grey57 145 145 145
grey58 148 148 148
grey59 150 150 150
grey6 15 15 15
grey60 153 153 153
grey61 156 156 156
grey62 158 158 158
grey63 161 161 161
grey64 163 163 163
grey65 166 166 166
grey66 168 168 168
grey67 171 171 171

2VAA001149C 193
SPlus Operations Display Builder User Guide SCRIPTING LANGUAGE

grey68 173 173 173


grey69 176 176 176
grey7 18 18 18
grey70 179 179 179
grey71 181 181 181
grey72 184 184 184
grey73 186 186 186
grey74 189 189 189
grey75 191 191 191
grey76 194 194 194
grey77 196 196 196
grey78 199 199 199
grey79 201 201 201
grey8 20 20 20
grey80 204 204 204
grey81 207 207 207
grey82 209 209 209
grey83 212 212 212
grey84 214 214 214
grey85 217 217 217
grey86 219 219 219
grey87 222 222 222
grey88 224 224 224
grey89 227 227 227
grey9 23 23 23
grey90 229 229 229
grey91 232 232 232
grey92 235 235 235
grey93 237 237 237
grey94 240 240 240
grey95 242 242 242
grey96 245 245 245
grey97 247 247 247
grey98 250 250 250
grey99 252 252 252
honeydew 240 255 240
honeydew1 240 255 240
honeydew2 224 238 224
honeydew3 193 205 193
honeydew4 131 139 131
hot pink 255 105 180
indian red 205 92 92
ivory 255 255 240
ivory1 255 255 240
ivory2 238 238 224
ivory3 205 205 193
ivory4 139 139 131
khaki 240 230 140
khaki1 255 246 143
khaki2 238 230 133
khaki3 205 198 115
khaki4 139 134 78
lavender blush 255 240 245
lavender 230 230 250
lawn green 124 252 0
lemon chiffon 255 250 205
light blue 173 216 230
light coral 240 128 128
light cyan 224 255 255
light goldenrod yellow 250 250 210
light goldenrod 238 221 130
light gray 211 211 211
light green 144 238 144
light grey 211 211 211
light pink 255 182 193
light salmon 255 160 122

194 2VAA001149C
SPlus Operations Display Builder User Guide SCRIPTING LANGUAGE

light sea green 32 178 170


light sky blue 135 206 250
light slate blue 132 112 255
light slate gray 119 136 153
light slate grey 119 136 153
light steel blue 176 196 222
light yellow 255 255 224
lime green 50 205 50
linen 250 240 230
magenta 255 0 255
magenta1 255 0 255
magenta2 238 0 238
magenta3 205 0 205
magenta4 139 0 139
maroon 176 48 96
maroon1 255 52 179
maroon2 238 48 167
maroon3 205 41 144
maroon4 139 28 98
medium aquamarine 102 205 170
medium blue 0 0 205
medium orchid 186 85 211
medium purple 147 112 219
medium sea green 60 179 113
medium slate blue 123 104 238
medium spring green 0 250 154
medium turquoise 72 209 204
medium violet red 199 21 133
midnight blue 25 25 112
mint cream 245 255 250
misty rose 255 228 225
moccasin 255 228 181
navajo white 255 222 173
navy blue 0 0 128
navy 0 0 128
old lace 253 245 230
olive drab 107 142 35
orange red 255 69 0
orange 255 165 0
orange1 255 165 0
orange2 238 154 0
orange3 205 133 0
orange4 139 90 0
orchid 218 112 214
orchid1 255 131 250
orchid2 238 122 233
orchid3 205 105 201
orchid4 139 71 137
pale goldenrod 238 232 170
pale green 152 251 152
pale turquoise 175 238 238
pale violet red 219 112 147
papaya whip 255 239 213
peach puff 255 218 185
peru 205 133 63
pink 255 192 203
pink1 255 181 197
pink2 238 169 184
pink3 205 145 158
pink4 139 99 108
plum 221 160 221
plum1 255 187 255
plum2 238 174 238
plum3 205 150 205
plum4 139 102 139
powder blue 176 224 230

2VAA001149C 195
SPlus Operations Display Builder User Guide SCRIPTING LANGUAGE

purple 160 32 240


purple1 155 48 255
purple2 145 44 238
purple3 125 38 205
purple4 85 26 139
red 255 0 0
red1 255 0 0
red2 238 0 0
red3 205 0 0
red4 139 0 0
rosy brown 188 143 143
royal blue 65 105 225
saddle brown 139 69 19
salmon 250 128 114
salmon1 255 140 105
salmon2 238 130 98
salmon3 205 112 84
salmon4 139 76 57
sandy brown 244 164 96
sea green 46 139 87
seashell 255 245 238
seashell1 255 245 238
seashell2 238 229 222
seashell3 205 197 191
seashell4 139 134 130
sienna 160 82 45
sienna1 255 130 71
sienna2 238 121 66
sienna3 205 104 57
sienna4 139 71 38
sky blue 135 206 235
slate blue 106 90 205
slate gray 112 128 144
slate grey 112 128 144
snow 255 250 250
snow1 255 250 250
snow2 238 233 233
snow3 205 201 201
snow4 139 137 137
spring green 0 255 127
steel blue 70 130 180
tan 210 180 140
tan1 255 165 79
tan2 238 154 73
tan3 205 133 63
tan4 139 90 43
thistle 216 191 216
thistle1 255 225 255
thistle2 238 210 238
thistle3 205 181 205
thistle4 139 123 139
tomato 255 99 71
tomato1 255 99 71
tomato2 238 92 66
tomato3 205 79 57
tomato4 139 54 38
turquoise 64 224 208
turquoise1 0 245 255
turquoise2 0 229 238
turquoise3 0 197 205
turquoise4 0 134 139
violet red 208 32 144
violet 238 130 238
wheat 245 222 179
wheat1 255 231 186
wheat2 238 216 174

196 2VAA001149C
SPlus Operations Display Builder User Guide SCRIPTING LANGUAGE

wheat3 205 186 150


wheat4 139 126 102
white smoke 245 245 245
white 255 255 255
yellow green 154 205 50
yellow 255 255 0
yellow1 255 255 0
yellow2 238 238 0
yellow3 205 205 0
yellow4 139 139 0

25.21 Typical Script


S+ Operations includes a function that you can use to import/export script code.
This can be useful when you have multiple objects that use Common Script Code.
To change this Common Script Code, you can:
 Use S+ Operations to create a text file containing the Common Script Code.
 Modify the code in a text file.
 Use S+ Operations to write the updated code to multiple objects.

25.22 Enable Typical Script Processing


Enable this function by setting the APPS\IbDisp\ScriptFile Windows registry key to point to a text file:
 For example path...\display\ScriptFile.txt.
This text file is identified as the Typical Script File.
If in the registry ionly a file name (without folder) is defined means that the ScriptFile will be searched in the
folder where the display is saved: in this case it is possible to have several script files, one for each folder
including source displays files.

25.23 Create a Text File Containing the Common Script Code


Create the Typical Script File
The Typical Script File must contain the following instructions in the first three rows.
$// Typical_Script_Identifier
$START
$END
The Typical Script File must start with $// .
Typical_Script_Identifier is a customizable string used to identify in the scripts the code to import/export from/to
the Typical Script File.
Save the file in the path and file name specified in the APPS\IbDisp\ScriptFile Windows registry key.

Common Script Code


A Common Script Code is identified by following rows:
// Typical_Script_Identifier Placeholder_Name START
// Typical_Script_Identifier Placeholder_Name END
Placeholder_Name is the name of the Common Script Code that is stored in a S+ Operations object.
Between these rows is included the script code that could be used in multiple objects.
In the script of an object a Common Script Code can be preceded and followed by other instructions; is possible
to use more than one Common Script Code in a script; is not possible to include a Common Script Code into
another.

Start the Display Builder


S+ Operations detects the Typical Script File. It will search all objects for scripts that contain the Typical Script
Identifier.

2VAA001149C 197
SPlus Operations Display Builder User Guide SCRIPTING LANGUAGE

When the Typical_Script_Identifier is detected, S+ Operations reads the Placeholder_Name to search it in the
Typical Script File: if the Placeholder_Name is not in the file, will copy the Common Script Code from the script
of the object to the Typical Script File; if the Placeholder_Name is in the file, will copy the Common Script Code
from the Typical Script File to the script of the object.
In the first case, the new Common Script Code will be located at the end of the
Typical Script File as follows:
// Typical_Script_Identifier Placeholder_Name START
.... script code
// Typical_Script_Identifier Placeholder_Name END

Modify the Common Script Code


Open the Typical Script File using a text editor, change the Common Script Code and save the file. The new
code will be applied to the displays that will be saved after this change; also the Add To System function will
update the scripts in all selected displays.

Example Typical Script File


In the example below, the Typical_Script_Identifier is called TYPICAL, and the Placeholder_Name is called
SET_TITLE.
$// TYPICAL
$START
$END
// TYPICAL SET_TITLE START
str = “Welcome Message”;
object.string = str;
// TYPICAL SET_TITLE END

Display Builder Processing


Start the Display Builder.
S+ Operations will search the scripts of all S+ Operations objects, looking for Placeholder_Name.
If the Placeholder called SET_TITLE is found, S+ Operations will copy the Common Script Code from the
Typical Script file to the script of the S+ Operations object.
The new code will be inserted between the START and END rows of the SET_TITLE Placeholder lines:
// TYPICAL SET_TITLE START
str = “Welcome Message”;
object.string = str;
// TYPICAL SET_TITLE END

Create New Placeholders in Objects


You can also add the Placeholder to multiple object scripts.
Modify the script by right-clicking an object, and then selecting Script.
Enter these two lines of text in the place where you want the new code to be copied:
// Typical_Script_Identifier Placeholder_Name START
// Typical_Script_Identifier Placeholder_Name END
In our example the lines would look like this:
// TYPICAL SET_TITLE START
// TYPICAL SET_TITLE END
And enter also following lines:
// TYPICAL SET_DEFAULT_COLOR START
object.foregroundName = “red”;

198 2VAA001149C
SPlus Operations Display Builder User Guide SCRIPTING LANGUAGE

// TYPICAL SET_DEFAULT_COLOR END


When the display is saved, S+ Operations will copy the Common Script Code is located in the Typical Script
File between the SET_TITLE START and END lines:
// TYPICAL SET_TITLE START
str = “Welcome Message”;
object.string = str;
// TYPICAL SET_TITLE END
And will save the new Common Script Code between the SET_DEFAULT_COLOR START and END lines in
the Typical Script File that will be
$// TYPICAL
$START
$END
// TYPICAL SET_TITLE START
str = “Welcome Message”;
object.string = str;
// TYPICAL SET_TITLE END
// TYPICAL SET_DEFAULT_COLOR START
object.foregroundName = “red”;
// TYPICAL SET_DEFAULT_COLOR END

25.24 Global script


You can define a script of Global Symbols that S+ Operations will execute for all pages loaded at run time.
This utility is enabled if the APPS\IbDisp\GlobalScriptFile Windows registry key points to an existing text file.
 For example path...\display\GlobalScriptFile.txt.
This file must include a script global variable definition like following example:
global S+ Operations_TITLE = “My system is named S+ Operations”;
You can then include the global variable S+ Operations_TITLE in any of your pages. For example, if you add
the following code to a script in an object:
object.string = S+ Operations_TITLE;
Display Builder will display: “My system is named S+ Operations”.
You can only customize global variables with this file. You cannot change any of your Graphic Displays.

25.25 Logical Colors

The logical colors is a new features implemented in S+ Operations, they are defined in a configuration editable
file. The configuration file is “Blcoldeck.xml”.
The configuration code for a simple color is like :
<COLOR name="plg_Olive" descr="Static Color" colorname="Olive" r="85" g="107" b="047" />
Where the name "plg_Olive" can be called by a script, the color is defined by the r,g,b values.
For a blinking color the configuration is like :
<COLOR name="plaUnackDY" descr="Unacknowledged discrepancy alarm: display element symbol border"
colorname="blue-grey" r="145" g="220" b="255" blink_r="70" blink_g="110" blink_b="130" />
The primary color is defined by r,g,b values, the secondary color is defined by blink_r, blink_g, blink_b, the
symbol will blink between these two colors.

25.26 Input Parameters


The input parameters are new features of S+ Operations.
They are part of Global Symbol Attributes and can be used to customize symbol graphic.

2VAA001149C 199
SPlus Operations Display Builder User Guide SCRIPTING LANGUAGE

Basically Global Symbol Attributes are divided in:


Attributes (ROTATE, RESIZE_X, RESIZE_Y, MIRROR, FLIP) used for customizing symbol graphic.
Details (input parameters available for script)
TagNames (used for symbol’s dynamics)
NOTE: ROTATE is enabled only for symbols that include “rotatable” objects (polylines, lines, parallelograms).
Details value can be fixed or be a result of function/logic.
Input parameter can be managed in script in different ways depends on requirements (see examples chapter
4.10).

25.27 Scripting Language Examples


This chapter is dedicated to typical scripting language examples. Symbols with described later script examples are
attached to this manual and is shown below.

Figure 25-1: Script Examples

25.27.1 Get tags value via script using the keywords


There are a few keywords to get the value of a tag and some other information like quality, alarm and
acknowledge status, to get these values of the first tag in the symbol use :
value // value read like configured in the DNNV dynamics form
IsBad // bad status flag for the linked tag
IsAlm // alarm status flag for the linked tag
IsToAck // acknowledge flag for the linked tag
To get these values for the second tag use :
value _2
IsBad_2
IsAlm _2
IsToAck_2
To get these values for the third tag use :
value _3
IsBad_3
IsAlm _3

200 2VAA001149C
SPlus Operations Display Builder User Guide SCRIPTING LANGUAGE

IsToAck_3

Up to ten.
See the following examples to understand how to use these commands.
Note:
To select the correct field to read in the dynamics form, we have to select DB_INFO_VALUE to read the value
of the tag and the others values. It is important to understand that it is possible to get by script every field of the
runtime database, if DB_INFO_VALUE using the “value” keyword is selected the value is available, if
DB_INFO_DESC (the string description) using the “value” keyword si selected the string that contains the
description is available, and so on for all the runtime database field.
This is not the only way to get the value of the tag, see the following examples.

25.27.2 Tag Value via Script using a Function


Using a function it is possible to get the value and the quality of a tag. The syntax is as follows:
TagRead(SO_Obj, SO_Tag, “” ,D); // the TagRead get the value of the tag main atom
if(D==1) { // if D = 1 led is red, else led is yellow
object.background = RGB(255,0,0); // red
} else {
object.background = RGB(255,255,0); // yellow
}

25.28 Color Management


Object background and foreground colors can be modified inside the script.
(note: the proper fill style object attribute should be chosen)

Example (filled back):


object.background = 255; // background is the object back color
object.foreground = 0; // foreground color is the object border
Colors can be managed in script using a few different ways :
Manage the color using the decimal code of the color
Manage the color using the RGB function
Logical colors
Predefined colors

25.28.1 Decimal Code of the Color


Decimal_code = R + 256*G + 256*256*B
for example :
if(value == 0) {
object.background = 65280; // green
object.foreground = 0; // black
} else {
object.background = 255; // red
object.foreground = 0; // black
}
Please take care the syntax of the line:
object.background = …

2VAA001149C 201
SPlus Operations Display Builder User Guide SCRIPTING LANGUAGE

25.28.2 RGB Function


For example the previous colors can be defined also in the following way:
if(value == 0) {
object.background = RGB(0,255,0); // green
object.foreground = RGB(0,0,0); // black
} else {
object.background = RGB(255,0,0); // red
object.foreground = RGB(0,0,0); // black
}
Please take care the syntax of the line :
object.background = …

25.28.3 Logical Colors


if(value > 10) {
object.background = RGB(0,255,0); // green
object.foreground = RGB(0,0,0); // black
} else {
object.background = plg_Olive; // logical color
object.foreground = RGB(0,0,0); // black
}
Please take care the syntax of the line :
object.background = …
If the value is greater than 10 the background color will be green, if not it will be plg_Olive, one of the S+O
Logical Colors defined in the Blcoldeck.xml.

25.28.4 Predefined Colors


Predefined colors, predefined in the system as strings, can be used in a script using the following syntax :
if(value == 0) {
object.backgroundName = "green"; // green
object.foregroundName = "black"; // black
} else {
object.backgroundName = "red"; // red
object.foregroundName = "black"; // black
}
It is better to use RBG function or logical color and not predefined colors, because they are fixed (so, not
customizable).
foregroundName and backgroundName required color should be in “string” format:
object.foregroundName = “color_name”;

25.29 Composite Object (Group) Management


It is possible to create a symbol which contains a group of 2 squares one above the other. These 2 squares
have the same dimensions and positions. It is necessary to identify each of the 2 squares by setting up a name
(right click and the put the name in the “Element name”). Then it is necessary to add dynamics to this group.
The example of script can related to this group is shown below:
if(value == 0) {
object.GREEN.background = 65280;
object.GREEN.foreground = 0;
202 2VAA001149C
SPlus Operations Display Builder User Guide SCRIPTING LANGUAGE

} else {
object.RED.background = 255;
object.RED.foreground = 0;
}
When GREEN and RED are square elements names.

Figure 25-2: Composite object (group) management

25.30 Show/Hide Management


The “show” attribute can be used in the following ways, see the following examples:

25.30.1 Example 1: Object.Show


if(value != 1 && value < 20) { // means : if the value of the tag is different from 1 and it is lower than 20
object.show = TRUE; // this line of code shows the object
} else {
object.show = FALSE; // this line of code hides the object
}

25.30.2 Example 2: Composite Object


The symbol is composed of two grouped elements named respectively FIRST and SECOND.
if(value < 20) { // means : if the value of the tag is lower than 20
object.FIRST.show = TRUE; // this line of code shows the object element
object.SECOND.show = FALSE; // this line of code hides the object element
} else {
object.FIRST.show = FALSE; // this line of code hides the object element
object.SECOND.show = TRUE; // this line of code shows the object element
}

25.30.3 Example 3: Object on a Page or Faceplate


if(value < 20) { // means : if the value of the tag is lower than 20
FIRST.show = TRUE; // this line of code shows the object
} else {
FIRST.show = FALSE; // this line of code hides the object
}

2VAA001149C 203
SPlus Operations Display Builder User Guide SCRIPTING LANGUAGE

The previous script refers to an object on the current page with the “Element Name” equal to FIRST

25.31 Blink Management


The “blink” attribute can be used in the following ways, see the following examples:

25.31.1 Example 1: Blink On


if(value != 1 && value < 20) { // means : if the value of the tag is different from 1 and it is lower than 20
object.blink = TRUE; // blink on
} else {
object.blink = FALSE; // blink off
object.show = TRUE; // this line of code set the object visible
}
With blink FALSE use:
Show TRUE - if the object must be visible
Show FALSE - if the object must be not visible
The show attribute must be managed always after the blink set to FALSE.

25.31.2 Example 2: Composite Object


The symbol contais the group of two elements named respectively FIRST and SECOND.
if(value < 20) { // means : if the value of the tag is lower than 20
object.FIRST.blink = TRUE; // the FIRST object blink is enabled
object.SECOND.show = FALSE; // the SECOND object is hidden
} else {
object.FIRST.blink = FALSE; // the FIRST object blink is disabled
object.FIRST.show = FALSE; // the FIRST object is hidden
object.SECOND.show = TRUE; // the SECOND object is shown
}

25.31.3 Example 3: Object on a Page or Faceplate


if(value < 20) { // means : if the value of the tag is lower than 20
FIRST.blink = TRUE; // the FIRST object blink is enabled
} else {
FIRST.blink = FALSE; // the FIRST object blink is disabled
FIRST.show = FALSE; // the FIRST object is hidden
}
The previous script refers to an object on the current page with the “Element Name” equal to FIRST, with the
blink FALSE instruction there is the show FALSE instruction.

25.31.4 Example 4: Logical Blinking Color


if(value > 10) {
object.background = plaUnackDY ; // plaUnackDY is a logical blinking color
} else {
object.background = plg_Olive; // plg_Olive is a logical color
}
If the value is greater than 10 the symbol will blink with plaUnackDY, a logical blinking color.
See the following code line to understand :

204 2VAA001149C
SPlus Operations Display Builder User Guide SCRIPTING LANGUAGE

<COLOR name="plaUnackDY" descr="Unacknowledged discrepancy alarm: display element symbol border"


colorname="blue-grey" r="145" g="220" b="255" blink_r="70" blink_g="110" blink_b="130" />
The primary color is defined by r,g,b values, the secondary color is defined by blink_r, blink_g, blink_b, the
symbol will blink between these two colors.

25.32 Ghost Management


Using the instruction :
object.ghostElement = TRUE; (or FALSE)
The visibility of the object under the mouse pointer can be managed. If there is an action linked to a field to set
the value of a tag or to call a faceplate, when the pointer of the mouse moves over, the object indicates the
action linked to the object. It is possible to enable or disable this action using this instruction.

25.32.1 Example 1: Object.Ghostelement


if(value != 1 && value < 20) { // means : if the value of the tag is different from 1 and it is lower than 20
object.show = TRUE; // show on
object.ghostElement = TRUE; // BE CAREFUL NOW THE OBJECT IS GHOST - ACTION IS DISABLED
} else {
object.show = TRUE; // show on
object.ghostElement = FALSE; // BE CAREFUL NOW THE ACTION IS ENABLED
}

25.32.2 Example 2: Composite Object


The symbol is composed of two grouped elements named respectively FIRST and SECOND.
if(value < 20) { // means : if the value of the tag lower than 20
object.FIRST.blink = TRUE; // this line of code shows the object
object.SECOND.show = FALSE; // this line of code hides the object
object.SECOND.ghostElement = TRUE; // BE CAREFUL NOW THE OBJECT IS GHOST - ACTION IS
// DISABLED
} else {
object.FIRST.blink = FALSE; // this line of code hides the object
object.FIRST.show = FALSE; // this line of code hides the object
object.SECOND.show = TRUE; // this line of code shows the object
object.SECOND.ghostElement = FALSE; // BE CAREFUL NOW THE ACTION IS ENABLED
}

25.32.3 Example 3: Object on a Page or Faceplate


if(value < 20) { // means : if the value of the tag is lower than 20
FIRST.blink = TRUE; // this line of code shows the object
FIRST.ghostElement = FALSE; // ACTION ENABLED
} else {
FIRST.blink = FALSE; // this line of code hides the object
FIRST.show = FALSE; // this line of code hides the object
FIRST.ghostElement = TRUE; // ACTION DISABLED
}
The previous script refers to an object on the current page with the “Element Name” equal to FIRST.

2VAA001149C 205
SPlus Operations Display Builder User Guide SCRIPTING LANGUAGE

25.33 Quality and Alarm Management (IsBad, IsAlm, IsToAck)

25.33.1 IsBad / IsBad_n


Example: simple red/green led with bad quality check.
if(IsBad) { // test the quality of the tag
object.background = RGB(255,0,255); // magenta
} else {
if(value == 1) {
object.background = RGB(255,0,0); // red
} else {
object.background = RGB(0,255,0);// green
}
}
In this example, the bad quality status check has higher priority than the value check. Only if the quality is good the value
check is performed.

25.33.2 IsAlm / IsAlm_n / IsToAck / IsToAck_n


Example of simple red/green led with blink.
if(IsAlm) { // alarm check
object.background = 255; // alarm status color (red)
if(IsToAck) { // acknowledge status check
object.blink = TRUE; // blink;
} else {
object.blink = FALSE // no blink;
object.show = TRUE; // to be sure that the object is visible;
}
} else {
object.background = 65280; // normal status color (green)
}

25.34 Object.string-Value and Text Format for Analog Fields


It is possible to show text that contains the tag value in real format defined by input parameters using the
following script:
// FormatReal(value,NumDec) // FormatReal function use
func FormatReal(){ // real value format function
NumDec = $2 // function parameter
if(first == 0){
DBNUMDEC = -1;
first = 1;
}
if(NumDec < 0) NumDec = 0; // decimals number min limit
if(NumDec > 6) NumDec = 6; // decimals number max limit
if(NumDec != DBNUMDEC){
DBNUMDEC = NumDec;
textFormat = 0;
cur = toString(DBNUMDEC);
206 2VAA001149C
SPlus Operations Display Builder User Guide SCRIPTING LANGUAGE

txt = "%."; // textFormat example:


concat (txt, cur); // "%.1"
concat (txt,"f"); // "%.1f":
textFormat = txt; // means value format:
}
str = "";
str = $1;
return str;
}

func Text() { // string to be shown definition


TagRead(SO_Obj, SO_Tag, "" ,G); // G = Tag main atom value
return FormatReal(G,1); // G & number of decimals (1) for the function
} // (note: number of decimals can be an input parameter)
object.string = Text(); // main tag value in real format – function call

25.35 Using Input Parameters


Symbols’ Input parameters allow customizing symbols without changing internal script. These parameters can
be modified during symbol placing on the graphics’ page or during nesting the symbol inside the other one.
In the following examples (1 & 2) it is possible to modify the symbol background color by means of input
parameter. An input parameter named COLOR contains the value of object background color.
Input parameter COLOR can be managed in script in different ways depends on requirements.

25.35.1 Example 1: Input Parameter Used Directly as Object Background


object.background = COLOR; // COLOR is used directly as object background

25.35.2 Example 2: Input Parameter Used Indirectly as Object Background


func ip_COLOR() {
return COLOR; // COLOR results of dedicated ip_COLOR() function
}
func BackColor() {
return (ip_COLOR()); // COLOR results of BackColor() function
}
object.background = BackColor(); // COLOR is used indirectly as object background

25.35.3 Example 3: Input Parameter Used as Tagread Function Parameter


In this example the text format input parameter named TAGATOM includes tag atom name (".C_APV").
The value of TAGATOM can be managed in the script for example in the way shown below:
func ip_TagAtom() {
TagRead(SO_Obj, SO_Tag, TAGATOM ,D); // D contains the value of TAGATOM input parameter
return D;
}

25.36 TagRead Function (As Example of Additional Functions)


Examples of possible function application are as follows:

2VAA001149C 207
SPlus Operations Display Builder User Guide SCRIPTING LANGUAGE

25.36.1 Example 1: TagRead function with direct parameters


It is posiible to call TagRead function with explicit atom parameter:
TagRead(SO_Obj, SO_Tag, ".ALARM" ,Output);
In this case Atom parameter is directly named in function call. Output contains the value of ALARM atom.
TagRead(SO_Obj, SO_Tag, "" ,Output);
In this case Atom parameter empty in function call. Output contains the value of Tag Main atom.

25.36.2 Example 2: TagRead function with Atom input parameter


In this example the text format input parameter named TAGATOM includes tag atom name (".PV").
The value of TAGATOM can be read in the script for example in this way:
func ip_TagAtom() {
TagRead(SO_Obj, SO_Tag, TAGATOM ,D); // D contains the value of TAGATOM input parameter
return D;
}
NOTE: In case TagRead function call fails (for example the TAGATOM parameter does not contain the valid value), the
function return code is equal to 0 => FAIL.
We suggest to include TagRead call test to determine the correct function execution.
TagRead function check application example:
Input parameter UPPER_LIMIT can be either tag atom’s name (for example "C_APV") or simply a fixed input
parameter value. In the function ip_upper_limit() shown below, the TagRead function call execution is tested
and if the execution is correct, the function returns tag atom’s value, otherwise returns the UPPER_LIMIT fixed
value.
func ip_upper_limit() {
z1=".";
concat(z1,UPPER_LIMIT);
check= TagRead(SO_Obj, SO_Tag, z1, UPPER_Val);
if( check== 1){
return UPPER_Val; // TagRead() call executed without error
}else{
return UPPER_LIMIT; // TagRead() call executed with error
}
}

25.37 Rotate, Object.Rotationstep and Object.Currentrotationstep

25.37.1 Example 1: Rotate Function


The instrument shown below creates a rotating object to indicate values 0 -200.

Figure 25-3: Rotating Object

LOWER_LIMIT = 0; // scale min value


UPPER_LIMIT = 200; // scale max value
EU_high = UPPER_LIMIT-LOWER_LIMIT; // measuring range

if (first == 0) { // init values (first scan)

208 2VAA001149C
SPlus Operations Display Builder User Guide SCRIPTING LANGUAGE

span = 180; // max degrees


lastDeg = 0; // current position
first = 1;
}
currDeg = int((value*span) / EU_high); // current angle calculation (% of Eu value)
if (lastDeg != currDeg) { // if value changed return to original position
rotate(object,-lastDeg);
lastDeg = currDeg; // position update
rotate(object,lastDeg); // new position set
}

25.37.2 Example 2: Object.Rotationstep and Object.Currentrotationstep


The instrument shown below shall indicate measured value (0-100%) changing the object rotation angle value
respectively from 0 to 270 degrees.

Figure 25-4: Object Rotation Angle


// TYPICAL INSTRUMENT START
if (firstTime == 0) { // initialization
object.rotationStep = 0;
object.currentRotationStep = 0;
firstTime = 1;
}
FS = 100; // span (100%)
ang = int(value); // measured value in % (input value)
if ( ang > FS ) { // indicator’s rotation is limited to FS (100)
ang = FS;
}
object.rotationStep = 1; // instrument resolution
object.currentRotationStep = (ang * 270 / FS); // value indication angle
// TYPICAL INSTRUMENT END

25.38 Text alignment Within the Rectangle - Example


The symbol described below contains the group consisted of RECT and TEXT elements.
In this example the Tag status is read by means of TagRead function and the proper TEXT is displayed and
aligned within the RECT element. The proper text is chosen from input parameters: BQTEXT, YTEXT and
NTEXT.
// $1 - Ref obj x/y // text alignment function parameters calculation
// $2 - Ref obj w/h // based on text characteristics
// $3 - obj w/h //
func center () { //
2VAA001149C 209
SPlus Operations Display Builder User Guide SCRIPTING LANGUAGE

return ($1 + int ($2 / 2) - int ($3 / 2)); // text Center


} //
func LeftTop() { //
return ($1); // text Left Top
} //
func RightBottom() { //
return ($1 + $2 - $3); // text Right Bottom
} //
// $1 - Ref obj x/y //
// $2 - Ref obj w/h //
// $3 - obj w/h //
// $4 - Align code: 0 = left/top 1 = center 2 = right/bottom //
func Align() { // text alignment function
if ($4 == 0) return LeftTop($1, $2, $3); //
if ($4 == 2) return RightBottom($1, $2, $3); //
return center($1, $2, $3); // default (text centered)
} //

func ip_bqtext() { // text to be displayed when TAG bad quality status


return BQTEXT; // input parameter
}
func ip_ytext() { // text to be displayed when TAG value =1 (TRUE)
return YTEXT; // input parameter
}
func ip_ntext() { // text to be displayed when TAG value = 0 (FALSE)
return NTEXT; // input parameter
}

func Text() { // text to be displayed


TagRead(SO_Obj, SO_Tag, ".BAD" ,F); // TAG bad quality atom read
TagRead(SO_Obj, SO_Tag, "" ,G); // TAG value check (main atom)
if(F == 1) { // bad quality check (highest priprity)
return ip_bqtext();
}else{
if(G == 1) { // 1 status check
return ip_ytext();
}else{
return ip_ntext();
}
}
}
object.string= Text(); // the sting to be shown (function to be defined inside the script)
object.TEXT.x = Align(object.RECT.x, object.RECT.width, object.TEXT.width,1); // text alignment X - center
object.TEXT.y = Align(object.RECT.y, object.RECT.height, object.TEXT.height,1); // text alignment Y - center

210 2VAA001149C
SPlus Operations Display Builder User Guide SCRIPTING LANGUAGE

25.39 Concat Function - Example


When we have an input parameter named TXTTAGATOM, parameter in text format that includes tag atom
name only without "." (for example PV) and we need to use TagRead function to read the value of
TXTTAGATOM, it is necessary to modify text to “.TXTTAGATOM” format using concat function as shown
below:
s1="."; // s1 = "."
concat(s1,TXTTAGATOM); // s1 = ".TXTTAGATOM"
TagRead(SO_Obj, SO_Tag, s1, val); // val contains the value of TXTTAGATOM input parameter
The result we have in this case is the same as using the following TagRead function call :

TagRead(SO_Obj, SO_Tag, “.PV”, val);


The other example of concat() function application (together with SetFont function) is described below.

25.40 SetFont Function - Example


If needed text font can be defined inside the script or using symbol input parameters as in example below:
func ip_val_font() {
return VAL_FONT; // input parameter to define font name
}
func ip_val_height() {
return VAL_HEIGHT; // input parameter to define font size
}
//$1 = VAL_FONT
//$2 = VAL_HEIGHT
func Font() {
FontName = $1; // VAL_FONT
FontSz = $2; // VAL_HEIGHT
str = "Font( "; // str = "Font( "
concat(str, FontName ); // str = "Font( FontName"
concat(str, ", "); // str = "Font( FontName,"
concat(str,FontSz); // str = "Font( FontName, FontSz"
concat(str, ", bold, *)"); // str = "Font( FontName, FontSz", bold, *)"
return str; // returns the str used by SetFont
}
func Text() { // text to be shown
TagRead(SO_Obj, SO_Tag, "" ,val); // Tag main atom value is read
return val; // text to be shown - Tag main atom value
}
object.string= Text(); // the string to be shown
name = Font(VAL_FONT, VAL_HEIGHT); // Font defined by input parameters mentioned above
SetFont(SO_Obj, "", name); // SetFont function call

2VAA001149C 211
SPlus Operations Display Builder User Guide SYMBOLS AND FACEPLATES

26. SYMBOLS AND FACEPLATES


For development you need a PC (hardware or virtual) with the following software installed
 Windows 7 (a 64Bit system should be preferred from S+ SP2 on, nevertheless actually a 32Bit system is allowed
for an Engineering node)
 Symphony Plus SP2 (or later) installation
 Microsoft Office 2010
Symphony Plus supports multiple connectivity’s, depending on the connectivity you have to install the related engineering
tool in addition
 For Melody the Composer Melody
 For Harmony the Composer Harmony
 For AC800M the Compact Control Builder 5.1 with Soft-Controller and AC 800M OPC Server

26.1 Source Code Management


Because symbols and faceplates are typically developed as part of a library, which is delivered in different versions
with bug fixes over the time, you should consider using a source code management (SCM) tool of your choice,
e.g.
 Microsoft Team Foundation Server includes a commercial SCM tool.
 SubVersion is a free SCM tool. Download the Windows client TortoiseSVN from http://tortoisesvn.net/. Dependant
on your development system you may use the 32 or 64Bit version, for Symphony Plus SP2 or later you should
use the 64Bit version. See http://www.apache.org/licenses/ for licensing.
 TortoiseHg is a Mercurial revision control client, implemented as a Windows Explorer shell extension. TortoiseHG
and Mercurial are available under GNU General Public License (GPL).

26.2 Test
For the test of faceplates and symbols you need tags in your Symphony Plus database. Therefore create a test project for
your Controller, insert some modules of your choice, load application(s) to your (Soft-)Controller and import the tag data to
the database.
NOTE: in order to get life data via AC 800M OPC Server you have to restart Symphony Plus. As soon as you get process
data, you can display and test your graphics.
Of course it is tricky to check a module under all possible conditions at runtime and you have to write simulation code for
your (Soft-)Controller to achieve this. But if you are connected to an OPC Server, it is possible to perform reproducible
tests with a specific simulation environment, see chapter 26.28.

26.3 General Workflow for Migration


Symbols and faceplates can be developed from scratch, but sometimes they exist already for other control systems e.g.
800xA. Perhaps it is a requirement for your project, that the look-and-feel should be similar for both systems and the
existing functionality should be migrated to Symphony Plus.
NOTE: the graphic functions of 800xA are much more advanced compared to S+. In order to reduce development effort
you should keep your requirements and design as simple as possible.

212 2VAA001149C
SPlus Operations Display Builder User Guide SYMBOLS AND FACEPLATES

Figure 26-1: General Migration Workflow Overview


Graphics in 800xA are either PG1 or PG2 aspects. For PG1 you get no support for migration, it is only possible to migrate
manually by reviewing code (Visual Basic) on 800xA and implement similar functionality for Symphony Plus.
If possible, you should migrate PG1 graphic to PG2 graphic in 800xA, which can be done using the
MigrationApplication.exe found in 800xA bin directory. Unfortunately this is sometimes tricky and you may get error
messages during migration. But as benefit you can export your graphic in XML format (XGML) for reference. There exist
tools to convert XGML to LOOX code, but the benefit depends very much on your working method. PSP-A51 in Germany
used the tool XGML2PGP to convert code included in XGML to LOOX near code. This code can be used as draft inside
Display Builder, but review and manual adaption is required in any case.
Nevertheless the XML code contains all graphic elements, parameters and expressions.

26.4 Setup the Development System


After Symphony Plus has been installed some special settings are required for symbol and faceplate development.
In order to enable parameter editing for symbols in Display Builder you have to set Apps/IbDisp/Sysmgr = “YES” in
Registry.

2VAA001149C 213
SPlus Operations Display Builder User Guide SYMBOLS AND FACEPLATES

Figure 26-2: Enable parameter editing for symbols


You also have to set
.APPS\IBDISP\GblSymSkipRemoveAtoms (string) = YES.

26.5 Symbols
Mimics are used in S+ Operations to display process data while faceplates provide more detailed information and control.
Mimics include a collection of basic graphic items e.g. lines, rectangles and text and in addition a set of predefined
symbols installed in the system similar to the graphic elements in 800xA.
There are symbols to display tag specific data, the implementation of these symbols typically depend on the control
system e.g. Harmony or Melody. Other symbols may exist for general use like a text box with different alignments and
colors.
Parameters for symbols are normally reduced to %TAG% assuming that atoms are accessed only within that symbol.
While this is useful for symbols in process displays, it is not possible to create generic symbols with a basic data type as
input e.g. bool and to connect this to an atom. In order to enable this feature you have to define the following registry key.
.APPS\IBDISP\GblSymSkipRemoveAtoms (string) = YES.
This chapter is a walk through how to implement such a tag specific symbol, which can be used in a mimic later.
Start the Display Builder and save the empty default document with a specific name and in a specific folder. You should
use a naming convention for your symbols, for details see 26.16.2. Especially for inserting code snippets you should
define a directory structure in addition, for details see 26.17.
The sample symbol is named like this
Wat_sepMotValveM_DisplayElementX
 Wat characterizes a specific library or project, here Water Library
 sepMotValveM a type in the controller library
 DisplayElementX a symbol for this type similar to display elements in 800xA
Initially the empty symbol includes only a rectangle named #WVP. This rectangle defines the default size of your symbol,
in this case 70 pixel width and height. You can define the X,Y position as you like, there is no influence for the position in a
mimic. All other graphic elements are inside this rectangle or are clipped using this rectangle.

214 2VAA001149C
SPlus Operations Display Builder User Guide SYMBOLS AND FACEPLATES

Figure 26-3: Symbol size definition


The symbol consists of multiple components (groups), it is a good practice to group simple graphic elements. First we
create a motor group like this

Figure 26-4: Grouped graphic elements

Figure 26-5: Group inside a symbol


This group includes a circle, two text fields with static text and a surrounding rectangle. In order to animate the graphic
with script code, you should name the parts accordingly.
Note: A new function SetFont is now available to set the font weight in script code. Alternatively you can create two text
fields and show/hide the relevant text.
If (POS == "Opened") {
object.T1F1.show = TRUE;
object.T1F2.show = FALSE;
} else {
object.T1F2.show = TRUE;
object.T1F1.show = FALSE;
}
The script code for the animation is located at the group. Especially for many lines of code it is a good practice to
structure the code like this:
// *** Begin – local functions
func center () {
return ($1 + int ($2 / 2) - int ($3 / 2));
}
// *** End – local functions
// *** Begin - Definition of Interface
// TODO: assign here the global variables of main control
ip_FillColor = xAPCSYMBOL_FILLCOLOR;
ip_LineColor = xAPCSYMBOL_LINECOLOR;
ip_LineColor2 = xAPCSYMBOL_LINECOLOR2;
ip_LineWidth = 2;
2VAA001149C 215
SPlus Operations Display Builder User Guide SYMBOLS AND FACEPLATES

ip_LineWidthOpened = 3;
ip_MotorText = "M";
ip_Position = xAPCSYMBOL_POSITION;
ip_Symbol = xAPCSYMBOL;
// *** End - Definition of Interface
// when ...
// S+_BASICSYMBOLS UT_X_MOTOR INIT
if (ip_Symbol == "Motor") {
object.show = TRUE;
} else {
object.show = FALSE;
}
POS=ip_Position;
object.RECT1.show = FALSE;
object.E1.foreground = ip_LineColor;
if (POS == "Opened") {
E1_Line = ip_LineWidthOpened;
} else {
E1_Line = ip_LineWidth;
}
object.E1.lineWidth = E1_Line;
object.E1.background = ip_FillColor;
object.T1F1.fillStyle = 0;
object.T1F2.fillStyle = 0;
object.T1F1.foreground = ip_LineColor2;
object.T1F1.string = ip_MotorText;
object.T1F2.foreground = ip_LineColor2;
object.T1F2.string = ip_MotorText;
if(POS == "Opened") {
object.T1F1.show = TRUE;
object.T1F2.show = FALSE;
} else {
object.T1F2.show = TRUE;
object.T1F1.show = FALSE;
}
object.T1F1.x = center (object.E1.x, object.E1.width, object.T1F1.width);
object.T1F1.y = center (object.E1.y, object.E1.height, object.T1F1.height);
object.T1F2.x = center (object.E1.x, object.E1.width, object.T1F2.width);
object.T1F2.y = center (object.E1.y, object.E1.height, object.T1F2.height);
// S+_BASICSYMBOLS UT_X_MOTOR END
In the sample code there is a section with local functions. After that some variables are initialized either with constants or
with global variables. The global variables are defined somewhere else and are used in multiple places within the symbol.
Then the animation code for the graphic elements follows.
The following figure shows the next group, as before you have a couple of graphic elements and some script code for the
group.

Figure 26-6: Grouped elements

216 2VAA001149C
SPlus Operations Display Builder User Guide SYMBOLS AND FACEPLATES

Figure 26-7: Group inside symbol


Typically a symbol has also groups called indicators, which are located at the corners and borders. Such indicators show
status information like manual/automatic mode, forced output signal or open/close operation.

Figure 26-8: Indicators


For all your symbols you should define an indication for disturbed process connection.

Figure 26-9: Visualize disturbance


The symbol includes as many groups as you need for your requirements. For the following reasons It makes sense
to structure your symbol like this
 Groups can be re-used in multiple symbols.
 The number of elements is clearly represented
 There are not many code lines in a script window.
Until this point the symbol does not connect to the S+ database. Basically there exist two concepts.
 Connect the different diagram types as described in the Display Builder manual to graphic elements.
 Access the database in your script code.
Both concepts have benefits and you have to decide case by case. In our sample the database code is located at a
central place in an extra text element, which is hidden at runtime. The process values are stored in global variables
and are consumed inside the interface part of multiple groups. It is no problem to use more than one code element, if
you like to avoid long code scripts. In order to initialize variables before usage you have to arrange the code
elements before others.

2VAA001149C 217
SPlus Operations Display Builder User Guide SYMBOLS AND FACEPLATES

Figure 26-10: Code Element in Symbol


Note: Another approach is to put the database code inside or before the interface code of your groups. Then database
access is spread around to your groups, the code is located directly at the consumer. Script code tend to be duplicated,
the same tag is accessed multiple times, but this should not result in performance problems.
Here are some snippets from the database code:
func e_StatusFBStopped() {
return trStatus_BaseStatus_Stopped;
}
func e_NoActiveAlarm() {
if (fncAnd(trStatus_BaseStatus_TotAlStat_AlarmStatus,1) == 1) {
return FALSE;
} else {
return TRUE;
}
}
func e_UnackAlarm() {
if (fncAnd(trStatus_BaseStatus_TotAlStat_AlarmStatus,4) == 4) {
return TRUE;
} else {
return FALSE;
}
}
func e_RunningColor() {
if (IsBadQual(qrStatus_BaseStatus_Opening)) {
return plgQualityBad;
} else if (e_AlarmGoneUnack()) {
if (e_StatusFBOpening()) {
return plgRunningToOnBlink;
} else {
return plgRunningToOffBlink;
}
} else if (e_InAlarm()) {
return e_AlarmColor();
} else if (e_StatusFBOpening()) {
return plgRunningToOnBlink;
} else {
return plgRunningToOffBlink;
}
}

global xAPCSYMBOL_RUNNINGFILLCOLOR;
global xAPCSYMBOL_RUNNINGVISIBLE;

TagRead(SO_Obj,SO_Tag,".Status.BaseStatus.Stopped",trStatus_BaseStatus_Stopped); //Control Module
TagRead(SO_Obj,SO_Tag,".Status.BaseStatus.TotAlStat.AlarmStatus",trStatus_BaseStatus_TotAlStat_AlarmStatu
s); //Control Module

xAPCSYMBOL_RUNNINGFILLCOLOR = e_RunningColor();
xAPCSYMBOL_RUNNINGVISIBLE = e_RunningVisible();
218 2VAA001149C
SPlus Operations Display Builder User Guide SYMBOLS AND FACEPLATES

There are functions (expressions) with leading characters “e_” corresponding to the expressions in 800xA. These
expressions use predefined values like colors, local variables with process values and other expressions e_*.
After that the global variables are defined, which are consumed by the different groups as explained earlier.
Then process data is read from the database using TagRead.
Finally the global variables are initialized.
Symbols may also have parameters e.g. ORIENTATION. Add parameters to a symbol using the header dialog in Display
Builder.

Figure 26-11: Global Symbol Attributes


Inside your symbol code parameters should be accessed like this
func ip_Orientation() {
return ORIENTATION;
}
You have to set Apps/IbDisp/Sysmgr = “YES” in order to enable parameter editing in Display Builder, see chapter 26.4
Setup the Development S

26.6 Faceplates
The naming for faceplates is pop_<typename> e.g. pop_sepMotValveM. While the naming for symbols is a convention
only, this naming for faceplates is mandatory.
NOTE: The AC800M importer creates tags in the tag database using this faceplate name. You have no possibility to
customize the importer,. You may modify the tag database later on, but you have to do this after each import.

Figure 26-12: Faceplate Name in Tag Database

26.7 General Layout for Faceplates


All your faceplates should have a common look and feel. Therefore it is a good practice to create a template first, defining
the basic layout. In order to create a new faceplate open the template with display builder, save with the required file name
and proceed to edit. By using a template you get automatically the correct sizes for indicator area, buttons and so on.

2VAA001149C 219
SPlus Operations Display Builder User Guide SYMBOLS AND FACEPLATES

Figure 26-13: Template for faceplates

For each different layout you should have a suitable template.

Table 26-1: Templates for Faceplates

Template Description
Pop_template_1_1 1 row for indicators and buttons
Pop_template_1_2 1 row for indicators and 2 rows for buttons
The size of a faceplate is defined by #WVP similar to symbols. But a faceplate can be designed to be shown in standard,
extended and reduced view.
#WVP
This rectangle defines the faceplate size in standard view.
#WVP1
This rectangle defines the faceplate size in extended view. #WVP1 overlaps #WVP
#WVP3
This rectangle defines the faceplate size in reduced view. #WVP3 do not overlap #WVP nor #WVP1.

220 2VAA001149C
SPlus Operations Display Builder User Guide SYMBOLS AND FACEPLATES

Figure 26-14: Faceplate views


A faceplate must always set the No History flag in header, because a faceplate is connected to specific tag types and a
faceplate never participates in the history.

Figure 26-15: Faceplate header

26.8 Header Area


The header contains a title and global alarm and status indication for a tag. Global symbols could be used for this purpose.

Figure 26-16: Header area

Figure 26-17: Global symbol Wat_UTHeader

2VAA001149C 221
SPlus Operations Display Builder User Guide SYMBOLS AND FACEPLATES

Figure 26-18: Global symbol for alarm indication


The code for the alarm indicator typically includes
 Some functions to get status information from the database
 Event handler for click and release in order to trigger actions
 code to animate the indicator

26.9 Indicator Area


This area gives more detailed status information about a tag, e.g. manual/automatic mode.

Figure 26-19: Indicator area


There are some bitmaps or symbols, which are displayed or hidden based on the actual tag data.

Figure 26-20: Sample symbol Wat_INDAUTO for an indicator


The code for the sample Wat_INDAUTO looks like this:
//Global Attributes: ATOMNAME, VALUE_AUTO, VALUE_MAN
TagRead(SO_Obj,SO_Tag, ATOMNAME,TagResult1);
SHOW = TagResult1; // %TAG%
if (SHOW == VALUE_AUTO) {
object.A1.show = TRUE;
object.M1.show = FALSE;
} else if (SHOW == VALUE_MAN) {
object.A1.show = FALSE;
object.M1.show = TRUE;
} else {
object.A1.show = FALSE;
object.M1.show = FALSE;
}
An atom for a tag is read from database, the atom name and the related values are defined as symbol properties.
Therefore this symbol can be re-used for different tag types. Dependant on the process value, either a bitmap or an empty
rectangle is shown.
Typically a faceplate has multiple indicators.

222 2VAA001149C
SPlus Operations Display Builder User Guide SYMBOLS AND FACEPLATES

26.10 Standard View


The standard view displays the most relevant information about a tag. Edit this area similar to a normal mimic by using
simple graphic elements or symbols.
Note: do not use absolute tag references. All references have to be relative to %TAG%, which is the actual tag the
faceplate is connected to.

Figure 26-21: Faceplate standard view

Figure 26-22: Tag reference


A tag reference may be %TAG% only, or atoms may be appended with “.” e.g. %TAG%.<atomname>.

26.11 Button Area


The button area contains some buttons for operation. When a button is pressed, a specific action is executed e.g. by
PRCBTN, see Display Builder manual.

Figure 26-23: Button area


800xA faceplates have some special requirements
 Buttons are enabled or disabled dependant on the process context
 First an operation is selected by pressing a button (two-step-operation)
 Second an operation is triggered by the “Apply” button
 The selected operation is canceled after some seconds, if the “Apply” button is not pressed.
2VAA001149C 223
SPlus Operations Display Builder User Guide SYMBOLS AND FACEPLATES

For S+ we have to consider how to implement these requirements. An action for a button requires a parameter for
PRCBTN, but unfortunately this parameter cannot be set by script code. Therefore it is not possible to define an apply
button, which performs different actions dependent on the actual context. A solution is to create multiple apply buttons and
to position the relevant button based on actual context. The following paragraphs describe how to implement this.

Figure 26-24: Definition of action for buttons

Figure 26-25: Buttons for two-step-operation


There is a dummy apply button in the button area defining the position for all the apply buttons. Due to the coding in the
script this button has to be named “TOSELECT”. There is no dynamic for this button and no action is configured, but there
is some script code to show or hide this button.

// TYPICAL DEFAULT_APPLY_BUTTON START


// Showed when other confirmation buttons are hidden
// Check for Single/Double Button
if (TwoStepOperation == 0) {
// DISABLED!!!!
object.ghostElement = TRUE;
object.show = FALSE;
} else {
str = "";
subString( ENABLED_CNF.string, 0, 3, str);
object.show = str != "CNF";
object.ghostElement = !object.show;
}
// TYPICAL DEFAULT_APPLY_BUTTON END
The variable TwoStepOperation is a global system variable and enables two-step-operation. A text element
ENABLED_CNF is used to store context information for the faceplate. The dummy button is only shown, if the context
variable does not contain text starting with “CNF”, meaning there is no operation selected.
The selection buttons define a dynamic e.g. a DNNV diagram, in order to enable/disable the button based on process
data.

224 2VAA001149C
SPlus Operations Display Builder User Guide SYMBOLS AND FACEPLATES

func SetToolTip() {
ToolTipText = TOOLTIPCMD1.string;
}
func GetEnabled() {
return xOPBMANMODEBUTTON_ENABLED;
}
// TYPICAL COMMAND_BUTTON START
proc OnClick () {
if (object.ghostElement == FALSE) { // If button enabled
object.BUTT.shadowInverted = TRUE;
object.ghostElement = TRUE; // disable itself
}
// If button disabled -> Active confirmation
if (object.ghostElement == TRUE) {
object.IMAGE.show=FALSE;
object.IMAGEDIS.show=TRUE;
str = "CNF";
concat(str, object.name);
ENABLED_CNF.string = str;
LTIMER = 10; // Set local timer
}
}
when click OnClick;
enabled = GetEnabled();
SetToolTip();
if (LTIMER > 0) {
LTIMER = LTIMER-1;
if (LTIMER == 0) {
ENABLED_CNF.string = "END_TIMER";
}
} else {
object.BUTT.shadowInverted = FALSE;
}
strx = "";
subString( ENABLED_CNF.string, 0, 3, strx);
object.ghostElement = ((strx == "CNF") || (enabled==FALSE));
// ... change color of "icon" as function of enable/disabled ...
if (object.ghostElement) {
object.IMAGEDIS.show = TRUE;
object.IMAGE.show = FALSE;
} else {
object.BUTT.shadowInverted = FALSE;
object.IMAGEDIS.show = FALSE;
object.IMAGE.show = TRUE;
}
// TYPICAL COMMAND_BUTTON END
The code starts with SetToolTip to get a string for the tooltip, see 26.15. GetEnabled returns a Boolean value, in this case
the value is defined by a global variable declared in a database code element. The rest of the code is common for all
selection buttons and is provided as code snippet. The dummy button already used a code snippet called
DEFAULT_APPLY_BUTTON, for details about code snippets see 26.17. For the two-step-operation there are other code
snippets, in order to better maintain the code.
If the button is disabled an image IMAGEDIS is shown, otherwise the image IMAGE. When the button is enabled, it can be
clicked. The event handler stores context information, starts a timer and disables the button. Now the apply buttons
become active, this is code for an apply button.
// TYPICAL APPLY_BUTTON START
func SetToolTip() {
ToolTipText = TOOLTIPAPPLYBUTTON.string;
}
proc OnClick () {
if (object.ghostElement == FALSE) { // If button enabled
object.BUTT.shadowInverted = TRUE;
object.ghostElement = TRUE; // disable itself
}
if (object.ghostElement == TRUE) {
object.IMAGE.show=FALSE;
object.IMAGEDIS.show=TRUE;
ENABLED_CNF.string ="END";
}
2VAA001149C 225
SPlus Operations Display Builder User Guide SYMBOLS AND FACEPLATES

}
proc OnRelease() {
object.BUTT.shadowInverted = FALSE;
}
when click OnClick;
when release OnRelease;
// Showed when other confirmation buttons are hidden
// Check for Single/Double Button
SetToolTip();
if (TwoStepOperation == 0) {
// DISABLED!!!!
object.ghostElement = TRUE;
object.show = FALSE;
} else {
object.BUTT.shadowInverted = FALSE;
object.show = ENABLED_CNF.string == object.name;
object.ghostElement = !object.show;
object.IMAGE.show = object.show;
object.IMAGEDIS.show = !object.show;
object.x = TOSELECT.x;
object.y = TOSELECT.y;
}
// TYPICAL APPLY_BUTTON END
The apply button is named according to an operation e.g. CNFCLOSE or CNFMAN. If the context variable
ENABLED_CNF is set to such an value, the button enables itself and moves to the position defined by the TO_SELECT
element. Now we have an activated button in place for operation, the button is disabled either by click or by the timer.

26.12 Switch Faceplate Views


The bottom area is used to switch views for the faceplate. The number of buttons corresponds to the number of views,
which you like to show for your faceplate. The buttons can be easily implemented as global symbols and can be re-used
for all faceplates.

Figure 26-26: Button area


All three buttons are configured with action MYSELF, the parameter is TOGGLE_WVP, TOGGLE_WVP1 or
TOGGLE_WVP3, respectively.

Figure 26-27: Action for the middle button


The script code for all buttons is similar and looks like this.
For the right button, show detail view
// GBL_POP TOGGLE_BUTTON_CLICK INIT
proc OnClick () {
object.BUTT.shadowInverted = TRUE;
}
proc OnRelease() {
226 2VAA001149C
SPlus Operations Display Builder User Guide SYMBOLS AND FACEPLATES

object.BUTT.shadowInverted = FALSE;
}
when click OnClick;
when release OnRelease;
// Common part to be able to work with PGP 4.1
//global GBL_POP_WVP_NAME = "#WVP";
//global GBL_POP_ANCHOR_NAME = "#WVP";
//global GBL_POP_WVP1 = 1;
//DEBUG.string = GBL_POP_ANCHOR_NAME;
// end PGP 4.1
// GBL_POP TOGGLE_BUTTON_CLICK END
object.BUTT.shadowInverted = GBL_POP_ANCHOR_CODE == GBL_POP_LARGE;
delta = object.width*2;
if (O_X == 0) O_X = object.x; // Save original position
// Adjust position if LARGE size
if (GBL_POP_ANCHOR_CODE == GBL_POP_LARGE) {
object.x = O_X + (GBL_POP_ANCHOR_NAME.width/2) - delta;
} else {
object.x = O_X;
}
For the middle button, show standard view
// GBL_POP TOGGLE_BUTTON_CLICK INIT
proc OnClick () {
object.BUTT.shadowInverted = TRUE;
}
proc OnRelease() {
object.BUTT.shadowInverted = FALSE;
}
when click OnClick;
when release OnRelease;
// Common part to be able to work with PGP 4.1
//global GBL_POP_WVP_NAME = "#WVP";
//global GBL_POP_ANCHOR_NAME = "#WVP";
//global GBL_POP_WVP1 = 1;
//DEBUG.string = GBL_POP_ANCHOR_NAME;
// end PGP 4.1
// GBL_POP TOGGLE_BUTTON_CLICK END
object.BUTT.shadowInverted = GBL_POP_ANCHOR_CODE == GBL_POP_NORMAL;
delta = object.width*3;
if (O_X == 0) O_X = object.x; // Save original position
// Adjust position if LARGE size
if (GBL_POP_ANCHOR_CODE == GBL_POP_LARGE) {
object.x = O_X + (GBL_POP_ANCHOR_NAME.width/2) - delta;
} else {
object.x = O_X;
}
For the left button, show reduced view
// GBL_POP TOGGLE_BUTTON_CLICK INIT
proc OnClick () {
object.BUTT.shadowInverted = TRUE;
}
proc OnRelease() {
object.BUTT.shadowInverted = FALSE;
}
when click OnClick;
when release OnRelease;
// Common part to be able to work with PGP 4.1
//global GBL_POP_WVP_NAME = "#WVP";
//global GBL_POP_ANCHOR_NAME = "#WVP";
//global GBL_POP_WVP1 = 1;
//DEBUG.string = GBL_POP_ANCHOR_NAME;
// end PGP 4.1
// GBL_POP TOGGLE_BUTTON_CLICK END
object.BUTT.shadowInverted = GBL_POP_ANCHOR_CODE == GBL_POP_SMALL;
delta = object.width*4;
if (O_X == 0) O_X = object.x; // Save original position
// Adjust position if LARGE size

2VAA001149C 227
SPlus Operations Display Builder User Guide SYMBOLS AND FACEPLATES

if (GBL_POP_ANCHOR_CODE == GBL_POP_LARGE) {
object.x = O_X + (GBL_POP_ANCHOR_NAME.width/2) - delta;
} else {
object.x = O_X;
}

26.13 Detailed View


This view displays detailed tag information and in most cases is separated in multiple tabs. The tab headers are buttons
while the tab content contain many graphic elements, graphic layers are used to switch between tabs.

Figure 26-28: Detailed View


The code for the tab headers looks like this.
// GBL_POP POP_TAB_LAYERS INIT
func center () {
// $1 = Ref obj pos
// $2 = Ref Obj size
// $3 = object to center size
// return = object position
return ($1 + int ($2 / 2) - int ($3 / 2));
}
proc OnClick() {
// ... Necessary only during DisplayBuilder phase ...
if (LAY == 0 || TRUE) {
if (CURRENT_LEFT_TAB == 0) { // For DisplayBuilder only ...
CURRENT_LEFT_TAB = 1;
}
str = "";
subString( object.name, 0, 3, str);
if (str == "TAB") {
subString( object.name, 3, len(object.name)-3, str);
DEBUG_LAY.string = str;
LAY = toNumber(str) + CURRENT_LEFT_TAB - 1;
}
}
if (LAY > 0) {
graph.layers = 2^0+2^LAY;
raise(TAB_FRAME);
raise(object);
refreshAll();
}
}
when click OnClick;
func center () {

228 2VAA001149C
SPlus Operations Display Builder User Guide SYMBOLS AND FACEPLATES

return ($1 + int ($2 / 2) - int ($3 / 2));


}
// Adjustment
if (first == 0) {
CURRENT_LEFT_TAB = 1;
object.FOLDER.background = plgFaceplateBg;
//// object.FOLDER.height = object.FOLDER.height+3;
// Adjust folder width to overwrite FRAME
object.TEXT.x = center (object.FOLDER.x, object.FOLDER.width, object.TEXT.width);
object.TEXT.y = center (object.FOLDER.y, object.FOLDER.height, object.TEXT.height);
TAB_FRAME.y = object.y+object.FOLDER.height-1;
str = "";
subString( object.name, 0, 3, str);
if (str == "TAB") {
subString( object.name, 3, len(object.name)-3, str);
I_AM_LAY = toNumber(str);
}
first = 1;
}
// Set current tab by position
LAY = I_AM_LAY + CURRENT_LEFT_TAB - 1;
// Update layout as function of the current TAB selected -> Moved in the INC/DEC
//if (LAY > 0) {
// CURLAY = graph.layers - 2^0;;
// DEBUG_CURLAY.string = CURLAY; // DEBUG only !!!
// if (CURLAY == 2^LAY) {
// raise(TAB_FRAME);
// raise(object);
// refresh();
// }
//}
// GBL_POP POP_TAB_LAYERS END
// GBL_POP POP_TAB_LAYERS_MELXXX INIT
// Set TAB string as function of the current tab and position
if (LAY == 1) {
object.TEXT.string = TAB1TXT.string;
} else if (LAY == 2) {
object.TEXT.string = TAB2TXT.string;
} else if (LAY == 3) {
object.TEXT.string = TAB3TXT.string;
} else if (LAY == 4) {
object.TEXT.string = TAB4TXT.string;
} else if (LAY == 5) {
object.TEXT.string = TAB5TXT.string;
} else if (LAY == 6) {
object.TEXT.string = TAB6TXT.string;
} else if (LAY == 7) {
object.TEXT.string = TAB7TXT.string;
} else if (LAY == 8) {
object.TEXT.string = TAB8TXT.string;
} else if (LAY == 9) {
object.TEXT.string = TAB9TXT.string;
} else if (LAY == 10) {
object.TEXT.string = TAB10TXT.string;
}
object.TEXT.x = center(object.FOLDER.x, object.FOLDER.width, object.TEXT.width);
// GBL_POP POP_TAB_LAYERS_MELXXX END
The code supports up to 10 tabs, the header text for the tabs is defined by invisible text elements with naming convention
TAB<n>TXT and is centered in the header. The headers itself are named TAB<n>, based on this name the code
calculates which graphic layers to activate. Each element for the tab content has to be assigned to the relevant graphic
layer e.g. layer 2 for tab 2.

2VAA001149C 229
SPlus Operations Display Builder User Guide SYMBOLS AND FACEPLATES

Figure 26-29: Graphic layers for elements in tab content


There are no scroll bars supported, but for the Water library we implemented a scroll bar with script code.

26.14 Reduced View


There is nothing special to describe for the reduced view. This view is like the standard view and typically contains fewer
elements for display.

26.15 ToolTips for command buttons


Tooltips are small yellow pop-ups, they appear when moving the mouse over a graphic object.
Example:

Figure 26-30: Tooltips


The implementation of tooltips is as follows:
 Define text fields containing the tooltip texts
(text fields can be copied from an existing faceplate as well)
 The names of the text fields are standardized according to the following rule:
TOOLTIPCMD<index of the button>
The following example shows the texts of button tooltips of object type “sepMotValveM”.

Figure 26-31: Button Tooltips Example

 If buttons are stacked so the lowest button is named


TOOLTIPCMD<index of the button>A
 The buttons upon are named with “B,C,D…” at the end.
 The text field for the apply buttons has to be named “TOOLTIPAPPLYBUTTON” and should contain the text
“Apply”.
 Complement the button scripts
230 2VAA001149C
SPlus Operations Display Builder User Guide SYMBOLS AND FACEPLATES

 The following function has to be added to the beginning of the button scripts:

Figure 26-32: Edit Script Example

 Correct button indexes.


 The scripts of the apply buttons don’t need to complemented.

26.16 General Graphics

26.16.1 Images and Icons


You have to decide, whether you use icons and bitmaps or you create small graphics with Display Builder. Especially for
a migration project icons and bitmaps already exist and can be re-used, but bitmaps should not be resized. If there is a
requirement to resize graphics, you should prefer to create graphics with Display Builder using simple elements like lines,
rectangles, circles and so on, but avoid using text in this case.
Note: At runtime bitmaps must exist in <programfiles>\ABB Symphony Plus\Operations\display\sdr. Therefore these
images have to be installed together with other displays.

26.16.2 Global Symbols


Wherever display parts can be re-used, these parts should be implemented as global symbols, see [1], e.g. the indicator
and button area in faceplates. These basic symbols are intended to be used for development purposes only, but also
consider delivering these basic symbols for general use in your installation kit. Global symbols can be used in other
symbols, in faceplates and in process displays.
During development you will notice that you have to handle a lot of files. There are basic symbols, your symbols and your
faceplates. In the current S+ version each has 4 files with different extensions. In your source folder you should create
subfolders and you should use a naming convention for your files, see Error! Reference source not found..

Table 26-2: Naming Convention for global Symbols

File Name Description

<prefix>_X_<name> Global symbols for development use


<prefix>_Gen_<name> Global symbols for general use
<prefix>_<typename>_<elementname> Global symbols for process displays, similar to
graphic element aspects in 800xA
pop_<typename> Faceplates

The handling of global symbols needs some extra attention. In order to insert symbols in graphics they have to be added
to system with Display Builder first. The added symbols are located in <programdata>\ABB Symphony
Plus\Operations\SV1.0\display\bin. For distribution the related files (<name>.g, .diag, .var, .page) have to be copied to
other systems, but it is not required to copy the source files (<name>.ucbg, .ucbd, .ucbv, .ucbp) in addition.

Note: After a symbol was inserted in a display, the symbol’s graphic objects and scripts are stored together with the
display. Therefore, if you have modified a global symbol and added the symbol to system, you have to open, save and add
to system all displays using this symbol. Otherwise your changes are not updated in these displays. Symphony Plus has
no support to check, where and how many times the symbol was inserted, but you can use a file search tool instead and
search for significant strings in *.g files. This behavior may change when the serialization concept is modified in future
versions, but for SP2 it is still valid.

2VAA001149C 231
SPlus Operations Display Builder User Guide SYMBOLS AND FACEPLATES

Let us look into some sample scenarios.


 You have implemented a nice symbol ABC_sepMot1DirM_DisplayElementX for motors including alarms and
status indicators. Inside a customer project this symbol was used in 30 different process displays. A bug was fixed
in this symbol and the new version was installed in the customers system. In the customer system all 30 displays
have to be added to system again and have to be distributed to all clients.
 You have delivered a basic symbol ABC_Gen_Textblock to display a text in different colors, with frame and
different alignments. You have used this basic symbol in other symbols and faceplates. After a bug was fixed in
the basic symbol you have to add to system all your symbols and faceplates consuming the symbol. Now you
have to package a new installation kit. After installation on customer’s site the process displays have to be added
to system again and have to be distributed to all clients.

26.17 Script Code Snippets


There are some scripts which have to be used frequently. In order to be able to maintain the scripts, you should use a
global definition file e.g. ScriptFile.txt, see [1]. This file includes several global code snippets and the path has to be
defined in Registry
HKLM\Software\ABB Symphony Plus\Operations\Apps\lbDisp\ScriptFile
In your displays you insert placeholders and on save the related code snippets are inserted in these places. As a result
you have to save your displays after modification of the global definitions.

The path in the Registry is either absolute or relative.


 Absolute
e.g. C:\ProgramData\ABB Symphony Plus\Operations\SV1.0\display\work\Scriptfile.txt
In this case Display Builder inserts code snippets for all displays, which are saved on this PC.

 Relative
e.g. Scriptfile.txt
In this case Display Builder inserts code snippets only if the script file is found in the directory, where the display is
saved. By using relative path you can insert different snippets dependent on multiple subfolders.

Anyhow with this feature the contents of your saved displays depend on save time and development
environment.

26.18 National Language Support


There is some limited support in Symphony Plus for national languages. A database table can be used for language
specific texts. This table is initialized by blangdeck.xml which has the following format
<?xml version="1.0" encoding="utf-16"?>
<TENORE_TEXTS xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
xsi:noNamespaceSchemaLocation="D:\PROGETTI\BLANGDECK\SearchPGPStrings\Xml\blangdeckSchema.xsd">
<TEXT
english="Cancel"
italian="Annulla"
french="Annuler"
chinese="取消"
russian="Аннулируй"
spanish="Cancelar" />
<TEXT
english="OK"
italian="OK"
french="OK"
chinese="OK"
russian="ОК"
spanish="OK" />
……
</TENORE_TEXTS>
If the multi-language flag is set for a display, static text is replaced at runtime according to the Windows language settings.

232 2VAA001149C
SPlus Operations Display Builder User Guide SYMBOLS AND FACEPLATES

Note: This does not work for text constants in scripts; therefore do not use text in scripts. Define a static text object in
display builder and copy the text value like this
object.string = atextobject.string;

Figure 26-33: Multi-language Flag in display header


For the WaterLib faceplates we used a different approach.
 A faceplate is developed in English.
 The utility Localize exports all text objects to an XML file.
 Language specific texts are added to the XML file.
 The utility Localize replaces static texts using the XML file.
 The localized faceplate is added to system with display builder
 Drawback: not possible to switch language dynamically
 Benefit: no runtime overhead
 Benefit: blangdeck.xml handling not necessary

26.19 Object Type Properties


800xA supports to define properties on object level e.g. it is possible to add a general property aspect to each object in the
database. The S+ database has the application tab for this purpose, but the number of items is limited and there is some
overhead to manage such data in database and script code. But it is fairly easy to implement such properties on object
type level.
Such object type properties can be defined in a global script file e.g. “Wat_GlobalScriptFile.txt”. With this concept it is
possible to change properties for object types on system level.
Example:

2VAA001149C 233
SPlus Operations Display Builder User Guide SYMBOLS AND FACEPLATES

26.20 TagRead, QualityDetail, DataQuality


There are some functions to access the database.
Syntax:
double ret = fncName(SO_Obj, SO_Tag, Atom, Output);
ret return code (optional) 0 => error, != 0 => OK
fncName function name
SO_Obj fixed variable that is loaded at run-time with the address of the object
SO_Tag fixed variable that is loaded at run-time with the TAGNAME linked to the
symbol - instead of SO_Tag you can also use a script variable loaded with another tagname (for example, a tagname
read from a DB field of the SO_Tag )
Atom Atom name (empty for main tag) - can be a variable or directly a string with the atom name
Output read value - string or analog value, depends on the fnc and on the atom type: output variables
used to read a string are not usable to read analog values and vice versa)
TagRead(SO_Obj, SO_Tag, Atom, Output);
to read a value from the DB (atom or maintag)
QualityDetail(SO_Obj, SO_Tag, Atom, Output);
to read the tag quality code (0,..., 68, .., 192, etc, like 800xA QualityCode)
DataQuality(SO_Obj, SO_Tag, Atom, Output);
to read the tag quality string code ("Bad", ..."Uncertain", ... "Good", etc, like 800xA DataQuality)
TagStr is like TagRead but returns the output value as a string, looking at the tag type.

26.21 fncAnd, fncOr


fncAnd and fncOr perform Boolean operations on the input parameters.
double ret = fncAnd(A,B)
double ret = fncOr(A,B)
ret is double because LOOX user functions are able to return only "double" values,
Example:
isopen = fncAnd(<variablename>, 3); // open if first 2 bits are set

26.22 Operator Note


You get information if an operator has added a note to an object. Add dynamics and a diagram DNNV to your object. For
the variable define
Code -> DB_INFO_PAR
Generic Info -> DB_OPERATOR_NOTE
In a script you will get the value
0 -> no operator notes
1 -> one or more operator notes available
Alternatively you can use the TagRead with atom = ".OperatorNote".
TagRead(SO_Obj, SO_Tag, ".OperatorNote", A4);
will return in the output value the same.

26.23 RGB
double ret = RGB(R,G,B)
returns the RGB color starting from R G and B: (in PGP this was obtained using (R+ (B*256)+(G*256*256)).

26.24 Fonts
For scripting there are 3 new functions available to change the fonts:

234 2VAA001149C
SPlus Operations Display Builder User Guide SYMBOLS AND FACEPLATES

double ret = SetFontSize(SO_Obj, subElemName, newFontSize);


double ret = SetFontName(SO_Obj, subElemName, newFontName);
double ret = SetFont(SO_Obj, subElemName, FontAttr);
where:
subElemName - string - "" or name of the object text if the main object is a group
newFontSize - integer - font size
newFontName - string - font name
FontAtrr - string - "FontName, FontSize, */light/regular/medium/demibold/bold,normal/italic"

26.25 Event and Alarm list


Event and alarm lists are called with program “LASTEVENTS”
To call event list, Extra par is set to “--%TAG%”
To call alarm list, Extra par is set to “-%TAG%”

Figure 26-34: Call event lists

26.26 Debugging
For development of script code there is no debugger available. In most cases you get error messages for syntax errors on
save, sometimes not. At runtime no problems are reported, you just do not get the expected results. But with some extra
effort you can create some debug output similar to the well known Writeln.
Create some extra text elements in your symbol or faceplate and set object.string to the information you are interested in.
Sample:
DEBUG = 1;

if (DEBUG == 1) {
DEBUG1.show = TRUE;
DEBUG1.string = xValue; // text element named DEBUG1
DEBUG2.show = TRUE;
DEBUG2.string = yValue; // text element named DEBUG2
} else {
DEBUG1.show = FALSE;
DEBUG2.show = FALSE;
}

26.27 Polyline with Gradient Color


Gradient color is supported for rectangles, triangles and circles, but not for closed polylines. If you like to create such
a figure you can use a group with overlapping elements .

2VAA001149C 235
SPlus Operations Display Builder User Guide SYMBOLS AND FACEPLATES

Figure 26-35: Closed Polyline with gradient color

Figure 26-36: Group with some elements


In this sample the rectangle defines the gradient color and two edges are overlapped with filled triangles. Modifications of
the mimic are easier if you use some code like this
P1.backgorund = plgDisplayBg;
P2.backgorund = plgDisplayBg;

26.28 Test
The tool OPCSimForSplus reads a Symphony Plus data-processor file, e.g. C5_seSignalObjLib 2_2-7.xml. The output
files are the following:
 MDP_C5_seSignalObjLib 2_2-7.xml
A data-processor file for Symphony Plus representing the Matrikon OPC server. Copy this file to your Symphony
Plus data-processor directory, normally
C:\Program Files\ABB Symphony Plus\1.0\Operations\condig\dataprocessor\AC800M
 MOPC_C5_seSignalObjLib 2_2-7.xml
An XML file for configuration of the Matrikon OPC server. Load this file into the server using File/Open.
 OPCSim_C5_seSignalObjLib 2_2-7.csv
Provides atom names and default values for Excel test sheets. Load this file into your test sheet.
Now create an Excel workbook for your test. The script functions inside the workbook set data to the Matrikon
server. You have to configure the tags to be tested in the database with IbDbase. The 800M OPC server has to be
replaced by the Matrikon OPC server. Now all process values can be configured and set using such an Excel
workbook.
The benefits are
 The test is reproducible
 No Controller required
 No simulation code required
 Any process signal can be set without restrictions and interlocking

236 2VAA001149C
SPlus Operations Display Builder User Guide SYMBOLS AND FACEPLATES

Figure 26-37: Matrikon Server configured for seSignalObjLib

Figure 26-38: Original configuration in database created by AC 800 M importers

2VAA001149C 237
SPlus Operations Display Builder User Guide SYMBOLS AND FACEPLATES

Figure 26-39: Modified configuration for testing

Figure 26-40: Sample test Excel sheet

238 2VAA001149C
SPlus Operations Display Builder User Guide SYSTEM PROGRAMS

27. SYSTEM PROGRAMS

27.1 Introduction
This section describes the main S+ Operations system programs and their commands.

Table 27-1: S+ Operations System Programs

Program Name Generic Extra Par Function


OPERPA TagName Shows the Operating Parameters view
PRCBTN See details Commands
PRCMAN TagName Faceplate Control
TNTCHILD PageName = ulx,uly,lrx, lry[, T=…] Shows secondary page
PWCHILD PageName POSITION= ulx,uly,lrx, lry Shows secondary page in a specific position
PageName FULLSCREEN Shows secondary page in full screen
SHELL ProgramName Actives program
SHELL FileName Opens the file using the default associated program
(same as doubleclicking on the file)
DBDISP TagName Loads (if defined in database) the primary display of the
specified tag
ACKNWL See details Acknowledgement alarms
DBMENU See details Actives specified menu function
MYSELF TagName\TOGGLE Used to manage TOGGLE on Faceplates managed by
PRCTRL

27.2 PRCBTN
PRCBTN is a system program that executes commands on the system tags.
You can use this program in your pages to modify the value of tags in the real-time database.
All commands can be executed only if the operator is enabled to operate on the tag (the point has a status of good, the
operator has the appropriate privileges, etc.). The managed commands are listed below.

Table 27-2: PRCBTN Commands

Command Syntax Description


ACK %TAG%,ACK Acknowledge the specified tag
SETn %TAG%,SETn Sets to n the specified tag (n = 0 -15)
INC %TAG%,INC[=%TAG%] Increment the specified tag
DEC %TAG%,DEC[=%TAG%] Decrement the specified tag
FASTINC %TAG%,FASTINC[=%T AG%] Fast increment of the specified tag
FASTDEC %TAG%,FASTDEC[=%T AG%] Fast decrement of the specified tag
INC_CO %TAG%,INC_CO[=%TA G%] Increment CO of the specified tag
DEC_CO %TAG%,DEC_CO[=%TA G%] Decrement CO of the specified tag
FASTINC_CO %TAG%,FASTINC_CO[=%TAG%] Fast increment CO of the specified tag
FASTDEC_CO %TAG%,FASTDEC_CO[=%TAG%] Fast decrement CO of the specified tag
AUTO %TAG%,AUTO Sets to 1 the specified tag and use AUTO string in confirm
dialog and in OJ
MAN %TAG%,MAN Sets to 0 the specified tag and use MAN string in confirm
dialog and in OJ
INTERNAL %TAG%,INTERNAL Sets to 0 the specified tag and use INTERNAL string in
confirm dialog and in OJ
EXTERNAL %TAG%,EXTERNAL Sets to 1 the specified tag and use EXTERNAL string in
confirm dialog and in OJ
ENTER %TAG%,ENTER[=%TAG%] Requests a value for the specified tag
Requests a value for the specified tag and use n (float or
int value) to mul/div entered value.
ENTER_FACT %TAG%,ENTER_FACTn If n > 0 => Output = Entered value *
N [=%TAG%] n
if n < 0 => Output = Entered value / n
ENTER_DT %TAG%,ENTER_DT[=% TAG%] Requests a value for the specified tag in Date/Time format
ENTER_CO %TAG%,ENTER_CO[=% TAG%] Requests a CO value for the specified tag
RESET %TAG%,RESET Resets the specified tag
SETBn %TAG%,SETBn Sets to 1 the bit n of the tag (n = 0 -
31)
RESETBn %TAG%,RESETBn Sets to 0 the bit n of the tag (n = 0 -

2VAA001149C 239
SPlus Operations Display Builder User Guide SYSTEM PROGRAMS

31)
SETBYTEn %TAG%,SETBYTEn Sets all bits to 1 in the byte n of the tag (n = 0 - 3)
RESETBYTEn %TAG%,RESETBYTEn Sets to 0 the byte n of the tag (n = 0 -
3)
SETWORDn %TAG%,SETWORDn Sets all bits to 1 in the word n of the tag (n = 0 - 1)
RESETWORDn %TAG%,RESETWORDn Sets to 0 the word n of the tag (n = 0
- 1)
SETDWORDn %TAG%,SETDWORDn Sets all bits to 1 in the double word of the tag
RESETDWOR %TAG%,RESETDWORDn Sets to 0 the double word of the tag
Dn
If the confirm command is enabled, presents request for
pulse 0.
PULSE0 %TAG%,PULSE0 Sets value to 0 for defined time (as def. 1 sec.) and returns
tag to initial value
%TAG%,PULSE1 If the confirm command is enabled, presents request for
pulse 1.Sets value to 1 for defined time and returns tag to
PULSE1 initial value
%TAG%,PULSE1_n If the confirm command is enabled, presents status n of the
digital point. Sets value to 1 for defined time (as def. 1 sec.)
PULSE1_n and returns tag to initial value
PRESET %TAG%,PRESETffff Sets to ffff (hexadecimal value) the tag
SETVALUE %TAG%,SETVALUEn Sets to n (float or int value) the tag
SETVALUE_ %TAG%,SETVALUE_n If the confirm command is enabled, presents request for
set value.Sets to n (float or int value) the tag
TOGGLE %TAG%,TOGGLEf Toggle (1/0) the value of selected tag
STPU %TAG%,STPU Increment the specified tag (specific for driver104)
STPD %TAG%,STPD Decrement the specified tag(specific for driver104)
FASTSTPU %TAG%,FASTSTPU Fast increment of the specified tag(specific for driver104)
FASTSTPD %TAG%,FASTSTPD Fast decrement of the specified tag(specific for driver104)
ENTERCHECK %TAG%,ENTERCHECK LEVEL Requests a check level value for the specified tag (specific
LEVEL for driver104)
ENTERATOMV %TAG%,ENTERATOMV AL Requests a atom value for the specified tag (specific for
AL driver104)
USERID %TAG%,USERID Sets to specified tag the currentSYI_LoggedUserID
LOCKCMD %TAG%,LOCKCMD Reserve selected tag for commands
UNLOCKCMD %TAG%,UNLOCKCMD Unreserve selected tag for commands

Additional Characters
Additional characters can be added to the command line to manage specific requirements; if you want to use more than
one additional character in a command line, you have to follow a description order (see the examples).
-@ - can be added to the command line to disable the queue of the executed command to the OJ (Operating journal) also
if the Windows registry key APPS\PRCMAN\RecordToOj is YES
Example: PV-TAG-01,-@FASTINC
-? - can be added to the command line to disable the confirm command, also if is not requested as default for the
command, and is managed only if the Windows registry key APPS\PRCMAN\ConfirmCommand is YES
Examples:
PV-TAG-01,-@-?FASTINC
PV-TAG-01,-?FASTINC
? - can be added to the command line to enable the confirm command, also if is requested as default for the command,
and is managed only if the Windows registry key APPS\PRCMAN\ConfirmCommand is YES
Examples:
PV-TAG-01,-@?FASTINC
PV-TAG-01,?FASTINC
?confirmstring? - same as ? but you can customize the confirm command text.
Examples:
PV-TAG-01,-@?Fast Increment?FASTINC
PV-TAG-01,?Fast Increment?FASTINC

240 2VAA001149C
SPlus Operations Display Builder User Guide SYSTEM PROGRAMS

=Tagname - (Managed for commands where is specified [=%TAG%]) can be added after the command code to specify
the tag (when Is different from the tag to write) to obtain the current status/value to use for the command (for example to
display on ENTER command the default value).
Example:

PV-TAG-01,ENTER=PV-TAG-02
;Ojstring - can be added to the end of the command string to customize the text to write in the OJ when the executed
command is archived.
Examples:
PV-TAG-01,-@?Fast Increment?FASTINC;Fast Increment
PV-TAG-01,?Fast Increment?FASTINC;Fast Increment

Separators
You can execute multi commands using following separators:
&& if error, continue without message
&+ if error, continue after message
&# if error, exit without message
&* if error, exit after message
<> to execute first command on button down and second command on button up
For example:
PV-TAG-01,SETVALUE1&&DI-TAG-01,SET0
writes value 1 to tag PV-TAG-01, and continues writing 0 to the DI-TAG-01, even if there is an error on first write; to define
the number of seconds that the program must wait before executing the next command you can define the Windows
registry key: APPS\Prcbtn\SecondsBetweenCommands
DI-LAB,-?SET1<>DI-LAB,-?SET0
SET1 will be executed on button down and SET0 will be executed on button up (-?
is necessary to write the value without ask the confirm command).

Repeat
Using PRCBTN_REPEAT as a program name, the specified command will be repeated, as long as the mouse button is
clicked. This option must be applied to INC/DEC FASTINC/FASTDEC commands to activate automatically the specific
program FSTBTN to manage a fast sequence of the same command..

27.3 PRCMAN
PRCMAN is the system program name used to display the control Faceplates. Choosing this program as the Active
Program, you enable Faceplate activation.
 Faceplate activation will be managed by PRCMAN or PRCTRL program as defined in the field Faceplate of the
tag database.
Normally the Faceplate will be loaded in the right/bottom corner of the screen. You can change this default setting using
the activation parameters.

Table 27-3: PRCMAN commands

Program name Extra Par Description


PRCMAN %TAG% Faceplate in the right/bottom corner of calling view
PRCMAN/NEAR %TAG% Faceplate near right/bottom clicked object
Faceplate by position: the coordinates (left,bottom) specified in the
command line are referred to a virtual screen (w=800, h=600) and will be
PRCCM1 %TAG%,left,bottom translated at run-time to the size of the display area
Only commands Faceplate by position: the coordinates
(left,top,right,bottom) specified in the command line are referred to a virtual
screen (w=800, h=600) and will be translated at run-time to the size of the
PRCCMD %TAG%,l,t,r,b display area

2VAA001149C 241
SPlus Operations Display Builder User Guide SYSTEM PROGRAMS

PRCCM1 and PRCCMD are methods to activate the Faceplates in a specific position, and had been introduced to
manage SODG commands.
The “Only commands” Faceplate called using PRCCMD syntax, is a reduced Faceplate where only the control buttons are
displayed. For Faceplates managed by PRCTRL program, all objects included in the #WVP2 rectangle will be displayed.
Defining the Windows registry key APPS\Prcman\PopupNear (string = YES) automatically activates all Faceplates with
Program Name = PRCMAN. This will be loaded near the clicked object, without changing your displays.

27.4 ACKNWL
ACKNWL is not a system program name, but only a specific name to manage acknowledge actions that can occur during
clicks on the display page.

Table 27-4: ACKNWL commands

Program name Extra Par Description


ACKNWL %TAG% Ack specified tag
ACKNWL %ALARMGROUP% Ack all tags for specified alarm group
name
ACKNWL,ACKPAG Ack all objects displayed in the page
ACKNWL,ACKAUD Ack audible alarm
ACKNWL,ACKALL Ack all alarms

27.5 DBMENU
DBMENU isn’t a system program name, but only a specific name that replies to clicks on the display page with S+
Operations Explorer menu actions.

Table 27-5: DBMENU commands

Program name Description


DBMENU,ZOOM_IN If scroll bar enabled, zoom in the display
DBMENU,ZOOM_OUT If scroll bar enabled, zoom out the display
DBMENU,ZOOM_RESET If scroll bar enabled, reset the zoom on the display
DBMENU,SHOW_TAGNAME S To show on the display the tagnames linked to single Dynamic Object
DBMENU,SHOW_TAGNAME To show on the display the first linked tagname
DBMENU,SHOW_TAGINDEX To show on the display the first linked tagindex
DBMENU,SHOW_DISABLE To remove all shown tagname or tagindex

27.6 MMIACT
MMIACT is a system program that shows a “Context Menu” or a “Scroll List” of all items defined in a XML file.
The XML files must be stored in a folder defined by Windows registry key ConfigMenu.

Table 27-6: MMIACT commands

Program name Extra Par Description


MMIACT MenuFile.xml[,T=...] Shows as scroll list (default) all items defined in the MenuFile.xml
MMIACT LIST,MenuFile.xml[,T=...] Shows as scroll list all items defined in the MenuFile.xml
MMIACT MENU,MenuFile.xml[,T=...] Shows as context menu all items defined in the MenuFile.xml

In the MenuFile.xml file you can define all the items to be displayed.
This is an example of a menu:
<MENU>
<!-- $$Author: $ -->
<ITEM label="%TAG4% PV-TAG-%TAG%" pgmnm="%TAG4%" param="PV-TAG-%TAG%"/>
<ITEM label="%TAG4% PV-TAG-%TAG1%" pgmnm="%TAG4%" param="PV-TAG-
%TAG1%"/>
<ITEM label="%TAG4% PV-TAG-%TAG2%" pgmnm="%TAG4%" param="PV-TAG-
%TAG2%"/>
<ITEM label="%TAG4% PV-TAG-%TAG3%" pgmnm="%TAG4%" param="PV-TAG-
%TAG3%"/>
242 2VAA001149C
SPlus Operations Display Builder User Guide SYSTEM PROGRAMS

<ITEM label="%TAG4% DI-TAG-%TAG%" pgmnm="%TAG4%" param="DI-TAG-%TAG%"/>


<ITEM label="%TAG4% DI-TAG-%TAG1%" pgmnm="%TAG4%" param="DI-TAG-%TAG1%"/>
<ITEM label="%TAG4% DI-TAG-%TAG2%" pgmnm="%TAG4%" param="DI-TAG-%TAG2%"/>
<ITEM label="%TAG4% DI-TAG-%TAG3%" pgmnm="%TAG4%" param="DI-TAG-%TAG3%"/>
</MENU>
label = “...” - String displayed in the menu
pgmnm = “...” - Name of the program to active - use SETPAGE as program name to execute the
load of specified display (in the param field)
param = “...” - Parameters for the activated program
<!-- ... --> - comment line
You can activate the menu described in the example above with following parameters:
MENU,MenuFile.xml,T=11,T=12,T=13,T=14,T=OPERPA The results are displayed in the figure below:

Figure 27-1: MMIACT - Menu format


You can activate the menu decribed in the example above with following parameters
MenuFile.xml,T=11,T=12,T=13,T=14,T=OPERPA or
LIST,MenuFile.xml,T=11,T=12,T=13,T=14,T=OPERPA
To obtain this result:

Figure 27-2: MMIACT - List format


The action linked to the item will be activated by a mouse click.
For all fields of the XML file (label, pgmnm, param) you can use the %TAG% syntax to change the parameters
displayed/activated by menu.
If labels were defined in the multilanguage database, translation will be applied to the labels in the currently used
language.

2VAA001149C 243
SPlus Operations Display Builder User Guide TERMINOLOGY

28. TERMINOLOGY
The following is a list of terms related to the S+ Operations. The list contains terms and abbreviations that are unique to
ABB or have a usage or definition that is different from standard industry usage.

Table 28-1: Glossary of Terms

Term Definition
Block Address Number that identifies a Function Block in a module.
C-Net Advanced communication highway to transfer process data from/to Symphony Rack.
Controlway High speed redundant communication. In a Process Control Unit is the method to transfer
information between intelligent modules.
Dual Configuration In S+ Operations this means a double-computer configuration in redundancy.
Engineering Work Station Personal Computer to maintain and update the configuration of the Symphony Rack
modules.
Exception Report Updating information generated when the state and/or the value of a tag change/s beyond
a certain amount.
Function Block A function code occurrence in a specific block address of a module.
Function Code Algorithm operating on specific functions. These functions are linked together to create a
control strategy.
Master-Slave In S+ Operations this means a double-computer configuration in redundancy.
Configuration
Module Address Single identifier of a specific device in a communication channel.
Multi Function Processor Multiple-loops controller capable of data acquisition and information processing.
Multi-Master Configuration In S+ Operations this refers to a multiple cooperating computer configuration.
Network Coupler Computer interface unit to the Symphony.
Plant Loop Network 90 communication ring to transfer process data.
Process Control Unit System network node containing control modules and I/O modules.
Time-Stamp Module reference time for the labelling of exception reports.

28.1 Abbreviations and Acronyms


Table 28-2: Abbreviations or Acronyms

Abbreviation or Acronym Definition


CIU Computer Interface Unit.
CO Control Output.
CPU Central Processing Unit.
CTT Configuration and Tuning Terminal.
DAT Digital Audio Tape.
DD Device Driver.
DDE Dynamic Data Exchange.
DI Digital Input tag.
EU Engineering Unit.
EWS Engineering Work Station.
FC Function Code.
ICI C-NET Computer Interface.
LAN Local Area Network.
MFP Multi Function Processor.
MSDD Multi State Device Driver.
NIU Network Interface Unit.
ODBC Open Database Connectivity.
OPC OLE for Process Control.
PCU Process Control Unit.
PV Process Variable.
RCM Remote Control Memory.
RMCB Remote Motor Control Block.
RMSC Remote Manual Set Constant.
RI Ratio Index.
SCSI Small Computer System Interface.
SER Sequence of Events Recorder.
SODG Screen Oriented Display Generator.
SP Set Point.

244 2VAA001149C
SPlus Operations Display Builder User Guide INDEX

INDEX

A N
Acknowledge 137, 245 network 117, 252 to 253
action type 90 to 91
AL 134, 163 O
alarm comment 181 ODBC 253
alarm condition 26 OJ 242 to 243
alarm group 119, 169, 179, 245 OLE 59, 253
analog tag 85, 156, 175 On-line Documentation 23
analog value 68, 174 OPC 253
ASCII 33 to 35, 78, 175, 180
P
B PCU 180, 253
bad quality 137, 156, 159, 163 S+ Operations Explorer 25 to 27, 30 to 31, 38, 43, 89, 91,
123 to 125, 246
PRCMAN 93, 239, 242 to 245
C primary display 239
C-NET 179 to 180, 251, 253 process control 251 to 253
computer interface unit 252 to 253 process variable 253
control output 175, 179, 253
control station 175 Q
quality 26 to 27, 85, 133, 135, 137, 154, 156, 159, 163,
176, 179 to 180, 182
D quality suffix 133
DDE 253
digital tag 155, 175 R
display area 38, 51, 245 radar 26, 129, 164 to 167
Documentation, On-line 23 ratio index value 180
RCM 176, 182 to 183, 253
E
E.U. 101 S
EWS 253 security 121, 125
exception report 182 to 185, 251 sequence of events 253
SER 253
F set point 175, 178, 180, 182, 253
faceplate 93, 111 to 112, 114 to 115, 141, 239,244 to 245 SP 178, 180, 253
FC 253 Symphony 251 to 252
function block 251
T
I tag browser 99, 119
ICI 253 tag type 177
instrument limit 179 time-stamp 252
toolbar 38 to 46, 50 to 51, 55, 57, 59, 67, 71, 103 to 104,
107, 109, 123
L trend 67, 142 to 145, 148, 165
library 29 to 30, 32 to 33, 40, 69, 105, 109
Z
M zoom factor 50 to 51, 196 to 197
module status 185
multi-master 252

2VAA001149C 245
ABB Inc.

Document Number 2VAA001149BC


Power Generation
Wickliffe
OHIO, USA
E-Mail: powergeneration@us.abb.com
www.abb.com/controlsystems

ABB AG
Power Generation
Mannheim
GERMANY
E-Mail: powergeneration@de.abb.com
www.abb.com/controlsystems

ABB Pte. Ltd.


Power Generation
Singapore
SINGAPORE
E-Mail: powergeneration@sg.abb.com
www.abb.com/controlsystems

Вам также может понравиться