Elipse SCADA - User`s Manual
Transcription
Elipse SCADA - User`s Manual
ELIPSESCADA HMI/SCADA SOFTWARE USER’S MANUAL 2015 © Elipse Software Ltda. All rights reserved. 1/7/2015 - Version 2.29 Table of Contents 1. 1.1. 1.2. 1.3. 2. 2.1. 2.2. 2.3. 2.4. 3. 3.1. 3.2. INTRODUCTION .......................................................................................................................................................... 9 ELIPSE SCADA PACKAGES ..................................................................................................................................... 9 OPERATIONAL MODULES ....................................................................................................................................... 11 PLUG-INS .................................................................................................................................................... 11 WHAT IS ON SCREEN .............................................................................................................................................. 13 MENU OPTIONS .................................................................................................................................................... 14 2.1.1. File Menu .............................................................................................................................................. 14 2.1.2. Screen Menu ......................................................................................................................................... 15 2.1.3. Objects Menu ........................................................................................................................................ 16 2.1.4. Arrange Menu ....................................................................................................................................... 17 2.1.5. View Menu ............................................................................................................................................ 18 2.1.6. Help Menu ............................................................................................................................................. 18 TOOLBARS ............................................................................................................................................................ 19 2.2.1. Application Toolbar................................................................................................................................ 19 2.2.2. Objects Toolbar ..................................................................................................................................... 20 2.2.3. Arrange Toolbar .................................................................................................................................... 21 2.2.4. Screens Toolbar .................................................................................................................................... 22 SHORTCUT KEYS .................................................................................................................................................. 23 COMMAND LINE OPTIONS ...................................................................................................................................... 24 ORGANIZER .............................................................................................................................................................. 25 APPBROWSER ...................................................................................................................................................... 28 CREATING A NEW APPLICATION............................................................................................................................. 29 3.2.1. General Properties of an Application ..................................................................................................... 30 3.2.2. Application Window ............................................................................................................................... 32 3.2.3. Touch Screen ........................................................................................................................................ 33 3.3. 3.2.4. Elipse Web .................................................................................................................................. 34 SCRIPTS ............................................................................................................................................................... 35 4.1. 4.2. 4.3. 4.4. TAGS.......................................................................................................................................................................... 37 TAG GROUP.......................................................................................................................................................... 37 NEW TAG.............................................................................................................................................................. 38 CHRONO TAG ....................................................................................................................................................... 40 PLC TAG .............................................................................................................................................................. 41 4. 4.5. 4.6. 4.7. 4.8. DDE TAG .................................................................................................................................................... 44 DEMO TAG ............................................................................................................................................................ 47 EXPRESSION TAG ................................................................................................................................................. 48 BLOCK TAG........................................................................................................................................................... 50 4.8.1. Block Element ....................................................................................................................................... 52 4.9. RAM TAG ............................................................................................................................................................. 53 4.10. MATRIX TAG .................................................................................................................................................. 54 4.11. BIT TAG ......................................................................................................................................................... 55 4.12. ALARM PAGE ................................................................................................................................................. 57 4.13. TAG SCRIPTS................................................................................................................................................. 59 5. 5.1. 5.2. 5.3. 6. SCREENS .................................................................................................................................................................. 61 GENERAL PROPERTIES OF SCREENS ..................................................................................................................... 63 STYLE PROPERTIES OF SCREENS.......................................................................................................................... 64 SCREEN SCRIPTS ................................................................................................................................................. 66 SCREEN OBJECTS ................................................................................................................................................... 67 EDITING SCREEN OBJECTS ................................................................................................................................... 67 PROPERTIES OF SCREEN OBJECTS ....................................................................................................................... 67 6.2.1. Size and Pos Page ................................................................................................................................ 68 6.2.2. Frame Page .......................................................................................................................................... 70 6.2.3. Tags Page ............................................................................................................................................. 71 6.3. SCRIPTS OF SCREEN OBJECTS ............................................................................................................................. 72 6.4. CROSS-REFERENCE ............................................................................................................................................. 73 6.5. VISUALIZATION OBJECTS....................................................................................................................................... 74 6.5.1. Text ....................................................................................................................................................... 74 6.1. 6.2. 6.5.2. 6.5.3. 6.5.4. 6.5.5. Display .................................................................................................................................................. 76 Browser ................................................................................................................................................. 79 Bitmap ................................................................................................................................................... 85 Animation .............................................................................................................................................. 86 6.5.6. AVI 6.5.7. Video ............................................................................................................................................... 89 ........................................................................................................................................... 90 6.5.8. Preview ........................................................................................................................................ 92 6.5.9. Trend..................................................................................................................................................... 93 6.5.10. Bar Graph ........................................................................................................................................... 100 6.5.11. Gauge ................................................................................................................................................. 105 6.6. INTERACTION OBJECTS ....................................................................................................................................... 108 6.6.1. Slider ................................................................................................................................................... 108 6.6.2. Button.................................................................................................................................................. 110 6.6.3. Setpoint ............................................................................................................................................... 114 6.6.4. Alarms ................................................................................................................................................. 118 7. 7.1. 7.2. ALARMS .................................................................................................................................................................. 125 GENERAL ALARM PROPERTIES............................................................................................................................ 125 ALARM SCRIPTS ................................................................................................................................................. 126 8.1. 8.2. RECIPES .................................................................................................................................................................. 127 GENERAL RECIPE PROPERTIES ........................................................................................................................... 127 EDITING RECIPES ............................................................................................................................................... 129 9.1. 9.2. HISTORIC ................................................................................................................................................................ 131 GENERAL HISTORIC PROPERTIES........................................................................................................................ 131 HANALYSIS ......................................................................................................................................................... 132 8. 9. 9.3. 10. STATISTICAL PROCESS CONTROL .............................................................................................................. 140 REPORTS ................................................................................................................................................................ 153 10.1. GENERAL PROPERTIES ................................................................................................................................ 155 10.2. SETTINGS .................................................................................................................................................... 156 10.3. QUERY ........................................................................................................................................................ 157 10.4. DATABASE ................................................................................................................................................... 158 10.5. BATCH......................................................................................................................................................... 161 10.6. GRAPH ........................................................................................................................................................ 163 10.7. PENS........................................................................................................................................................... 165 10.8. SCRIPTS ...................................................................................................................................................... 166 10.9. FORMATTED REPORT................................................................................................................................... 167 10.10. HANALYSIS REPORT ........................................................................................................................... 167 11. DRIVERS.................................................................................................................................................................. 169 11.1. SETTING UP DRIVERS .................................................................................................................................. 169 11.1.1. PLC Drivers ......................................................................................................................................... 170 11.1.2. Network Drivers................................................................................................................................... 173 11.2. DRIVER SCRIPTS ......................................................................................................................................... 176 11.3. LIST OF ASSOCIATED TAGS .......................................................................................................................... 176 12. DATABASE.............................................................................................................................................................. 177 13. USERS ..................................................................................................................................................................... 181 13.1. FUNCTIONS AND ATTRIBUTES....................................................................................................................... 183 13.2. LOGIN SCRIPTS ........................................................................................................................................... 184 14. REMOTE APPLICATIONS....................................................................................................................................... 185 14.1. GENERAL PROPERTIES ................................................................................................................................ 186 14.2. SCRIPTS OF REMOTE APPLICATIONS ............................................................................................................ 189 15. ELIPSE WEB ........................................................................................................................................................... 191 16. WATCHER ............................................................................................................................................................... 193 16.1. W ATCHER OBJECTS .................................................................................................................................... 194 17. STEEPLECHASE ..................................................................................................................................................... 207 18. OPC SERVER .............................................................................................................................................. 209 18.1. GENERAL PROPERTIES OF OPC SERVER ..................................................................................................... 210 18.2. OPC TAGS .................................................................................................................................................. 212 18.3. OPC GROUPS ............................................................................................................................................. 216 18.4. QUALITY ...................................................................................................................................................... 217 19. SCRIPTS .................................................................................................................................................................. 219 19.1. GENERAL CONSIDERATIONS......................................................................................................................... 219 19.2. APPBROWSER AND CROSS-REFERENCE ...................................................................................................... 220 19.3. OPERATORS AND CONSTANTS ..................................................................................................................... 222 19.4. FLOW CONTROL .......................................................................................................................................... 224 19.4.1. If…Else…ElseIf…EndIf Command ...................................................................................................... 224 19.4.2. For…Next Command .......................................................................................................................... 224 19.4.3. While…Wend Command ..................................................................................................................... 225 19.4.4. Repeat…Until Command .................................................................................................................... 225 19.4.5. Return Command ................................................................................................................................ 225 19.5. SPECIAL FUNCTIONS .................................................................................................................................... 226 19.5.1. Global Manager Functions .................................................................................................................. 226 19.5.2. Application Functions .......................................................................................................................... 249 19.5.3. Tag Functions ..................................................................................................................................... 251 19.5.4. Screen Functions ................................................................................................................................ 255 19.5.5. Screen Objects Functions ................................................................................................................... 256 19.5.6. Alarm Functions .................................................................................................................................. 263 19.5.7. Recipe Functions................................................................................................................................. 266 19.5.8. Historic Functions ................................................................................................................................ 268 19.5.9. HAnalysis Functions .................................................................................................................. 270 19.5.10. 19.5.11. 19.5.12. 19.5.13. 19.5.14. SPC Functions ........................................................................................................................... 271 Report Functions ................................................................................................................................. 271 Query Functions .................................................................................................................................. 273 Plotter Functions ................................................................................................................................. 273 Drivers Functions ................................................................................................................................ 274 19.5.15. 19.5.16. Database Functions ................................................................................................................... 276 Remote Application Functions ............................................................................................................. 282 19.5.17. OPC Server Functions ............................................................................................................... 283 19.6. ATTRIBUTES ................................................................................................................................................ 283 19.6.1. Global Manager Attributes ................................................................................................................... 284 19.6.2. Application Attributes........................................................................................................................... 284 19.6.3. Tag Attributes ...................................................................................................................................... 288 19.6.4. Screen Attributes ................................................................................................................................. 294 19.6.5. Attributes of Screen Objects................................................................................................................ 296 19.6.6. Plotter Attributes .................................................................................................................................. 317 19.6.7. Alarm Attributes ................................................................................................................................... 321 19.6.8. Recipe Attributes ................................................................................................................................. 322 19.6.9. Historic Attributes ................................................................................................................................ 322 19.6.10. 19.6.11. HAnalysis Attributes ................................................................................................................... 323 Query Attributes .................................................................................................................................. 324 19.6.12. 19.6.13. 19.6.14. 19.6.15. SPC Attributes ........................................................................................................................... 325 Batch Attributes ................................................................................................................................... 326 Report Attributes ................................................................................................................................. 326 Driver Attributes................................................................................................................................... 327 19.6.16. 19.6.17. 19.6.18. Database Attributes ................................................................................................................... 329 Attributes of User List .......................................................................................................................... 329 Remote Application Attributes ............................................................................................................. 329 19.6.19. Watcher Attributes 19.6.20. Steeplechase Attributes 19.6.21. OPC Server Attributes ..................................................................................................................... 333 ............................................................................................................. 335 ............................................................................................................... 335 20. SUPPORT TO DDE.................................................................................................................................................. 337 20.1. ELIPSE SCADA AS CLIENT........................................................................................................................... 337 20.2. ELIPSE SCADA AS SERVER ......................................................................................................................... 339 Conventions These are conventions used in this manual: EXAMPLE SILO6.BMP General “Agitation” Screen1.Show() Tank01.High <name of file> [Ctrl+Enter] DESCRIPTION Names of files and other terms at operational system level are indicated in Tahoma font, in capital letters. Names of fields and options that should be searched on screen, in menus, or in the cards of objects are indicated in Tahoma font. Characters between quotation marks should be typed in the cited place, without the presence of quotation marks. Parts of programs (scripts) are indicated in Courier font. They should be typed in reserved places, and then compiled for verifying errors. Bold characters indicate names of objects of Elipse SCADA or their properties. Expressions between < > signs should be substituted by the name of the object focused. Expressions between brackets indicate names of keys. When accompanied by a + sign, you should press the second key while pressing the first one. This icon, when alone, means the resource is not available for the SCADA Win CE package. When accompanied by a note, it means there are restrictions to its use. 1 Chapter 1. Introduction Welcome to Elipse SCADA! Elipse Software is proud of presenting this powerful tool for the development of supervision systems and process control. Elipse SCADA combines high performance to strong versatility, represented by its several features, which facilitate and speed up the task of developing your application. Totally configurable by the user, it allows the monitoring of variables in real time through graphs and objects related to the physical variables in the field. It is also possible to make activations and to send or receive information from data acquisition equipment. Besides that, through its exclusive programming language, Elipse Basic, it is possible to make various tasks become automatic; in order to fulfill the specific needs of your company. We thank you for your preference for our products, and we wish you success with your new working tool! Elipse Software Team 1.1. Elipse SCADA Packages Elipse SCADA is available in different packages, fulfilling the demands of customization of our clients. Next, you can see the characteristics of each one: Elipse View It is indicated for simple applications, such as an interface with the operator for monitoring and activations. Elipse View enables variables visualization, including the use of animations, setpoints programming, access control, and special functions for touchscreen. This pack includes: Introduction Communication with equipment via drivers (DLLs) and OPC (Server and Client); Screen Objects; Visualization of active alarms; Block communication; Scripts; DDE server and client; Elipse network server; 9 User Manual Access control via users list. This package does not include any tools for historic data, alarms, or reports recording, or any other functionality that may be released in more advanced packages. Elipse MMI (Man Machine Interface) It is the complete supervisory software. Elipse MMI has easy-to-implement proprietary databases, formatted reports, historic objects, prescriptions, alarms, and Statistical Process Control. It can also be a data server for other Elipse stations. It includes all resources from Elipse View, plus: Historic, prescriptions, and reports; Statistical Process Control (SPC module); Browser Screen Objects (Historic) and historic alarms; Alarms log in disk. Elipse MMI is indicated for systems of any size, where connections with external databases (ODBC and DAO) or network applications are not necessary, and when the user needs to see other supervision stations. Elipse Pro It is Elipse SCADA’s most advanced tool. Elipse Pro allows you to exchange data in real time with other stations, transfer/update databases, and perform commands and program setpoints via local network or dialed line. It includes all resources from MMI package, plus: ODBC (Open DataBase Connectivity) and DAO (Data Access Objects); Elipse network client and server (TCP/IP); Elipse Pro is the ideal solution for the communication with corporative systems, for it supports ODBC, DAO, and several network protocols. Besides, this module enables information exchange with control dedicated software (SoftPLC). Elipse SCADA CE This package allows you to execute Elipse SCADA applications in Windows CE based devices, such as IHMs, diskless devices in general, and other mobile devices. Elipse SCADA CE does not support all functionalities of the previously discussed packs; when this is the case, it will be indicated throughout the manual. 10 Introduction User Manual 1.2. Operational Modules Elipse SCADA has three modules for its operation: Set up, Runtime and Master (includes Setup and Runtime). The active module is defined from the protection device (hardkey) coupled to the computer. While Set up and Master modules were specially developed for the creation and development of applications, the Runtime module just allows their execution. With this module, the user cannot perform any alteration in the application. When there is no hardkey, the software can still be executed in Demonstration mode on. Since it does not need the hardkey, the Demo mode can be used for software assessment. It has all features existing in the Set up module, except that it works with a maximum of 20 tags (process variables), and enable up to 5 simultaneous conections with Elipse Web and allows to run an application and estabilish communication with equipment of data acquisition up until 2 hours. In this mode, the software can be freely reproduced and distributed. Runtime and Master modules are also available in Lite versions, with the same features as the other versions, but with limited number of tags (variables): Lite 75 has 75 tags, and Lite 300 has 300 tags. For the version Windows CE, the only mode available is Runtime, in licenses of 75, 300 or 1500 tags. 1.3. Plug-Ins Plug-ins are additional tools that allow the expansion of features of Elipse SCADA, adding functionalities to the software. They can be purchased separately, and work alongside any version of the software. Presently, the following plug-ins are available: It allows the monitoring of systems through features of capture, registration and digital transmission of images in real time. It gives support to several standards (including MPEG), enabling the visualization in windows having size and quality that are programmable by the user. It allows the creation of a bank of images with search by period or event, and transmission of images in real time to remote stations via TCP/IP or dialed row. System for the supervision of processes through the Internet. By using any navigator (Internet Explorer, Netscape and others), it is possible to connect to a remote supervision station, and receive data in real time. With this feature, it is possible to view Introduction 11 User Manual processes from any part of the world. 12 Introduction 2 Chapter 2. What Is On Screen An easy way of understanding how Elipse SCADA works is from the tools available and their presentation on screen. The following picture shows Elipse SCADA’s main screen with an open application in Configuration module, identifying its elements. Picture 1: Elipse SCADA screen The Title Bar shows the path and name of you application, as well as the title of the current screen being shown in the work area. The work area is the space where you will develop your application. The edition of screens and reports is performed in this area. The Screen Bar shows the current screen’s title, and allows you to alternate between screens. The Menu Bar allows you to choose from several options for the application’s set up. The buttons on the Tool Bar allow you to execute some tasks quickly, without using the menus. Thus, with just one click, you can create screen objects or call the Organizer, for example. The Status Bar shows some auxiliary information when editing an application, such as indicators numeric keypad activation (NUM), capital letters (CTRL) and screen scroll (SCRL), and coordinates of the mouse pointer. It also shows a small description of a given object, for example a button of the toolbar or a menu item. What’s Is On Screen? 13 User Manual the applications that will run in the version Windows CE must be necessarily created in the version Windows, Set Up mode. 2.1. Menu Options It is through the menu options that you can access the software’s features and functions. Next, we describe the options of Elipse SCADA. 2.1.1. File Menu Picture 2: File Menu 14 What Is On Screen? User Manual Options for File Menu OPTION 2.1.2. DESCRIPTION New application Creates a new application. Open application Opens an application already existing. Save application Saves the current application. Save application as Saves a copy of the current application in a new file. Close application Closes the current application. Run Runs the current application. Organizer Calls the Organizer. Options… It allows you to configure some options of Elipse SCADA, such as the creation of a backup file (.BAK) when saving the application; protection mechanism settings, and language library file name (the default is INTLUS32.DLL). It is also possible to specify an application to be executed when Elipse SCADA is activated remotely via OPC. 1, 2, 3 and 4 Lists the four files recently open Exit Closes Elipse SCADA. Screen Menu Picture 3: Screen Menu What Is On Screen? 15 User Manual Options for Screen Menu OPTION 2.1.3. DESCRIPTION New Creates a new screen (blank). Delete Deletes an already existing screen. Close Closes the current screen. Monitor Monitors the current screen. Properties Shows the properties of the current screen, where you can define a background image and window style, among other features. Redraw Redraws the loaded screens. Objects Menu Picture 4: Objects Menu 16 What Is On Screen? User Manual Options for Objects Menu OPTION DESCRIPTION Unselect Unselects the current object. Select all Selects all objects on screen. Cut Cuts the selected object out. Copy Copies the selected object to the clipboard. Paste Pastes the object in the clipboard into the indicated place. Delete Deletes the selected objects. To select more than one object, use the [Ctrl] key. Properties Shows the properties of the selected object. The same function can be activated by double-clicking the object. Select mode Connects the select mode, allowing the user to select all objects within an delimited by the mouse. The remaining options create objects according to their respective names. After choosing the Screen Object you want, you should select a region in the screen to place the object by keeping the left button pressed while the object is moved. A dotted rectangle shows the size and form of the object. By releasing the mouse button, the object will be placed inside the specified area. 2.1.4. Arrange Menu Picture 5: Arrange Menu What Is On Screen? 17 User Manual Options for Arrange Menu OPTION 2.1.5. DESCRIPTION Group Groups the selected objects. Ungroup Ungroups the selected objects. Send to Back Sends the selected object to the back of the screen. Bring to front Brings the selected object to the front of the screen. Aligning Controls Aligns selected objects to the left, right, top, or bottom. Make Same Size Makes the selected objects the same size. Center in screen Centralizes the selected objects on the screen. View Menu Picture 6: View Menu Options for View Menu OPTION 2.1.6. DESCRIPTION Toolbar Shows or hides the Toolbar. Status Bar Shows or hides the Status Bar. Screen Bar Shows or hides the Screen Bar. Help Menu Picture 7: Help Menu 18 What Is On Screen? User Manual Options for Help Menu OPTION DESCRIPTION Index Shows the help index. Using Help Explains how Help should be used. About Elipse SCADA... Shows information related to Elipse SCADA, such as version, number of hardkey and copyrights. 2.2. Toolbars Toolbars offer a quick access to Elipse SCADA’s functions. These functions are distributed in four groups, as follows: Application, Screen Objects, Arrange, and Screens, as follows. 2.2.1. Application Toolbar Picture 8: Application Toolbar What Is On Screen? 19 User Manual Buttons for Application Toolbar BUTTON ACTION Creates a new application. Creates a new screen. Opens an application that already exists. Saves the current application. Cuts out the selected object, copying it to the clipboard. Copies the selected object to the clipboard. Pastes the object in the clipboard to the place indicated on screen. Calls the Organizer. Shows the properties of the selected object. Shows the properties of the selected screen. Runs the current application, starting with open screens. Runs current application. Opens the system help. Activates the help related to the context. 2.2.2. Objects Toolbar Picture 9: Objects Toolbar 20 What Is On Screen? User Manual Buttons for Objects Toolbar BUTTON ACTION Turns selection mode on, allowing the user to select all objects within an area delimited by the mouse. Creates a new Slider object. Creates a new Trend Chart object. Creates a new Button object. Creates a new Gauge object. Creates a new text area (Text object). Creates a new Bar Chart object. Creates a new Display object. Creates a new Animation. Creates a new Setpoint object. Creates a new Alarm object. Creates a new Browser object. Creates a new Bitmap object. Creates a new Video object. Creates an AVI object. Creates a new Preview object. 2.2.3. Arrange Toolbar The Arrange Toolbar has commands for the edition of Screens acting on the Screen Objects that are selected; these commands are also available in the Arrange menu. To select more than one Screen Object, use the left button, and keep the [Ctrl] key pressed; the last selected object’s focus gets red to be used as a reference. To unselect an object, use this key combination: [Ctrl]+[Shift]+Left Button. Picture 10: Arrange Toolbar What Is On Screen? 21 User Manual Buttons for Arrange Bar BUTTON ACTION Sends the selected object to the background of the screen. Brings the selected object to the front of the screen. Aligns the selected objects to the left side. Aligns the selected objects to the right side. Aligns the selected objects to the top. Aligns the selected objects to the bottom. Centralizes the selected objects horizontally to the screen. Centralizes the selected objects vertically to the screen. Applies the same width to all objects. Applies the same height to all objects. Applies the same size to all objects. Groups the selected objects. Ungroups the selected objects. 2.2.4. Screens Toolbar The Screens Toolbar shows the name of current screen, and allows you to switch screens through a list showing the name of all screens existing in the application. Picture 11: Screen Toolbar 22 What Is On Screen? User Manual 2.3. Shortcut Keys Another way of accessing quickly the functions of Elipse SCADA are the shortcut keys. Below, there is a list of all keys available, grouped by function. General Options KEYS ACTION Ctrl + O Opens the application. Ctrl + Shift + V Information “About Elipse SCADA”. F1 Calls help. Shift + F1 Calls context help. Editing an application KEYS ACTION Ctrl + S Saves the application. F10 Runs (executes) the application. Alt + O Calls the Organizer. Ctrl + N New screen. F8 Monitor screen. Ctrl + Alt + Shift + I Counts the number of items in the application Ctrl + Shift + F10 Opens the Scripts Editor font settings window Editing screens KEYS ACTION Ctrl + F4 Close screen Esc Deselect object Ctrl + A Select all objects Del Erase object Ctrl + X Cut object out Ctrl + C Copy object Ctrl + V Paste object Shift + Del Cut object out Ctrl + Ins Copy object Shift + Ins Paste object What Is On Screen? 23 User Manual Editing reports OPTIONS DESCRIPTION Ctrl + F4 Closes the reports editor Esc Unselects object Ctrl + A Selects all objects Del Erases object 2.4. Command Line Options It is possible to call Elipse SCADA directly from the command line. The executable ELIPSE32.EXE has the following syntax: ELIPSE32.EXE [-DEMO] [-SETUP] [-EDIT] [<NameApp>] Where: -DEMO -SETUP -EDIT NameApp (Optional) Forces Elipse SCADA to run in demonstration mode without checking the protection mechanisms (hardkey). This option rewrites the .INI file, by setting the [ProtectionType] section. (Optional) Forces Elipse SCADA to run the Setup program, which allows you to configure the options in the file of preferences (.INI). (Optional) Forces Elipse SCADA to run in Configuration mode. If the name of an application is informed in the command line, this application will be opened for configuration. (Optional) The name of the application that will run automatically or will be opened for configuration (when -EDIT is specified). In the version Windows CE, the only command line available is NameApp. 24 What Is On Screen? 3 Chapter 3. Organizer The development of an application in Elipse SCADA is based on the Organizer tool. It allows a simple and organized view of the whole application, helping in the edition and configuration of all objects involved in the system through a hierarchical tree. Organizer’s structure can be compared to directory tree of Windows File Manager. So, the structure of the application starts in the top left corner, with the application’s root. All objects of the application descend from the root, grouped according to their type: Tags, Screens, Alarms, Recipes, Historic, Reports, Drivers, Databases and others, which constitute the main elements of your application. By selecting any of the branches of the application tree, it will expand, showing its content; therefore, you can easily navigate through the application by having available all options of configuration, from the creation of Tags to the resizing of objects in a specific screen. Organizer’s basic structure is: Picture 12: Organizer You can call the Organizer only when there is an open application, by selecting the Organizer command in the File menu, or by pressing the Organizer button in the Toolbar. The following window will appear: Organizer 25 User Manual Picture 13: Organizer Window From the Organizer, you can create your whole application simply by navigating through the application tree. By selecting any of its branches, the properties of the selected object will be shown on the right side of the window, where they can be edited. For example, if you select Tags in the Organizer tree, you can create new Tags and edit their properties by selecting the page wanted from the tabs on top of the window. 26 Organizer User Manual Picture 14: Actions menu When you right-click the objects in the Organizer, the following options appear: Search and Replace: allows you to search and replace texts in scripts and properties from the selected object, as well as from its child-objects. This search is case sensitive. Link Report: generates a report with crossed references from the object and its child-objects. Script Report: helps you organize and document scripts in the application. Translation Tool: helps translating the application. The buttons of the Organizer toolbar allow you to quickly execute given tasks without using the menus. There are 13 buttons, as it can be verified in the following table: Organizer 27 User Manual Organizer Tools ICON COMMAND ACTION Delete Erases one or more items selected in the Organizer. Duplicate Duplicates the item selected in the Organizer tree. AppBrowser Calls the AppBrowser. Cross reference Calls Cross Reference. Compile Compiles the script being edited. Compile all Compiles all scripts that are not compiled. Recompile all Recompiles all scripts in the application, enabling the user to access each script with a double click. It is generated a list of compiled scripts, by showing in red the ones with error. If Inserts the IF...ENDIF command to the selected script, in the point where the cursor is. Else…If Inserts the ELSE...IF command to the selected script, in the point where the cursor is. Else Inserts the ELSE command to the selected script, in the point where the cursor is. For…Next Inserts the FOR...NEXT command to the selected script, in the point where the cursor is. While…Send Inserts the WHILE...WEND (end of While) command to the selected script, in the point where the cursor is. Repeat…Until Inserts the REPEAT...UNTIL command to the selected script, in the point where the cursor is. 3.1. AppBrowser The AppBrowser is an important Organizer tool. It is composed of a window presenting the application tree with its objects. By clicking any object, it is possible to view the functions and attributes related to this object. When we are writing a script, a Copy in Script --> button stays available on this window, allowing for the copy of the attribute or function focused to the programming rows, thus making this task to be easier. 28 Organizer User Manual Picture 15: AppBrowser 3.2. Creating a New Application The creation of an application is the starting point for the assembly of a system by using Elipse SCADA. With an application, the user gathers all objects necessary for the execution of wanted tasks. Information referring to this application is stored in a file having APP extension. In order to create a new application, do the following: Choose in the File menu the New Application option, or click the corresponding button in the toolbar. In the Save New Application! Frame, choose a name and the place where the application will be saved. Besides the files with APP extension, there are others that are generated and used by Elipse SCADA: NOTE: Windows XP users must pay attention to System Restore tool. This tool also tracks .APP files changes, and if you restore the system, the tool will reverse the new version files into older ones. Organizer 29 User Manual App extension EXTENSION DESCRIPTION .APX File having the settings of the users list. .BAK Backup of application .DAT File of historic .HDR Headers of historic files in batch .RCP Recipes file .DLL, .SO Communication drivers .BMP, .JPG, .GIF Image files In CE, only .BMP is currently avaliable. 3.2.1. General Properties of an Application When you select the root of the Application in the Organizer tree, its properties are shown on the right side of the tree. The page of general properties appears when the Application tab is selected on top of the Application pages. This page is shown below, and its respective fields are described in the following table. Picture 16: Properties of Application 30 Organizer User Manual Properties of the Application form OPTIONS DESCRIPTION Description Defines the name of the application (which will appear on the title bar) in case the Title Bar option is enabled. Title bar Enables the title bar in the application window. In CE, the title bar observes this property only for windowed screens. Full screens observe CE’s pattern; some platforms never appear, others always appear. Properties of the Application form (four Styles) OPTIONS DESCRIPTION Disables task switching Disables the switching between tasks, i.e., disables the [Alt+Tab] shortcut of Windows. Disables screen saver Disables any screen protector (screen saver) while Elipse SCADA is running. Close Button Enables the Close button on the title bar of the application window. Minimize Button Enables the Minimize button on the application window. Maximize Button Enables the Maximize button on the application window. Allow Close If switched-off, makes the execution to be ended only when the StopRunning() function is called. If switchedon, allows the closing of the application (and Elipse SCADA) via other media, as through a click on the Close, switch-off button of Windows, etc. Properties of the Application form (Buttons) OPTIONS Organizer DESCRIPTION Statistics… Opens a window which shows statistical information of the application, like: total time for editing the application, number of items of the application, total number of tags, number of revisions, and version of Elipse SCADA in which the application has been generated. Find Item… Opens a window that allows the search of an item (object, property) in any place of the application, and to present it for edition. Import… Opens a window that allows the choice of an application for import. After choosing the application of origin, a new window is open having the tree of both applications, so that the user can drag the objects of the application of origin to the application of destination. Note: The application of origin is not modified. Protection… It opens a window for protecting the application. There are two protections: for configuration (to edit and make any type of modification), and for execution. In case of 31 User Manual use of password for configuration, the final user cannot alter the application, unless if he/she knows the password used. This is also valid for the execution, and only this password can exist if there is already one for configuration. 3.2.2. Application Window The Window page allows the configuration of the main window for the execution of the application. Picture 17: Properties of the Application Window 32 Organizer User Manual Properties of the Window form OPTIONS Start Maximized /Minimized /Normal X, Y, Width, Height Centralize Window 3.2.3. DESCRIPTION Defines the initial configuration of the application window. Defines the position and size of the window in pixels. Indicates that the window should initiate in central position on screen. Touch Screen Elipse SCADA has special support on the use of touch (Touch Screen), allowing a more intuitive interface for the use of your application. Picture 18: Touch Screen Properties Organizer 33 User Manual Properties of the Touch Screen OPTIONS Enable “Key Pad” DESCRIPTION Enables the use of Key Pad in running time. SCADA CE currently uses Win CE’s keypad, so it is not possible to choose its colors and dimensions. Save “Key Pad” window coordinates “Key Pad” Background color Enables saving of new coordinates of Key Pad as its window changes positions. “Key Pad” key color Defines the color of Key Pad text. Don’t Show mouse pointer Disables the mouse pointer while the Key Pad is being shown. Use large buttons Increases the size of Key Pad buttons. Defines the background color of Key Pad Properties of Key Pad and Numeric Pad OPTIONS 3.2.4. DESCRIPTION Show window title bar Shows the title bar of the window of Key Pad and/or Numeric Pad. Override default title bar text Allows the definition of a new title for the title bar of the window of Key Pad and/or Numeric Pad. Show close button Shows the close button of the window of Key Pad and/or Numeric Pad. Elipse Web Through the Elipse Web plug-in, Elipse SCADA can generate documents to be visualized through the Internet, together with some commercial Web Server as the Microsoft Internet Information Server (IIS) or Microsoft Personal Web Server (PWS). 34 Organizer User Manual Picture 19: Elipse Web Properties of Elipse Web OPTIONS Enable Elipse Web data server Default Web Pages Directory Port DESCRIPTION Enables Elipse Web. Allows to choose, through the [Browse…] button, the directory where the documents to be visualized through the Internet will appear. The directory should be in the tree of documents of the Web server. Allows the definition of the port which the Web server will be associated to. 3.3. Scripts During the execution of an application, several procedures can be triggered through events. These procedures are described by scripts associated to these events. More details about scripts will be discussed in a further chapter. Here, we have a list of events/scripts available in an application. Organizer 35 User Manual Events/Scripts of an Application EVENT 36 DESCRIPTION OnKeyPress runs when a given key is pressed. OnKeyRelease runs when the key is released. OnStartRunning runs when the application begins running. OnStopRunning runs when the application ends running. OnUserLogin runs when an user begins the session in the application. OnUserLogout runs when an user ends the session in the application. WhileKeyPressed runs while a given key is pressed. WhileRunning runs while the application is running. The script will run as many times as you define it in the text box called Run at each (it only appears for WhileRunning scripts). Organizer 4 Chapter 4. Tags The supervision of a process with Elipse SCADA occurs through the reading of process variables in the field. The values of these variables are associated to objects of the system called Tags. To each object inserted on screen, we should associate at least a tag or attribute. Tags are all variables (numeric or alphanumeric) involved in an application. Attributes are data supplied by Elipse SCADA about parameters of the system and components of the application. When creating tags, the user can freely organize them in groups in a way as to facilitate search and identification during the process of configuration. For the creation of a group, just select the Tags item in the Organizer, and click New Group. You can create groups within other groups, without restrictions. In order to modify the hierarchy of groups and change their position (for example, to include a group inside another group), just drag the group focused to the desired place. You can create and edit tags from the Organizer by selecting the Tags branch in the application tree and pressing the New Tag button. On the Organizer window, you can double click the Tags option to see the tags that are already defined for the application, in the same way as you do with a directory tree. As the application grows, the tags can be grouped in order to better organize and edit the application. 4.1. Tag Group When you select the Tags option in the application tree of the Organizer, the following page will appear on the right side of the tree. By using the buttons of this page, you can create a new group of tags or a new tag for your application. The new group or tags that is created will automatically appear in the application tree below the Tags option. Tags 37 User Manual Picture 20: Tags Group Screen Options of Tag Group OPTIONS DESCRIPTION Name Defines the name of the selected group of tags. A group of tags works in the same way as a directory where various tags will be defined. Description A brief description of the selected group. New Group Creates a new group of tags from the current group. New Tag Creates a new tag. Report… Opens a window for the configuration of a report with all tags existing in the application. Only properties we want to print can be selected for each type of tag. The report will be printed in a text file which is specified in the Print box for the file. 4.2. New Tag When you press the New Tag button, the following window will appear. In this window, you can define the tag name, the quantity of tags you want to create, and their type. All tags specified in the Quantity field will be of the same type defined in the Tag Type field. 38 Tags User Manual Picture 21: Create a new tag Available options OPTIONS Tags DESCRIPTION Name Tag Name. Spaces and special characters are both allowed when Tags are used in Scripts. Quantity Defines the number of Tags that will be created with the same characteristics specified. PLC PLC Tags are used to exchange values with data acquisition equipment. DDE Allow exchanging data with programs that are DDE Servers. DDE (Data Dynamic Exchange) is a protocol developed by Microsoft for communication of Windows based applications. Demo Demo Tags are used to generate random data. Matrix Matrix Tags allow the creation of matrixes or data vectors. Expression Expression Tags allow the input of a numeric or alphanumeric expression (they allow the concatenation of strings, for example). Block Block Tags are used in order to simultaneously read a block of values. RAM RAM Tags are used to store values in memory. 39 User Manual 4.3. Chrono Tag Creates a new chronometer. Picture 22: Properties of Chrono tags 40 Tags User Manual Properties of Chrono tags OPTIONS DESCRIPTION Name Tag Name. You can use as many characters as you wish, but spaces and special characters are not allowed when the Tags are used in Scripts. Description A brief description of the Tag. Increment Determines the increment of the tag. Preset Determines the preset time of tag. Start Timer at Application Start up Always reset acum when the timer starts Save acum when exiting application Restart on preset (loop execution) Enables the initialization of the timer when starting up the application. Enables for resetting the accumulator when starting the timer Enables for saving the accumulator when exiting Enables the automatic restart in loop execution. 4.4. PLC Tag The PLC Tag is used in order to exchange information with data acquisition equipment by using I/O drivers supplied by Elipse depending on the type of equipment. A help file is supplied with each driver, containing important information relative to its configuration. You can install a new driver by pressing the New button in the Drivers page and selecting one or more drivers from the list. The Configure… button opens the window of properties of the driver, allowing the configuration of “P” communication parameters according to the information contained in the help file. The option of Abort in error, ends communication in case there is any problem, impeding an application to be “locked”. Tags 41 User Manual Picture 23: Properties of PLC tags 42 Tags User Manual Properties of PLC tags OPTIONS DESCRIPTION Name Tag Name. You can use as many characters as you wish, but spaces and special characters are not allowed when Tags are used in Scripts. Change type to ... It allows the change of Tag type. Expand bits… It allows dismembering the Tag in bits, by creating Bit Tags for each bit or group of bits in the Tag. Description A brief description of the Tag. Driver It allows the selection of a Communication Driver for the current Tag. The drivers should be installed through the Drivers window in order to be available. Driver Help It shows the Help of the selected Driver. “N” Parameters It allows the configuration of parameters of “N” address for current Tag according to the selected driver. This configuration is contained in the Driver’s Help, which can be accessed by pressing the "Help" button. The values can be expressed in decimal [32768, 65535], octal [0o, 177777o], or hexadecimal [0000h, FFFFh]. Scan Defines what will be the updating periodicity of tag values (in milliseconds) Scaling By marking this option, the Tag values will be converted into a new Scaling of values determined by the user in relation to the limits defined in Low and High PLC, and Low and High System. PLC Low Defines the minimum value to be read from the PLC. System Low Defines the new minimum value for the conversion of values read. PLC high Defines the maximum value to be read from the PLC. System high Defines the new maximum value for the conversion of values read. Test Connection Here Tests the communication with the PLC server, allowing for the reading and writing of values. Enable scan reading Enables PLC tag scan reading, that is, the tag value is always updated on the time specified in Scan field. Enable automatic reading When enabled, the tag value is read when needed only. If Enable scan reading is enabled, this option is ignored. Enable automatic writing Enables PLC tag automatic writing (see topic below). Scan Reading vs. Automatic Reading When the option Enable scan reading is enabled, Elipse SCADA updates the tag value continuously, according to the frequency specified in the field Scan. This value is also used by the option Enable automatic reading to check if the value is old, which establishes the need for forcing tag value reading. So, if the option Tags 43 User Manual Enable scan reading is enabled, the option Enable automatic reading will be irrelevant, because tag value is always updated. The option Enable automatic reading can be used to optimize specific processes. For example, if one tag is used by in a specific script, you can turn on Enable automatic reading and turn off Enable scan reading. In this case, the tag will be read only when is necessary. Automatic Writing in PLC Tags When directly attributing a value to a PLC tag or block element that has the property of automatic writing enabled, the command is directly sent to the communication driver, which in turn transmits it to the associated equipment. Such action does not occur only when the attributed value is equal to the content that was already in the tag. In case you anyway want to force writing, the Write() function of the tag should be executed in some script (see the Chapter of Scripts). 4.5. DDE Tag The DDE Tag is used for exchanging data between Elipse SCADA and other applications (Excel, Access, Word, etc.) by using DDE (Dynamic Data Exchange). In order to do so, you need to specify the server application, the topic and the item, as you can see in the window below. 44 Tags User Manual Picture 24: DDE Tag Tags 45 User Manual Properties of DDE tags OPTIONS 46 DESCRIPTION Name Tag Name. You can use as many characters as you wish, but spaces and special characters are not allowed when the Tags are used in Scripts. Change type to It allows the change of Tag type. Description A brief description of the Tag. Server Name Defines the name of the DDE server, which can be an application of Windows (ex: Excel, Word, etc) or a DDE driver supplied by the manufacturer of your equipment. The list of programs available for DDE servers appears when the arrow beside this box is pressed. Topic Defines the name of the Topic of the DDE Server, depending on the type of Server. It can be a document (ex: a table of Excel). The list of Topics available appears when the arrow beside this box is pressed. Item Defines the name of the Item of the DDE Server, depending on the type of Server. It can be an item of a document (ex: a cell in an Excel table). Test Connection It allows you to test the configuration of DDE. A message can indicate an error of connection or the value received by the configured item. Scaling By marking this option, the Tag values will be converted into a new Scaling of values determined by the user in relation to the limits defined in Server Low, System Low, Server High, and System High. Server Low Defines the minimum value to be read from the Server. System Low Defines the new minimum value for the conversion of values read. Server High Defines the maximum value to be read from the Server. System High Defines the new maximum value for the conversion of values read. Tags User Manual 4.6. Demo Tag The Demo tag is used for the simulation of values. It allows you to generate defined curves or random values according to the type of curve selected in the six buttons of the General page of the Demo tag (see picture below). Demo Tags can help you in testing your application, or can be used for example with an object of animation screen to show the animation frames in accordance with the tag variation. Picture 25: Properties of Demo tags Tags 47 User Manual Properties of Demo tags OPTIONS DESCRIPTION Name Tag Name. Spaces and special characters are both allowed when Tags are used in Scripts. Change type to It allows for changing the Tag type. Expand bits… It allows the dismembering of the Tag into bits, by creating Bit Tags for each bit. Description A brief description of the Tag. Type Defines the type of curve to be used by the current Demo Tag. Low Limit Defines a minimum value for the Demo Tag. High Limit Defines a maximum value for the Demo Tag. Increment Defines the increment for the Demo Tag in a saw tooth type curve. Delay Defines the number of periods between each generation of value for the Demo Tag. For instance, if it is 1, a value is generated at each period, if it is 2, a value is generated at each two periods, and so on. It is used together with the period attribute to control the time interval for the variation of data. Period Defines the number of milliseconds between the generation of each new value for the Demo Tag. It is used together with the delay attribute to control the time interval for the variation of data. Enabled Defines the initial condition of the Demo Tag: Enabled or Disabled. The values of the Demo Tag are generated only when this option is marked; in case not, the value of the Tag remains the same. 4.7. Expression Tag The Expression tag allows you to attribute a numeric or alphanumeric expression to a tag. You can create equations involving other tags and strings. The same functions, operators, and constants used in Scripts can be used with Expression Tags. 48 Tags User Manual Picture 26: Properties of Expression tags Properties of Expression tags OPTIONS Tags DESCRIPTION Name Tag Name. Spaces and special characters are both allowed when Tags are used in Scripts. Change type to It allows for changing Tag type. Expand Bits… It allows the dismembering of the Tag into bits, by creating Bit Tags for each bit. Description A brief description of the Tag. Expression Allows the input of any valid expression for the tag. Errors Lists syntax errors found in the expression. The errors are shown during the edition of the expression, and in order to have a valid expression, the message of “No errors” should appear in this field. 49 User Manual 4.8. Block Tag Block Tags allow block communication with data acquisition equipment by using I/O drivers supplied by Elipse depending on the type of device. A help file is supplied with each driver, containing important information relative to its configuration. You can install a new driver by pressing the New button in the Drivers page and selecting one or more drivers from the list. The Configure… button opens the window of properties of the driver, allowing the configuration of “P” communication parameters according to the information contained in the help file. The option of Abort in error ends communication in case there is any problem, impeding an application to be “locked”. Picture 27: Properties of PLC Block tags 50 Tags User Manual Properties of PLC Block tags OPTIONS Tags DESCRIPTION Name Tag Name. You can use as many characters as you wish, but spaces and special characters are not allowed when the Tags are used in Scripts. Change type to It allows for changing Tag type. Description A brief description of the Tag. Driver It allows the selection of a Communication Driver for the current Tag. The drivers should be installed through the Drivers window to be available. Help It shows the Help of the selected Driver. “B” Parameters It allows the configuration of parameters of “B” address for current Tag according to the selected driver. This configuration is contained in the Driver Help, which can be accessed by pressing the "Help" button. The values can be expressed in decimal [32768, 65535], octal [0o, 177777o], or hexadecimal [0000h, FFFFh]. Scan Defines what will be the updating periodicity of Tag values (in milliseconds). Change size Changes the size of the block to be monitored by Elipse SCADA. Add Element Allows you to add a add element to the selected Tag. Enable scan reading Enables block reading. Enable automatic reading Enables automatic reading for the block. Enable automatic writing Enables automatic writing for the block. Size Configures the size of the block tag. Add element... Add element in the block tag. 51 User Manual 4.8.1. Block Element Each element of Block tag has its properties, which can be accessed by selecting the desired element in the application tree in Organizer. Following page will be then shown on the right side of the window. Picture 28: Properties of block elements 52 Tags User Manual Properties of block elements OPTIONS DESCRIPTION Name Tag Name. You can use as many characters as you wish, but spaces and special characters are not allowed when the Tags are used in Scripts. Description A brief description of the Tag. Change type to... It allows for changing Tag type. Expand Bits… It allows dismembering the Tag in bits, by creating Bit Tags for each bit or group of bits in the Tag. Index block Allows changing the order of the element in the block by typing the index wanted. Scaling By marking this option, Tag values are converted into a new scale of values determined by the user according to the limits defined at PLC Low, System Low, PLC High, and System High. PLC Low Defines the minimum value to be read from the PLC. System Low Defines the new minimum value for the conversion of values read. PLC High Defines the maximum value to be read from the PLC. System High Defines the new maximum value for the conversion of values read. Test connection here Tests connection with the PLC by reading and writing some values. 4.9. RAM Tag RAM Tags are internally used to store values in memory. This tag type is é volatile; therefore, it maintains its values only while the application is running. Picture 29: Properties of RAM tags Tags 53 User Manual Properties of RAM tags OPTIONS DESCRIPTION Name Tag Name. You can use as many characters as you wish, but spaces and special characters are not allowed when the Tags are used in Scripts. Description A brief description of the Tag. Change type to... It allows for changing Tag type. Expand Bits… It allows dismembering the Tag into bits, by creating Bit Tags for each bit or group of bits in the Tag. Initial value Defines an initial value for the tag. This value can be a number or a string between double quotation marks (ex.: “abc”). 4.10. Matrix Tag The Matrix Tag allows the creation of matrixes or data vectors that can be used in calculations, storages, etc. It is possible to map each cell of a matrix as if it was a tag or property. Operations over matrixes always have row and column starting with index 1. Picture 30: Properties of Matrix tags 54 Tags User Manual Properties of Matrix tags OPTIONS DESCRIPTION Name Tag Name. You can use as many characters as you wish, but spaces and special characters are not allowed when the Tags are used in Scripts. Description A brief description of the Tag. Columns Defines the number of columns of the matrix Rows Defines the number of rows of the matrix Map Maps all or just some cells of the matrix into a tag. Associating Cells to Tags You can associate a cell of the matrix or vector to a tag by pressing the Associate… button in the General page of the Matrix tag and specifying what or which cells you want to associate. Each associated cell appears below the Matrix tag in the application tree in Organizer. When selecting a specific cell, its properties are shown on the right side of the tree. Each associated cell has 4 pages of properties: General, Alarms, Scripts and Tags. The 3 first pages are the same of any tag, and the page of tags allows associating a tag or property to the matrix cell in the same way that tags and properties are associated to screen objects. 4.11. Bit Tag The Bit Tag can only be created from another tag, and allows the individual access to each bit of it. Tags allowing splitting into bits are: PLC, Demo, Expression, Block Element, Ram, and Remote. You can create a Bit tag from the General page of any tag cited above. By clicking the Expand Bits… button, the following window will appear, in which you can select the bits you want to map. The selection of bits is done by using the mouse and [Shift] or [Ctrl] keys, in the same way as items are selected in a list box of Windows. Picture 31: Create a new Bit tag Tags 55 User Manual The Bit tag can be both a single bit as well as a set of bits, as long as they are continuous. This means that you can map for a single Bit tag, for example, bits 0, 1, and 2, but not bits 10, 11 and 24. The check box that exists in this window allows specifying if a tag should be created for each selected bit, or if continuous bits that are selected should be grouped in a single tag. In the example above, five Bit tags will be created in the following way: TAGS BITS bitField1 0, 1, 2 bitField2 5 bitField3 8 bitField4 12 bitField5 20, 21, 22 The Bit tags created appear below the respective tag in the application tree in Organizer. When selecting a specific Bit tag, its properties are shown on the right side of the tree. The page of General Properties of the Bit tag appears when the General card is selected on top of the pages of the Bit tag. This page is shown below, and its respective fields are described in the following table. Picture 32: Properties of Bit tags 56 Tags User Manual Properties of Bit tags OPTIONS DESCRIPTION Name Tag Name. Spaces and special characters are both allowed when Tags are used in Scripts. Description A brief description of the Tag. Lo word bits and high word bits Defines what are the bits or bit being a part of that tag. 4.12. Alarm Page Each tag you define has a page of Alarms like the one shown below, where it is possible to configuration 4 intervals of values and priorities for Alarms. Alarms are used to sign some problem and then to take the appropriate actions by using scripts. In order to view the Alarms configured for a tag, you must create an Alarm screen object and attribute the tag to it. This object can show also, already occurring alarms that are registered in a file of historic or alarms that are active in the system. In order to print the alarms occurring in the system, you can define a report through the Organizer, and run the special function Print() in a script. The page of Tag Alarms appears when the Alarms card is selected on top of tag pages. This page is shown below, and its respective fields are described in the following table. Picture 33: Properties of Tag Alarms Tags 57 User Manual Properties of Alarms (associated to Tags) OPTIONS 58 DESCRIPTION LoLo Critical Low Alarm. Defines an interval of values (lesser or equal) in which the Tag is considered in a state of Critical Low Alarm. It is used when the value of the tag is below a minimum, i.e., extremely low. Low Low Alarm. Defines an interval of values (lesser or equal) in which the Tag is considered in a state of Low Alarm. It is used when the tag value is below normal. High High Alarm. Defines an interval of values (bigger or equal) in which the Tag is considered in a state of High Alarm. It is used when the tag value is higher than normal. HiHi Critical High Alarm. Defines an interval of values (bigger or equal) in which the Tag is considered in a state of Critical High Alarm. It is used when the value of the tag is above a maximum, i.e., extremely high. Value Defines the cap for each possible situation of alarm (lolo, low, high, hihi). Pri Defines the priority for each situation of alarm. Small numbers indicate high priority (the priority should be a number between 0 and 999). For a better control, alarms of higher priority will appear in first place in the alarm window (Alarm screen object). Comments A comment or message can be defined for each alarm. Log Alarm Return Enables the recording (log) of messages of alarm return. Alarm Group Defines the group of Alarms of the current tag. The group of Alarms should be defined in the Alarms option of Organizer. Always in Advise Defines that the system will constantly supervise the tag, even if it is not used in any place in the application, in order not to loose any alarm of this tag. Use alternate tag name Allows defining an alternative name for tags in the recording (log) of alarms. Tags User Manual 4.13. Tag Scripts It is possible to execute scripts associated to changes in tag values and to status of tag alarms. SCRIPTS AVAILABLE EVENTS OnAck OnAlarmHigh OnAlarmHiHi OnAlarmLow OnAlarmLoLo OnAlarmReturn OnValueChanged OnRead Tags DESCRIPTION Runs the script when the alarm signals as recognized by the user. Runs the script when the value defined for High alarm is reached. Runs the script when the value defined for HiHi alarm is reached. Runs the script when the value defined for Low alarm is reached. Runs the script when the value defined for LoLo alarm is reached. Runs the script as soon as an alarm situation ends. Runs the script when the tag value changes Only for PLC and Block tags. Runs the script when the tag is read in the driver 59 5 Chapter 5. Screens A Screen can be defined as a window for the monitoring of a process. Each application can have an unlimited number of Screens. You can create a new Screen by pressing the New Screen button in the Toolbar or by using the New command in the Screen menu. In this new Screen, you can define Screen Objects, a background drawing, and other specific characteristics. For a better visualization of the system you are monitoring, some background bitmaps can be defined for Screens. A bitmap of Windows is a graphic file with BMP extension that can be created in several Windows applications that are specific for drawing, as for example, Paintbrush. You can create your drawings (bitmaps) with any size and colors; the Elipse SCADA will automatically import them without needing any conversion process. In order to view or edit the properties of current Screen, double click an empty space in the Screen or use the Properties command of the Screen menu. When the Screens option is selected in the Organizer tree, the following window appears, containing a list of all Screens of your application. You can create a new Screen by using the New button at the right of the page, or remove an existing Screen by selecting it in the list and pressing the delete button. Screens 61 User Manual Picture 34: Screen Window Screen Options OPTIONS 62 DESCRIPTION List Shows a list of all Screens existing in your application. The same Screens appear in the Organizer tree right below the Screens option, and when selected, their respective properties are shown. New Creates a new screen. Delete Erases the selected Screen from the List. Go to Closes the Organizer and shows current Screen. Show Shows current Screen without selecting it. Hide Hides current Screen, but keeps it in the application. Screens User Manual 5.1. General Properties of Screens Each screen you create for the application appears below the Screens option in the application tree in Organizer. When selecting a specific cell, its properties are shown on the right side of the tree. The page of general properties of screens appears when the General tab is selected on top of the screen pages. This page is shown below, and its respective fields are described in the following table. Picture 35: Properties of screens Screens 63 User Manual Properties of screens OPTIONS DESCRIPTION Name Defines a name for current screen. By using this name, you can open the screen from any part of the application by using buttons or function keys, as well as associate it to scripts. Title Defines a title for the screen, also used as its description. Color Defines the background color for current screen. This parameter is used when there is no bitmap selected, or when the bitmap doesn't fill the whole screen. Bitmap Enables or disables the use of a bitmap as background for current screen. Browse... Allows for navigating the structure of directories in order to find the BMP files to be used as background for the screen. The path and name of the bitmap appear below. Access level Defines the access level for the screen. 5.2. Style Properties of Screens The page of screen style properties appears when the Style tab is selected on top of the screen properties. This page is shown below, and its respective fields are described in the following table. Picture 36: Style Properties of Screen 64 Screens User Manual Style Properties of Screen OPTIONS Screens DESCRIPTION Full Screen Determines that the Screen occupies the whole application window. Windowed Determines that the Screen appears within a window without occupying the whole Screen of the application as specified in the Size and Position options. Width Defines the width of the Screen in pixels. Height Defines the height of the Screen in pixels. X Determines the X coordinate for the top left corner of the Screen in pixels. For example, if you are using a resolution of 640x480 (VGA) in Windows, your X coordinate can vary from 0 (zero) to 640 pixels for a window without scroll bar. Y Determines the Y coordinate for the top left corner of the Screen in pixels. For example, if you are using a resolution of 640x480 (VGA) in Windows, your Y coordinate can vary from 0 (zero) to 480 pixels for a window without scroll bar. Scroll-Bars Never: determines that the window has no scroll bars, even when necessary. Automatic: scroll bars will automatically appear when necessary. Don’t show objects focus Doesn't show the focus of screen objects in running time. Show Border Shows a border of one pixel of width surrounding the screen. Only for windowed screens with a fixed size. Resizeable Movable Allows the re-dimensioning of the window in running time. Title bar Shows or hides the Title Bar. Initial Screen Makes the Screen to be visible in running time. Modal Valid only for windowed Screens. Defines the window as modal, i.e.., it should be closed so that the focus can pass to other open windows. Popup Valid only for windowed Screens. Defines the window as popup; this means that it is automatically closed when loosing the focus. Clip Children Defines the use of clipping for redrawing screen objects in relation to the background, then optimizing the redrawing. This option should be enabled only if the screen objects are not overlapped and will not move; otherwise, the desired effect may not occur. Close Button Enables the close button in the window (button of top right corner). This button can only be seen in running time. Allows the window to be moved in running time. 65 User Manual 5.3. Screen Scripts Screen scripts are generally associated to an action that is executed on screen. This means, for example, that they can be executed when opening or closing the screen, or even when a key is pressed while the screen is monitored. Scripts available for screens are described in the table below. SCRIPTS AVAILABLE You can associate scripts to screens and execute them in one of the following situations: EVENTS 66 DESCRIPTION OnHide Executed after a screen has been closed. OnKeyPress Executed when the key that is specified in the New key button is pressed. OnKeyRelease Executed when the key that is specified in the New key button is released. OnKillFocus Executed when the screen loses focus of keyboard or mouse OnPreHide Executed before the screen is closed. Call the Show() function in this script to maintain the screen open. OnPreShow Executed before the screen is shown. Call the Hide() function in this script to cancel the opening of the screen. OnSetFocus Executed when the screen gains focus of keyboard or mouse OnShow Executed when the screen is shown. WhileKeyPressed Executed while the key that is specified in the New key button is pressed. WhileRunning Executed while the screen is active. Screens 6 Chapter 6. Screen Objects When the programmer is developing your application, many times he/she needs to show some result, make an alert, or receive information and actions from the user. This interaction with the user happens through what we call interface. For the programmer to be able to build up the interface of your application, Elipse SCADA offers a series of features called “Screen Objects”. Screen objects are graphic elements and representations of real objects in the process that help the user to interact and follow up the application being executed in Elipse SCADA. In this chapter, we will see the screen objects available in Elipse SCADA, their meaning, usefulness, and operation. For a better comprehension, we have organized the screen objects in two categories: visualization and interaction objects. 6.1. Editing Screen Objects Screen objects can be created from the Objects toolbar, already described in a previous section, or through the Objects menu. Once the object you want to create is selected, keep the left mouse as pressed in the screen area while you movement the mouse (a doted rectangle shows the size and form of the object). When releasing the button, the object will be positioned within the specified area. The edition of objects on screen, like alignment, size, position, and grouping is done through the Arrange toolbar already described or through the menu. The last object to be selected stays with a red focus to be used as reference. To deselect an object, use the combination of keys: [Shift]+[Ctrl]+[LeftMouse]. 6.2. Properties of Screen Objects In general, screen objects have several common properties that are grouped in the pages next described. Screen Objects 67 6.2.1. Size and Pos Page Picture 37: Properties of Size and Position 68 Screen Objects User Manual Properties of Size and Position OPTIONS Screen Objects DESCRIPTION X Defines the X coordinate for the top left corner of the object in pixels. It is used together with the Y attribute to define the position of the object from the origin of screen (0,0). Y Defines the Y coordinate for the top left corner of the object in pixels. It is used together with the X attribute to define the position of the object from the origin of screen (0,0). Width Determines the width of the object in pixels. It is used together with the height attribute to define the size of the object. Height Determines the height of the object in pixels. It is used together with the width attribute to define the size of the object. Unmoveable during development Determines that the object cannot be moved during configuration (blocks the changing of position for the object). Visible on application startup Enabled (receive mouse and keyboard input) Defines that the object will be visible when the application starts. Show tips during run-time Enables the object to show a tip when the mouse is over it. Access level Allows the association of an access level for the object (0 for free access). Enables the access for the keyboard and mouse to the object (valid only for objects that allow inputs via mouse or keyboard. Example: slider). 69 6.2.2. Frame Page Picture 38: Frame Properties 70 Screen Objects User Manual Frame Properties OPTIONS 6.2.3. DESCRIPTION Visible Enables or disables a frame around the object. Color Defines the color of the frame for the object. Title Enables or disables a title in the object frame. Text Defines the text of the title. Font Defines font, color, and size of Title font. Text Line separator Enables or disables a separator row between text and object. Border Enables or disables a border to the frame. Thickness Defines the thickness of the frame in pixels. Color Defines the color of the frame border. 3D effect Selects a 3D effect inside or outside the object frame. Thickness Defines the thickness in pixels for the 3D effect. Tags Page Picture 39: Tags Page Screen Objects 71 Properties of the Tags Page OPTIONS DESCRIPTION Objects Shows the application tree. Depending on the object selected, its property will appear in the window of Properties. Properties Allows the selection of any property of the object selected in the tree. Tags Selected Lists the Tags that are associated to the object. Add Adds up the marked Tags to the list of selected Tags. Remove Removes the selected Tags from the list. 6.3. Scripts of Screen Objects There are some scripts available for all screen objects; these scripts are described in the table below. Scripts that are specific for an object are further described in the respective section of the object. For more details regarding the use of scripts, see the specific chapter. Picture 40: Window of script edition 72 Screen Objects User Manual SCRIPTS AVAILABLE You can associate scripts in any screen object for these events: EVENTS OnKillFocus OnLButtonDblClk OnLButtonDown OnLButtonUp OnMouseMove OnRButtonDblClk OnRButtonDown OnRButtonUp OnSetFocus DESCRIPTION Executed when the object loses focus of keyboard or mouse Executed when the left mouse is pressed twice over the object. Executed when the left mouse is pressed over the object. Executed when the left mouse is released over the object. Executed when the mouse is moved over the object. Executed when the right mouse is pressed twice over the object. Executed when the right mouse is pressed over the object. Executed when the right mouse is released over the object. Executed when the object receives the focus of keyboard or mouse 6.4. Cross-Reference The Cross-Reference page lists all links for current object, and its properties, i.e., which other objects refer to it and what properties or values are being used. If you want to go to the selected item just double-click it. The Box of Show children items allows to view in the list, the “children” items associated to the “father” items listed. Picture 41: Cross-Reference Screen Objects 73 6.5. Visualization Objects 6.5.1. Text The Text object allows the attribution of messages at intervals of tag values, called Zones. Several zones can be defined, each one of them containing its own message. The Text Properties allow the definition of colors and messages for each zone. It is also possible to define a Default Zone for values not belonging to any specific interval. You can edit the properties of a text by double-clicking it. Picture 42: Text General Properties of the Text Picture 43: General Properties of the Text General Properties of the Text OPTIONS 74 DESCRIPTION Name Defines the name of the text that will be used in the Organizer tree and in the scripts. Description A brief description of the text. Screen Objects User Manual Text Zones Picture 44: Window of edition of zones Screen Objects 75 Properties of Text Zones OPTIONS 6.5.2. DESCRIPTION Zones Lists all Zones defined, and allows their edition. Add Adds up a new Zone to the list. Delete Removes the selected Zone from the list. Autorange Automatically adjusts the interval of Zones. Message Text associated to a selected zone. This message will be shown when the value of the Tag associated to the Text object is within the zone. Alignment Defines the alignment of characters for the Text object. Transparent Defines that the background of the object will be transparent. Default zone Defines the selected Zone as standard (default), i.e., a zone containing all values not defined in other zones. Blinking Enables the Blinking for the zone. Once activated and defined as “Blinker”, the zone alternates with the default zone, in accordance with the time set in Blinking every. Blinking every Defines the interval for Blinking between Blinking and default zones. Tip Allows the configuration of a tip for each zone. If the zone doesn't have a tip, the system uses the description of the object. Minimum Defines a minimum value for the selected Zone. Maximum Defines a maximum value for the selected Zone. Background Defines the background color of the Text Font Defines font, color, and size for the text of the message. Display The Display object is used to show tag values in real time. The properties of display allow the definition of the size, color, font, alignment, 3D effects, and other characteristics. You can edit the display properties by doubleclicking it. Picture 45: Display 76 Screen Objects User Manual General Properties of Display Picture 46: General Properties of Display General Properties of Display OPTIONS Screen Objects DESCRIPTION Name Defines the name of the display that will be used in the Organizer tree and in the scripts. Description A brief description of the display. Alignment Defines the alignment of characters for the display. Font Defines the font, color and size of the display text. Background Defines the background color of the display Multiline Defines the display as having multiline. Only available if the format of setpoint (format page) is string. 77 Display Format Picture 47: Display Format Availables Options OPTIONS 78 DESCRIPTION String Shows the value of the Tag in string format. Numeric Shows the value of the Tag in numeric format. Size Defines the number of digits to be shown, including the decimal point. Precision Defines how many digits of size will be decimal. Prefix Adds up a prefix of string type to the value shown. Suffix Adds up a suffix of string type to the value shown. Screen Objects User Manual 6.5.3. Browser The Browser object allows viewing your database files. These files should be in Elipse SCADA format, i.e., should have been created by Elipse. In order to browse these files, you should look for .DAT (Historic or Alarms) or .HDR (Batch) extensions. You can edit the browser properties by double-clicking it. Picture 48: Browser General Properties of Browser Picture 49: General Properties of Browser Screen Objects 79 Properties of the Browser object OPTIONS DESCRIPTION Name Defines the name of the Browser that will be used in the Organizer tree and in the scripts. Description A brief description of the Browser. Font Defines the font, color and size of the text to be shown in the Browser. Order Defines the order (ascending or descending) of Browser records. Title Background Defines the background color for the Browser title. Title Text Defines the text color for the Browser title. Row Background Defines the background color of Browser text rows. Row Text Defines the Browser rows text color. Selection Background Defines the background color for the selected rows of Browser. Selection Text Defines the text color for the selected rows of Browser. Grid Defines the color of the Browser grid. Background Defines the color of the Browser external area. Settings of Browser Picture 50: Properties of Browser 80 Screen Objects User Manual Setting of Browser OPTIONS Screen Objects DESCRIPTION Source Filename Defines the name of the file to be shown in the Browser object. This file should have DAT or HDR extension. Browse Allows the localization of the font file to be used by the Browser. All Batches Selects all batches to be printed. This option is available only if the font file (Source Filename) is a Historic file with batch process enabled. Last batches Selects the last batch to be printed. This option is available only if the font file (Source Filename) is a Historic file with batch process enabled. Specific Batch Selects a specific batch to be printed, according to the specification of the Field and Criteria fields. This option is available only if the font file (Source Filename) is a Historic file with batch process enabled. Field Lists the fields available for the selection of a specific batch. Only string type fields will be listed. Criteria Defines the value to be searched when a specific batch is selected. 81 Browser Query Picture 51: Settings of query for the Browser 82 Screen Objects User Manual Settings of query for the Browser OPTIONS DESCRIPTION No query date A filter will not be used, i.e., all data is selected. Time range Select data base data between two times. Newest data Only selects newer data. Initial Date Determines the initial date of the time interval. Final Date Determines the final date of the time interval. Initial Time Determines the initial time of the time interval. Final Time Determines the final time of the time interval. Last Defines the number of units for selecting most recent data. Unit Defines the unit used for selecting most recent data. Browser Database Picture 52: Database Properties Screen Objects 83 Database Properties OPTIONS DESCRIPTION Fields Lists available fields. Move Up Moves the selected field one position up. Move Down Moves the selected field one position down. Enable Allows the selected field to be printed. Reload file structure Reloads the current list of fields of the file in the browser fields. When some modification is done to the structure of the file used by the browser, this button should be pressed for updating fields. Size Defines the number of digits to be shown, including the decimal point. Precision Defines how many digits of size will be decimal. Prefix Adds up a prefix of string type to the value shown. Suffix Adds up a suffix of string type to the value shown. Date format Defines the format of the time marking (timestamp) of browser. Label Allows the changing of the name of the selected field. Lines Defines the number of lines the selected field will have in the browser. Browser Scripts The events available for exclusive Scripts of the Browser are described in the table below. For more details regarding the use of scripts, see the specific chapter. SCRIPTS AVAILABLE You can associate Scripts to the Browser and execute them in one of the following situations: EVENTS OnDrawRow 84 DESCRIPTION Executed right before each Browser row is drawn. It allows the modification of the background color and the row text through the functions SetTempRowColor() and SetTempRowTextColor(), depending on the value of the row fields (this value can be taken with function GetField()). Screen Objects User Manual 6.5.4. Bitmap The Bitmap object allows the insertion of images, figures or drawings in the screens of your application, as long as they are in BMP, GIF or JPEG format. This object can be re-dimensioned to have the same size of the picture, and has support to transparence, being enough just to enable and select a color. You can edit the Bitmap properties by double-clicking it. Picture 53: Bitmap Note: In Elipse SCADA CE, only .BMP is currently avaliable. General Properties of Bitmap Picture 54: General Properties of Bitmap Screen Objects 85 General Properties of Bitmap OPTIONS 6.5.5. DESCRIPTION Name Defines the name of the Bitmap that will be used in the Organizer tree and in the scripts. Description A brief description of the Bitmap. Bitmap Name Defines the name of the corresponding file. Browse... Allows the indication of the localization of the file to be used. Transparent Determines that the color specified in the Background is transparent. Background Defines the background color of the Bitmap Fit to Image Adjusts the Bitmap object so that it has the same size of the original picture. Animation The Animation object is an easy way of creating an animation by using images (bitmaps) associated to frames defined by the user, which are shown in sequence. A Tag should be associated to the animation, so that the Tag value determines what animation frame will be shown. The Tag values are associated to Zones, which correspond to a given frame. It is possible to use images of any size and color, as long as they are files in the supported formats: GIF, JPEG and Bitmap (.BMP). You can edit the Animation properties by double-clicking it. Picture 55: Animation Note: In Elipse SCADA CE, only .BMP is currently avaliable. 86 Screen Objects User Manual General Properties of Animation Picture 56: General Properties of Animation General Properties of Animation OPTIONS Screen Objects DESCRIPTION Name Defines the animation name. Description A brief description of the object. Transparent Defines that the color specified in the Background option will be transparent, allowing the background of the screen to be shown. Border Enables a border (black row) around frames. Background Defines a background color for the animation. Blinking every Interval in milliseconds for the Blinking between the Blinking and Default Zones. Fit to Image Adjusts the animation object so that it has the same size of the first frame of the animation. 87 Animation Zones Picture 57: Definition of Animation Zones 88 Screen Objects User Manual Properties of Animation Zones OPTIONS 6.5.6. DESCRIPTION Bitmap Lists the bitmaps of animation frames. Select one bitmap to see and edit its properties. Location Shows the bitmaps path. Add Used to add a bitmap or a group of bitmaps to the list. Delete Removes a bitmap or a group of bitmaps from the list. Autorange... Automatically adjusts the zones, by equally dividing the total of the interval between defined zones. Change Location Used to change the localization (path) of the bitmap. Default Zone Defines the frame selected in the list as standard; therefore, it will be shown when the tag value is outside other defined zones. Minimum Defines a minimum value for the selected Zone. Maximum Defines a maximum value for the selected Zone. Blinking Indicates that the Blinker will use this zone. Tip Allows the configuration of a tip for each zone. If the zone doesn't have an enabled tip, the system uses the description of the object. Preview Shows a forecast of the selected frame. AVI The AVI object is used for visualizing files with AVI extension in the system. Through this object, it is possible to Browse the AVI file in the system, and show it on screen when the project runs. This object only accepts AVI files. Picture 58: AVI Screen Objects 89 General Properties of AVI Picture 59: General Properties of AVI General Properties of AVI OPTIONS 6.5.7. DESCRIPTION Name Defines the name of the object in the system. Description A brief description of the video. AVI file Shows the path of the AVI file in the system. Browse... Allows navigation in directories in order to Browse the AVI file. Video The Video object is used for visualizing a video image. Through this option, it is possible to view system files, or those created by the Watcher option. Picture 60: Video 90 Screen Objects User Manual General Properties of Video Picture 61: General Properties of Video General Properties of Video OPTIONS Screen Objects DESCRIPTION Name Defines the name of the object in the system. Description A brief description of the video. Video Source Determines the font video will use for the visualization of the object AutoPlay (play video when the screen is opened) Stretch Video to fit window size Enables the visualization of the video when the object is executed Enables the adjustment of the video according to the object size. 91 6.5.8. Preview The Preview object is used for the video display files generated through the XPressPlayer board. Through this object, it is possible to configure it in the XPressPlayer board to be connected to a given camera, or to indicate the XPressPlayer file. The visualization of the object will be shown during the execution of the project. Picture 62: Preview General Properties of Preview Picture 63: General Properties of Preview 92 Screen Objects User Manual General Properties of Preview OPTIONS 6.5.9. DESCRIPTION Name Defines the name of the object in the system. Description A brief description of the video. XPressPlus Board Indicates the object of XPressPlus of Watcher to be associated to the Preview object. Camera number Indicates the number of the camera that is connected to the object. Window Size Indicates the size of the window for the visualization of the object. Camera Number Shows the path of the video file in the system. Auto size Automatically adjusts the visualization window according to the specifications of the Window Size option. Enable Large Preview Enables the visualization in "full screen". Trend This object is used to view a trend graphic with up to 16 tags. The graphic is constantly refreshed as the process evolves and tag values change. By using trends, you can make graphs like Value x Time and Value x Value. Due to these characteristics, it is possible to make the analysis of data as the process evolves. The trend object has various aspects that can be modified through various pages of properties, which will be next seen. Picture 64: Trend Screen Objects 93 General Properties of Trend Picture 65: Trend Properties 94 Screen Objects User Manual Trend Properties OPTIONS Screen Objects DESCRIPTION Name Defines the name for the identification of the trend object. Description A brief description of the trend. XY Enables a graph in real time as a function of two variables, each one in an axle of coordinates. The variables can be grouped in pairs, so that an object can show various XY functions. Time x Data Defines a data graph as a function of time. Show labels Shows a legend with meaning for each pen of trend. New data appears on the: Defines from where new data of trend will come. Time Span Defines the total interval of time for the sampling of the graph (in seconds). This option is disabled if the trend is historic. Refresh Trend every Defines the interval of time between each graph updating. This option is disabled if the trend is historic. Buffer Size Defines the number of points (from 1 to 1.000.000) the trend will store for each pen (each point occupies 20 bytes). This option is disabled if the trend is historic. Add Mark Adds up a horizontal or vertical row, or a point for reference to the trend graph. 95 Advanced Properties of Trends Picture 66: Advanced Properties of Trends Advanced Properties of Trends 96 OPTIONS DESCRIPTION Real time, only when the trend is on screen Real time, data collect data in background Load historic data from disk Refreshes the values of the trend in real time only if the trend is visible. Configure Query… Opens up a window that allows the configuration of the Historic trend Query. Refreshes the values of the trend in real time even when the trend is not visible. Refreshes the trend by loading data from a selected Historic. Screen Objects User Manual Properties of the Trend Graph Screen Objects 97 Properties for Axis X and Y OPTIONS DESCRIPTION (Scale) The first combo box indicates the scale type to be used in the axis, as follows: normal scale, logarithmic scale, or power-factor scale. Limit Defines the left limit of the X axle in the graph. This option is available only if the graph is of XY type. Right limit Defines the right limit of the X axle in the graph. This option is available only if the graph is of XY type. Show top ruler Shows a ruler on top of the graph, with values from X axle. Show bottom ruler Shows a ruler on the base of the graph, with values from X axle. High Limit Defines the top limit of the Y axle in the graph. Low Limit Defines the bottom limit of the Y axle in the graph. Show left ruler Shows a ruler on the left side of the graph, with values from Y axle. Show right ruler Shows a ruler on the right side of the graph, with values from Y axle. Scrolling Grid Makes the graph grid to accompany the movement generated by the input of data in the trend. Text Allows the placement of a legend for axis X and Y. Date/Time Format Allows the definition of the data and hour format for Tendencies of Value x Time type. Properties of Graph Colors OPTIONS DESCRIPTION Ruler background Defines the background color for the graph rulers. Ruler text Defines the color for the text that will be shown in rulers. Chart background Defines the background color for the graph. Grids and Axis Defines the color of the grid and of the graph axis. Properties of the Graph Grid OPTIONS 98 DESCRIPTION Grid Enables the grid in the graph (orientation rows). X Rows Defines the number of horizontal rows of the grid Y Rows Defines the number of vertical rows of the grid Ruler font… Defines font, size, and color for the graph characters. Screen Objects User Manual Colors of Trend Pens Picture 67: Color of Trend Pens Availables Options OPTIONS DESCRIPTION Inserts a pen associated to a tag. Inserts a pen associated to a field in the historic (the Load Disk Historic Data should be enabled in the Advanced card). Inserts an indication mark in the graph. Erases a pen or tick that is selected in the list. Defines that the pen drawing will be of Line type. The supported styles on CE are solid and dashed only. In case of an unsupported style be selected, the solid style will be automatically used. Defines that the pen drawing will be of Area type. Defines that the pen drawing will be of Bar type. Changes the order of the selected pen. Label This column lists the selected pens for the graph. Allows the changing of the text of the legend, and the activation/deactivation of each pen. Y Axis Selects the tag to be visualized in axis Y. X Axis Selects the tag to be visualized in axis X. Shows the table of Pen Colors. Screen Objects 99 6.5.10. Bar Graph The Graph of Bars is used when wanting to view data in the form of volume. By editing the graph properties, it is possible to define a series of characteristics, like graphic Scaling, orientation of bars (vertical/horizontal), rulers, and colors. A bar with a specific color represents each tag associated to the Graph of Bars, and it is possible to show up to a maximum of 16 bars (i.e., 16 tags). The object has also a second mode, the Bar Gauge. With this mode, a needle that travels a Scaling placed over each bar indicates tag values. You can edit the properties of the Bar Graph by double-clicking it. In properties of Bar Graph, we have various pages (tabs) for its configuration. Picture 68: Bar Graph 100 Screen Objects User Manual General Properties Picture 69: General Properties Screen Objects 101 General Properties of Bar Graph OPTIONS DESCRIPTION Name Defines the name of the object that will be used in the Organizer tree and in the scripts. Description A brief description of the graph. Type Defines what is the bar graph type: Bar (simple) or Bar Gauge (meter in bar). Limit Defines the minimum and maximum values for the Bar Graph. Orientation Defines the Graph orientation. Options available are down up, up down, left right, right left. Background Defines a background color for the Bar Graph. Bipolar Determines that the graph bars will have two sides divided by a center. The bars grow from the center in the direction of the graph limits. Center Defines the center for a bipolar Bar Graph. Spacing Defines the space between bars, in pixels. 3D Enables or disables a tri-dimensional effect in the graph bars. You can also define the width of the 3D effect. Ruler Properties Picture 70: Ruler Properties 102 Screen Objects User Manual Ruler Properties OPTIONS DESCRIPTION Enable Allows a ruler to be shown in the Bar Graph. Show top ruler Shows a top ruler in the Bar Graph, where Tag values are shown. Show bottom ruler Shows a bottom ruler in the Bar Graph, where Tag values are shown. Show left ruler Shows a ruler at the left side of the Bar Graph, where Tag values are shown. Show right ruler Shows a ruler at the right side of the Bar Graph, where Tag values are shown. Ruler Text Unit to be shown in the ruler of the Bar Graph. Ruler divisions Defines the number of divisions of the ruler. Colors Defines the ruler background, text, and grid (divisions) colors. Rule font… Defines font, size, and color for the characters in the Bar Graph ruler. Bar Color This card makes it possible to enable the legends that will be at the side of the drawing of bars in the graph. This is done by choosing the Show labels option. Each number indicates the graph bar, its respective legend and color. Picture 71: Bar Color Properties Screen Objects 103 Bar Gauge Colors This page allows the adjustment of the properties of the Bar Gauge. It is available only when the Bar Gauge option is specified in the page of general properties of the graph. Picture 72: Bar Gauge Color Bar Gauge Color Properties OPTIONS 104 DESCRIPTION Tag Allows the choice of the bar to be edited. Low-Low Limit Enables the indication of the range of critical low value in the bar. Specifies the color of the range, and the limit value. Low limit Enables the indication of the range of low values in the bar. Specifies the color of the range, and the limit value. Normal limit Specifies the color of the range of values considered as normal for the tag. High limit Enables the indication of the range of high values in the bar. Specifies the color of the range, and the limit value. High-High limit Enables the indication of the range of critical high value in the bar. Specifies the color of the range, and the limit value. Pointer size Defines the size of the pointer that will indicate the tag value. Screen Objects User Manual 6.5.11. Gauge The Gauge object is very useful in order to show variables with analog results, working as a continuous meter. Scaling values and properties of gauge can be defined by the user, besides their position on screen, which can vary in 0, 90, 180 or 270 degrees in rotation. You can edit the Gauge properties by double-clicking it. Picture 73: Gauge General Properties of Gauge Picture 74: General Properties of Gauge Screen Objects 105 General Properties of Gauge OPTIONS 106 DESCRIPTION Name Defines the Gauge name. Description A brief description of the Gauge. Minimum value Defines the minimum value for the Gauge. Maximum value Defines the maximum value for the Gauge. Frame color Defines the background color of the Gauge. Back color Defines the Gauge color. Text color Defines a color for the Gauge Scaling numbers. Needle color Defines Gauge pointer color. Position Defines the position of the Gauge (0°, 90°, 180° and 270°). Display limits Shows the limit numbers of the Gauge Scaling. Display values Shows the nominal value indicated in the Gauge. Decimal places Defines the number of decimals for the nominal value of the Gauge. Total ticks Defines the number of divisions in the graphic Scaling used in the Gauge. Starting angle Defines the initial angle for the Gauge needle. Font… Defines font, color, and size for the text of the Gauge. Use thick needle Defines a thicker needle for the Gauge. Screen Objects User Manual Advanced Properties of Gauge Picture 75: Extended Properties of Gauge Screen Objects 107 Advanced Properties of Gauge OPTIONS DESCRIPTION Show ticks Shows the main marks in the Gauge object. Use thick ticks Determines that main marks are thick. Show sub-ticks Shows marks in the Gauge object. Total numbers Defines the total number of sub-marks to be shown between main marks. Show fonts Shows numeric values in the Gauge object. Show bullet ticks Shows marks in the form of bullets. Font Allows the definition of the font of Gauge values. Show legend Shows a bar along the Gauge, in which it is possible to configure different colors, depending on the range of values. Show frame Shows a frame along the course of the needle. High limit Defines the height of the top border of the legend. Low limit Defines the height of the bottom border of the legend. Colors Defines the values and colors for limits: LowLow, Low, Normal, High and HighHigh to be shown in the legend. 6.6. Interaction Objects 6.6.1. Slider This object is used to read or write values in a selected Tag. You can attribute values to the selected Tag by sliding the potentiometer (sliding button), or by using the direction arrows in the extremities of the Slider. The value will vary according to a Scaling that is defined in the object. You can edit the Slider properties by doubleclicking it. Picture 76: Slider 108 Screen Objects User Manual General Properties of the Slider Picture 77: General Properties of Slider Screen Objects 109 General Properties of Slider OPTIONS 6.6.2. DESCRIPTION Name Defines the Slider name. Description A brief description of the Slider. Minimum value Defines the minimum value for the Slider. Maximum value Defines the maximum value for the Slider. Step Defines the step of variation for the value of Slider (associated Tag) when the direction arrows are pressed. Background Defines the background color of the Slider. Text color Defines the color of the numbers that will be shown in the Slider. Fonts… Allows the configuration of the fonts used in the slider. Display Limits Enables or disables the Slider limits (maximum and minimum) to be shown in the object. Display value Enables or disables the Slider values to be shown. Display arrows Enables or disables the Slider arrows to be shown. Vertical position Positions the Slider vertically. Horizontal position Positions the Slider horizontally. Move Allows the updating of the Slider value, even when the button is moving. Release Refreshes the Slider value only when the sliding button is released. Precision Defines the number of decimal digits to be shown in the Slider. Slider Button size Modifies the size of the sliding button in the Slider. Button This object is used for activations or executions of tasks specified by the user through the mouse or keyboard, and its operation is equal to the Windows standard buttons. Elipse SCADA has a series of button models, among switches, keys, and others, to facilitate the implementation of various functions by using buttons. The activation of buttons also generates events that can be treated by Scripts. Buttons are very flexible, and can be widely set through the pages of properties. Picture 78: Button 110 Screen Objects User Manual General Properties of the Button Picture 79: General Properties of the Button Screen Objects 111 General Properties of the Button OPTIONS DESCRIPTION Name Defines the name of the Button that will be used in the Organizer tree and in the scripts. Description A brief description of the Button. Momentary This type of button functions as an OK button of a dialog box, and is used to attribute a value to the associated Tag, or to change between screens. Toggle This type of button functions like a key. It has two states (on and off), which can be defined in the Messages page. Jog This button alternates between two values: one, when it is pressed, and another one when it is released. It functions like the reset button in the computer. Buttons Group of models that define the button look. Available are keys, switches, and bitmaps, besides a transparent board that allows the transforming of any object under it into a button. Function key Associates a function key to the button. Go to screen Defines a screen to be called when the button is pressed. Button Messages Picture 80: Button Message 112 Screen Objects User Manual Properties of the button message - Normal State OPTIONS DESCRIPTION Text Defines a text to be shown in the button when it is not pressed. Text font Defines the color, size, and type of the text font when the button is not pressed. Background Defines a background color for the button when it is not pressed. Value Defines the value to be attributed to the associated tag when the button is not pressed. Properties of the button message - Pressed State OPTIONS DESCRIPTION Text Defines a text to be shown in the button when it is pressed. Text font Defines the color, size, and type of the text font when the button is pressed. Background Defines a background color for the button when it is pressed. Value Defines the value to be attributed to the associated tag when the button is pressed. Align Aligns the button to the left, center, or right. Button Scripts Scripts exclusively available for buttons are described in the table below. For more details regarding the use of scripts, see the specific chapter. SCRIPTS AVAILABLE You can associate scripts to buttons and execute them in one of the following situations: EVENTS Screen Objects DESCRIPTION OnPress Runs the script when the button is pressed. OnRelease Runs the script when the button is released. WhilePressed Runs the script while the button is pressed, depending on the defined cycle (in ms). 113 6.6.3. Setpoint The Setpoint object works as an editing box of Windows; thereby, it is just enough to type a value and press [Enter] to attribute this value to the associated tag. The properties of setpoint allow you to define the type of input value, the font, size and color of characters to be shown in the object. You can edit the Setpoint properties by double-clicking it. Picture 81: Setpoint General Setpoint Properties Picture 82: General Properties of Setpoint 114 Screen Objects User Manual General Properties of Setpoint OPTIONS DESCRIPTION Name Defines the name of the Setpoint that will be used in the Organizer tree and in the scripts. Description A brief description of the Setpoint. Alignment Defines the alignment of Setpoint characters. In CE, vertical alignment is always centralized. Background Defines the background color for the Setpoint. Limits Defines the limits for the input data of Setpoint. Fonts Defines the font, color and size of the Setpoint text. Refresh Refreshes the Setpoint value always when the Tag value changes. Multiline Defines the Setpoint as having multiline. Only available if the format of Setpoint (Format page) is text. Selects all on focus Selects all Setpoint characters when it receives the focus. Format of Setpoint Screen Objects 115 Picture 83: Format of Setpoint Properties of Setpoint Format OPTIONS 116 DESCRIPTION Text Shows the value of the Setpoint in string format. Numeric Shows the value of the Setpoint in numeric format. Size Defines the number of digits to be shown, including the decimal point. Date/Time Format… Shows the value of the Setpoint in date and hour format. Prefix Adds up a prefix of string type to the value shown. Suffix Adds up a suffix of string type to the value shown. Allows the definition of a string that describes the date and hour format. Screen Objects User Manual Setpoint Keys Picture 84: Setpoint Keys Screen Objects 117 Setpoint Keys Properties OPTIONS DESCRIPTION Change Object Focus Key Allows the selection of a key combination, or a key to alternate the focus between data entries of Screen Objects. Substitutes the [Tab] key when the Setpoint is a multi-rows one. Force Value Key Allows the selection of a key combination, or a key to send typed data from the Setpoint to the selected Tag. Substitutes the [Enter] key when the Setpoint is a multi-rows one. Hide keypad after values entry Indicates that the keypad will disapper after the values entry. Keypad is never hidden in CE. 6.6.4. Alarms The Alarm object allows the verification of active or registered alarms (“logged”) in the alarm file. Alarms can be triggered when values of associated tags are verified in four situations and different priorities: LoLo (critically low), Low, High, HiHi (critically high). Outside these ranges, tag values are considered as normal. Picture 85: Alarms In the alarm window, we find a toolbar that allows some functions, like: 118 Screen Objects User Manual Recognizes the alarms selected with the mouse Lists alarms by date Lists alarms by name, using the date as secondary key Lists the alarms by priority (initiating by priority 1), using the date as secondary key General Properties of Alarms Alarm properties allow the definition of date, hour, and messages format, as well as the colors for each alarm situation. You can edit the properties by double-clicking it. Picture 86: General Properties of Alarms General Properties of Alarms OPTIONS Name Screen Objects DESCRIPTION Defines the name of the Alarms object. 119 OPTIONS 120 DESCRIPTION Description A brief description of the Alarms object. Alarm type Summarized: shows the active alarms, i.e., Tags that are in alarm situation at the moment. Historic: shows the alarms registered in the alarms file. Note: the Enable Reg. option in the Alarms object in Organizer should be enabled. From Priority Defines the highest priority of alarms to be shown in the object. To Priority Defines the lowest priority of alarms to be shown in the object. Toolbar Shows or hides the toolbar of the Alarm object. Titles Enables a title bar in the Alarm object, showing a header row with data selected in the Message Format page. Large buttons Enables large buttons in the toolbar of the Alarms object. Alarm Group Selects the alarm group to be shown in the current Alarms object. Screen Objects User Manual Alarm Colors Picture 87: Settings of Alarm colors Screen Objects 121 Properties of Alarm colors OPTIONS DESCRIPTION Window color Background color of the object. Ack ALM color Color for acknowledged alarms. Title bar color Color for columns title bar. Title text color Color for columns title text. Toolbar color Color for object’s toolbar. Default ALM color Color for non-acknowledged alarms. Zone 1 Allows to define Zone 1 priority interval, alarm text and alarm background colors, and if the line will blink or not. Zone 2 Allows to define Zone 2 priority interval, alarm text and alarm background colors, and if the line will blink or not. Zone 3 Allows to define the Zone 3 priority interval, alarm text and alarm background colors, and if the line will blink or not. Blinking every … ms Allows to specify the blinking frequency. Format of Alarm Messages Picture 88: Format of alarm message 122 Screen Objects User Manual Settings of Alarm messages format OPTIONS Screen Objects DESCRIPTION Date Enables the visualization of the data in the Alarm object, according to the format specified in the Format option. Date/Format Defines the date format to be shown in the Alarm object. Time Enables the visualization of the hour in the Alarm object, according to the format specified in the Format option. Time/Format Defines the hour format to be shown in the Alarm object. AM/PM Enables the American hour format. Show milliseconds Shows milliseconds in the hour column of the Alarm object. Event Enables the visualization of the events column in the Alarm object. Alarm type Enables the visualization of the alarm type column (lolo, low, high, hihi) in the Alarm object. Priority Enables the visualization of the alarm priorities column (lolo, low, high, hihi) in the Alarm object. Alarm Status Enables the visualization of the status column (UnAck, Ack) of alarms in the Alarm object. Remarks Enables the visualization of comments defined for Tags in the Alarm object. Remarks/Size Defines the size of comments in number of characters. Value Enables the visualization of the tag values column in the Alarm object. Values will be shown as varied for summarized type alarms, or fixed for historic type alarms. Value/Size Defines the size of tag values in number of characters. Value/Precision Defines how many digits of size will be decimal. Tag name Enables the visualization of the tag values column in the Alarm object. Tag Name/Size Defines the size of tag names in number of characters. Limit Enables the visualization of limits defined for Alarms according to their type (Low, LoLo, High, HiHi) Limit/Size Defines the size of the limiting values of each alarm in number of characters. Limit/Precision Defines how many digits of size will be decimal. User Enables the visualization of the name of the user in charge. User/Size Defines the size of the user name in number of characters. 123 7 Chapter 7. Alarms The Alarms option in the application tree of the Organizer allows the definition of some characteristics for the management of system Alarms. You can specify a file where to record all alarms that will occur in your system, as well as setting up sounds and alert messages. The properties of the Alarm Manager affect the behavior of all system Alarm that is specified in the page of Tag Alarms. 7.1. General Alarm Properties The page of General Alarm Properties appears when the Alarms tab is selected on top of the Alarms pages. This page is shown below, and its respective fields are described in the following table. Picture 89: General Alarm Properties Alarms 125 General Alarm Properties OPTIONS DESCRIPTION Verifies alarms on this group Enable log Allows the enabling or disabling of the verification of alarms in the group. Records Defines the size of the Alarms file in number of records. Each alarm is a record that occupies 42 bytes. The header size is of 848 bytes, which determines the initial size of the file. Updating of this file occurs in a cyclical way. Filename Defines the name of the Alarms file (DAT extension). Browse Allows the localization or definition of a directory for the Alarms file. Play warning sound Enables an alert sound for Alarms. The sound can be chosen in the list below. Write directly to disk Forces the direct writing of data into the disk without using buffers. This diminishes the performance, but increases a lot the safety of data in case of failures. Generate SNMP traps for each new alarm (Available only in Windows NT. systems) Makes the system to generate a SNMP event (trap) at each new alarm message. New alarm group It creates a new Alarm group. The user can choose to what alarm group a Tag or Alarms screen object is associated. Enables the log of alarms of current group. 7.2. Alarm Scripts Scripts of Alarms Manager are generally associated to an alarm situation. This means, for example, that they can run when an Alarm occurs. Scripts available for Alarms are described in the table below. For more details, see Scripts. SCRIPTS AVAILABLE You can associate Scripts to Alarms by executing them in the following situation: EVENTS OnAlarm 126 DESCRIPTION Runs the Script when an alarm occurs and when an alarm returns. Alarms 8 Chapter 8. Recipes A Recipe is a set of pre-defined values that can be loaded into a group of tags in order to configure a specific process. This list of tags we also call model of recipe. For instance, be it a machine that makes different types of screws. Variables involved in the process are always the same, but their values will probably change, depending on the type of screw one wants to produce. Supposing that you have different machine settings for each type of screw, these values could be recorded in a recipe, and be further loaded into tags of control, facilitating the task of the operator, and avoiding errors. In this way, we can create a “Screw” recipe model with several recipes: “Philips”, “Torx”, “Simple”, and so forth. In order to be recovered when necessary, the models and data of a recipe are stored in disk, in a “recipes file” with .RCP extension. You can define a Recipe in the Organizer during the configuration of the application, or in execution time, by using Special Functions through Scripts. 8.1. General Recipe Properties Each recipe you create for the application appears below the Recipes option in the application tree in Organizer. When selecting a specific recipe, its properties are shown on the right side of the tree. Recipes 127 Next, we can see the properties of recipes. Picture 90: Recipes Properties Recipes Properties OPTIONS 128 DESCRIPTION Name Defines the name of the recipe model. Description A brief description of the recipe model. Recipe File Defines the name of the file for the recipe model. The file name can have up to 8 characters, and should not contain extension (Elipse SCADA will always use the RCP extension). You can also specify the file path, which can be an absolute (“C:\ELIPSE\RECIPES\RCP1”) or relative (“RECIPES\RCP1”) location. Relative locations are recommended if you want to copy your application into another computer. Enable write cache Enable Windows cache to make faster the recipe file saving. Create backup file Create a backup copy of .RCP file, which contains the recipe information. The backup file can be used to restore some recipe information, in case of problems. Edit selected label here Allows the edition of the label that identifies the tag selected in the recipe. Edit Data… Opens up the Edit Recipe window, where it is possible to add and modify values of the different recipes. Labels Shows the fields associated to tags of the recipe model. Tag Shows tags selected for the current recipe model. Recipes User Manual 8.2. Editing Recipes In order to add, edit, or erase already created recipes, we use the Edit Recipe window, which is called through the Edit data... button in the page of recipe properties. All recipes created by using the model chosen are listed in the Recipes field, in which they can be selected for edition. By selecting any recipe in the list, you will be able to edit its description and the values of each associated tag. Next, we will see the fields of this window: Picture 91: Edit Recipe Fields of the Edit Recipes window OPTIONS Recipes DESCRIPTION Recipes Allows the selection of a recipe in the current model. Recipe Title Name or description of the recipe. New Recipe Creates a new recipe. Each recipe model can have various recipes (set of values) listed. Delete Recipe Erases the selected recipe. Copy Recipe Allows the copying of an already defined recipe, in order to make the creation of recipes with many variables to become easier. Please enter the new value for selected tag Allows the edition of the tag value for the current recipe, which is listed in the bottom frame. The tags are identified through their associated labels. Use the direction arrows of the keyboard or the mouse in order to select the tag to be edited. 129 9 Chapter 9. Historic The Historic object allows the storage of the variation of data of a process with time, then enabling future analysis. This Historic can be generated in two different ways: in a Continuous way, or in Batches. In the continuous way, the Elipse SCADA stores data continuously during the execution of the application. With the form of batches, the historic is made in lots. With this modality, it is necessary to send a command via script in order to initiate and end the generation of the historic. 9.1. General Historic Properties The page of general Historic properties appears on the right side of the Organizer when we click the Historic item in the application tree. This page is the following: Picture 92: General Historic Properties Historic 131 Historic General Properties OPTIONS DESCRIPTION Name Defines the name of the historic object. Description A brief description of the object. Analysis... Allows the visualization of historic data in graphic form. You can call the HAnalysis in execution time through the Analysis() function of the Historic. Refresh Recalculates the HAnalysis and SPC for the historic. SPC... File Calls up the screen of Statistical Process Control. Browse... Allows the localization or definition of a directory for the historic file. Write Time Defines the frequency in which data will be written in the file. Max Records Maximum number of records to be stored in the file. The historic file is rotative, i.e., when data exceed the file size, first records are substituted. Use the Write Time to Save Records Enables writing of the historic file from the beginning of the execution of application according to the defined scanning rate. Keep this option as not marked if you want to manually control (by using scripts) the generation of historic data. Batch Process Defines the historic type as being in batch (per lots). When this option is marked, a header file (HDR extension) is created with the same name of the historic file. The header file maintains information of each batch. Network support Enables the network support for the historic, i.e., allows the historic to be accessed (only for reading) by other Elipse applications in the network through a browser or report of HAnalysis type. Defines the name of the historic file. 9.2. HAnalysis When a Historic is created, Elipse SCADA automatically associates a Historic Analysis (HAnalysis) object to it. This object has several characteristics that can be adjusted in execution time. When the HAnalysis is called, a Historic window is open in your application, showing the Analysis page with the graph for the analysis of data. This window has other 6 pages of set up (available according to the programming of application). They are: Graph, Pens, Pen Colors, Settings, Query, and Print Setup. Each of these pages appears when its corresponding form is selected on top of the window. Next, we see a description of each one of them. 132 Historic User Manual Analysis The Analysis page shows the graph of HAnalysis, and allows the setting of variables to be shown in it. It has features of zoom, scroll, and printing, which can be accessed by means of the toolbar located in the inferior part of the window. Picture 93: Analysis Window At the right side, we can see the graph pens, each one associated to a tag, whose historic evolution we want to observe. These pens can be activated or deactivated, and it is possible to change the type of color and style of row as the user wishes. In the top part, Elipse SCADA shows some information when the mouse is positioned within the graph area: mouse coordinates and value of the point selected in the graph delimited by doted rows (horizontal and vertical). In order to select a point in the graph, it is enough to click it. Graph This page allows the setting of the HAnalysis Graph look, according to what follows: Historic 133 Picture 94: Graph Properties 134 Historic User Manual Options for X axis (horizontal) OPTIONS DESCRIPTION Left limit Left limit of X-axis. Available if the graph is of XY type. Right limit Right limit of X-axis. Available if the graph is of XY type. Show top ruler Shows a ruler for X-axis in the top part of the graph. Show bottom ruler Shows a ruler for X-axis in the bottom part of the graph. Options for Y axis (vertical) OPTIONS DESCRIPTION High Limit Top limit of Y-axis. Low Limit Bottom limit of Y-axis. Show left ruler Shows a ruler on the left side of the graph, with values from Y axle. Show right ruler Shows a ruler on the right side of the graph, with values from Y axle. Common options OPTIONS Historic DESCRIPTION Auto range Automatically calculates the limits for X and/or Yaxis. Scrolling Grid Makes the background grid to move as graph values are refreshed. Text Allows the addition of a title for rulers. Date/Time Format Adjusts the date and hour format when set for the axis. Ruler Colors/Background Defines the background color for the rulers. Ruler Colors/Text Defines the color for the text that will be shown in rules. Graph Colors/Background Defines the background color for the graph. Colors/Grids and axis Defines the color of the grid and of the graph axis. X Grid/Rows Defines the number of horizontal rows of the grid Y Grid/Rows Defines the number of vertical rows of the grid Ruler font Defines font, size, and color for the graph characters. 135 Pens This page allows the determination of the tags to be shown in the graph, by associating to each one of them a “pen” that will describe the evolution of the variable in the process. Picture 95: Guide of pens setting In the central frame, it is listed the pens to be used in the graph. It is possible to adjust which ones will be active. By clicking the black rectangle at the right, it is possible to adjust the characteristics of graphic representation of the pen, such as row thickness and color. The other fields are described below: Options of pen setting OPTIONS DESCRIPTION Label Name or description of pen. As a standard, the tag name is suggested, but it can be changed. Y Axis Variable to be used in coordinate Y. X Axis Variable to be used in coordinate X. Through the buttons of the toolbar, positioned on the top part of the window, it is possible to: add up another Pen make the pen to climb up add a Mark make the pen to descend erase a Pen or Mark adjust the row representation for the selected tag adjust the representation in filling for the selected tag adjust the bar representation for the selected tag 136 Historic User Manual Settings This page allows the specification of the data file to be used in analysis. If the option of Batch Process is marked (see general properties of Historic), the Batch group in this page will be available for the choice of batch. Picture 96: Guide of setting of the historic file Setting fields of the historic file OPTIONS Historic DESCRIPTION File name Defines the font file name for HAnalysis and SPC (.DAT). All Batches Selects printing of all file batches. Last batch Selects the last batch registered to be printed. Specific Batch Selects a specific batch to be printed, according to the specification of the Field and Value fields. 137 Query This page allows the creation of a “query” (query) for the historic file. From this query, it is possible to define a time interval in order to limit data we want to work with. Picture 97: Query properties 138 Historic User Manual Setting fields of query in the historic OPTIONS DESCRIPTION No query date A filter will not be used, i.e., all data is selected. Time range Selects data within a time interval that is specified. Newest data Selects data from a past time until now. Initial Date Determines the initial date of the time interval. Initial Time Determines the final date of the time interval. Final Date Determines the final hour of the time interval. Final Time Determines the final hour of the time interval. Last (value) Defines the number of time units of most recent data. Last (unit) Defines the time unit of most recent data. Always load all database data Load all database data. The viewing interval is restricted to the values defined by user. Printing This page allows the setting of options for printing the HAnalysis. The application developer can generate printer-setting files (.PTR files) that are loaded by the user in execution time. Picture 98: Printing setting guide Historic 139 Printing setting fields OPTIONS DESCRIPTION Printer Allows the choice of the printer where one wants to print the report. Load Allows the loading of set up files. Save Allows the saving of a specific setting. Printer Calls up the setting of current printer. Print Commands the printing of the HAnalysis. Print the report title Allows the specification of a title for the report (in the field below). 9.3. Statistical Process Control The Statistical Process Control (SPC) allows a statistical analysis of a monitored process. It is a powerful tool for you to verify if the process is been executed in accordance with your needs, and to control its variables to obtain a better result. As with the HAnalysis, the SPC is also associated to a Historic object, and it is possible to enable its setting in execution time. When SPC is called, a Properties window is open for its setting. It has 7 pages: Setting, Pen Colors, Average Graph, Dispersion Graph, Histogram Graph, Settings, and Query. Following notations will be used in the explanation of SPC formulas: 140 k : number of samples; x : arithmetic average of i sample values, where i = 1, 2, 3, ..., k n : size of each sample; x i ij : value j of sample i, where j = 1, 2, 3, ..., n Historic User Manual Setup This is the main SPC page, and allows the setting of its general properties, besides having buttons to call up the auxiliary SPC screens that contain the charts and the results of the statistical analysis. Picture 99: SPC Properties Window Historic 141 Setting fields of SPC properties OPTIONS DESCRIPTION Points/Group Defines the number of items for each sample Dispersion chart type Defines the method to be used: Sigma or Range Tag Defines what Historic Tag will be analyzed Specification Limits/Lower Defines the Low Limit of Engineering or Specification of the interval of tolerance for data of SPC samples Specification Limits/Upper Defines the High Limit of Engineering or Specification of the interval of tolerance for data of SPC samples After the alteration of some of these characteristics, it is necessary to press the Refresh SPC button for the system to redo calculations. Pen Colors This page allows the selection of colors for each pen (tag) in the Historic and the remaining control rows, which will be shown in SPC graphs, as: average, control superior/Low Limit, engineering superior/Low Limit, normal curve, and bar color. Picture 100: Setting guide of pen colors 142 Historic User Manual Graph of Averages This page allows the setting of the SPC averages graph look. Its controls are next described. Picture 101: Setting guide of averages graph Historic 143 Options for X axis (horizontal) OPTIONS DESCRIPTION Left limit Left limit of X-axis. Available if the graph is of XY type. Right limit Right limit of X-axis. Available if the graph is of XY type. Show top ruler Shows a ruler for X-axis in the top part of the graph. Show bottom ruler Shows a ruler for X-axis in the bottom part of the graph. Options for Y axis (vertical) OPTIONS DESCRIPTION High Limit Top limit of Y-axis. Low Limit Bottom limit of Y-axis. Show left ruler Shows a ruler on the left side of the graph, with values from Y axle. Show right ruler Shows a ruler on the right side of the graph, with values from Y axle. Common options OPTIONS 144 DESCRIPTION Auto Range Automatically calculates the limits for X and/or Yaxis. Scrolling grid Makes the background grid to move as graph values are refreshed. Text Allows the addition of a title for rulers. Date/Time Format Adjusts the date and hour format when set for the axis. Ruler Colors/Background Defines the background color for the rulers. Ruler Colors/Text Defines the color for the text that will be shown in rulers. Graph Colors/Background Defines the background color for the graph. Colors/Grids and axis Defines the color of the grid and of the graph axis. X Grid/Rows Defines the number of horizontal rows of the grid Y Grid/Rows Defines the number of vertical rows of the grid Ruler font Defines font, size, and color for the graph characters. Historic User Manual Calculation Methods The average graph is calculated in the following way. For each i sample ( i = 1, 2, ..., k), the x i average is calculated: xi= 1 ( x11 + x12 + x13 + ... + x1n ) n A central row represented by x , is the average of averages of each sample. You can obtain the value of the standard deviation of averages by using one of these two x methods: a) Sigma Method For each i sample ( i = 1, 2, ..., k ), it is calculated: 12 n S = x 2 n. x 2 n j 1 j i Next, the average deviation is calculated: S= 1 k S S 1 2 ... S k For the assessment of the standard deviation, it is used a correction factor, annotated by c2. This constant varies according to n, and as you can see in the SPC table, when n is bigger than 25, c2 = 1, what means that there is no more corrections to do. The standard deviation will be, then: x S C2 It is recommended to use this method for large samples, with n bigger than 10. Historic 145 b) Range Method For each i sample ( i = 1, 2, ..., k ), it is calculated: R X i max X min Next, it is calculated the average amplitude: R 1 k R R ... R 1 2 k For the assessment of the standard deviation, it is used a correction factor, annotated by d2. This constant varies according to n, and as you can see in the SPC table, the bigger the value of n, the bigger the correction to be applied. The standard deviation will be, then: x R D2 It is recommended to use this method for small samples, with n lesser or equal to 10 (n<=10). The graph will have then the following points in X-axis. XDB: Central row = LSC: Superior Control Limit x LSC X a2 R ; LIC: Inferior Control Limit LIC X a2 R ; 146 LSE: Superior Engineering Limit LIE: Inferior Engineering Limit Historic User Manual Dispersion Graph This page allows the setting of the SPC dispersion graph look. It has the same controls and operation of the Average graph. Calculation Methods a) Sigma Method The central row of the graph is represented by S= 1 k S , and is calculated as follows: S S 1 2 ... S k For the calculation of control limits, two constants, c3 and c4 are used (see SPC table). Therefore, the following limits are calculated: c LIC = S c LSC = S 4 3 This graph is recommended for large samples, with n bigger than 10 (n>10); b) Range Method In the same way as with the previous graph, the central row of the graph is represented by R , and it is calculated as follows: R 1 k R R ... R 1 2 k For the calculation of control limits, two constants, d 3 and d4, are used (see SPC table). Therefore, the following limits are calculated: LSC = R .d 4 LIC = R .d 3 Values for the calculation of central rows and control limits are defined in accordance with the following table: Historic 147 SPC table (values for the calculation of central rows and control limits) 148 N a2 d2 c2 d3 d4 c3 c4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 1,880 1,023 0,729 0,577 0,483 0,419 0,373 0,337 0,308 0,285 0,266 0,249 0,235 0,223 0,212 0,203 0,194 0,187 0,180 0,173 0,167 0,162 0,157 0,153 1,128 1,693 2,059 2,326 2,534 2,704 2,847 2,970 3,078 3,173 3,258 3,336 3,407 3,472 3,532 3,588 3,640 3,689 3,735 3,778 3,819 3,858 3,895 3,931 0,5642 0,7236 0,7979 0,8407 0,8686 0,8882 0,9027 0,9139 0,9227 0,9300 0,9359 0,9410 0,9453 0,9490 0,9523 0,9551 0,9576 0,9599 0,9619 0,9638 0,9655 0,9670 0,9684 0,9696 0,000 0,000 0,000 0,000 0,000 0,076 0,136 0,184 0,223 0,256 0,284 0,308 0,329 0,348 0,364 0,379 0,392 0,404 0,414 0,425 0,434 0,433 0,452 0,459 3,267 2,575 2,282 2,115 2,004 1,924 1,864 1,816 1,777 1,744 1,716 1,692 1,671 1,652 1,636 1,621 1,608 1,596 1,586 1,575 1,566 1,557 1,548 1,541 0,000 0,000 0,000 0,000 0,030 0,118 0,185 0,239 0,284 0,321 0,354 0,382 0,406 0,428 0,448 0,466 0,482 0,497 0,510 0,523 0,534 0,545 0,555 0,565 3,267 2,568 2,266 2,089 1,970 1,882 1,815 1,761 1,716 1,679 1,646 1,618 1,594 1,572 1,552 1,534 1,518 1,503 1,490 1,477 1,466 1,455 1,445 1,435 Historic User Manual Histogram Graph The Histogram Graph shows a large volume of data in a clear way, allowing a better visualization of the central trend, the dispersion along the measurement Scaling, and the frequency of values. Picture 102: Histogram Graph Window In the Histogram Graph page, we can configurate the look of this type of graph generated by the SPC. This page has the same controls and operation of the Average graph. Elipse SCADA generates the Histogram Graphic based on the following elements: Number of Bars Historic TOTAL OF ITEMS NUMBER OF BARS 20-50 51-100 101-200 201-500 501-1000 more than 1000 6 7 8 9 10 11-20 149 Bar Interval (I) The width of each bar is given for an interval, which is determined by diminishing the smallest item from the biggest, and dividing the result by the number of bars. Elipse SCADA defines what item belongs to what bar, and calculates the total frequency f for each graphic bar. The normal distribution also appears in the Histogram graph, and is determined by the following formula: y 1 2 x 2 e 2 2 Where: = average and = standard deviation The central row of average, and the limits of control (LSC and LIC) and engineering (LSE and LIE) also appear in the graph. Capability Indexes Before describing each capability index, the following formulas should be defined: Average point = (LSE + LIE) / 2 Tolerance = LSE - LIE CP - Inherent Capability of the Process CP = Tolerancia 6 If the samples are not in the average point, they tend to zero. VALUE OF CP Bigger than 1.33 Between 1.0 and 1.33 Lesser then 1.0 DECISION Process is capable. Process is capable, but must be monitored with CP near 1.0. Process is not capable. CR - Capability Rate It is the reverse of CP. CR = 6 Tolerancia CR values lesser than 0.75 indicate capability. 150 Historic User Manual K - Process Average versus Specified Average K is the comparison between the average and the average point, showing how data is centralized in accordance with the specification. K= Media PtoMedio Tolerancia 2 CPK - Capability in Relation to the Specified Average CPK is the process capability based on the worse case of data. CPK is the lesser value of: LSE Media 3 or Media LIE 3 A negative value of CPK indicates that the average is outside the engineering limits. CPK equal to zero indicates that the average is equal to one of the engineering limits. CPK between 0 and 1.0 means that part of the 6 sigma limits falls outside the engineering limits. CPK equal to 1 indicates that an end of the 6 sigma limits falls in an engineering limit. CPK bigger than 1 means that the 6 sigma limits fall completely within the engineering limits. Settings This page is the same that exists in the Historic query, and allows the setting of the historic file that will be used by SPC. Picture 103: Settings window Historic 151 Query This page is the same that exists in the Historic query, and allows the definition of a time interval for the Historic file. Picture 104: Query window 152 Historic Chapter 10 10. Reports 0 0 Reports allow the printing of data of Historic or Alarms files, or even tag values in real time. Reports have currently the following restriction: they do not allow loading/saving printer settings (printer’s settings window are always displayed). You can define a Report in the Organizer during the configuration of the application, or in execution time, by using Special Functions through Scripts. There are four types of Reports available: Text: prints data of historic or alarms files in text format; Graph: prints data of historic or alarms files in graphic form; 0 1 0 Formatted: used to print data in real time, as for example the value of a Tag in a given moment; HAnalysis : it is a report on screen that has within it a graphic report. In order to create or edit a Report, you must select the Reports option in the application tree in the Organizer; the page below will be shown, containing a list of all reports existing in the application. Picture 105: Reports Window You can create a new Report by using the New button at the right of the page, or remove an existing one by selecting it in the list and pressing the delete button. The window for choosing the type of the New Report is next shown: Reports 153 Picture 106: Report Types Screen Each Report you create for the application appears below the Reports option in the application tree in Organizer. When selecting a specific Report, its properties are shown on the right side of the tree. 154 Reports User Manual 10.1. General Properties Text, Graphic, and Formatted Reports The page of General Properties of Text, Graphic, and Formatted Reports appears when the General tab is selected on top of the Report pages. This page is shown below, and its respective fields are described in the following table. Picture 107: Report Properties Reports 155 Report Properties OPTIONS DESCRIPTION Name Defines the name of the Report that will be used in the Organizer tree and in the scripts. Description A brief description of the Report. Print batch header Enables the printing of a page containing data of Batch header. Print the report title Only available for TEXT and GRAPHIC Reports. Prints as title the text informed in the Description field. Printer Allows the choice of the definition of printer for the report. The button shows the dialog box of the Printer Setting. Edit! Allows the edition FORMATTED report. Font... Defines the font (type, color and size) to be used in the Report. Print Prints the Report. Printer and Font The Load and Save buttons allow the loading and saving of printer settings previously defined and saved in the system. of the drawing of a 10.2. Settings Text and Graphic Reports It allows the specification of the file to be printed: Historic (DAT extension), Alarms (DAT extension) or Batch (HDR extension). If the option of Batch Process is marked (see General Properties of Historic), the Batch group in this page will be available for the choice of the Batch. The page of Report Settings appears when the Settings tab is selected on top of the Text or Graphic Report pages. This page is shown below, and its respective fields are described in the following table. 156 Reports User Manual Picture 108: Settings for Reports Settings for Reports OPTIONS DESCRIPTION Source Filename Defines the name of the font file for the Report (.DAT or .HDR). Browse... Allows the localization of the font file to be used by the Report. All Batches Selects all batches to be printed. This option is available only for Historic files in batch. Last batch Selects the last batch to be printed. This option is available only for Historic files in batch. Specific Batch Selects a specific batch to be printed, according to the specification of the Field and Value fields. Field Lists the fields available for the selection of a specific batch. Only string type fields will be listed. Criteria Defines the value to be searched when within a specific batch. 10.3. Query Text and Graphic Reports Allows the definition of a time interval in order to select the data of the file to be printed. The page of Report Query appears when the Query tab is selected on top of Reports 157 the Text or Graphic Report pages. This page is shown below, and its respective fields are described in the following table. Picture 109: Properties of report query Query Properties OPTIONS DESCRIPTION No query date A filter will not be used, i.e., all data is selected. Time range Selects data within a time interval that is specified. Newest data Selects only newer data. Initial Date Determines the initial date of the time interval. Initial Time Determines the initial time of the time interval. Final Date Determines the final date of the time interval. Final Time Determines the final time of the time interval. Last Number of units used to select most recent data. Unit Defines the unit used for selecting most recent data. 10.4. Database Text Report The Report Database page appears when the Database tab is selected on top of the Text Report pages. 158 Reports User Manual Picture 110: Properties of Databases in Reports Reports 159 Properties of Databases OPTIONS 160 DESCRIPTION Fields Lists available fields. Up Moves the selected field one position up. Down Moves the selected field one position down. Reload File Structure Reloads the current list of fields of the file in the Report fields. When some modification is done to the structure of the file used by the Report, this button should be pressed for the updating of fields. Enabled Allows the selected field to be printed. Size Defines the number of digits to be shown, including the decimal point. Precision Defines how many digits of size will be decimal. Prefix Adds up a prefix of string type to the value shown. Suffix Adds up a suffix of string type to the value shown. Date Format Defines the format of the DateTime field. Label Defines an alternative name for fields to be printed in the report. Lines Defines the number of lines the selected field will have in the Report. Reports User Manual 10.5. Batch Text Report The Text Report Batch page appears when the Batch tab is selected on top of the Text Report pages. This page is shown below, and its respective fields are described in the following table. Picture 111: Properties of Batches in Reports Reports 161 Properties of Batches in Reports OPTIONS 162 DESCRIPTION Fields Lists available fields. Up Moves the selected field one position up. Down Moves the selected field one position down. Enabled Allows the selected field to be printed. Reload file structure Reloads the current list of fields of the file in the Report fields. When some modification is done to the structure of the file used by the Report, this button should be pressed for the updating of fields. Size Defines the number of digits to be shown, including the decimal point. Precision Defines how many digits of size will be decimal. Prefix Adds up a prefix of string type to the value shown. Suffix Adds up a suffix of string type to the value shown. Date Format Defines the format of the DateTime field. Label Defines an alternative name for fields to be printed in the report. Lines Defines the number of lines the selected field will have in the Report. Reports User Manual 10.6. Graph Graphic Report The Graph page of the Graphic Report appears when the Graph tab is selected on top of the Graphic Report pages. This page is shown below, and its respective fields are described in the following table. Picture 112: Graph Properties Reports 163 Properties of Graph (X Axis and Y Axis) OPTIONS DESCRIPTION Scaling Defines if the graph Scaling will be linear (normal Scaling) or logarithmic (power factor). Left limit Defines the left limit of the X axle in the graph. This option is available only if the graph is of XY type. Right limit Defines the right limit of the X axle in the graph. This option is available only if the graph is of XY type. Show top ruler Shows a top ruler in the graph, where X axle values are shown. Show bottom ruler Shows a bottom ruler in the graph, where X axle values are shown. High Limit Defines the top limit of the Y axle in the graph. Low Limit Defines the bottom limit of the Y axle in the graph. Show left ruler Shows a ruler on the left side of the graph, with values from Y axle. Show right ruler Shows a ruler on the right side of the graph, with values from Y axle. Auto Range Automatically calculates the limits for X and/or Y-axis in the graph. Scrolling grid Defines that the orientation grid of the graph will scroll in the direction in which the graph is being drawn, following values instead of staying as fixed in the object. Text Legend that will appear beside the Scaling in the X and Yaxis. Date/Time Format Defines the format of time tick that will appear in the X-axis on Time X Data graphs. Properties of Graph (Colors and Grid) OPTIONS 164 DESCRIPTION Ruler background Defines the background color for the graph rulers. Ruler text Defines the color for the text that will be shown in rulers. Graph background Defines the background color for the graph. Grids and axis Defines the color of the grid and of the graph axis. Grid Shows a grid (vertical and horizontal orientation rows) in the graph. X Rows Defines the number of horizontal rows of the grid Y Rows Defines the number of vertical rows of the grid Show milliseconds Shows the milliseconds in the graph axis that represents time. Ruler font… Defines font, size, and color for the graph characters. Reports User Manual 10.7. Pens Graphic Report The Pens page of the Graphic Report appears when the Pens tab is selected on top of the Graphic Report pages. This page is shown below, and its respective controls and fields are described in the following table. Picture 113: Pens Properties Pens Properties OPTIONS DESCRIPTION Inserts a pen associated to a tag. Inserts a pen associated to a field in the historic (the Load Disk Historic Data should be enabled in the Advanced card). Inserts an indication tick to the graph. Erases a pen or tick that is selected in the list. Defines that the drawing of the pen will be of Row type. Defines that the drawing of the pen will be of Area type. Defines that the drawing of the pen will be of Bar type. Changes the order of the selected pen. Label This column lists the selected pens for the graph. Allows the changing of the text of the legend, and the activation/deactivation of each pen. Y Axis Selects the tag to be visualized in axis Y. X Axis Selects the tag to be visualized in axis X. Shows the Pen Colors table (see next section). Reports 165 Pen Colors The Pen Colors table appears when clicking the icon beside the graphic pens. In this table, we can define the color, format, and type of the graph that will be drawn for the focused pen: row, area or bar. The Others... button allows the choice of other colors different from the ones listed in the table. Picture 114: Pens Colors 10.8. Scripts Graphic Report Using report scripts, you can configure the report settings before printing. For example, you can configure an axis scale of the graph to be printed. For more details regarding the use of scripts, see the specific chapter. SCRIPTS AVAILABLE EVENT OnBeforePrint 166 DESCRIPTION Triggered when executing the Print() method from the report, right after executing the query, and before the report is actually printed. Reports User Manual 10.9. Formatted Report The Formatted report is used when wanting to print data in real time, as for example the value of a given tag in a given moment. This report can be edited by using objects available in edition mode. Picture 115: Formatted report 10.10. HAnalysis Report The HAnalysis Report is a report on screen that creates a HAnalysis object, being able also of being printed. The setting and the pages of property of this Report are done in execution time, in accordance with what has already been described in this section. It is possible to configurate the window of HAnalysis and to activate or deactivate the settings pages in the general properties of the HAnalysis object in the Organizer. Reports 167 Chapter 11 11. Drivers The Elipse SCADA allows the communication with data acquisition equipment, and with other computers running the Elipse SCADA through I/O drivers or network drivers supplied by Elipse Software. A document is supplied with each driver, containing important information relative to its setting. Check the driver for availability for SCADA CE. The .dll files for SCADA Win and SCADA CE are not the same. In order to install or set up a driver, you must select the page of drivers in an associated PLC or Block tag, or access the Drivers object in the Organizer. In this case, the page below will be shown, containing a list of all drivers installed in the application. You can install a new driver by pressing the New button, or remove an existing one by selecting it on the list and pressing the Delete button. Picture 116: System drivers 11.1. Setting up Drivers Each new driver you add to the application appears below the Drivers option in the application tree in Organizer. When selecting a specific driver, its properties are shown on the right side of the tree. The Driver Setting page appears when the respective tab is selected on top of the setting pages of the driver or when you press the Configure… button at the right side of the Drivers list. Drivers 169 11.1.1. PLC Drivers For PLC Drivers, you can configurate the “P” communication parameters and other properties of the driver in accordance with the information contained in the help file that follows the driver. The option of Abort in error ends communication in case there is any problem, impeding an application to be “locked”. Picture 117: Properties of Drivers Setting 170 Drivers User Manual Properties of Drivers Setting OPTIONS DESCRIPTION Name Object name. Description Shows driver information, like manufacturer, version and date. Driver Location Shows the path of the driver file. Parameters Allows the setting of “P” communication parameters for the selected driver, as specified in the driver help. Abort on error Aborts communication if some problem occurs. Hide mouse during communication Retry failed communications No. of retries Hides the mouse slide wire during communication. Defines that the system will try to reestablish a lost communication with the driver. Defines the number of trials for reestablishing communication with the driver. Browse Allows the navigation through directories in order to Browse the driver file. Reload Reloads the driver, reestablishing the connection. Help It shows the Help of the selected Driver. Properties of Drivers Setting (Advanced) OPTIONS Drivers DESCRIPTION Keep behavior 16-bits If switched on, disables multitask, making the 32-bits driver to run in the 16-bits version. This option is necessary with some older drivers. Write in background Controls as the writings will be done in the driver. Some writings generated by Elipse SCADA can be done in background (second plan), increasing performance. If this option is disabled, all writings will be in foreground (first plan), forcing the application to wait for the communication with the driver in order to carry on its execution. Writing priority Allows the choice of if the priority of writings will be High or equal (Low) to the reading priority. Initiate the driver when running the application Allows the disabling of the automatic start of the driver. For example: with a dial-up driver, many times it is interesting to wait for a command to initiate communication. Keep the driver in memory Many drivers have a very slow time for loading and start. This option maintains the driver in memory, minimizing the starting time, and speeding communication up. 171 The Extras... button calls special driver settings. These settings vary from driver to driver. Consult the help file that follows the driver to obtain more information. The following window may vary according to the driver inserted in the system but, in general, this is the window displayed: Picture 118: Extra configuration The available options are: 172 Drivers User Manual Options for Extra configuration OPTION DESCRIPTION Use Modem Enables modem use. Modem Settings Determines the modem to be used. Dial number Determines modem dial number. Accept incoming calls Configures modem to answer incoming calls from other modems when the driver is connected to it. No Log Does not use log file. Create new Creates a new log file and inserts it in the place indicated in file path. If there is already a log file in the specified path, the log file will be overwritten. Append data Creates a new log file and inserts it in the place indicated in file path. If there is already a log file in the specified path, the information will be appended at the end of it. Standard Error Output Used for depuration. This option should be kept disabled. ASCII Output Converts I/O bytes into text, according to the ASCII table. Log Date & Time Displays each message’s timestamp in the file. 11.1.2. Network Drivers For network drivers, you can define their properties by clicking the Configure… button that opens the setting window of the network driver. The properties screen can vary from driver to driver. Next, we describe the most common settings. Drivers 173 Picture 119: Settings of network drivers 174 Drivers User Manual Settings of network drivers OPTIONS Object name. Description A brief description of the object. Driver name Driver name, defined by the manufacturer. Driver Location Shows the path of the driver file. Current Setting Shows current settings used by the driver. Browse... Allows the navigation through directories in order to indicate the driver file. Reload Reloads the driver. Help It shows the Help of the selected Driver. Set up... Opens the driver setting window. This window varies in accordance with the selected driver. Consult the documentation of the driver to obtain more information. Start driver at application startup T1, T2, PS, BR Drivers DESCRIPTION Name Activates the driver when the aplication starts These parameters rule the protocol used by Elipse SCADA instances for messages exchange and communication. The protocol is full-duplex and allows up to 16 unsolicited messages to be sent by the stations. The messages size in bytes is defined by the field PS (Packet Size). The data package is divided between remote files and tag data, and Elipse Watcher real-time video data. The field BR (Band Reserve) determines the package percent reserved for data exchange; the other part may be used by Elipse Watcher. If there’s no video data to be sent, the whole package will be used to exchange tag data, and vice-versa. The field T1 informs the keepalive time (in milliseconds). Keepalive is a message sent by an Elipse SCADA station to inform the other stations that it is “alive” (active). This message is sent when the station is not exchanging data in the current time. The field T2 indicates the timeout (in milliseconds) to resending unsolicited messages. In case of a message do not receive an acknowledgement, it will be sent again when this time expired. If the sending of a message fails ten times, the conection is aborted. 175 11.2. Driver Scripts Driver scripts are normally associated to the status of communication. This means in practice that a script can run when a communication error occurs. For more details regarding the use of scripts, see the specific chapter. SCRIPTS AVAILABLE You can associate scripts to drivers by executing them in the following situation: EVENT OnCommError DESCRIPTION Executed each time a reading or writing error occurs in the driver. 11.3. List of Associated Tags The Tags List page shows the PLC and Block tags that are associated to the focused driver, allowing the edition of parameters of address and scanning directly in the list, in a process that is similar to an electronic spreadsheet. Picture 120: Heading of the List of Tags Associated to the Driver Availables Options OPTIONS 176 DESCRIPTION Name Tag name N1/B1 – N4/B4 Address parameters of tag. Scan Updating (reading) time of tag value. Size Shows the size of a Block tag (not available for PLC tags). Export Tags... Allows the creation of a file in the CSV format with the definition of the parameters of listed tags. This file can be imported to Elipse E3 or any other compatible software (as for example Microsoft Excel). Drivers Chapter 12 12. Database The Databases option allows the creation and manipulation of databases within Elipse SCADA. This object uses the ODBC standard of Windows, which manipulates the database by sending and receiving data. Open Database Connectivity (ODBC) is an interface created by Microsoft, which offers a universal interface for the access to different databases, including Oracle, Access, MySQL, Interbase, among others. You can define a Database in the Organizer during the setting up of the application, or in execution time, through Scripts. In order to use a database in Elipse SCADA, you must select the Databases option in the application tree in Organizer. The page below will be shown, containing a list of all Databases existing in the application. Picture 121: System Database Availables Options OPTIONS Database DESCRIPTION List Lists the databases existing in the application. New Calls the Wizard of New Connection, which allows the addition of an ODBC connection to a database. Delete Removes the selected database from the list. Advanced Allows the query and edition of the string of ODBC connection. 177 You can connect Elipse SCADA to a database by using the New Connection Wizard when pressing the New button at the right of the page. A window will be shown, asking if you want to create a connection with an already existing table, or to create a new table. Next, a list containing the existing connections (Data Sources) will be shown; if you want a new one, click the New button, and choose the ODBC driver you want to use: MS Access, MS Fox Pro, MS Excel, CA-Clipper, dBase, Oracle, or others. After selecting the driver, click OK and configurate its options; among them: Connection Name (Data Source Name) and the file or directory that contains the data. If you are creating a new table, a window will be presented for you to inform the Name of the Table, its respective fields, and the data type of each one. The Elipse SCADA will show in the Organizer tree, the new table and its respective fields, which can be modified by using the special functions of ODBC in the Scripts. You can remove an existing database by selecting it in the list and pressing the Delete button. For a better comprehension of the ODBC connectivity, see next picture: Picture 122: Database 178 Database User Manual Example using Databases The next example shows a connection of Elipse SCADA with an Access database. In Access, create a database containing one or more tables. Ex.: SUPPORT.MDB file with table Main Table. Close the database (SUPPORT.MDB). In Elipse SCADA, select the Databases option in the Organizer tree. Press the New button, and the New Connection Wizard will be shown for you to choose between making a connection with an already existing table, or to create a new table. Select the connection with an already existing table. Picture 123: Wizard of New Connection of Database Database Select the Machine Data Source tab and a list with the connections (Data Source Name) available will be shown. If you want any that is non-available in the list, press the New button and choose the ODBC Driver you want to use. In this example, you should choose the Microsoft Access database, and click OK. 179 Picture 124: ODBC Databases 180 The Create New Database window will be shown for you to indicate the type of data source. Select System Database, and click Next. In the following window, choose the ODBC Driver you want to use. In this example, you should choose the Microsoft Access database, and click Next. The Driver Setting window will show; in it, you should inform the name of connection (Data Source Name), and by pressing the Select button, choose the file you have created (SUPPORT.MDB); The next window allows the selection of the database tables that will be used. Select table Main Table; Now, the titles of selected tables appear below the Databases option in the application tree, and their respective fields appear below the title. After that, the fields of the Database can be associated to the Screen Objects, as well as to Tags (system variables). The manipulation of Database records is done through Special Functions that can be found by using the App Browser when in a Scripts page (see Scripts Chapter - Special Functions Database Functions). Database Chapter 13 13. Users Elipse SCADA allows you to control the access to an application through a list of names, being allowed to attribute a password to each user and configurate levels of safety in your system. The “Administrator” user has unlimited access to the system. The remaining users have an associated safety level that only allows them to access those characteristics attributed to their level of access. You can create a list of users by selecting the Users option in the application tree in Organizer; the page below will be shown, containing a list of all users registered in the application. Picture 125: List of users Availables Options OPTIONS DESCRIPTION List List of all users registered. New Adds a new user to the list of users. Delete Removes the selected user. Properties Shows the properties of the selected user. You can add up a new user by using the New button at the right of the page, or remove an existing one by selecting it in the list and pressing the delete button. Users 181 When adding a new user to the system, it will appear in the Organizer tree right below Users. Select the new user in the tree, and the following window will appear; in it, the login and the user password shall be informed. Picture 126: Users Properties Users Properties OPTIONS DESCRIPTION Name Defines the user name. Description A brief description of the user. Login String of user identification. Password Field to register the user password. Access level Defines the user access level (from 1 to 100). The biggest priority is number 1. After that, you should define the level of access for each application screen, according to the following table: LEVEL 0 1 bigger than 1 ACCESS free access to all super user other users A user can only access the screens with priority zero, or bigger or equal to his/her. As a standard, all screens have level of access 0 (free access). 182 Users User Manual 13.1. Functions and Attributes Following functions are specific for login: Application.Login() Calls up a dialog box for the identification of a new user. Returns true (different from zero) if the user has been successfully identified (has been “logged”), or false (zero), if he/she wasn't. In case of error, no message will be shown. The function refreshes the global attribute lastError, by placing 0 (zero) if the login is cancelled by the user, or 1 (one) if the user or the password is invalid. Application.Logout() Logs out an user from the application. Closes all screens having priority different from zero. Application.UserAdministration() This function shows one of two dialog boxes, according to the level of access of the user: If User-level = 1 (administrator), he/she will be able to create, modify, and remove the attributes of all users, including changing the password. If User-level > 1, he/she will only be able to change his/her password. When you press OK in the dialog box, the message “Password Changed” shall appear. If the message “New password not confirmed” appears, you have probably rewritten a password that is different from your new one. The application has the following attributes for the login functions: Attributes for the Login Functions ATTRIBUTES Users DESCRIPTION UserName Name of the user logged in the application (empty, when there is no user logged). UserAccessLevel Level of the user logged in the application (100, when there is no user logged). 183 13.2. Login Scripts It is possible to associate scripts to events generated by the login of users. SCRIPTS AVAILABLE You can associate scripts to two events of login in the application: EVENTS DESCRIPTION OnUserLogin Executed when an user is logged in the application OnUserLogout Executed when an user leaves the application Observations: 184 It is not allowed more than a user logged at the same time in the application. When a user is logged in the application, both scripts are executed: OnUserLogout (if there is a user already logged) and OnUserLogin; When the application ends, a Logout is executed; You cannot access or modify any property of users (name, description, etc.) in execution time. Properties of users cannot be associated to any screen object, and cannot be used in scripts. Users Chapter 14 14. Remote Applications Remote Applications are used when one wants to connect two or more Elipse SCADA linked via network, modem or serial cable. In order to use this characteristic, you should define a Server station and a Client one, and add up the network driver you want to use to both. The only driver currently implemented for CE is TCPIP driver. You can add up a network driver to your Server and Client applications by selecting the Drivers option in the application tree in Organizer, and pressing the New button at the right of the network drivers list. Each new driver you add to the application appears below the Drivers option, and when selecting a specific Driver, its properties are shown in the right side of the tree; press the Set Up… button to open the network driver settings window that varies in accordance with the selected driver. (See Chapter about drivers.) Common Properties of Network Drivers OPTIONS DESCRIPTION Server port Defines the communication port for the driver (values from 1 to 32767). Maximum connections Defines the maximum number of clients that can be simultaneously connected. In the Client application, after adding the network driver, you must create a Remote Application, and configurate its parameters. In order to create or edit a Remote Application, you must select the Remote Application option in the application tree in Organizer; the page below will be shown, containing a list of all Remote Applications existing in the application. You can create a new Remote Application by using the New button at the right side of the page, or remove an existing one by selecting it in the list and pressing the delete button. Remote Applications 185 Picture 127: Remote Applications Availables Options of Remote Applications OPTIONS DESCRIPTION List Shows a list of all Remote Applications existing in your application; they appear in the Organizer tree right below the Remote Applications option, and when selected, allow the edition of their properties. New Creates a new Remote Application. Delete Removes from the list the selected Remote Application. 14.1. General Properties Each Remote Application you create for the application appears below the Remote Applications option in the application tree in Organizer. When selecting a specific Remote Application, its properties are shown on the right side of the tree. The page of general properties of the Remote Application appears when the General tab is selected on top of the Remote Application pages. This page is shown below, and its respective fields are described in the following table. 186 Remote Application User Manual Picture 128: General Properties of Remote Applications Remote Application 187 General Properties of Remote Applications OPTIONS 188 DESCRIPTION Name Defines the name of the Remote Application that will be used in the Organizer tree and in the scripts. Description A brief description of the Remote Application. Network Driver Allows the selection of a Network Driver for the current Remote Application. The drivers should be installed in the Drivers option of the application tree in order to be available. Network configuration Shows the network setting used by the selected driver; for example: remote port, remote network address, address of remote node. No edition is allowed for this field. Connect to server at application start up Help Enables the connection with the Remote Application (Server) at the start up of the application in Elipse. Configure... Opens up a window allowing the set up of the parameters of the Server Application (remote), for example, when using a IPX/SPX driver: - Server Port: defines the communication port of the server (from 1 to 32767) - Network Address: defines the network address of the Server (8 hex characters) - Node Address: defines the Server node address (12 hex characters) New Remote Tag! Creates a new Remote Tag that appears below the Remote Application in the Organizer tree. Each Remote Tag created in the Client application is associated to a Tag in the Server application (remote). New Remote file! Creates a new Remote File that appears below the Remote Application in the Organizer tree. The Remote File is used in order to obtain a file of the Server application, what should be done by using the functions of Remote Files. New Group Creates a new group of Remote Tags that appears below the Remote Application or below another group of Remote Tags in the Organizer tree. It shows the Help of the selected Driver. Remote Application User Manual 14.2. Scripts of Remote Applications Scripts of Remote Applications are generally associated to a remote connection. This means, for example, that they can be executed when initiating or ending a connection. Scripts available for Remote Applications are described in the table below. For more details regarding the use of scripts, see the specific chapter. SCRIPTS AVAILABLE You can associate Scripts to Remote Applications by executing them in the following situation: EVENT OnDisconnect Remote Application DESCRIPTION Runs the Script when ending connection. 189 Chapter 15 15. Elipse Web The additional module Elipse Web makes the application’s screens available in the web via a Web server, like Windows’s PSW (Personal Web Server) or IIS (Internet Information Services). The Web server must be installed in the machine running the Elipse application, and this machine must have a fixed IP in case you want to access the application via Internet. To configure Elipse Web, follow these procedures: Check if your computer has a Web server (PWS or IIS). In case it does not, install it. Elipse Web is an additional module, so check if the hardkey has this module. At Elipse SCADA, access the Organizer, and click the tab Web in the item Application. Enable the item “Enable web data server”, according to the picture below: Picture 129: Web tab Click on the button [Browse…], and specify the Web server’s default directory. For PWS or ISS the default directory is C:\Inetpub\wwwroot. Click on the button [OK]. Elipse Web 191 In the item Port, specify the TCP/IP port to be used by SCADA to communicate with applets. Once these items are set, copy the file “Applet.jar” from the folder C:\...\Elipse SCADA\Applet\ to the Web server’s default folder. For each screen you want to view via Web, you have to enable the creation of the HTML page. To do so, acess the screen’s properties and click on the tab Web, according to the picture below. Picture 130: Web tab accesses via Screen properties. Enable the option Create Web Page. These pages will be created in the Web Server’s default directory. To view the application, just type the server’s address and the name of the configured HTML document on the browser’s address bar (for example: http://ServerName/Screen1.htm). NOTES: 192 Elipse Web allows you only to supervise the application. It does not allow you to control, send data, or interact with the application. The only screen available is the one active in the application. Elipse Web Chapter 16 16. Watcher Elipse Watcher is a plug-in of Elipse SCADA offering capture, storage, and digital transmission of images. With it, it is possible to view images within an application, and work with them as desired. An object of Watcher represents each acquisition board linked to Elipse SCADA. In order to add up equipment, it is just enough to add up a corresponding object to the object list. It is possible to independently set up the parameters of each object. These objects are further linked to a screen object (Preview, AVI or Video) for their use within the application, or linked to an AVI Recorder object, which allows the generation of an .AVI file. Elipse Watcher has drivers for a variety of equipment in the market. Consult our technical department to verify the compatibility of yours with Elipse SCADA. Picture 131: List of Watcher objects Watcher 193 16.1. Watcher Objects Each object of Watcher represents a device or acquisition board connected to the system. The object of video capture are linked to "cameras" (listed in the Cameras tab of Watcher), representing the video input of the object in question. When we set up screen objects for a video presentation, we have to indicate to what camera the object will be linked, i.e., what video input will it receive. Picture 132: Types of Watcher objects 194 Watcher User Manual AVI Player The AVI Player object allows the reproduction of an .AVI file in the system. This Watcher object is normally associated to an AVI screen object. Picture 133: Properties of AVI Player Properties of AVI Player OPTIONS Watcher DESCRIPTION Name Determines the name of the object. Description A brief description of the object. AVI file Determines the path of the AVI file. Browse Allows the navigation through the disk to indicate the AVI file of origin. 195 AVI Recorder The AVI Recorder object allows the recording of a video input (an acquisition board, for example) in a file with .AVI format. Picture 134: Properties of AVI Recorder Properties of AVI Recorder OPTIONS 196 DESCRIPTION Name Determines the name of the object. Description A brief description of the object. AVI file Determines the localization and the name of the AVI file to be generated. Browse Allows the navigation through the disk to indicate the AVI file of destination. Video Source Origin of the video to be recorded. AVI Compression Determines how the compression of AVI will be done, allowing the choice of the compressor, quality, and other set-ups. Frame rate Determines the updating rate for the recording. Watcher User Manual Frame Grabber S611 Through this option, it is possible to configure the specifications referring to interface with acquisition board (frame-grabber) S611 of Sensoray. Picture 135: Properties of interface with S611 board Watcher 197 Properties of interface with S611 board OPTIONS 198 DESCRIPTION Name Determines the name of the object. Description A brief description of the object. Input Determines the type of video input: S-Video, Video 1, Video 2, Video 3 or Video 4. Image Size Determines the image size: Integral size, 3/4 of size, 1/2 of size, 1/4 of size, or Advanced (determining width and height). Width Determines the width of the image. This option is only valid if the Advanced item of Image size is enabled. Height Determines the height of the image. This option is only valid if the Advanced item of Image size is enabled. Board # Determines the specifications of the board. Color Format Determines the format of the video color: (RGB 24 bits or Mono 8 bits) Interlaced Enables the interlaced option in the system. Signal Format Determines the format of the video signal: NTSC, NTSC Japan, PAL, PAL-M or PAL-N. Frame Rate Determines the Frame Rate of the video. Watcher User Manual Frame Grabber S613 Through this option, it is possible to set up the specifications referring to interface with acquisition board S613 of Sensoray. Picture 136: Properties of interface with S613 board Watcher 199 Properties of interface with S613 board OPTIONS 200 DESCRIPTION Name Determines the name of the object. Description A brief description of the object. Input Determines the type of video input: S-Video, Video 1 or Video 2. Image size Determines the image size: Integral size, 3/4 of size, 1/2 of size, 1/4 of size, or Advanced (determining width and height). Width Determines the width of the image. This option is only valid if the Advanced item of Image size is enabled. Height Determines the height of the image. This option is only valid if the Advanced item of Image size is enabled. Board # Determines the specifications of the board. Color Format Determines the format of the video color: (RGB 24 bits or Mono 8 bits) Interlaced Enables the interlaced option in the system. Signal Format Determines the format of the video signal: NTSC, NTSC Japan, PAL, PAL-M or PAL-N. Frame Rate Determines the Frame Rate of the video. Image Compression Determines how the image will be compressed: Without compression, or with M JPEG compression. Factor Determines the MJPEG factor (This option is only enabled if the MJPEG item is selected in the above option). Watcher User Manual Devices with Support to Video for Windows Through this option, it is possible to configure the specifications that refer to video input through devices supporting the Video for Windows standard. Picture 137: Properties of the VFW interface Properties of the VFW interface OPTIONS Watcher DESCRIPTION Name Determines the name of the object. Description A brief description of the object. Video Device Determines the video device enabled in the system. Video compression Enables the video compression Video display Enables the video visualization Video format Enables the setting of video format Video source Determines the specifications referring to video source. 201 XPressPlus Capture Board Through this option, it is possible to configure the specifications referring to the capture board XPressPlus of IntegralTech. This board allows the control of up to 32 cameras, which can be separately set up. Picture 138: Properties of the XPress Plus capture board Properties of the XPress Plus capture board OPTIONS 202 DESCRIPTION Name Determines the name of the object. Description A brief description of the object. Board number Specifies the number of cameras that will be inserted by the Insert Cameras button. It allows the creation of objects that will represent the cameras connected to the board. Insert Cameras Inserts the number of "Camera" objects specified in Number of. The XPressPlus board has a limit of 32. The exceeding ones are ignored. File Name of the file (with complete path) where the video will be recorded. Signal Format Format of signal being received. Board Number Identification number of board. Watcher User Manual Cameras With the XPressPlus board, it is possible to individually manage and adjust options of all connected cameras. Settings are done through a Camera object, which represents the camera in question. These objects are created through the Insert Cameras button, shown in the previous item. Each camera has three sets of options: General, Recording, and Mask. a) General Properties Picture 139: General Properties of Camera General Properties of Camera OPTIONS Watcher DESCRIPTION Name Determines the name of the object. Description A brief description of the object. Camera Determines the focused camera. Brightness Determines the brightness of the camera image. Saturation Determines the saturation of the camera image. Contrast Determines the contrast of the camera image. Hue Determines the Hue of the camera image. Sharpness Determines the focus of the camera image. 203 b) Recording Options Through this item, it is possible to adjust the recording options of the capture board. Picture 140: Recording Options Recording options OPTIONS Recording Options DESCRIPTION Set up the recording options of the camera: Enable camera record: enables recording in the selected camera. Sequence enable: enables recording in sequence in the camera. Motion Detection: enables recording on movement detection. No priority trigged: enables recording without priority trigger. Trigger Recording: enables recording with trigger. 204 Area Determines the recording area of the camera. Sensitivity Determines the recording sensitivity of the camera. Field/cycle Determines the recording field/cycle of the camera. Frame size Determines the recording frame size of the camera. FPS Determines the recording FPS of the camera. Trigger options Determines the recording trigger options of the camera. Watcher User Manual c) Mask Defining a mask is indicating sensibility areas, i.e., detection of movement of each video input. Red areas represent non-sensible places. Light green areas are sensible areas. Picture 141: Mask Watcher 205 Chapter 17 17. Steeplechase The Steeplechase object sets up the specifications referring to Steeplechase, which is a SoftPLC supported by Elipse SCADA. Through this object, it is possible to communicate with this device. Through its properties, it is possible to set up the path through which the system will look for information in the local server or in the network. After the specifications have been set up, the system verifies the authorization of the license, and activates the communication, or not. This option is available only for some versions of Elipse SCADA. The properties of this option are the following: Picture 142: Set ups for Steeplechase Steeplechase 207 Properties of Steeplechase OPTIONS 208 DESCRIPTION Name Determines the name of the object. Scan Determines the value of scan. Import Tags Allows for importing tags. Wizard Opens up a set up wizard for steeplechase. Description A brief description of the object. Server Name Determines the name of the steeplechase server. Status Determines the status of the object. VLC Status Determines the status of VLC (Virtual Logic Controller). VLC Project Determines the project of VLC (Virtual Logic Controller). Version Determines the version of the object. Steeplechase Chapter 18 18. OPC Server The OPC Server object is an OPC (OLE for Process Control) client that enables the communication with a given equipment or device, by using the OPC protocol. The OPC Server object is the representation of an OPC DA (Data Access) server inside Elipse SCADA, what allows for the sending and reception of real time data (tags). Picture 143: OPC Server Objects in Organizer OPCServer 209 18.1. General Properties of OPC Server Picture 144: General Properties of OPC Server 210 OPCServer User Manual General Properties of OPC Server OPTIONS OPCServer DESCRIPTION Name Determines the name of the object. Description A brief description of the object. Keep server connection When it is enabled, the connection with the server is established once, and kept until the application is closed. When disabled, Elipse SCADA will establish connections with the OPC server every time it needs to request data. BlockMode When enabled, allows to add or remove tags OPC in blocks, enhancing the performance. New Tag Allows to create a new OPC tag manually. New Group Allows to group the OPC tags, to organize the tags more easily. Logging... Enable/disable the server log, and defines the name and path of log file. Network Address OPC server network address. This field allows to fill the information directly, when is not possible to browse the network to select the server. Server ID OPC server name. Vendor Info Shows the OPC server information. Browse... Allows to browse the active OPC servers to choose one. Get Version... Informs the version of the OPC server. Import... Allows the import of tags or groups of tags defined in the OPC server. Note: this feature might not be available in the OPC server. Consult the documentation. Check OPC servers every ... seconds Recover lost connections every ... seconds Updates the OPC server information and connection on indicated amount of time (in seconds). Background Reads/Enable Enables the reading of tags in the background. It is the most efficient way of reading, with a minimum of communication between Elipse SCADA and the OPC server. Data is refreshed only when the amount of change in the data is greater than the user defined Dead Band (see Dead Band option). Scan Indicates the amount of time (inof updating of tags in the background. The server, in accordance with its internal characteristics, can round up this value. A zero (0) requests the server an updating time that is the least possible. Enables the recovery of lost connections in the period (in seconds) determined in the field. Note: it is valid only if the Check OPC servers every ... seconds option above is enabled. 211 Dead Band (%) Percentage that specifies the range of variation considered as non-significant, i.e., the server will not notify to the system variations within this percentage. For instance, a zero value (0) would command any variation. Note: the use of this feature depends on the OPC server used. Consult OPC server documentation. 18.2. OPC Tags OPC tags allow the exchange of information with OPC servers. Through them, it is possible to send to and receive data from the OPC server. Picture 145: OPC Tags 212 OPCServer User Manual Properties of OPC tags OPTIONS DESCRIPTION Name Name that identifies the OPC tag. Description Description of the tag. Real Name Identifier of the tag inside the OPC server (path). Reading Type Specifies the way of reading the tags in the OPC server. Synchronous - makes the request for tag reading, and waits for the return from the server. Background - data is refreshed only when significant variations occur (outside the Dead Band). See the OPC server properties. Read from Defines what is the source of data read from the OPC server. Device - forces the reading of data directly from the device connected to the server. Cache - requests the value stored in the cache of server. OPCServer Scaling Allows to convert the tag values to a new scale defined by user, filling the following fields: OPC Low, OPC High, System Low and System High. OPC Low Specifies the minimum value to be read from OPC Server. System Low Specifies the system minimum value for custom value conversion. OPC High Specifies the maximum value to be read from OPC Server. System High Specifies the system maximum value for custom value conversion. Scan Defines what will be the periodicity of updating of tag values (in milliseconds). Tests connection here Tests the communication with the OPC server, allowing for the reading and writing of values. Enables reading by scan Enables the periodic reading of the OPC tag. The period is defined in the Scan field. Enables automatic writing Enables the automatic writing for the OPC tag. New Array Element! Adds up elements to an OPC tag treated as an array. It allows for the reading of variables defined as arrays in the server. 213 Alarms Tab Picture 146: Alarm Tab 214 OPCServer User Manual Properties of alarms OPTIONS OPCServer DESCRIPTION LoLo Critical Low Alarm: defines a value interval where OPC tag is considered to be in a Critical Low Alarm status. Used whenever OPC tag value is below minimum value, that is, extremely low. Low Low Alarm: defines a value interval where OPC tag is considered to be in a Low Alarm status. Used whenever OPC tag value is below minimum value. High High Alarm: defines a value interval where OPC tag is considered to be in a High Alarm status. Used whenever OPC tag value is higher than default value. HiHi Critical HighAlarm: defines a value interval where OPC tag is considered to be in a Critical HighAlarm status. Used whenever OPC tag value ie above maximum value, that is, extremely high. Value Specifies the limits for each alarm situation (LoLo, Low, High, HiHi). Pri Specifies the priority for each alarm situation. Lower values indicate higher priorities (priority ranges between 0 and 999). Comment Comment assigned to the alarm. Log Alarm Return Enables logging alarm return messages. Alarm Group Defines current tag's Alarm group. Alarm group must be defined in Organizer's Alarm option. Always in Advise Defines whether the system will supervise OPC tag constantly, even when not being used anywhere in the application, so that no alarm in this tag is lost. Use alternate tag name Defines an altenative name for the tag. Active alarm after delay of Activates the alarm after the specified time period (in miliseconds). 215 18.3. OPC Groups The OPC groups allow a visual organization of OPC tags, facilitating their manipulation. In many cases, these groups are automatically created during the import of tags from the server, reflecting its own hierarchical structure. Picture 147: Properties of OPC Groups Properties of OPC Groups OPTIONS DESCRIPTION Name Specifies the name of the object. Description A brief description of the object. New Group Inserts a new OPC Group in the OPC Server object. Import Allows for importing tags or groups of tags defined in the OPC server to the specific OPC Group. When the Import tags button is activated, the window below is shown. From then on, you just have to drag the desired tag to the group selected. 216 OPCServer User Manual Picture 148: OPC tags import wizard 18.4. Quality Quality fields represent the item’s value quality status. They are formed by a 16-bit word, and the first 8 bits are defined by three bit fields: Quality, Substatus, and Limit. The other 8 bits (of a higher order) are available for each manufacturer’s use. If these bits are used, the default quality bits are still used to indicate which deductions could be made on the returned data. So, it is the client’s responsability to interpret the field of specific information on quality to make sure the server providing this information uses the same “rules” as the client. OPCServer 217 Quality Field QUALITY 0 – 63 QUALITY FIELD DESCRIPTION Bad Value cannot be used for the reasons indicated in substatus. Uncertain Value’s quality is uncertain for the reasons indicated in substatus. 128 – 191 (Reserved) Not used in OPC pattern. 192 – 255 Good Value’s quality is good. 64 – 127 A server that does not support information on quality always returns 192 (Good). It is also acceptable that a server simply returns Bad or Good (0 or 192), and always returns 0 for Substatus and Limit. 218 OPCServer Chapter 19 19. Scripts Scripts are small procedures written in own programming language – Elipse Basic – allowing more flexibility to your application. Scripts are always associated to events, i.e., they begin in the moment this event occurs. 19.1. General Considerations With any programming language, it is necessary to create methods in order to specify and order the execution of the desired instructions. The very structure of scripts of Elipse SCADA already organizes this order in a certain way, for they are oriented to events. Events are occurrences related to an object that can be treated in order to accomplish a specific action. They can be physical, as for instance some action in the keyboard or mouse. For each case, we have several relevant information, like the key pressed or the position of the slide wire and the status of buttons. Events can be internal, like the change of value in a variable. These events can also have physical associations, like the change of temperature in a chamber, from 10 to 11 degrees when we have a tag that receives the values of this temperature. Elipse SCADA has already several events that are pre-defined and available for connection or association with scripts. Examples of some of these events are next listed. Common events in application in Elipse SCADA EVENT DESCRIPTION OnKeyPress When a key is pressed OnKeyRelease When a key is released OnSetFocus When an object receives the edition focus OnLButtonDown When the left button is pressed over an object OnPress When a button object is pressed OnRelease When a button object is released WhileRunning While an application is running OnAlarm When any type of alarm occurs The language used in script modules, Elipse Basic, is very similar to C languages, although having features of visual programming like those found in Visual Basic. Some characteristics of the language are: Scripts 219 It is not necessary to state variables or functions in the beginning of the Script. The variables should be tags, objects, or attributes that are previously created or imported from other applications. Elipse SCADA has already some system variables that are pre-defined. The type of data attributed to a tag is free. The supported value can vary from an integer of 8 bits to a real type of 64 bits, or even a string (text). In data communication with external equipment, the conversion is automatically done in accordance with the types supported by the equipment. In the case of properties, an icon beside each one (visualized through the AppBrowser) indicates the type of data that is supported: Numeric attribute (integer number) Numeric attribute (real number) String attribute (text) Boolean attribute (0 or 1) The variables and constants are basic objects manipulated in a Script. The operators specify what will be accomplished with them. The expressions combine variables and constants to produce new values. In order to facilitate the edition of scripts or expression tags, tools AppBrowser and Cross Reference can be used. 19.2. AppBrowser and Cross-Reference The AppBrowser allows an easy navigation through the application. When you select an object in the tree on the left side of the window, its corresponding attributes and functions are listed on the right side. You can use the AppBrowser as reference during the edition of a script. A very useful characteristic is the possibility of selecting an object, attribute or function you want to use, and directly copy it into the script by pressing the Copy button in the Script ->. The Cross-Reference tool has the same structure of the AppBrowser, with the difference that when you select an object in the tree at the left side of the window, its respective references are listed at the right side. Double click a reference to go to the referred object. 220 Scripts User Manual Picture 149: AppBrowser Availables Options OPTIONS Scripts DESCRIPTION Selection Shows the name of the selected object, attribute, and function in the same way it will be copied into the script. Objects Lists the objects in hierarchical order. Info Shows a description of the selected item. Properties Lists the attributes and functions of the selected object. Show Allows the filtering of the information (attributes or functions) listed in the window of properties. Copy into Script Copies the reference of the selected attribute or function into the script. 221 19.3. Operators and Constants We list the constants (with their annotations) and operators that can be used in scripts. Constants TYPES EXAMPLE Integers (32 bits, dec) Integers (32 bits, bin) Integers (32 bits, octal) Integers (32 bits, hex) 1234, 1234d, -993 11001110b (doesn't allow signal) 7733o (doesn't allow signal) 0A100h, 3B8h (doesn't allow signal) (if the first digit is A-F, place a zero before it) 133.443, 344.939 (don't have scientific notation) "Temperature", "pressure" Real numbers (64 bits) Strings Arithmetic operators OPERATOR EXAMPLE + (addition) + (concatenation of strings) - (subtraction) * (multiplication) / (division) % (rest of division) ** (exponentiation) tag001 + 34 slider1.Frame.title + "<- PLC1" tag001 - screen1.x screen1.width * 3.141592 tag001 / tag002 tag001 % tag002 tag001 ** 2 (tag001 squared) Logical operators OPERATOR EXAMPLE & (AND bit-by-bit) | (OR bit-by-bit) ^ (OR exclusive bit-by-bit) ~ (NO bit-by-bit) << (SHIFT left) flags & 0F000h flags | 0F000h flags ^ 0F000h ~flags flags << 2 (dislocates the value of “flags” two bits to the left) flags 2 (dislocates the value of “flags” two bits to the right) tagOnOff AND (tag001 > 200) tagOnOff OR (tag001 > 200) tagOnOff XOR (tag001 > 200) NOT tagOnOff >> (SHIFT right) AND (logic) OR (logic) XOR (exclusive OR) NOT (negation) 222 Scripts User Manual Relational operators (return 1 for true and 0 for false) OPERATOR == (equal to) > (bigger than) < (lesser than) >= (bigger or equal than) <= (lesser or equal to) <> (different from) EXAMPLE tag001 == 8 tag001 > tag002 tag001 < tag002 tag001 >= -1 tag001 <= 16 tag001 <> 1 Special operators of attribution (arithmetic) OPERATOR += (sum) -= (subtraction) *= (multiplication) /= (division) **= (exponentiation) EXAMPLE tag001 += 6 (i.e., tag001 = tag001 + 6) tag001 -= 3.246 (tag001 = tag001 - 3.246) tag001 *= 4 ( tag001 = tag001 * 4) tag001 /= 12 (tag001 = tag001 / 20) tag001 **= 2 (tag001 = tag001 ** 2) Special operators of attribution (bit-by-bit) OPERATOR &= (AND) |= (OR) ^= (XOR) <<= (SHIFT left) >>= (SHIFT right) EXAMPLE tag001 &= 00000000h tag001 |= 11111111h tag001 ^= 10100100h tag001 <<= 2 (tag001 = tag001 << 2) tag001 >>= 2 (tag001 = tag001 >> 2) Precedence of operators (order of execution) The table below lists the rules for precedence and association of all operators. 1. + - ~ NOT (unary operators) 2. ** 3. / % 4. + 5. >> << 6. >= < <= 7. == <> 8. & 9. ^ 10. AND, XOR and OR 11. = += -= *= /= %= &= |= ^= **= <<= >>= Scripts 223 19.4. Flow Control In order to control the order in which the instructions are processed, Elipse Basic offers a series of commands for deviations and conditions. These commands are next treated. 19.4.1. If…Else…ElseIf…EndIf Command Allows decision taking during the execution of a script. Syntax: If <condition1> <block of instructions 1> Else <block of instructions n> EndIf If <condition1> <block of instructions 1> ElseIf <condition2> <block of instructions 2> Else <block of instructions n> EndIf The conditions specified are expressions that can be assessed as true (different from zero) or false (zero or empty string ""). If the condition is true, the block of instructions is executed up to the EndIf command. When this command is executed, the condition of If (condition1) is first assessed; if true, the block of instructions 1 is executed, and the command is finished with EndIf. If condition1 is false, the condition of ElseIf (condition2) is assessed and the block of instructions 2 is executed in case it is true. If false, next ElseIf condition will be assessed, and so forth. If no ElseIf condition is true, the block of instructions of Else will be executed. The program continues its execution with the command after EndIf. Blocks of instructions ElseIf and Else are optional. You can specify as many ElseIf clauses you want; nevertheless, they can never be after an Else clause. Any block of instructions can contain nested If…EndIf commands. 19.4.2. For…Next Command Repeats a block of instructions a given number of times. To this repetition, we give the name of “Knot” or “Loop”. Syntax: 224 Scripts User Manual For <meter> = <beginning> To <end> <block of instructions> Next 19.4.3. While…Wend Command Runs a block of instructions while a given condition is true. Syntax: While <condition> <block of instructions> Wend The condition specified is an expression that can be assessed as true (different from zero) or false (zero or empty string ""). If the condition is true, the block of instructions is executed up to the Wend instruction, when the condition is assessed again. The block of instructions will be repeated until the condition becomes false, when the command after the Wend instruction will be executed. While...Wend loops can be nested. 19.4.4. Repeat…Until Command Runs a block of instructions until a given condition becomes true. Syntax: Repeat <block of instructions> Until <condition> The condition specified is an expression that can be assessed as true (different from zero) or false (zero or empty string ""). The block of instructions is executed, and then the condition is assessed. If it is false, the block of instructions is repeated and the condition is assessed again. The block of instructions will be repeated until the condition becomes true, when the command after the Until instruction will be executed. Repeat...Until loops can be nested. 19.4.5. Return Command Stops the execution immediatelly, and returns to the point where the script was called. Scripts 225 19.5. Special Functions Elipse SCADA has a series of pre-defined special functions that help in the edition of scripts, facilitating the execution of more complex tasks and allowing a better setting of your system. Through the AppBrowser tool, we can see the several special functions available for each object during the edition of scripts. We highlight the Global Manager object, which brings up functions of general utility, like functions of date and the real time clock, manipulation of strings, and numeric conversions, files, multimedia, and others. Besides this, we have several other objects that have the specific functions listed below: Application, Tags, Screens, Screen Objects, Alarms, Recipes, Historic, Reports, Query, Plotter, Drivers, Databases, and Remote Applications. This Chapter presents the complete list of all functions available in Elipse SCADA, divided by object, in alphabetic order. Each input indicates the prototype of the function with its parameters between parentheses. Parameters between brackets are optional. Following the input of the function, there is the explanation of what it does, and its parameters. 19.5.1. Global Manager Functions Abs (x) Returns the absolute value of X. Example: tag001 = Abs(-5.14) // Returns 5.14 ACos (x) Returns arc cosine (angle) of the value x in the interval of [0, ] radians. The x parameter should be contained in the interval [-1, 1]; if not, the function returns zero. Asc (strText) Returns the ASCII code for the first character of strText. Example: tag001 = Asc("screen") // Returns 115 ASin (x) Returns arc sin (angle) of the value x in the interval of [-2, 2] radians. The x parameter should be contained in the interval [-1, 1]; if not, the function returns zero. ATan(x) Returns arc tangent (angle) of the value x in the interval of [-2, 2] radians. 226 Scripts User Manual Blue(Color) Returns the value of the blue component of Color. See Red(). CaptureAppScreen ([fileName],[screenName], [type]) Captures the screen specified in screenName parameter and saves it in a bmp file with name specified in fileName. If fileName parameter is blank (" "), the capture is placed in clipboard. type parameter determines how the screen is captured: if the parameter is 0, all the screen is captured, including the Windows taskbar; if it is 1 (or any value different from 0), only the area of screen objects is captured (the size is the contour of all screen objects). Example: IF CaptureAppScreen("screen.bmp", "Screen1",1) MessageBox("Screen1 captured to the file screen.bmp") ELSE MessageBox("Error capturing the screen!") ENDIF IF CaptureAppScreen("", "Screen1",1) MessageBox("Screen1 captured to the clipboard") ELSE MessageBox("Error capturing the screen!") ENDIF CaptureScreen([fileName]) Captures the whole screen by placing it in the clipboard (if no file is specified in the fileName parameter) or in a file with name fileName, in BMP format. Example: IF CaptureScreen("screen.bmp") MessageBox("Screen captured in the screen.bmp file") Else MessageBox("Error capturing the screen!") ENDIF Chr(n) Returns the character represented by the specified ASCII code. Example: tag001 = Chr(115) // returns "s" Scripts 227 CopyFile (srcFile, destFile) Copies the contents of the srcFile file to destFile. The function returns 1 (one) if well succeeded, and 0 (zero) if not. The global attributes lastError and lastErrorStr are refreshed by this function. Example: IF CopyFile("source.dat", "dest.dat") MessageBox ("The copy has been well succeeded.") Else MessageBox("Error in CopyFile command!") ENDIF CopyObject (strSrcName, strDestName [, strDestFolder]) Creates a copy of the strSrcName object with the name strDestName. The new object is created in the same folder of the source object as default, unless a destination folder is indicated in the optional parameter strDestFolder. The function returns True if succeeded, or False if not. Example: // Creates a copy of the Display1 object in the folder // Screens.Screen1; the new object will be called Display2 CopyObject ("Screens.Screen1.Display1", "Display2") // Creates a copy of Display1 in the Screens.Screen1 folder // the new object will be called Display2, and will be placed // in the Screens.Screen2 folder CopyObject ("Screens.Screen1.Display1", "Display2", "Screens.Screen2") Cosine (angle) Returns the cosine of the specified angle. The angle is expressed in radians. CreateDir (fullPath) Creates a new directory. Returns TRUE if well succeeded, or FALSE if failing. The global attributes lastError and lastErrorStr are refreshed by this function. CreateFile (fileName, fileContents) Creates a file called fileName, writes the fileContents string in the file, and closes it. If the file already exists, it is destroyed and substituted by the new content. Returns FALSE an error occurs, or TRUE if not. DDEExecute (server, topic, command) Sends a DDE command to another application. The server parameter is the name of the DDE server, normally the name of an application; the topic parameter is a 228 Scripts User Manual document that is open in the application, and the command parameter is the command you want to execute. Example: DDEExecute("Excel", "Sheet1", '[SELECT("R1C1:R5C1")]') DDEExecute("Excel", "Sheet1", "[PRINT(1;;;1;FALSE;FALSE;1;FALSE;1;360;360)]") The first example selects the region to be printed, the second runs the printing command. The first parameter is always the application name. The second parameter is the spreadsheet or document you want to access, including the path and extension of file. The third parameter is the command. Deg (angle) Returns the angle, expressed in degrees, converted into radians, according to the formula degrees = (radians / 3.141592) * 180. Example: tag001 = Deg(ACos(x)) // Arc Cosine of x express in degrees DeleteFile (file) Erases the file specified in the file parameter. Returns TRUE if well succeeded, or FALSE if failing. The global attributes lastError and lastErrorStr are refreshed by this function. DeleteObject (strObjName) Erases the strObjName object from the application. EditProperties () Opens a window that allows the edition of the Global Manager properties. Execute (CmdLine) Runs the program specified in the cmdLine parameter. If the program is not located in the directory of \WINDOWS or \WINDOWS\SYSTEM, you should specify the localization of the file. Program parameters can also be included in the command line CmdLine. Example: Execute("C:\WINDOWS\WINCALC.EXE") Execute("C:\UTIL\PKZIP.EXE DATA C:\DATA\*.*") This function does not accept parameters in CE. Use function ShellExecute(). Exp(x) Returns the exponential function of x. Example: Scripts 229 tag001 = Exp(2.302585093) // returns 10.0 FileSelectWindow([filepath][, extension][,type]) Shows a dialog for file selection. Returns a string containing the name of the selected file or an empty string if failing of being cancelled by the user. The filepath parameter specifies the file or directory that will be previously marked. The extension parameter specifies the types of files that can be selected. Its syntax is: filterName1 | mask1 | … filterNameN | maskN Each filter is a sequence of two strings separated by a ‘|’. The first string is the name of the filter that will be shown in the combo box, and the second string is the mask of selection of files (*.dat, for example). The mask can contain a sequence of masks separated by point and comma (for example, *.bmp;*.jpg;*.gif). The filters should be separated by ‘|’. Example: dim strDir strdir = FileSelectWindow("C:\temp\*.dat",_ "History files (*.dat)|*.dat") The parameter type is a integer that specifies how the file will be selected, as follows: type Parameters VALUE DESCRIPTION 0 Open the file selection dialog; doesn’t allow the user to type the name, only select from the window list. 1 Allows the user to create a new file, typing the name directly. 2 Allows the user to type the file name and returns the complete path; doesn’t create any file. FillString (string, nCount) Returns a string containing the string parameter as many times as specified in nCount. Example: // returns "PasswordPassword" in String String = FillString("Password", 2) FindFirstFile (fileName[, attr]) Looks for the first file from a given standard of name and specific attributes, returning the name of the file found. The fileName attribute determines the standard of file to be searched (for example: "\DATA\*.DAT"), and the attr parameter is optional, and determines the sum of attributes desired in the file, according to the table: 230 Scripts User Manual VALUE 0 1 2 4 16 32 ATTRIBUTE Normal, without attributes Read only Hidden System file Directory Archive For instance, to place the System (system file) and Hidden (occult) attributes, one should attribute the numeral 6, i.e.: system (4) + hidden (2) = 4 + 2 = 6. The function returns the name of the first file that fulfills the parameters, or empty ("") in case no file is found. After calling FindFirstFile() function FindNextFile() can be called to find other files that fulfill these conditions. If attr parameter is missing, the attributes are ignored. FindNextFile() Looks for next file obeying the parameters specified in function FindFirstFile (). Returns the name of the file that fulfills the parameters, or empty ("") in case no file is found. Example: // This example makes a security copy of all // files *.DAT in the directory C:\DATA that have // archive attribute for C:\BACKUP DIM strFile strFile = FindFirstFile ("C:\Data\*.dat",32) WHILE strFile<>"" CopyFile ("C:\Data\"+strFile,"C:\Backup\"+strFile) strFile = FindNextFile() WEND FolderSelectWindow ([strDefaultFolder]) Opens a window for the selection of a directory (folder), returning a string with the name of the selected directory or an empty string, if cancelled. The parameter strDefaultFolder specifies the initial directory to be selected. If not specified, the selection is the root-directory of the current drive. Example: strFile = FolderSelectWindow ("C:\Data") Scripts 231 Format (strFormat, datetimeValue) Returns a value in the format date/hour, according to the string strFormat. The parameter datetimeValue is the value to be formatted itself. Options for this function are the following: Date/Time Formats for Format function FORMAT W W ww WW D dd M mm mmm MMM mmmm MMMM mmmmm MMMMM yy YY h hh m mm s ss AM/PM Hour in the 12 hours format, shows AM (morning) and PM (afternoon). am/pm Hour in the 12 hours format, shows am and pm. A/P Hour in the 12 hours format, shows A and P. a/p Hour in the 12 hours format, shows A and P. Tenths of a second (should be preceded by seconds) Hundredths of a second (should be preceded by seconds) Thousandths of a second (should be preceded by seconds) New row (CR + LF) 0 00 000 | 232 MEANING Week day (Sun – Sat) Week day (Sun – Sat) Week day (Sunday – Saturday) Week day (SUNDAY – SATURDAY) Day (1 – 31) Day (01 – 31) Month (1 – 12) Month (01 – 12) Month (Jan – Dec) Month (JAN – DEC) Month (January – December) Month (JANUARY – DECEMBER) Month (j – d) Month (J – D) Year (00 – 99) Year (1970 – 9999) Hour (0 – 23) Hour (00 – 23) Minute (0 – 59) (should be accompanying hours or followed by seconds) Minute (00 – 59) (should be accompanying hours or followed by seconds) Second (0 – 59) Second (00 – 59) Scripts User Manual Example: DIM date = GetTime() // Returns "November 21, 2000" str = Format("mmmm d, yyyy",date) // Returns "11:41:32.612" str = Format("hh:mm:ss.000",date) GetAbsoluteFilename (file) Returns the complete name of the file. Example: // Returns "C:\WINDOWS\SYSTEM\VGA.DRV" strArquivo = GetAbsoluteFilename("VGA.DRV") GetAppDir () Returns the application directory. GetCurDir () Returns the current directory. GetDay (time) Obtains the day from an absolute value of time. Example: day = GetDay(GetTime()) // Example below returns 30 day = GetDay(MakeTime(30,10,1996,17,25,56)) GetDayOfWeek (time) Obtains the week day from an absolute value of time (1 for Sunday, 2 for Monday, …, 7 for Saturday). Example: day = GetDayOfWeek(GetTime()) // Example below returns 5 day = GetDayOfWeek(MakeTime(30,10,1997,17,25,56)) GetDayOfYear (time) Obtains the day of year from an absolute time value in days (1 for Jan 1st, 2 for Jan 2, …, 32 for Feb 1st, 33 for Feb 2, …). Example: day = GetDayOfYear(GetTime()) day = GetDayOfYear(MakeTime(9,2,1997,17,25,56)) // returns 40 Scripts 233 GetDiskFreeSpace (strPath [,bUserFreeSpace]) Returns the total number of Kbytes available in the path strPath specified. The parameter bUserFreeSpace is optional and forces Elipse SCADA to consider the user disk quota, if avaliable. GetFileAttributes (file[, version]) Returns the sum of attributes of the file according to the following table: ATTRIBUTES VALUE Error Normal Read Only Hidden System Volume Directory Archive -1 0 1 2 4 8 16 32 The parameter version is optional. If specified (version = 1), it makes the following NTFS attributes available: ATTRIBUTES VALUE Compressed Offline Non-indexed Encripted 2048 4096 8192 16384 GetFileCreationTime (file) Returns the hour in which the file has been created. GetFileLastAccessTime (strFile) Returns the hour in which the file strFile has been accessed for the last time. GetFileLastModifiedTime (strFile) Returns the hour of last modification in the file strFile . GetFileSize (strFile) Returns the size of file strFile in bytes. GetHaspVar (strVarName) Reads the value of an internal variable stored in a hardware key (Hasp). This variable can only be programmed by Elipse Software in Hasp. The function returns a string containing the value of the variable, or empty ("") if some error occurs or the variable doesn't exist. 234 Scripts User Manual Example: tagSerialNo = GetHaspVar("SerialNo") GetHour (time) Obtains the hour from an absolute value of time. Example: hour = GetHour(GetTime()) hour = GetHour(MakeTime(30,10,1996,17,25,56)) // Returns 17 GetLastError () Returns the error code of last operation in the file (the same value of the global attribute lastError). GetLicenseString () Returns a unique string that represents the Elipse SCADA license currently running. GetMinute (time) Obtains the minutes from an absolute value of time. Example: minute = GetMinute(GetTime()) minute = GetMinute(MakeTime(30,10,1996,17,25,56)) // Returns 25 GetMonth (time) Obtains the month from an absolute value of time. Example: month = GetMonth(GetTime()) month = GetMonth(MakeTime(30,10,1996,17,25,56)) // Returns 10 GetSecond (time) Obtains the seconds from an absolute value of time. Example: second = GetSecond(GetTime()) second = GetSecond(MakeTime(30,10,1996,17,25,56)) // Returns 56 GetTime () Returns current system hour as an absolute time value measured in seconds since 00:00 of January 1st 1970. The value also expresses milliseconds in the three first decimals. Scripts 235 Example: // This example counts how many seconds it takes to // take a copy from a file DIM timeStart, timeDuration timeStart = GetTime() CopyFile("C:\Data\Temp.dat","C:\Data\Backup\Temp.dat") timeDuration = GetTime() – timeStart MessageBox ("The copy has taken " + Str (timeDuration,8,3) + "seconds.") GetYear (time) Obtains the year from an absolute value of time. Example: year = GetYear(GetTime()) year = GetYear(MakeTime(30,10,1996,17,25,56)) // Returns 1996 Green (color) Returns the value of the green component of Color. See Red(). HashString (strIn, strPassword) Encodes the string strIn based on the password strPassword. The result is a unique string for this combination strIn, strPassword. The codification is irreversible: it is not possible to retrieve the original string nor the password used. Hex(n) Returns a string with the hexdecimal representation of n. Example: tag001 = Hex(31) // returns "1F" HexToDec (stringHex) Returns a string with the value formatted in hexadecimal base. Example: tag001 = HexToDec("1F") // returns "31" Int (x) Returns the integer part of x, obtained by truncation. Example: tag002 = -9,9 tag001 = Int (tag002) // returns -9 236 Scripts User Manual IsNumeric (expression) Verifies if the result of the expression informed in the expression parameter is a number. Returns TRUE (different from zero) if it is a number, or FALSE (zero) if not. Example: tag001 = IsNumeric(1000) tag001 = IsNumeric("test") // returns TRUE (1) // returns FALSE (0) tag001 = IsNumeric(GetTime()) // returns TRUE (1) IsString (expression) Verifies if the result of the expression informed in the expression parameter is a string. Returns TRUE (different from zero) if it is a number, or FALSE (zero) if not. Example: tag001 = IsString(1000) tag001 = IsString("test") // returns FALSE (0) // returns TRUE (1) tag001 = IsString(GetTime()) // returns FALSE (0) Left(string, nCount) Returns the nCount characters more to the left in the string parameter. Example: String = Left('Password', 4) // returns 'Pass' Len(string) Returns the number of characters of a string. Example: Integer = Len('Password') // returns 8 Log(x) Returns the natural logarithm of number x. Example: tag001 = Log(tag002) Log10(x) Returns the base-10 logarithm of number x. Example: tag001 = Log10(tag002) MakeLower(string) Returns the string parameter in lower case letters. Example: String = MakeLower(‘Password’) // Returns ‘password’ Scripts 237 MakeReverse(string) Inverts a string, so that the first character becomes the last, and vice-versa. Example: String = MakeReverse(‘Password’) // Returns ‘drowssaP’ MakeTime (day, month, year, hour, minute, second) Returns an absolute time value from the parameters specified. The interval of values for each parameter is: Interval of values OPTIONS DESCRIPTION Day 1 to 31 (it can be 28, 29 or 30 according to month and year) month 1 to 12 Year 1970 to 2039 Hour 0 to 23 minute 0 to 59 second 0 to 59 If any parameter is invalid, the function returns 0. Example: myTime = MakeTime(30,10,1996,17,25,56) MakeTop (string) Returns the string parameter in capital letters. Example: String = MakeTop(‘Password’) // returns ‘PASSWORD’ Max (x) Compares x and y, and returns the biggest value between both numeric expressions. Example: tag001=Max(tag002,tag003) MessageBox (text [, title [, style [, x, y]]]) Shows a message box that can be configured by the user. The function returns a value that corresponds to a button pressed in the message box. Function Parameters The Text parameter is mandatory, parameters Title and Style are optional, and their default values (0000h) determine a standard message box. Text: It should be a string or Tag containing a string. It should be expressed between simple quotation marks, and will appear as centralized in the message box right above the buttons. 238 Scripts User Manual Example: MessageBox ("How the Message Box is?") // A string is attributed to a Tag Message = "How the Message Box is?" MessageBox(strMessage) Title: It should be a string in the same way as the Text parameter, and will appear in the title bar of the message box. Example: MessageBox ("How the Message Box is?", "Test of Message Box") // Two strings below are attributed to Tags strText="How the Message Box is?" strTitle="Test of Message Box" MessageBox(strText,strTitle) x, y: Allows to specify the position the dialog will appear. Style: Allows the modification of the message box style, and should be a hexadecimal value in accordance with the characteristics you want. The following characteristics can be configured. Types of window TYPE HEXA DESCRIPTION Application Modal 0000h System Modal 1000h Desk Modal 2000h You should answer the message box to go on with the use of the window that has called it. Nevertheless, you can go to any other window. All applications become suspended while you don't answer this message box. It is used for very important messages. Similar to Application Modal, although suspending all screens of the application while the message is not answered. Buttons of Message Box BUTTONS OK OK, Cancel Abort, Retry, Ignore Yes, No, Cancel Yes, No Retry, Cancel Scripts HEXA DESCRIPTION 0000h 0001h 0002h Only the OK button will appear in the message box Buttons OK and Cancel will appear. Buttons Abort, Retry, and Ignore will appear. 0003h 0004h 0005h Buttons Yes, No, and Cancel will appear. Buttons Yes and No will appear. Buttons Retry and Cancel will appear. 239 Default for buttons BUTTON Button1 as default Button2 as default Button3 as default HEXA 0000h 0100h 0200h DESCRIPTION Button 1 will have the focus. Button 2 will have the focus. Button 3 will have the focus. Icon TYPE Stop Question Exclamation Information HEXA 0010h 0020h 0030h 0040h DESCRIPTION The icon is a stop signal The icon is an interrogation mark The icon is an exclamation mark The icon is the ‘i’ character within a circle Return values VALUE BUTTON MESSAGE 1 2 3 4 5 6 7 OK Cancel Abort Retry Ignore Yes No OK Cancel Abort Retry Ignore Yes No Setting up a Message Box In order to set up the style of a Message Box, you should make a logic OR for each characteristic you want (Type, default buttons, icon, buttons). You can only choose one of the characteristics available (see tables above). For instance, in order to specify a Message box with the following style: System Modal Type (1000h) + Button 2 as Default (0100h) + Exclamation icon (0030h) + Yes and No buttons (0004h) = 1134h Example: strText = "How the box is?" strTitle = "Test of Message Box" MessageBox(strText, strTitle, 1134h) Mid (strText, nFirst [, nCount]) Returns part of the strText parameter, according to the nFirst and nCount parameters. The nFirst parameter specifies the position, within the string, of the first character of the substring that is returned (counting starts at zero), and the nCount parameter is the number of characters of the substring. Example: 240 Scripts User Manual strPasswd = Mid('Password', 0, 3) strPasswd = Mid('Password', 3, 4) // returns 'Pas' // returns 'swor' strPasswd = Mid('Password', 2) // returns 'ssword' Min (x,y) Compares x and y, and returns the least value between both numeric expressions. Example: tag001 = Min (2.4,28.3) // tag001 = 2.4 MoveFile (srcFile, destFile) Moves the specified file to a new localization. Returns TRUE if well succeeded, or FALSE in case of error. The global attributes lastError and lastErrorStr are refreshed by this function. Example: MoveFile("c:\data\turtle.dat","c:\newdata\rabbit.dat") PadC (strString, nLength [, strPadChar]) Returns the string strString centralized with the character strPadChar completing the size of the resulting string specified by nLength. If strPadChar is not specified, spaces are introduced. Only the first character of strPadChar is used. Examples: PadC("abc",7) // Results " PadC("abcdefghij",5) // Results "abcde" abc " PadC("abc",8,"-") // Results "--abc---" PadL (strString, nLength [, strPadChar]) Returns the string strString positioned at the right side of character strPadChar, completing the size of the resulting string specified by nLength. If strPadChar is not specified, spaces are introduced. Only the first character of strPadChar is used. Examples: PadL("abc",5) PadL("abcdefghij",5) // Results " abc" // Results "abcde" PadL("abc",8,"-") // Results "-----abc" PadR (strString, nLength [, strPadChar]) Returns strString positioned at the left side of character strPadChar, completing the size of the resulting string specified by nLength. If strPadChar is not specified, spaces are introduced. Only the first character of strPadChar is used. Examples: PadR("abc",7) Scripts // Results in "abc " 241 PadR("abcdefghij",5) PadR("abc",8,"-") // Results in "abcde" // Results in "abc-----" PasswordDlg(text, title [, x, y]) Opens up a dialog box for the input of a password. The title parameter is a string to be shown in the title bar, and text is a string with a message for the user. It returns the password typed by the user. Optional parameters x and y indicate the position in the top left corner of the message box to be shown. The function returns the password typed by the user. Example: strPwd = PasswordDlg ("Type a password","Safety") strPwd = PasswordDlg ("Type your password","Login",100,100) PlaySound (soundIndex) Plays a sound specified in parameter soundIndex (integer between 0 and 5) in accordance with the table below: INDEX 0 1 2 3 4 5 DESCRIPTION Bip using the internal loudspeaker of the computer Asterisk (comment) Exclamation Hand (attention) Question Standard alert This sound is defined in the control panel of Windows. The function makes the request of sound playing for the system, and returns. The sound is asynchronously played. PlayWave (filename [, msecStart [, msecStop]]) Plays a WAV format file. Parameters msecStart and msecStop specify the interval of the file to be played (in milliseconds). If these parameters are omitted, the whole file will be played. The process can be stopped by calling the StopWave() function. Example: PlayWave("tada.wav",2000,5000) // It plays the file from second 2 up to second 5 This function does not accept the parameters startTime and stopTime in CE. PrintString (lptNum, string) Sends the string to printer LPTlptNum. The string is sent and waits for a pre-processing (raw bytes). If formatting is required, it is possible to access the 242 Scripts User Manual printer settings. Characters CR and LF (Chr(13) + Chr(10)) should be supplied in order to change a new row. Example: PrintString(1, "Hello World...") Rad (angle) Returns the angle (expressed in degrees) converted into radians, according to the formula: radians = (angle / 180) * 3.141592. ReadFromFile (strFile [, startOffset [,bytesToRead] ]) Bytes ToRead read bytes from the file strFile, beginning with startOffset (from the beginning of the file, if not specified). If bytesToRead is not specified, the function reads all bytes in the file. It is recommended that the file only contains text/character data. Binary data can be read, but cannot be manipulated in Elipse SCADA. Example: tag001 = ReadFromFile("Help.txt") // Reads the whole HELP.TXT file for tag001 ReadIniNumber (strFile, strSection, strInput [, nDefaultValue]) Returns the number of an input in the set up file (.INI) strFile. Parameters strSection and strInput specify the section and input of file, respectively. If the input is not found, the value nDefaultValue returns. If nDefaultValue is not specified, the function returns zero. The file should be formatted with the following syntax: [section1] input1 = value1 input2 = value2 <other entries> inputN = valueN [section2] <other entries> [sectionN] <other entries> Example: // File MYAPP.INI with the following content: // [General] // Total = 1000 // UserName = Admin ReadIniNumber("MYAPP.INI","General","Total",-1) // Returns 1000 ReadIniString("MYAPP.INI","General","UserName") Scripts 243 // returns "Admin" Note: If there is another program modifying .INI file, changes can be immediately seen, for Windows maintains a copy of the file in memory. You can force updating by calling WriteIni (strFile,"","","") before reading the .INI file. Be it a VALUES.INI file being refreshed by another program. It is possible to read the refreshed values as: WriteIni("VALUES.INI","","","") // Forces Windows to unload the cache ReadIniNumber("VALUES.INI", "Section", "Input") // Reads the value of Input in the Section ReadIniString(strFile, strSection, strInput [,strDefaultValue]) Returns the string containing the input value in the strFile .INI file. Parameters strSection and strInput specify the section and input of the respective file. If the input is not found, strDefaultValue is returned, or a null string ("") if strDefaultValue is not specified. Real (string) Converts a numeric string or a number into a real number. Example: Numeric = Real(‘30’) // returns 30,0 Red(r), Green(g), Blue(b) These functions allow the acquisition of one of the three colors composing a color value of 24 bits in: red, green and blue. The returned value will always be between 0 (minimum intensity) and 255 (maximum intensity). Example: color = Display.backgroundColor Display.backgroundColor = RGB(Red(color)/2, Green(color)/2, Blue(color)/2) The example above sets up the background color of a Display to half of the intensity of the original color for each one of the three components of colors. ReleaseMouseCapture () Releases the capture of the mouse, which is done by function SetMouseCapture(). An object that has an active mouse capture, receives all mouse events, regardless of the mouse being or not over the object. Example: the following script, OnMouseOver, changes the background color of a screen object when the mouse is over it, and returns to the original color when the mouse leaves. // verifies if there is no mouse capture any longer IF NOT Display.HasMouseCapture() 244 Scripts User Manual // the mouse has entered in the object, captures Display.SetMouseCapture() // give it a highlight color Display.backgroundColor = RGB(220,220,220) ELSEIF NOT Display.IsMouseInside() // if the mouse has left the object, give it the original color Display.backgroundColor = RGB(192,192,192) // and cancel the capture ReleaseMouseCapture() ENDIF RemoveDir (fullPath) Removes an existing directory (folder). With Windows, due to restrictions in the system, the directory should be empty, and should not have sub-directories to be erased. It is not possible to erase the current directory, the working directory of the system, or the root directory. It returns TRUE if well succeeded, or FALSE (zero) if not. Global attributes lastError and lastErrorStr are refreshed by this function. RenameFile (srcFile, destFile) Changes the name of file srcFile to destFile. It returns TRUE if well succeeded, or FALSE (zero) if not. Global attributes lastError and lastErrorStr are refreshed by this function. RGB (R, G, B) Returns a 24 bits color value for the three composing colors that are specified: red, green and blue. Each component is an integer between 0 (minimum intensity) and 255 (maximum intensity). The value returned can be attributed to any color attribute of an object. Example: // Strong red Display.backgroundColor = RGB(255,0,0) Right (strText, nCount) Returns the nCount characters more to the right in the strText parameter. Example: str = Right("Password",4) // returns "word" Rnd () Returns a random real number between 0 and 1 (including it). Round (x) Returns number x as rounded to the nearest integer. Scripts 245 Example: tag001 = Round(14,1) // the result is 14.0 tag002 = Round(13,9) // the result is 14.0 RunMacro (strCode) Compiles and runs the expression contained in string strCode passed as parameter. Returns the value of the expression that has been executed, or zero if no compilation or execution error occurs. Example: // runs expression "Screen<activeScreen>.Activate", // where activeScreen is the screen number. RunMacro("Screen"+Str(activeScreen,1,0)+".Activate()") ScriptWindow () Opens a window for debug in Runtime mode, which allows the supervision of all scripts that are running. It also shows for how long or how many times a script is executed. SetFileAttributes (file, newAttr) Modifies the attributes of file for newAttr. See function GetFileAttributes for the list of attributes that parameter newAttr can receive. The function returns TRUE if well succeeded, or FALSE (zero) if failing. Global attributes lastError and lastErrorStr are refreshed by this function. Example: SetFileAttributes("turtle.dat",3) // read-only (1) + hidden (2) = 3 SetSystemTime (datetime) Adjusts the hour of the system for parameter datetime. The parameter datetime is an absolute value of datetime. Use function MakeTime() in order to compile this number. The function returns 1 (TRUE) if successful, and 0 (FALSE) if failing. Example: SetSystemTime(MakeTime(10,8,2000,17,25,56)) Note: The internal time maintained by Elipse SCADA is not automatically adjusted. For this to happen, you can use two methods: Add the key HKEY_CURRENT_USER\Software\Elipse Software\Elipse32\Options\DisableInternalClock with a value of 1 to the Registry Editor of Windows, or else start Elipse SCADA via command line using the option –disableInternalClock. Sgn (x) Returns the signal of x (-1 if negative, 0 if zero, 1 if positive). 246 Scripts User Manual Example: tag001 = Sgn(-123.98) // Returns -1 ShellExecute (strAction, strFile, strParams, strDir, nCmdShow) Runs a operation strAction for file strFile that has been specified. strAction can be one of the following commands: "edit", "explore", "find" (search), "open", "print", or "properties". strParam is a string that specifies the parameters that should be passed in the command call, or the file that will receive the action specified. strDir defines the standard directory. nCmdShow specifies how the application should be shown when open, as follows: 0 = hide window; 1 = show window; 2 = show window as minimized; 3 = show window as maximized. Example: 'Runs FTP application with specified commands saved 'on filename.txt, and hides the command window. ShellExecute("open", "ftp", "-s:filename.txt", "", 0) Sin (angle) Returns the sin of the specified angle. The angle is expressed in radians. Sleep (nSeconds) Makes a pause in the execution of the script during nSeconds (it is possible to specify a fraction, for example: Sleep (0.5)). The user interface will not answer while the pause is being executed. Processes running in the background in separate threads (I/O, network driver, video reception) will carry on their functioning, but the whole logics of the application (scripts) will be in pause. Sqrt (x) Returns the square root of x. Example: tag001 = Sqrt(81) // returns 9 StartSound (soundIndex [, frequency]) Plays the sound that is specified in soundIndex with the frequency specified in frequency (in milliseconds) until a StopSound command is called. soundIndex should be an integer between 0 and 5 (see the table of sounds available by consulting function PlaySound()). Minimum frequency is 100ms; if a smaller number is specified, the value of 100 will be assumed. Note that the frequency parameter assigns the rate of occurrence for playing the sound. Example: StartSound(2,2000) // plays the sound of exclamation at each 2 seconds Scripts 247 StopSound () Stops a sound that is playing, started by function StartSound(). StopWave () Stops the reproduction of a WAV file initiated by function PlayWave(). Str (value, size, precision) Converts an integer or real number into a string. The value parameter is the number to be converted, the parameters size and precision determine the size of precision of the string. When the value parameter is a string, it is first converted into a number, and then formatted according to parameters size and precision. Example: String = Str(30.95,6,2) // Returns " 30.95" StrZero (value, size, precision) Converts an integer or real number into a string, filling it with zeros on the left until the size that has been specified. The value parameter is the number to be converted, parameters size and precision determine the size of precision of the string. When the value parameter is a string, it is first converted into a number, and then formatted according to parameters size and precision. Example: String = StrZero(30.95,6,2) // Returns " 030.95" Tan (angle) Returns the tangent of the angle that has been specified. The angle is expressed in radians. WaitCursor(enable) Enables (enable=1) or disables (enable=0) the waiting slide wire (log glass). Example: WaitCursor (1) <some commands that take time> WaitCursor (0) WatchWindow() Opens a debugging window in Runtime module, which allows the viewing of values of the properties of an item that is selected in the application tree. WriteIni (strFile, strSection, strInput, value) Writes the value (numeric or string) in file .INI strFile. Parameters strSection and strInput specify the section and input of the respective file. 248 Scripts User Manual Note: If the file is a modified INI file, such transformations will not be immediately modified, for Windows copies a file in the memory. You can force updating by using parameter WriteIni (strFile,"","","") after reading the .INI file. The example below writes the following rows in MYAPP.INI: [General] Total = 1500 UserName = Admin Example: WriteIni("MYAPP.INI","General","Total",1500) WriteIni("MYAPP.INI","General","UserName","Admin") WriteToFile(filename, string [,mode]) Writes the string in the file. Returns 1 if well succeeded, or 0 if some error occurs. The mode parameter is optional and has the following specifications: MODE 0 1 2 3 DESCRIPTION (default) Creates the file if it doesn't exist, by placing the string at file's end. Fails if the file doesn't exist, by placing the string at file's end. Creates the file if it doesn't exist, by substituting the file by a new string. Fails if the file doesn't exist, by substituting the file by a new string. Example: WriteToFile("test.txt", "This row will be added to an existing file", 1) 19.5.2. Application Functions AddUser (strName, strDescription, strLogin, strPassword, nAccessLevel) Adds a new user to the list of application users. Returns 1 (one) if well succeeded, or 0 (zero) if not. Example: Application.AddUser ("João Machado", "Manager", "JoaoM", "1234", 0 ) DeleteUser (strLogin) Erases a user from the users list. Returns 1 (one) if well succeeded, or 0 (zero) if not. Examples: Scripts 249 Application.DeleteUser("JoaoM") Application.DeleteUser(strUserName) EditProperties() Opens a window that allows the edition of the Application properties. GetMaxX() Returns the width of the application window in pixels. GetMaxY() Returns the height of the application window in pixels. Login ([x] [, y] [,bEnableTitle] [,bAllowClose] [, customTitle]) Calls up a dialog box for the identification (login) of a user. Returns true (different from zero) if the user is successfully logged, or false (zero) if not. In case of error, no message or window will be shown. Optional parameters X and Y indicate the coordinates of the top left corner position of the login window. The bEnableTitle parameter enables (bEnableTitle = 1, default) or not (bEnableTitle = 0) the login window title. The parameter bAllowClose is a Boolean that indicates if the button that closes the window should appear (standard is 1, visible). Parameter customTitle allows the specification of a title for the window that is different from the standard. In case of error, the global attribute lastError is also refreshed: 0 (zero) if the login is cancelled by the user, or 1 (one) if the user or password are invalid. Example: IF Application.Login() SetPointScreen.Activate() ENDIF Logout() Runs the logout of a user of the application. Closes all screens having priority different from zero. Example: IF MessageBox("Do you want to logout?","Logout",4) == 6 Application.Logout( ) ENDIF MaximizeApp() Maximizes the application window. MinimizeApp() Minimizes the application window. 250 Scripts User Manual ReloadApp([strNewAppName]) Finalizes the execution of current application, reloads it from the disk, and restart it. Optional parameter strNewAppName allows the passage of the name of the other application to be restarted, instead of the current one. This function is not available in Demo (demonstration) mode of Elipse SCADA. RestoreApp() Restores the original size of the application window before it is maximized or minimized. ShutDownWindows(shutdownMode) Allows to restart or shut down the PC via script programming. shutdownMode parameter can be: 1 (shuts down the system normally), 2 (shuts down the system, forcing all processes to terminate), 3 (reboot the system normally) or 4 (reboot the system, forcing all processes to terminate). A forced shutdown or forced reboot means that all running programs (except Elipse SCADA) will be immediately closed, and it will not be possible to save any change. Example: // Normal programmed stop of Windows Application.ShutdownWindows(1) NOTE: When the application runs in Configuration mode, it simply stops the application. When the application runs in Runtime mode, the application stops and the PC is restarted. StopRunning() Finalizes current application. UserAdministration() Allows a user to modify his/her password. If the user is an administrator (access level 1), he/she will be able to create, modify and remove attributes from all users. 19.5.3. Tag Functions Common Functions EditProperties() Opens a window that allows the edition of Tag properties. Scripts 251 Matrix Tag Functions Avg (r1, c1, r2, c2) Returns the average of values in the rectangle defined by row1 (r1) column1 (c1) and row2 (r2) column2 (c2). Example: tagSum = tagMatriz.Avg(2,1,3,3) // returns the average of cells // (2,1), (2,2), (2,3), (3,1), (3,2), (3,3) ExchangeColumns (column1, column2) Changes the contents of two columns of a matrix. Example: // Changes the contents of columns 3 and 4 TagMTX1.ExchangeColumns(3,4) ExchangeRows (row1, row2) Changes the contents of two rows of a matrix. Example: // Changes the contents of rows 3 and 4 TagMTX1.ExchangeRows(3,4) GetCell (row, column) Returns the value (numeric or string) of a given cell of the matrix specified by row and column. Example: // Returns the value of row 3, column 5 cell TagMTX1.GetCell(3,5) MapCellsToTags(startColumn, startRow, endColumn, endRow) Maps information associated with properties or tags. Example: TagMTX1.MapCellsToTags(1,1,5,5) OrderBy(topRow, bottomRow, col, ascendingSort) Orders the rows of a matrix between the initial row, topRow, and the final one, bottomRow through the col column, in ascendant way (if ascendingSort = 1) or descendent (if ascendingSort = 0). Example: // Orders rows 1 to 8 of matrix in ascending form, // according to values of column 1 TagMTX1.OrderBy(1,8,1,1) 252 Scripts User Manual SetCell (row, column, value) Attributes a value to a given cell of the matrix, specified by a given row and column. Example: // Attributes value 9 to the cell of row 3, column 5 TagMTX1.SetCell(3,5,9) Sum (r1, c1, r2, c2) Returns the sum of values contained in the rectangle defined by row1 (r1) column1 (c1) and row2 (r2) column2 (c2). Example: // Sums the contents of cells // (2,1), (2,2), (2,3), (2,4), (3,1), (3,2), (3,3), (3,4) TagMTX1.Sum(2,1,3,4) Chrono Tag Functions Reset() Zeroes the accumulator. Block Tag Functions GetAt(index) Takes the value stored in a Block Element. The index attribute indicates the index of the block tag element. Attention: this function cannot be used in limited versions (Lite versions) of Elipse SCADA. Example: // Sum of all block elements DIM index, sum sum = 0 FOR index = 0 TO Block1.size-1 sum += Block1.GetAt(index) NEXT Read() Reads the PLC block immediately, returning 1 if the reading succeeded and 0 if the reading failed. For more information about PLC blocks, check the Block Tag item on the chapter about Tags on this manual. Attention: This is a synchronous function, it waits until the reading operation is finished before returning the execution to the next instruction, so it can seriously degrade application performance; therefore, you should be careful while using it, and use it only when it is absolutely necessary. Scripts 253 SetAt (index, value) Sets the value of a Block Element. Returns true if the operation is well succeeded; if not, returns false. The index attribute indicates the index of the block tag element, and the value attribute is the value to be sent to the element. Attention: this function cannot be used in limited versions (Lite versions) of Elipse SCADA. Example: // This example adjusts all block elements to zero DIM index FOR index = 0 TO Block1.size-1 Block1.SetAt(index, 0) NEXT SetSize (size) Adjusts the number of block elements, which is indicated by the size parameter. Block elements will be added if the block grows, or removed if the block diminishes. Write () Writes the current block value to the PLC and returns 1 if the writing is successful, and 0 on failure. For more information on I/O server writing check the Block Tag item on the chapter about Tags on this manual. Block Elements Functions Read() Reads an element of a PLC tag block. Returns 1 (one) if the reading was successful, and 0 (zero) on failure. Attention: this is a synchronous function, it waits until the operation finishes before returning to the next instruction. It can seriously degrade the performance of the application; therefore it should be only used when absolutely necessary. Write() It immediately writes the current block element valueto the PLC, returning 1 (one) if it is successful, or 0 (zero) on failure. For more information on I/O services writing, check the Block Element item on the chapter about Tags on this manual. Attention: this is a synchronous function; it waits until the operation finishes before returning to the next instruction. It can seriously degrade application performance; therefore, it should be used when absolutely necessary. WriteEx(value) Writes the value for the I/O driver, by specifying information for the tag. This function is used in order to specify information on tag scanning. 254 Scripts User Manual OPC Tag Functions Read() Reads the value of the OPC server. Write() Writes the value in the tag for the OPC server. PLC Tag Functions Read() Immediately reads the PLC Tag, returning 1 if successful, and 0 on failure. For more information on I/O services reading, check the PLC Tag item on the chapter about Tags on this manual. Attention: this is a synchronous function; it waits until the reading operation finishes before returning to the next instruction. It can seriously degrade the performance of the application; therefore, it should be used when absolutely necessary. Write() It immediately writes the current value of the Tag to the PLC. Returns 1 if writing is successful, and 0 on failure. For more information on I/O driver writing, check the PLC Tag item on the chapter about Tags on this manual. Attention: this is a synchronous function, it waits until the reading operation finishes before returning to the next instruction. It can seriously degrade the performance of the application; therefore, it should be used when absolutely necessary. WriteEx(value[,timeStamp) Writes the value directly into the I/O, without attributing it to the PLC tag. This function uses the Scaling defined in the PLC tag. The optional numeric parameter timeStamp allows to force a time stamp for the writing. Example: Block1.elm000.WriteEx(12) 19.5.4. Screen Functions Activate() Shows a screen by giving it the focus. Scripts 255 EditProperties() Opens a window that allows the edition of Screen properties. GetMouseX() Returns the current X coordinate of mouse. GetMouseY() Returns the current Y coordinate of mouse. Hide() Hides (closes) a screen. SendTab (nTabs) Sends characters [Tab] to the application in order to change the keyboard focus between the screen objects. Positive values of nTabs simulate the [Tab] key, negative values simulate the combination of [Shift]+[Tab] keys. Example: Screen1.SendTab(4) Show() Shows a screen. The screen doesn't receive focus when shown. 19.5.5. Screen Objects Functions Common Functions BringToFront() Places the object in the frontal part of the screen (in front of the remaining objects). EditProperties() Opens a window that allows the edition of object's properties. HasFocus() Returns true (different from zero) if the object has the keyboard focus, or false (zero) if not. Example: // Changes the Button color if having the keyboard focus IF Button.HasFocus() Button.foregroundColor = RGB(255,255,0) ENDIF 256 Scripts User Manual HasMouseCapture() Returns true (different from zero) if the object has the mouse as captured, or false (zero) if not. Example: Button.SetMouseCapture() tag1 = Button.HasMouseCapture() // returns 1 ReleaseMouseCapture() tag1 = Button.HasMouseCapture() // returns 0 IsMouseInside() Returns true (different from zero) if the mouse is over the object, or false (zero) if not. Example: // Changes the Button color if having the mouse over it IF Button.IsMouseInside( ) Button.foregroundColor = RGB(255,255,0) ENDIF MoveTo(x,y) Moves an object to coordinates x and y that are specified. Example: // In this example, when the mouse passes over the object, // it is moved to the top left corner of the screen. IF Quadrado.IsMouseInside() Quadrado.MoveTo(0,0) ENDIF SendToBack() Places the object in the last plan of the screen (behind the remaining objects). SetFocus() Defines the keyboard focus for the object. SetMouseCapture() Captures the mouse for the object that calls the function. All mouse messages will be directed to this object until global function ReleaseMouseCapture( ) is called. SetTag(strTagName) Associates a new Tag (strTagName) to the object. Returns true (different from zero) if the Tag is successfully added, or false (zero) if not. If strTagName is an empty string (" "), then the associated Tag is removed from the object. This function Scripts 257 can only be used with objects that have just a single Tag, i.e., it is not valid for the trend and Bar objects. Alarm Objects Functions AckSelection() Sends a recognition sign (ACK) to all alarm messages selected in the object. Returns the number of messages that are recognized. Example: DIM nAcks nAcks = Alarm1.AckSelection() IF nAcks > 0 MessageBox(Str(nAcks) + " message(s) acknowledged!") Else MessageBox("No messages acknowledged!") ENDIF GetColorZoneInfo(strField, nZone) Returns information about a zone of non-recognized alarms. nZone is the number of zone (0, 1 or 2). strField can be one of the following fields: MODE CheckValue ForeColor BackColor InitialValue SecondValue DESCRIPTION Returns 0 if the zone is disabled, 1 if the zone is allowed Returns the color of first plan (text) of the zone Returns the background color of the zone Returns the lowest priority for the zone Returns the highest priority for the zone Examples: // Adjusts the color of zone 0 to white if it is enabled IF Alarm.GetColorZoneInfo("CheckValue", 0) Alarm.SetColorZoneInfo("ForeColor", 0, RGB(255,255,255)) ENDIF SetColorZoneInfo(strField, nZone, newValue) Modifies the value of a field of a zone of non-recognized alarms. nZone and strField have the same meaning that in GetColorZoneInfo(). newValue is the new value to be attributed to the field. AVI Objects Functions End() Moves the position of the film to the end. 258 Scripts User Manual Home() Moves the position of the film to the beginning. OpenAVI() Opens an AVI file without initiating reproduction. PauseAVI() Pauses the film in current position. PlayAVI([nFrom [, nTo]]) Opens an AVI file, and starts playing it from the beginning. If nFrom is specified, the beginning will be from frame nFrom. If nTo is specified, the reproduction will be up to frame nTo. If the AVI is configured to play in reverse, these parameters will be ignored, and the film is entirely played. If the timeFormat attribute of AVI is 1, then parameters nFrom and nTo will be interpreted as milliseconds. Step(nSteps) Moves the position of film nSteps frames on. If nSteps is negative, the position will be moved back. The film will be paused after calling the function. If the timeFormat attribute of AVI is 1, then parameter nSteps will be interpreted as milliseconds. StopAVI() Stops reproducing the film, and closes the file. Bar Objects Functions The parameter barIndex used in functions below is the number that identifies the bar in the bar graph, being the first one identified with number zero, the second, with one, the third, two, and so forth. CheckLoLoLimit(barIndex, bEnable) CheckLowLimit(barIndex, bEnable) CheckHighLimit(barIndex, bEnable) CheckHiHiLimit(barIndex, bEnable) These functions enable or disable a zone in a Bar Gauge. Example: // Enables zone HiHi // if tag1.HiHi.verify if true. Bar1.CheckHiHiLimit(2, tag1.HiHi.verify) Scripts 259 GetCheckLoLoLimit(barIndex) GetCheckLowLimit(barIndex) GetCheckHighLimit(barIndex) GetCheckHiHiLimit(barIndex) These functions return 1 if the corresponding zone is enabled in a Bar Gauge. GetLoLoColor(barIndex) GetLowColor(barIndex) GetNormalColor(barIndex) GetHighColor(barIndex) GetHiHiColor(barIndex) Returns the color of the specific zone in a Bar Gauge. GetLoLoLimit(index) GetLowLimit(index) GetHighLimit(index) GetHiHiLimit(index) Returns the limit of the specific zone in a Bar Gauge. SetIndexBarColor(barIndex, color) Adjusts the color of a normal bar graph. For a Bar Gauge, a different setting is done. Example: // This example changes the color of bars 1 to 4 into red // in the bar graph Bar1. DIM index FOR index = 1 to 4 Bar1.SetIndexBarColor(index, RGB(255,0,0) ) NEXT 260 Scripts User Manual SetLoLoColor( barIndex, color) SetLowColor( barIndex, color) SetNormalColor( barIndex, color) SetHighColor( barIndex, color) SetHiHiColor( barIndex, color) Adjusts the color of a specific zone in a Bar Gauge. SetLoLoLimit( barIindex, value) SetLowLimit( barIndex, value) SetHighLimit( barIndex, value) SetHiHiLimit( barIndex, value) Adjusts the limit of a specific zone in a Bar Gauge. Browser Functions GetField(fieldName) Returns the value of the field indicated by fieldName in the current row (pointed as curSel). If called in script OnDrawRow(), returns the field value in the row to be drawn. SetLabel(indexColumn, title) Allows you to change a column title in runtime. The parameter indexColumn indicates column number, starting at 0. Column number is given according to the order on the tab Database, even for disabled columns. The parameter title indicates the new text to be configured for the column. SetRecordRange(firstRecNo, lastRecNo) Defines an interval of records to be loaded in the Browser. SetTempRowColor(color) Allows adjusting the background color of the row to be drawn. SetTempRowTextColor(color) Allows adjusting the text color of the row to be drawn. RefreshQuery() Refreshes the Browser query, by renewing the values of rows that are shown. Scripts 261 Text Object Functions SetZoneText(iZone, Text) Changes the text of zone iZone into Text. If iZone is 0, the text of all zones is modified. Trend Object Functions AddData(time) Adds a new value to all trend pens. BreakPen() Breaks the pen, by making the new additional data not to be connected with the points that were already in the pen. ClearData() Erases the trend data or only those of a trend pen. Example: // Erases all data from Fornos trend Fornos.ClearData() // Erases only data of Temp1pen of Fornos trend Fornos.Temp1.ClearData() LoadHistoricData() Loads data of the historic related to the trend, in accordance with the query that is specified. VideoIn Object Functions Pause () Pauses the video. Play () Plays the video. Snapshot (strFile, nType) Saves the current video frame to a graphical image file strFile. strFile is the name and path of the graphical file. The filename must have the extension included, the function does not add it. nType is the file type, as follows: 262 Scripts User Manual TYPE 0 1 2 3 DESCRIPTION RAW file (just saves the frame to disk, with no conversion) BMP format GIF format (256-color palette). JPEG format Stop () Stops the video. 19.5.6. Alarm Functions AckAllAlarms([tagName]) Acknowledge all alarms belonging to tagName. If tagName is not specified, all alarms of all alarm tags will be acknowledged. Example: // Acknowledge all messages for tag Heat1 Alarms.AckAllAlarms(Heat1) // Acknowledge everything Alarms.AckAllAlarms() Scripts 263 ClearHistoricalData() Erases all messages of alarms, also cleaning the log file of alarms. GetInfo(strFieldName[, alarmHandle]) Returns information about a message of alarms. If alarmHandle is not specified, the function returns information about the last message that has been created in the alarms group. Parameter strFieldName is the name of the field whose content we want to know. Possible values are: FIELD Comment DateTime Event Limit Priority State Tagname Type Value Handle User DESCRIPTION Returns a string with the “Comment” of the message. Returns the timestamp of the alarm as a “datetime” value (number of seconds since 01.01.1970). Returns the type of event, as: “ALM” for message of alarm, and “RTN” for return messages. Returns an integer with the limit of the alarm. Returns an integer with the priority of the message of alarm. Returns a string with the state of the alarm, as: “ACK” for recognized, and “UNACK” for non-recognized. Returns the name of the tag associated to the message of alarm. Returns a string with the alarm type (“HIHI”, “HIGH”, “LOW”, “LOLO”, “RET”) Returns the alarm value. Returns a “handle” of the message of alarm. This “handle” can be stored and used in order to further recover information about the alarm. Returns the user that is responsible for the message of alarm. It is possible to use abbreviations for field names having at least two characters. In other words, field “Value” can be abbreviated by “VA”, field “Priority” can be abbreviated by “PR”, and so forth. Example: // Alarms.OnAlarm() script // stores the handle of alarm of messages // of tags that start with "TEMP" IF Left(Alarms.GetInfo("Tagname"), 4) == "TEMP" lastHandle = Alarms.GetInfo("Handle") ENDIF GetNextActiveAlarmHandle( lastHandle ) Returns the handle of last message of active alarms. Messages of active alarms are shown in the Summarized Alarm. lastHandle can be: -1 for searching the first active 264 Scripts User Manual alarm handle, or the number of previous handle returned by function GetNextActiveAlarmHandle. If there are no more messages of active alarms, the function returns -1. The handle that is returned can be used in function Alarms.GetInfo(). Example: // counts the number of alarm messages // of tags that start with "TEMP" // and shows it in a MessageBox DIM hAlarm, strTagName, nTotal nTotal = 0 hAlarm = Alarms.GetNextActiveAlarmHandle(-1) WHILE hAlarm <> -1 strTagName = Alarms.GetInfo("TA", hAlarm) IF Left(strTagName, 4) == "TEMP" nTotal = nTotal + 1 ENDIF hAlarm = Alarms.GetNextActiveAlarmHandle(hAlarm) WEND MessageBox("There are " + Str(nTotal) + " active alarm!") RemoveFromSummary(messageID) Removes from the Summarized Alarm a message of alarm created by function SimulateAlarm with ID messageID. SimulateAlarm(id, timeStamp, strTagName, strComment, nValue, nLimit, nPriority, strType, strEvent, strState) Creates a new message of alarm. Returns 0 if failing, and 1 if successful. The parameters are: Scripts 265 FIELD id timeStamp Tagname Comment Value Limit Priority Type Event State DESCRIPTION Identifier of alarm message, if the value is 0, then this message will be only written in the alarm record. If you give it a value that is different from 0, the message will be written in the alarm record, and will be added to the alarm summary. You should give the same value of messageID to function RemoveFromSummary in order to remove the summary message; Time of the alarm message, you can use GetTime() to start the current time of the system. String that contains the tag name. In case there is no tag, this field is purely informative. String that contains the comment message of the alarm. Value of the alarm. Determines the maximum limit that is exceeded by the alarm. Priority level of the alarm, which can be from 1 up to 999 Type of alarm message, which can be: “RET”, “HIHI”, “HIGH”, “LOLO”, “LOW” or “” Type of event: “EVT”, “ACK”, “ALM”, “RTN” or “” Determines the state of recognition of the alarm: “ACK”, “UNACK” or “” Example: // Records an event in the log. The message doesn't go // to the Summarized Alarm because the ID is 0. Alarms.SimulateAlarm(0, GetTime(),_ "System", "Comm Error",0, 0, 1, "", "EVT", "UNACK") // This example simulates a High alarm Alarms.SimulateAlarm(230, GetTime(), "pressure1",_ "Pressure 1 HIGH", 140, 120, 10, "HIGH", "ALM", "UNACK") // Next row removes the simulated message from Summarized // and records a false alarm return message in the // record of alarms Alarms.RemoveFromSummary(230) Alarms.SimulateAlarm(0, GetTime(), "pressure1",_ "Pressure normal",110, 120, 10, "RTN", "ALM", "ACK" 19.5.7. Recipe Functions ChooseRecipe(title, selRecord, x, y, width, height) Opens a dialog that allows the selection of a recipe from a list, by returning its index to the file. The parameter title is a string to be shown in the title bar of the dialog (place " " for a window without title), selRecord is the index of the recipe to be 266 Scripts User Manual selected when the dialog is open (place -1 in order not to select any), x, y, width and height are optional, and indicate the position and size of the window; if not informed, the dialog is open in the center of the screen or in the last position in which it has been open, and a border allows its size to be modified. Example: // tagRecipe will receive the index of the recipe that // has been chosen. The dialog will be open in the center // of the screen, in a window that can be re-dimensioned, // having the title “List of Recipes”. tagRecipe = Recipes.ChooseRecipe("List of recipes", 1) In CE, window’s position and dimension are fixed. CreateNewRecord(description) Creates a new record in the Recipes file in accordance with the description parameter, returning the record index to the file. CopyRecord(nRecord) Copies a selected record with the same values of the original record, which are specified in nRecord. This function returns the number of new records or 0 if failing. Example: // Copying a recipe DIM nRecord nRecord = Recipe1.ChooseRecipe("Recipes", -1) IF nRecord > 0 Recipe1.CopyRecord(nRecord) ENDIF DeleteRecipe(record) Erases the record having record number in a recipe. Returns true (different from zero) if the operation is successful, or false (zero) if not. EditProperties() Opens a window that allows the edition of the Recipe properties. EditRecipe() Opens a dialog box to edit a Recipe file. FindRecipe(description) Searches a record of a recipe having the description string in its description. Returns the record number or zero if not finding any. Scripts 267 GetRecCount() Returns the number of records of the recipes file. GetRecDescription(record) Returns the description of a record to the Recipes file. The record parameter should be between 1 <= record <= GetRecCount(). LoadRecipe(record) Loads a recipe record of the Recipes file in the respective listed tags. The record parameter should be between 1 <= record <= GetRecCount(). The function returns True if the recipe was loaded successfully; False, if an error occurred. Example: // Loads the fourth record of Recipes Recipes.LoadRecipe(4) SaveRecipe(record) Saves the record. The function returns True if the recipe was recorded successfully; False, if an error occurred. SetRecDescription(record, description) Changes into description the record description in the Recipes file. 19.5.8. Historic Functions Analysis (x, y [, width [, height]]) Opens the HAnalysis window and generate the chart. The parameters x and y specify the XY position of the window. The parameter width specifies the width of the window. The parameter height specifies the height of the window. Average (src, type, startTime [, endTime]) Returns the historic data set’s average. The parameter src specifies the tag that is saved in the historic. The parameter type specifies the time interval to be used in the average calculation, as follows: 0 = year; 1 = month; 2 = week; 3 = day; 4 = time; 5 = minute. The parameter startTime specifies the initial time and endTime (optional) specifies the final time. If endTime is specified, type is ignored. Close() Closes a historic file. Edit() Edits the current record without writing it in disk. In order to write it, use function Refresh(). 268 Scripts User Manual EditProperties() Opens a window that allows the edition of historic. FindTime(time) Returns the index of the first record that has date and hour bigger or equal to the one that is specified in time. FinishBatchProcess() Finishes a historic of batch type. GetFirstRec() Returns the number of the first record of the historic file. GetLastRec() Returns the number of the last record of the historic file. GetRecCount() Returns the total number of records of the historic file. GetRecno() Returns the current position of the pointer for the historic file. GoTo(recno) Moves the pointer of records from the historic file to the recno index record without reading the record. IsBOF() Verifies if the pointer of records points out to the beginning of the historic file. Returns true (different from zero) if the pointer is in the beginning, or false (zero) if not. IsEOF() Verifies if the pointer of records points out to the end of the historic file. Returns true (different from zero) if the pointer is in the end, or false (zero) if not. Move(n) Moves the pointer of records of the historic file n records onwards (positive numbers) or backwards (negative numbers). The record is read, and its values loaded into the respective historic fields. MoveFirst() Moves the pointer of records of the historic file to the first record. The record is read, and its values are loaded into the respective historic fields. Scripts 269 MoveLast() Moves the pointer of records of the historic file to the last record. The record is read, and its values loaded into the respective historic fields. MoveNext() Moves the pointer of records of the historic file to next record. The record is read, and its values loaded into the respective historic fields. MovePrev() Moves the pointer of records of the historic file to the previous record. The record is read, and its values loaded into the respective historic fields. Open() Opens a historic file. RestartLastBatch() Restarts the last batch. SPC() Runs the analysis of SPC. StartBatchProcess() Initiates a historic in batch. Refresh() Writes current record. Update() Commits the current record. WriteRecord() Writes a record in the historic file. 19.5.9. HAnalysis Functions Analysis (x, y [, width [, height]]) Opens the HAnalysis window and generate the chart. The parameters x and y specify the XY position of the window. The parameter width specifies the width of the window. The parameter height specifies the height of the window. CloseAnalysis() Closes the window of HAnalysis. 270 Scripts User Manual RequeryAnalysis() Reapplies the query over the data file of HAnalysis, by repeating the loading of data in the window of analysis. SPC() Runs the SPC (Statistical Process Control) over the data file of HAnalysis. 19.5.10. SPC Functions Recalc() Recalculates all SPC data. This function, together with SetDatField(), allows the automatic calculation of SPC without having to open the windows of setting and graph. SetDatField(datField) Adjusts the field name of the historic file that will be used in the calculations of SPC. 19.5.11. Report Functions Common Functions EditProperties() Opens a window that allows the edition of report properties. LoadCfg(fileName) Loads the printer setting, margins and fonts of the report of a file in disk saved by function SaveCfg(). Print(bShowErrorMessages,[strHeaderBmp],[strFooterBmp], [bStretchHeader], [bStretchFooter]) Prints the report according to the specified setting. It returns True (different from zero) if the Report is successfully printed; otherwise, it returns False (zero). The parameter bShowErrorMessages indicates if the command will show error messages (1), or run in silent mode (0). The optional parameters strHeaderBmp and strFooterBmp indicate the filenames with the images to be included in the header and in the footer, respectively. On their turn, the optional parameters bStretchHeader and bStretchFooter enable header’s and footer’s stretch. Scripts 271 SaveCfg(fileName) Saves the printer setting, margins and fonts of the report in a file; SetupPrinter() Opens the window of printer setup. Text Report AddFilter (field, valueLow, valueHigh) Filters the value of a field. The field parameter is a string that specifies the name of the numeric field to be filtered. Parameters valueLow and valueHigh specify an interval of values for the search. Records that have values outside this interval will be excluded from the report. It is advisable to set up the filter before printing, and remove it after. More than a field can be filtered, and only the records satisfying all filters will be included in the report. Example: TextRep1.AddFilter(“code”, 0, 23) PrintToFile (fileName, [bPrintHeader], [separator], [bProgressDialog], [bPlaceQuotes]) Prints data of a Historic or Alarms file in a text file specified by the name in parameter fileName. Parameter bPrintHeader enables (1) or disables (0) the header printing (this parameter is optional, and the default value is 0). When you select a specific Batch to be printed with parameter bPrintHeader as 1, and attribute printHeader of Report as 1, the function will also print the batch header data. The parameter separator is a string containing the character that will be used to separate the fields (it is optional, and the default value is " ", i.e., a blank space). Returns true (different from zero) if the Report is successfully printed, or false (zero) if not. No header is printed. Parameter bProgressDialog enables (1) or disables (0) the exhibition of a progress bar while the report is printed (this parameter is optional and the default value is 0). If a separator character is used, the parameter bPlaceQuotes indicates that values from string or date/time type columns will be surrounded by quotes (bPlaceQuotes = 1). If parameter is 0, the function will not place quotes. Example: Relatorio.PrintToFile ("turtle.dat", 1, "-", 1) RemoveAllFilters() Removes the filters of all fields in the report. RemoveFilter(field) Removes a filter of a field. 272 Scripts User Manual 19.5.12. Query Functions FindTime(time, firstReg, lastReg) Returns the number of the first record between firstReg and lastReg having date and hour bigger or equal to time. If there are no records in the interval specified by the date that is bigger or equal to time, the function returns -1. Example: Query1.FindTime(MakeTime(2,3,1995,13,45,30), 20, 50) ReloadStructure() Forces the query object to reload the list of fields. This will be required if you change the specification of font for the query and the structure of the specification is different from the previous field. Example: ReportTxt.Query.filename = "C:\Data\MON12.DAT" ReportTxt.Query.ReloadStructure() 19.5.13. Plotter Functions SaveBitmap(strFileName, nWidth, nHeight, nFontScaling) Saves the chart to a bitmap file (.BMP). The parameter strFileName specifies the name (and path) of the bitmap file. The parameters nWidth and nHeight specify the width and height of the picture, respectively. nFontScaling specifies the font scale of bitmap text, as follows: fontSize * (nFontScaling/1000). If zero, the font size is not modified. Example: Trend1.Plotter.SaveBitmap("C:\SNAPSHOT.BMP", 320, 200, 0) ShowDate(bShow) Shows the date in the bottom ruler of the graph when parameter bShow is equal to 1. If bShow is equal to 0, it doesn't show the date. TimeInHAxis() Determines that the X-axis in a XY graph expresses time. TimeInVAxis() Determines that the Y-axis in a XY graph expresses time. Scripts 273 19.5.14. Drivers Functions Common Functions EditProperties() Opens a window that allows the edition of driver properties. LoadCfg(fileName) Loads the driver settings from the file specified by fileName. SaveCfg(fileName) Saves driver settings in a file specified by fileName. Network Drivers Configure() Opens a dialog box for setting up the parameters of the network driver. StartDriver() Loads the network driver enabling remote communication. Returns true (different from zero) if the driver is successfully loaded, or false (zero) if not. StopDriver() Stops the network driver by disabling any remote communication. Always returns true (different from zero), indicating that the driver has been successfully stopped. PLC Drivers AddFilter(filter) Adds a communication filter to the Driver. The filter allows the disabling of reading or writing to PLC or Block Tags that have the same parameters that are specified in the filter. Example: // disables all communication // with N1 or B1=1 and N2 or B2 = 30 Driver1.AddFilter("1,30") // disables all readings with N4 or B4 = 40 Driver1.AddFilter("R,,,40") filter is a string composed of 4 numbers separated by commas, corresponding to parameters N1/B1, N2/B2, N3/B3, N4/B4. A letter can precede the first parameter, as follows: "R" disables readings "W" disables writings 274 Scripts User Manual “B" disables Block Tags "T" disables PLC Tags If the prefix characters are not specified, the whole option should enable reading and writing for PLC and Block tags. The function returns 1 if the filter is successfully added, or 0 if the filter string is invalid. The filters are cumulative; if you add the same filter for three times, it has to be three times removed, by using function RemoveFilter() GetErrorInfo(param) Returns information about last error; param defines what information will be returned. If param is 0, it returns the type of communication that has caused the error: 1 = reading of a PLC Tag; 2 = reading of a Block Tag; 3 = writing of a PLC Tag; 4 = writing of a PLC Block; If param is 1, 2, 3 or 4, it returns parameters N1 to N4 of PLC tag or B1 to B4 block tag that caused the error. Example: // Driver1.OnCommError() script // adds a filter to all tags of // N1/B1 of last error DIM strFilter strFilter = Str(Driver1.GetErrorInfo(1)) // avoid adding the same filter more than once // removes the filter that precedes this same PLC Driver1.RemoveFilter(strFilter) Driver1.AddFilter(strFilter) Reload() Reloads a driver from the disk. Doesn’t return any error, if fails. RemoveAllFilters() Removes all filters added by function AddFilter(). RemoveFilter(strFilter) Removes a filter of a driver added with AddFilter(). Returns true (different from zero) if the filter has been successfully removed, or false (zero) if it doesn't exist or is invalid. The parameter filter should be specified in the same way as in AddFilter(). Scripts 275 StartComm() Starts communication with driver. StopComm() Stops communication with the driver. 19.5.15. Database Functions AddRecord (bRefreshQuery) Adds a new record to the database. Returns TRUE (different from zero) if successfully added, or FALSE (zero) if any of the following errors occur: full disk, database is read only, a primary key having a value that already exists, or there is no modification done in the database. It is necessary to fill out all fields of the record before calling the function. Parameter bRefreshQuery indicates if the query should be refreshed after the additions of the record. If the parameter is 0 (zero), then the added record will be visible only after query updating. The standard value is 1 (one). Examples: Table1.ID = tag002 Table1.Valor = tag003 Table1.AddRecord(1) BeginTrans() Begins a transaction with the database. Returns true if the transaction begins, and false if failing or if the transactions that sustain the database are not located. Example: if (BD1.CanTransact()) BD1.BeginTrans() BD1.GotoRecord(0) while (not BD1.IsEOF()) BD1.DeleteRecord() BD1.MoveNext() wend BD1.CommitTrans() // begins a transaction // goes to the beginning // if it is not the end of file // erases a record // goes to next // even if BD1.EndTrans(1) ENDIF CanTransact() Returns true (different from zero) if the database is available for transactions, or false (zero) if not. Example: see it in BeginTrans(). 276 Scripts User Manual CloseConnection() Closes an ODBC connection. This operation releases the database for external operations, as for example a backup of the database that is being used by Elipse, or the change of some parameter of connection. CommitTrans() Ends a transaction by saving all new data. Example: see it in BeginTrans(). DeleteRecord() Erases the current record from the database. Returns TRUE (different from zero) if successfully removed, or FALSE (zero) if any of the following errors occur: the database is read only, the pointer of records is pointing out to the mark of beginning of file (BOF), the pointer of records is pointing out to the mark of end of file (EOF). This function erases all duplicated records, i.e., those that have the same data in case a single duplicated record is erased. Example: see the example in BeginTrans(). EditProperties() Opens a window that allows the edition of database properties. EditRecord() Edits the current record without writing it in disk. In order to write it, use function Refresh(). Both of these functions are obsolete, and are maintained to allow compatibility with previous versions of the software. In order to edit a record, currently, it is enough to modify the values of fields, once we are over them. EndTrans(n) Finishes a transaction in accordance with parameter n. If n is one (1), function CommitTrans() is called; if it is zero (0), function RollBack() is called. Example: see it in BeginTrans(). Find(strCondition [, bMoveFirst=0]) Searches the first record of condition strCondition. If bMoveFirst is 1, the search will depart from the first record; if bMoveFirst is 0 (option), the search will depart from current record. strCondition is a text expression used for finding the record (as a Where clause in an indication of SQL without the word Where). (Only in DAO.) GetConnectionString() Obtains the connection string used by the ODBC driver. Example: // Obtains the ODBC string of the BD1 connection strConnection = BD1.GetConnectionString() Scripts 277 GetEditMode() Returns the status of edition for current record. (Only in DAO.) It can be one of the following values: VALUE -1 0 1 2 DESCRIPTION The table is not connected (closed). No edition in progress. The record is being modified. The record is being added. GetLastError () Returns the last error message occurred during a transaction with the database. GetODBCParameter(strParam) Returns the value of parameter strParam of the string of ODBC connection. The string of connection is a sequence of parameters and values of parameter as in ODBC;DSN=C:\Data.DB;Timeout=500. Example: strDSN = Table1.GetODBCParameter(.DSN.) GetRecordNumber() Returns the record number in the database. The first record is number zero. GetTableName() Obtains the name of the database table. (Only in ODBC.) GetTotalNumberOfRecords() Returns the total number of records in the database according to the Query specified in function SQLQuery(). Example: // Returns the total number of records, // for it doesn't have a defined query. BD1.SQLQuery(" ", " ") TagRam = BD1.GetTotalNumberOfRecords() GotoRecord(n) Moves the pointer of records to record n, depending on the Query that has been specified. Returns true (different from zero) if the movement has been successful, or false (zero) if a mark of end of file EOF is found. Example: // goes to the 13th record, as the first // record always has index 0 (zero) Database1.GotoRecord(12) 278 Scripts User Manual IsBOF() Verifies if the pointer of records is in the beginning of the file. Returns true (different from zero) if it is, or false (zero) if it is not. IsEOF() Verifies if the pointer of records is in the end of file. Returns true (different from zero) if it is, or false (zero) if it is not. Example: see it in BeginTrans(). Locate(strCondition [, bMoveFirst]) Looks for the next record fulfilling the expression informed in parameter string strCondition. Parameter bMoveFirst is a Boolean value that defines if the search should start from the first record of the database (bMoveFirst = 1) or from current record (bMoveFirst = 0). Example: // Browses the first record fulfilling the expression // from current record Database1.Locate("temp == tag001 * tag002", 0) Move(n) Moves the database pointer n records onwards relative to current position of pointer. Returns true (different from zero) if the movement has been successful, or false (zero) if a mark of end of file EOF is found. Example: // Positions the pointer on the 11th record, as // the first record always has index 0 (zero) Database1.GotoRecord(10) // Positions the pointer in next record (12th record) Database1.Move(1) // Returns two records (10th record) Database1.Move(-2) MoveFirst() Moves the pointer of records to the first record of the database. Returns true (different from zero) if the movement has been successful, or false (zero) if not. MoveLast() Moves the pointer of records to the last record of the database. Returns true (different from zero) if the movement has been successful, or false (zero) if not. MoveNext() Moves the pointer of records to next record. Returns true (different from zero) if the movement has been successful, or false (zero) if a mark of end of file EOF is found. Scripts 279 MovePrev() Moves the pointer of records to the previous record. Returns true (different from zero) if the movement has been successful, or false (zero) if a mark of beginning of file EOF is found. OpenConnection() Reopens an ODBC connection. It should be used only after a CloseConnection() function has already been used, as databases used in Elipse SCADA are open together with the application. Returns true (different from zero) if the operation is successful, or false (zero) if not. Requery() Refreshes the Database. It is useful when more than one user is using the DB. This function is not necessary when you are using the Refresh(1) function, as this function in itself already refreshes the DB. RollBack() Undoes all actions accomplished during a transaction. Returns true (different from zero) if the actions have been successfully undone, or false (zero) if not. SetODBCParameter(param, strValue) Changes a parameter within ODBC connection string. Example: // changes the ODBC connection string to use the // Access data file "suporte.mdb" located // in the root of disk C: Database1.CloseConnection() Database1.SetODBCParameter("DBQ", "C:\suporte.mdb") Database1.OpenConnection() SetTableName(tableName) Defines a new name for current table. Example: Table1.CloseConnection() Table1.SetTableName("Production") Table1.OpenConnection() SQLQuery(Where, OrderBy) Defines a filter to be used in the query to the database according to parameters Where and OrderBy. Where: Defines a filter to be used in the query to the database according to the fields and options of the user. In order to use this parameter, you need to specify a value or expression to be used for searching a specific field. When there is no filter that is specific for parameter Where, you should enter an empty string. 280 Scripts User Manual Operators accepted in expressions in this parameter are: =, <> (different), <, >, <=, >=, !< (not lesser than), !> (not bigger than), AND, OR, NOT, LIKE (similar or equal), IN, BETWEEN, IS NULL, IS NOT NULL. OrderBy: Defines an order for searching the database in accordance with the field that is specified, which can be ascending (default) or descending. This field is mandatory, but can be an empty string. The function returns the amount of records of the query. Examples: // Searches all records having "Maria" in the name field, // in ascending order. HowMany receives the amount of records // of the query HowMany = Database1.SQLQuery("name = 'Maria'","name") // No filter. Note that the quotation marks in the string // can be double or simple. Database1.SQLQuery(" ") // Searches all records having in the // name field a string bigger than 'Maria', and in the // salary field a number that is bigger than 1000. Both filters // should be satisfied. Database1.SQLQuery("name > 'Maria' AND salary > 1000") // You can use the value of a Tag to create // a string by using the concatenation. Database1.SQLQuery("name = '"+TagRam1+"'") // Searches all records having in the // name field, a string beginning with 'ma'. //For exemple: Maria, Mario, Manoela, Marcelo… Database1.SQLQuery("name LIKE 'ma%'") // Searches all records having in the // sales field a number between 40000 and 100000. Database1.SQLQuery("sales BETWEEN 40000 AND 100000") // Searches all records having in the // optional field a blank space, ordered in // descending order by the name field. Database1.SQLQuery("optional IS NULL","name DESC") // Makes the query for date Scripts 281 Database1.SQLQuery("Date = CDate('10/09/2006')") NOTE: this last example is valid for an MDB database. Other databases may not accept this query format. Update(bQuery) Updates changes made in register. bQuery parameter determines whether a query should be performed after register update. If the parameter is 1, query is performed and registers are updated; if parameter is 0, the added registers only are visible after query update. This function is obsolete and was kept to allow compatibility with previous versions of software. Currently, the recorder in the database are made automatically, when necessary. 19.5.16. Remote Application Functions Configure() Opens a driver dialog box for setting up the parameters of the Remote Application. Connect() Establishes connection with the Remote Application. Returns true (different from zero) if the connection has been successful, or false (zero) if not. Disconnect() Finishes the connection with the Remote Application. Returns true (different from zero) if the connection has been successfully closed, or false (zero) if not. EditProperties() Opens a window that allows to edit Remote Application properties. LoadCfg(fileName) Loads from a file that is specified by fileName, the set up of the Remote Application. SaveCfg(fileName) Saves the set up of the Remote Application in a file that is specified by fileName. Remote File Functions Cancel() Aborts a transfer of file that is being executed. GetFile(serverFile, clientFile) Obtains a server file with name serverFile and takes a copy of it into a local file having the name of clientFile. 282 Scripts User Manual 19.5.17. OPC Server Functions Connect() Starts the connection with OPC server. Disconnect() Stops the connection with OPC server. NOTE: To check the OPC server connection status, you may use the OPCServer property ServerStatus (see “OPCServer Properties” section). EditProperties() Opens a window that allows to edit OPCServer properties. 19.6. Attributes Attributes are data associated to an object that determine its characteristics and the way in which it will behave. Normally, there is a window in which you can modify the attributes of an object. Each attribute has an associated type that is represented by its icon as follows: Numeric attribute String attribute (text) Boolean attribute (true/false) System attribute, internally used by Elipse SCADA. Next sections will describe the following attributes: Global Attributes Recipe Attributes Application Historic Attributes Tags Attributes Report Attributes Screen Attributes Driver Attributes Alarm Attributes Databases Attributes Users Attribute Remote Application Attribute Watcher Attribute Steeplechase Attribute OPCServer Attribute Scripts 283 19.6.1. Global Manager Attributes These attributes are Global attributes of Elipse SCADA and can be modified from any point of the application. But, one should be careful when modifying any of these attributes, as they can change the functionality of a Script or an object. currentTime: an integer without sign (read only) containing present date and hour of the system to be refreshed in expressions or displays with Date/Time format. It is refreshed once at each second. It should not be used as time meter in scripts because it is not refreshed during the execution of scripts. In this case, use function GetTime(), which is refreshed whenever called; day: an integer containing the day of system; dayOfWeek: an unsigned integer from 1 to 7 (read only) containing the number of current week day, as follows: 1 - Sunday, 2 - Monday, 3 - Tuesday, 4 Wednesday, 5 - Thursday, 6 - Friday, 7 - Saturday; description: a string containing a brief description of the global object; hour: an integer containing the system hour; lastError: an integer without sign from 0 to 65535 (read only) containing the code of last error occurred in operations with files or directories; lastErrorStr: a string containing the description of last error occurred in operations with files or directories. minute: an integer containing the minutes of system; month: an integer containing the month of system; name: a string containing the name of the global object, used as identifier for it; performanceCount : Indicates the application performance. Lower values indicate more processing load (performance ranges between 0 and 999). second: an integer containing the seconds of system; year: an integer containing the year of system; 19.6.2. Application Attributes activeAlarms: Integer, indicates the amount of active alarms in aplication. allowClose : Boolean attribute (read only) determining that the application can be closed by other means different from function StopRunning() as for example a mouse click on the Close button, or command Shutdown of Windows. Returns true (different from zero) if the button is enabled, or false (zero) if not. 284 Scripts User Manual centerWindow : a Boolean attribute used to enable the main application window to start execution as centered. Returns true (non zero) if center is enabled or false (zero) if it isn’t. closeButton : a Boolean attribute (read only) determining that the close button is enabled in the application window. Returns true (different from zero) if the button is enabled, or false (zero) if not. description: a string containing a brief description of the application; exclusive : a Boolean attribute determining that Elipse SCADA has exclusivity over the use of the CPU. Returns true (different from zero) if Elipse SCADA is exclusive, or false (zero) if not. height: an integer without sign (from 0 to 65535) determining the height of the Application window in pixels. It is used together with the width attribute to define the size of the window. This attribute should be defined in accordance with the resolution used in Windows to obtain a window without scroll bar. For instance, if you are using a resolution of 640x480 (VGA), parameter height can vary from 0 to 480 pixels; isMaximized: a Boolean attribute determining if the application window is maximized or not. Returns true (different from zero) if the window is maximized, or false (zero) if not. isMinimized: a Boolean attribute determining if the application window is minimized or not. Returns true (different from zero) if the window is minimized, or false (zero) if not. isNormal: a Boolean attribute determining if the application window is normalized or not. Returns true (different from zero) if the window is normalized, or false (zero) if not. keyPadBackColor : a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the background color of Key Pad (Screen Keyboard). This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. keyPadHeight : an integer without sign (from 0 to 65535) determining the height of the Key Pad window in pixels. It is used together with the KeyPadWidth attribute to define the size of the window. This attribute should be defined in accordance with the resolution used in Windows to obtain a window without scroll bar. For instance, if you are using a resolution of 640x480 (VGA), parameter height can vary from 0 to 480 pixels; keyPadKeyColor : a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the color of Key Pad keys (Screen Keyboard). This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. Scripts 285 keyPadTextColor : a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the text color of Key Pad keys (Screen Keyboard). This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. keyPadTitleBar default) or not (zero). : Boolean, indicates if the Key Pad will have title bar (one, keyPadVisible : a Boolean attribute determining that the Key Pad is visible. Returns true (different from zero) if the Key Pad is visible, or false (zero) if not. keyPadWidth : an integer without sign (from 0 to 65535) determining the width of the Key Pad window in pixels. It is used together with the KeyPadHeight attribute to define the size of the window. This attribute should be defined in accordance with the resolution used in Windows to obtain a window without scroll bar. For instance, if you are using a resolution of 640x480 (VGA), parameter height can vary from 0 to 640 pixels; keyPadX : an integer with sign (from -32768 to 32767) determining the X coordinate for top left corner of the Key Pad window, in pixels. It is used together with the Y attribute to define the position of the top left corner of the window. This attribute should be defined in accordance with the resolution used in Windows to obtain a window without scroll bar. For instance, if you are using a resolution of 640x480 (VGA), your X coordinate can vary from 0 to 640 pixels; keyPadY : an integer with sign (from -32768 to 32767) determining the Y coordinate for the top left corner of the Key Pad window, in pixels. It is used together with the X attribute to define the position of top left corner of the window. This attribute should be defined in accordance with the resolution used in Windows to obtain a window without scroll bar. For instance, if you are using a resolution of 640x480 (VGA), your Y coordinate can vary from 0 to 480 pixels; largeButtons: a Boolean attribute enabling large buttons in the Organizer, HAnalysis, etc. to facilitate the use of Touch Screen. Returns true (different from zero) if large buttons are enabled, or false (zero) if not. maximizeButton : a Boolean attribute (read only) determining that the maximize button is enabled in the application window. Returns true (different from zero) if the button is enabled, or false (zero) if not. minimizeButton : a Boolean attribute (read only) determining that the minimize button is enabled in the application window. Returns true (different from zero) if the button is enabled, or false (zero) if not. name: a string containing the application name used as identifier for it. noMousePointer : a Boolean attribute used for disabling (hiding) the mouse pointer during running time (while executing an application). Returns true (different from zero) if the mouse is disabled, or false (zero) if not. 286 Scripts User Manual noScreenSaver : a Boolean attribute used for disabling the screen saver during running time (while executing an application). Returns true (different from zero) if the screen is disabled, or false (zero) if not. numPadCloseButton : Boolean, indicates if the button to close NumPad shall be presented (value one, default) or not (value zero). numPadTitleBar : Boolean, indicates if the Numeric Pad will have title bar (one, default) or not (zero). numPadTitleBarText : string, allows the indication of a text for the title bar of Numeric Pad (empty, by default). revision: an integer without sign (read only), indicates the revision number of the application. It is automatically incremented each time the application is saved. saveKeyPadCoord : a Boolean attribute determining that the coordinates and the size of the KeyPad window (Screen keyboard) are saved to be loaded in the next opening of it. Returns true (different from zero) if saving is enabled, or false (zero) if not. startMaximized: a Boolean attribute determining if the application window starts as maximized or not. Returns true (different from zero) if the application starts as maximized, or false (zero) if not. startMinimized: a Boolean attribute determining if the application window starts as minimized or not. Returns true (different from zero) if the application starts as minimized, or false (zero) if not. startNormal: a Boolean attribute determining that the application window starts as normalized. Returns true (different from zero) if the application starts as normalized, or false (zero) if not. startScreen: Only for the use of Elipse SCADA. It is not allowed modifications on the part of users. titleBar : a Boolean attribute determining that the Title Bar is shown in the application window. Returns true (different from zero) if the Title Bar is shown, or false (zero) if not. useKeyPad: a Boolean attribute enabling the use of KeyPad (Screen keyboard) during running time. Returns true (different from zero) if the KeyPad is enabled, or false (zero) if not. userAccessLevel: an integer without sign from 0 to 65535 (read only) determining the access level of the user logged in the application. userLogin: a string (read only) containing the name of current user (login). userName: a string (read only) containing the current user logged in the application. Scripts 287 version: a string (read only) indicating the version of Elipse that has last saved the application. width: an integer without sign (from 0 to 65535) determining the width of the Application window in pixels. It is used together with the height attribute to define the size of the window. This attribute should be defined in accordance with the resolution used in Windows to obtain a window without scroll bar. For instance, if you are using a resolution of 640x480 (VGA), parameter width can vary from 0 to 640 pixels; x: an integer with sign (from -32768 to 32767) determining the X coordinate for the top left corner of the Application window, in pixels. It is used together with the Y attribute to define the position of the top left corner of the window. This attribute should be defined in accordance with the resolution used in Windows to obtain a window without scroll bar. For instance, if you are using a resolution of 640x480 (VGA), your X coordinate can vary from 0 to 640 pixels; y: an integer with sign (from -32768 to 32767) determining the Y coordinate for the top left corner of the Application window, in pixels. It is used together with the X attribute to define the position of top left corner of the window 19.6.3. Tag Attributes Common Attributes advised: (Boolean, read only) Used to indicate if the item is in advise, i.e., if the objects associated to the tag want to be informed always the tag value changes. alarmDelay: (integer without sign) It is the delay time in ms (milliseconds) that the tag must remain in the same alarm condition before going active. If alarmDelay is changed in runtime the delay count is restarted. If delayedAlarm is False, this property has no effect (see delayedAlarm attribute). alternateName: (string) Alternate name of tag to be used in the log of Tag alarms. alwaysInAdvise: (Boolean) Allows forcing a tag to be in advise (see advised attribute). currentAlarm: (integer without sign, read only) Indicates the current alarm status of tag, as follows: 0, without alarm; 1, LoLo; 2, Low; 3, High and 4, HiHi. delayedAlarm (Boolean): If True, the alarm must remain the specified time in the same alarm condition (HI, HIHI, LO, LOLO) before the alarm is activated. description: (string) Contains a brief description of the tag. enableAlternateName: (Boolean) Enables the use of an alternate name (indicated in the alternateName attribute) for the record (log) of tag alarms. 288 Scripts User Manual enableReturnLog: (Boolean) Used to enable the log of the return message of alarm. Returns true (different from zero) if the log is enabled, or false (zero) if not. name: (string) Contains the tag name, used as identifier of the tag. returnMessage: (string) Contains the return message of alarm for the tag. timeStamp: (real, read only) Contains the last date and hour in which the tag value has been modified. Attributes of Tag Groups totalAlarms: (integer without sign, read only) that indicates the number of active alarms in tags and group subgroups. Attributes of OPC Tags quality: An unsigned integer (read-only), indicating OPC tag’s quality. Attributes of PLC Tags autoRead: a Boolean attribute used to enable automatic PLC reading. Returns true (different from zero) if the automatic reading is enabled, or false (zero) if not. It should be used together with attribute enableScan, being both due to be marked or unmarked; autoWrite: a Boolean attribute used to enable automatic writing in the PLC. Returns true (different from zero) if the automatic writing is enabled, or false (zero) if not. driverName: a string containing the name of the PLC Driver that is connected to the system; it is used as an identifier for the Driver; enableScan: a Boolean attribute used to enable the PLC reading. Returns true (different from zero) if the scan is enabled, or false (zero) if not. It should be used together with attribute autoRead, being both due to be marked or unmarked; high1: a real number setting the top limit of the PLC. It is used together with attribute low1 to define an interval of variation; high2: a real number setting the top limit of the system. It is used together with attribute low2 to define an interval of variation; low1: a real number setting the bottom limit of the PLC. It is used together with attribute high1 to define an interval of variation; low2: a real number setting the bottom limit of the system. It is used together with attribute high2 to define an interval of variation; n1: an integer with sign (from -32768 to 32767) setting parameter N1 in accordance with the documentation of the Driver; Scripts 289 n2: an integer with sign (from -32768 to 32767) setting parameter N2 in accordance with the documentation of the Driver; n3: an integer with sign (from -32768 to 32767) setting parameter N3 in accordance with the documentation of the Driver; n4: an integer with sign (from -32768 to 32767) setting parameter N4 in accordance with the documentation of the Driver; nFailReads: an integer without sign (read only) that indicates the total number of incorrect readings; nFailWrites: an integer without sign (read only) that indicates the total number of incorrect writings; nOKReads: an integer without sign (read only) that indicates the total number of successful readings; nOKWrites: an integer without sign (read only) that indicates the total number of successful writings; realScan: a real number (read only) indicating the real time of scan in which Elipse is being able to read the Tag. scaling: a Boolean attribute used to enable Scaling of values between the PLC and the system. Returns true (different from zero) if the Scaling is enabled, or false (zero) if not. With this attribute as enabled, you can set up attributes low1, high1, low2 and high2; scanTime: an integer with sign (from -32768 to 32767) setting the time interval between two readings; status: a string (read only) containing the current status of Tag communication: "Reading", "Writing", "Idle"; Attributes of DDE Tags computer: a string containing the name of the computer to be connected by using DDE. It is used as identifier of the computer in a network, and can be changed during running time. high1: a real number setting the top limit of the PLC. It is used together with attribute low1 to define an interval of variation; high2: a real number setting the top limit of the system. It is used together with attribute low2 to define an interval of variation; item: a string containing the name of data to be monitored by the DDE Tag. It is used as data identifier. In a connection between two Elipse SCADA, this attribute can be a Tag, in a connection with Excel, this attribute should be declared as RxCy, where x is the row and y is the column of a specific cell; 290 Scripts User Manual low1: a real number setting the bottom limit of the PLC. It is used together with attribute high1 to define an interval of variation; low2: a real number setting the bottom limit of the system. It is used together with attribute high2 to define an interval of variation; scaling: a Boolean attribute used to enable Scaling of values between the PLC and the system. Returns true (different from zero) if the Scaling is enabled, or false (zero) if not. With this attribute as enabled, you can set up attributes low1, high1, low2 and high2; server: a string containing the name of the application to be connected by using DDE. It is used as an identifier of the application in the computer specified for the connection. For instance, you want to create a DDE connection in the Elipse_Software computer that is running Elipse SCADA whose DDE name is ELIPSE$. You can change this attribute during running time; topic: a string containing the name of the window or work area to be connected by using DDE. It is used as identifier of a work area in the application server; Attributes of Demo Tags delay: an integer setting the number of periods between each generation of value for the demo Tag. For instance, if it is 1, a value is generated at each period, if it is 2, a value is generated at each two periods, and so on. It is used together with the period attribute to control the time interval for the variation of data. The formula that expresses the frequency of modification of the demo tag is period * delay. enabled: a Boolean attribute used to enable the simulation of the demo tag data while the tag is active. Returns true (different from zero) if the simulation of data is enabled, or false (zero) if not. highLimit: a real number setting the higher limit of the demo tag. It is used together with attribute lowLimit to define the interval of variation of the Tag; increment: a real number determining the increment to be added to data in accordance with the time frequency specified in period. lowLimit: a real number setting the lower limit of the demo tag. It is used together with attribute highLimit to define the interval of variation of the Tag; period: integer; sets the interval in milliseconds between the generation of each new value for the demo tag. It is used together with the delay attribute to control the time interval for the variation of data. type: an integer setting the type of variation of the demo tag. The variation is described by a curve, and can have the following types: Scripts 291 NAME VALUE DESCRIPTION Randomic 0 data varying in a randomic way Senoidal 1 Square Wave 2 data varying in accordance with a sin function data altering between two values Ascending Ramp 3 Triangular 4 Descending Ramp 5 a graph of saw teeth type in which data vary from a lower limit to a higher one a graph of saw teeth type in which data vary between two limits a graph of saw teeth type in which data vary from a higher limit to a lower one Attributes of Block Tags autoRead: a Boolean attribute used to enable automatic reading of PLC. Returns true (different from zero) if the automatic reading is enabled, or false (zero) if not. It should be used together with attribute enableScan, being both due to be marked or unmarked; autoWrite: a Boolean attribute used to enable automatic writing in the PLC. Returns true (different from zero) if the automatic writting is enabled, or false (zero) if not. b1: an integer with sign (from -32768 to 32767) setting parameter B1 in accordance with the documentation of the Driver; b2: an integer with sign (from -32768 to 32767) setting parameter B2 in accordance with the documentation of the Driver; b3: an integer with sign (from -32768 to 32767) setting parameter B3 in accordance with the documentation of the Driver; b4: an integer with sign (from -32768 to 32767) setting parameter B4 in accordance with the documentation of the Driver; driverName: a string containing the name of the PLC Driver that is connected to the system; it is used as an identifyer for the Driver; enableScan: a Boolean attribute used to enable the PLC reading. Returns true (different from zero) if the scan is enabled, or false (zero) if not. It should be used together with attribute autoRead, being both due to be marked or unmarked; nFailReads: an integer without sign (read only) that indicates the total number of incorrect readings; nFailWrites: an integer without sign (read only) that indicates the total number of incorrect writtings; 292 Scripts User Manual nOKReads: an integer without sign (read only) that indicates the total number of successfull readings; nOKWrites: an integer without sign (read only) that indicates the total number of successfull writtings; realScan: a real number (read only) indicating the real sacn time in which Elipse is being able to read the Tag. scanTime: an integer with sign (from -32768 to 32767) setting the time interval between two readings; size: an integer determining the size of the block to be monitored by Elipse SCADA. status: a string (read only) containing the current status of communication of the Tag: "Reading", "Writing", "Idle"; Attributes of Block Tag Elements high1: a real number setting the top limit of the PLC. It is used together with attribute low1 to define an interval of variation; high2: a real number setting the top limit of the system. It is used together with attribute low2 to define an interval of variation; index: an integer without sign (from 0 until the total number of elements - 1) determining the index (initiating by zero) of the element in the block. low1: a real number setting the bottom limit of the PLC. It is used together with attribute high1 to define an interval of variation; low2: a real number setting the bottom limit of the system. It is used together with attribute high2 to define an interval of variation; scaling: a Boolean attribute used to enable Scalings of values between the PLC and the system. Returns true (different from zero) if the Scaling is enabled, or false (zero) if not. Having this attribute as enabled, you can set up attributes low1, high1, low2 and high2; Attributes of Matrix Tags nColumns: an integer without sign setting up the number of columns of Matrix Tag. nRows: an integer without sign setting up the number of rows of Matrix Tag. Attributes of Chrono Tags acum: Current value of chronometer; Scripts 293 autoRestart: Restarts automatically when reaching the preset value; description: Item description. enable: Enables/Disables chronometer. name: The identifier used for reference of item. resetAcum: Resets accumulator when enabled (restarted) saveAcum: Saves accumulator when leaving Attributes of Expression Tags expression: (string) Contains the very expression of the tag, allowing it to be modified during running time. Attributes of RAM Tags initialValue: (string) Contains an initial value for the tag, and allows this value to be modified during running time. 19.6.4. Screen Attributes accessLevel: an integer without sign from 0 to 65535 (read only) determining the access level of the Screen. background: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the background color of the Screen. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. Example: tela1.background = RGB(255,0,0) bitmapName: a string containing the name of a bitmap used as background in a Screen. Example:screen.bitmapName = "Leaves.bmp" border : Only for windowed screens with a fixed size. A Boolean attribute determining that the border having width of 1 pixel is shown around the screen. Returns true (different from zero) if the border is shown, or false (zero) if not. caption: a Boolean attribute determining that the Tittle Bar is shown on Screen. Returns true (different from zero) if the Title Bar is shown, or false (zero) if not. clipChildren: a Boolean attribute, enabling the use of clipping for redrawing the screen objects relative to the background of it. Returns true (different from zero) if the clipping is enabled, or false (zero) if not. This attribute should be enabled only if the screen objects are not overlaped and will not move; otherwise, the desired effect may not occur. closeButton: a Boolean attribute determining that the close button should be shown on Screen. Returns true (different from zero) if the button is shown, or false (zero) if not. 294 Scripts User Manual description: a string containing a brief description of the Tag; fullScreen: a Boolean attribute determining the type of screen (full or windowed). Returns true (different from zero) if the screen is full, or false (zero) if not. height: an integer without sign (from 0 to 65535) determining the height of the ScreenA in pixels. It is used together with the width attribute to define the size of the Screen. This attribute should be defined in accordance with the resolution used in Windows to obtain a window without scroll bar. For instance, if you are using a resolution of 640x480 (VGA), parameter height can vary from 0 to 480 pixels; maximizeButton: a Boolean attribute determining that the maximize button should be shown on Screen. Returns true (different from zero) if the button is shown, or false (zero) if not. minimizeButton: a Boolean attribute determining that the minimize button should be shown on Screen. Returns true (different from zero) if the button is shown, or false (zero) if not. modal: only for windowed screens (fullScreen=0). A Boolean attribute determining the screen to be or not of modal type (it should be closed so that the focus goes to other open screens). Returns true (different from zero) if the screen is modal, or false (zero) if not. moveable : a Boolean attribute determining that the Screen can be moved during running time. Returns true (different from zero) if the Screen can be moved, or false (zero) if not. name: a string containing the Screen name, used as Screen identifier; popup: only for windowed screens (fullScreen=0). A Boolean attribute determining that the screen is or not of popup type (it is automatically closed when loosing focus). Returns true (different from zero) if the screen is popup, or false (zero) if not. resizeable : a Boolean attribute determining that the Screen can be redimensioned during running time. Returns true (different from zero) if the Screen can be redimensioned, or false (zero) if not. scrollBars: a Boolean attribute determining that the scroll bar should be shown on Screen. Returns true (different from zero) if the scroll bar is shown, or false (zero) if not. visible: a Boolean attribute determining that the Screen is visible. Returns true (different from zero) if the screen is visible, or false (zero) if not. width: an integer without sign (from 0 to 65535) determining the width of the Screen in pixels. It is used together with attribute height to define the size of the Screen. This attribute should be defined in accordance with the resolution used in Scripts 295 Windows to obtain a window without scroll bar. For instance, if you are using a resolution of 640x480 (VGA), parameter width can vary from 0 to 640 pixels; x : an integer with sign (from -32768 to 32767) determining the X coordinate for top left corner of the Screen, in pixels. It is used together with the Y attribute to define the position of top left corner of the Screen. This attribute should be defined in accordance with the resolution used in Windows to obtain a window without scroll bar. For instance, if you are using a resolution of 640x480 (VGA), your X coordinate can vary from 0 to 640 pixels; xOrigin: an integer without sign (from 0 to 65535) determining the X coordinate for the origin of the Screen, in pixels. It is used together with attribute yOrigin to define the size of the Screen. This attribute should be defined in accordance with the resolution used in Windows to obtain a window without scroll bar. For instance, if you are using a resolution of 640x480 (VGA), parameter xOrigin can vary from 0 to 640 pixels; y : an integer with sign (from -32768 to 32767) determining the Y coordinate for top left corner of the Screen, in pixels. It is used together with the X attribute to define the position of top left corner of the Screen. This attribute should be defined in accordance with the resolution used in Windows to obtain a window without scroll bar. For instance, if you are using a resolution of 640x480 (VGA), your Y coordinate can vary from 0 to 480 pixels; yOrigin: an integer without sign (from 0 to 65535) determining the Y coordinate for the origin of the Screen, in pixels. It is used together with attribute xOrigin to define the size of the Screen. This attribute should be defined in accordance with the resolution used in Windows to obtain a window without scroll bar. For instance, if you are using a resolution of 640x480 (VGA), parameter yOrigin can vary from 0 to 480 pixels; 19.6.5. Attributes of Screen Objects Screen objects have attributes in common, which appear in all specific objects and attributes associated to their unique characteristics. Next, we list all of these attributes. Common Attributes accessLevel: (integer) allows attributing a safety level to the object. If 0 (zero), all users have free access to the object, being able to click and enter data in it. If it is 1 (one) or more, only users with access level lesser or equal can use the object. enabled: Boolean value that when TRUE, enables the access to the object via mouse or keyboard. This attribute doesn't affect objects that do not furnish access via keyboard or mouse (like Display or Gauge). 296 Scripts User Manual height: an integer without sign (from 0 to 65535) determining the height of the object in pixels. It is used together with the height attribute to define the size of the object showTip: Boolean value that enables the object by showing a little tip when the mouse is over it. visible: Boolean value that indicates if the object is visible for the user (TRUE) or not (FALSE). width: an integer without sign (from 0 to 65535) determining the width of the object in pixels. It is used together with the height attribute to define the size of the object x, y: two integers with sign (from -32768 to 32767) determining coordinates X and Y for the top left corner of the object, in pixels, from the top left corner of the Screen where the object is. Alarm Attributes ackALMColor: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the text color for an Alarm message that is recognized. This value can also be specified by function RGB (r,g,b) in which each RGB component can vary from 0 to 255. Example: Alarm.ackAlmColor = RGB(255,0,255) alarmState: (Boolean) determines that the status column of alarms is shown in the object. Returns true (different from zero) if the status column is shown, or false (zero) if not. alarmType: (Boolean) determines if the column of Alarm type will be shown in the object: true (different from), it is shown; false (zero), it is not. comment: (Boolean) determines that the remarks column is shown in the Alarm object. Returns true (different from zero) if the remarks column is shown, or false (zero) if not. commentLength: integer without sign (from 1 to 199) determining the length of the remark that will be shown. Only available if the comment attribute is enabled; date: (boolean) determines that the date column is shown in the Alarm object. Returns true (different from zero) if the date column is shown, or false (zero) if not. description: a string containing a brief description of the Alarm; displayTitle: (Boolean) determines that the title bar of the Alarm is shown. Returns true (different from zero) if the Title Bar is shown, or false (zero) if not. event: (Boolean) determines that the events column is shown in the Alarm object. Returns true (different from zero) if the events column is shown, or false (zero) if not. Scripts 297 finalPriority: integer without sign (from 1 to 199) determining the bigger priority of alarm messages to be monitored by the object. Only Alarm messages with priority inferior to finalPriority will be shown in the object. initialPriority: integer without sign (from 1 to 199) determining the least priority of alarm messages to be monitored by the object. Only Alarm messages with priority bigger than initialPriority will be shown in the object. largeButtons: (Boolean) enables large buttons in the toolbar of the Alarms object. Returns true (different from zero) if large buttons are enabled, or false (zero) if not. limit: (Boolean) determines that the limits column of alarms is shown in the object. Returns true (different from zero) if the limits column is shown, or false (zero) if not. limitLength: integer without sign (from 1 to 10) determining the length of limits of Alarms that will be shown. Only available if the limit attribute is enabled; limitPrec: integer without sign (from 0 to limitLength - 2) determining the number of decimal digits for limits that will be shown in the Alarm. name: string containing the Alarm name, used as identifier of the Alarm. priority: (Boolean) determines that the priorities column of alarms is shown in the object. Returns true (different from zero) if the priorities column is shown, or false (zero) if not. rtnColor: hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the message color of the Alarm. This value can also be specified by function RGB (r,g,b) in which each RGB component can vary from 0 to 255. Example: Alarm.rtnColor = RGB(255,255,0) tagName: (Boolean) determines that the column of Tag names is shown in the object. Returns true (different from zero) if the column of Tag names is shown, or false (zero) if not. tagNameLength: integer without sign (from 1 to 32) determining the length of Tag names that will be shown. Only available if the tagName attribute is enabled; time: (Boolean) determines that the hour column is shown in the Alarm object. Returns true (different from zero) if the hour column is shown, or false (zero) if not. titleBarColor: hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the title row color of the Alarm. This value can also be specified by function RGB (r,g,b) in which each RGB component can vary from 0 to 255. Example: Alarm.titleBarColor = RGB(255,255,0) titleTextColor: hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the title text color of the Alarm. This value can also be 298 Scripts User Manual specified by function RGB (r,g,b) in which each RGB component can vary from 0 to 255. Example: Alarm.titleTextColor = RGB(255,255,0). toolbar: (Boolean) determines that the toolbar of the Alarm object is shown. Returns true (different from zero) if the toolbar is shown, or false (zero) if not. toolbarColor: hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the toolbar color of the Alarm. This value can also be specified by function RGB (r,g,b) in which each RGB component can vary from 0 to 255. Example: Alarm.toolbarColor = RGB(255,255,0) type: integer without sign (from 0 to 1) defining the Alarm type, which can be summarized (0) or history (1). This property is read only. unAckALMColor: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the text color for an non-recognized Alarm message. This value can also be specified by function RGB (r,g,b) in which each RGB component can vary from 0 to 255. userLength: (integer from 1 to 20) indicates the size of the User column, in characters. userName: (Boolean) if true, indicates that the User column should be shown. value: (Boolean) determines that the column of Tag values is shown in the Alarm object. Returns true (different from zero) if the column of Tag values is shown, or false (zero) if not. valueLength: integer without sign (from 1 to 10) determining the length of Tag names that will be shown. Only available if the comment attribute is enabled; valuePrec: integer without sign (from 0 to limitLength - 2) determining the number of decimal digits for values that will be shown in the Alarm. windowColor: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the background color of the Alarm. This value can also be specified by function RGB (r,g,b) in which each RGB component can vary from 0 to 255. Animation Attributes backgroundColor: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the background color of the Animation. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. BlinkTime: an integer without sign (from 0 to 100) determining the time in ms of the Animation Blinkinger, i.e., the time in which the default zone will Blinking alternating with the current zone. Scripts 299 border: a Boolean attribute determining that the Animation border is shown in the object. Returns true (different from zero) if the border is shown, or false (zero) if not. description: a string containing a brief description of the Animation; Example: Animation.description = "Animation Object" enabled: a Boolean attribute used to enable the access of keyboard and mouse to the Animation object. Returns true (different from zero) if the access is enabled, or false (zero) if not. name: a string containing the Animation name, used as Animation identifier; transparent: a Boolean attribute determining that the Animation background is transparent. Returns true (different from zero) if the background is transparent, or false (zero) if not. Bar Attributes backgroundColor: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the background color of the Bar Graph. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. barColor: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the Bar color in the graph. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. bipolar: a Boolean attribute determining that the Bar Graph is bipolar, therefore, the bars have two sides divided by a center. The bars grow from the center in the direction of the graph limits. Returns true (different from zero) if the Bar Graph is bipolar, or false (zero) if not. bottomRange: a real number setting up the minimum value for the Bar Graph. It is used together with attribute topRange to define an interval of values for the Bar; bottomRuler: a Boolean attribute determining that a ruler of values is shown in the lower part of the Bar Graph. Returns true (different from zero) if the inferior ruler is shown, or false (zero) if not. description: a string containing a brief description of the Bar Graph; enable3D: a Boolean attribute used to enable a 3D effect in the Bar. Returns true (different from zero) if the 3D effect is enabled, or false (zero) if not. enableRuler: a Boolean attribute determining that a ruler of values is shown in the Bar Graph. Returns true (different from zero) if the ruler is shown, or false (zero) if not. gridColor: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the grid color and divisions of the Bar Graph. This value can 300 Scripts User Manual also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. label : a string containing the measurement unit to be shown in the ruler. Example: Barra1.label = "MHz" labelEnable: a Boolean attribute determining that the ruler label is shown in the Bar Graph. Returns true (different from zero) if the ruler label is shown, or false (zero) if not. leftRuler: a Boolean attribute determining that a ruler of values is shown at the left side of the Bar Graph. Returns true (different from zero) if the ruler at the left is shown, or false (zero) if not. middle: a real number determining the center of the bipolar bars. Only available if the middle attribute is enabled; name: a string containing the name of the Bar Graph, used as Bar identifier; orientation: an integer without sign determining the orientation of the Bar Graph, in accordance with the following table: VALUE 1 5 2 6 ORIENTATION Vertical, top down Vertical, bottom up Horizontal left right Horizontal right left rightRuler: a Boolean attribute determining that a ruler of values is shown at the right side of the Bar Graph. Returns true (different from zero) if the ruler at the right is shown, or false (zero) if not. rulerColor: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the Bar Graph ruler color. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. rulerDivisions: an integer without sign (de 0 a 100) determining the number of divisions of the Bar Graph ruler. Only available if the enableRuler attribute is enabled; spacing: an integer without sign (from 0 to 10) determining the space (in pixels) between the graph bars; textColor: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the text color of the ruler. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. thickness: an integer without sign configuring the width of the 3D effect of the bar (in pixels); topRange: a real number setting up the maximum value for the Bar Graph. It is used together with attribute bottomRange to define an interval of values for the Bar; Scripts 301 topRuler: a Boolean attribute determining that a ruler of values is shown on the top part of the Bar Graph. Returns true (different from zero) if the top ruler is shown, or false (zero) if not. Browser Attributes ascending: a Boolean attribute determining the order of records to be shown in the Browser. Returns true (different from zero) if the order is ascending, or false (zero) if descending. The default is ascending; backColor: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the color of the area outside the Browser table. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. completeRows: an integer without sign (from 0 to 65535) determining the number of completely visible rows, not including the last row if it is partly visible. curSel: an integer without sign (from 0 to 65535) determining the number of the selected record (read only). Returns -1 if no row is selected; description: a string containing a brief description of the Browser; firstRec: an integer without sign (from 0 to 65535) determining the number of the record selected to be seen (read only). gridColor: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the color of the Browser grid rows. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. lastRec: an integer without sign (from 0 to 65535) determining the number of last record selected to be seen (read only). name: a string containing the Browser name, used as identifier of the Browser. rowColor: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the background color of the non-selected Browser rows. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. rowTextColor: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the text color of the non-selected Browser rows. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. selColor: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the background color of current row selected in the Browser. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. 302 Scripts User Manual selTextColor: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the text color of current row selected in the Browser. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. titleColor: hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the title row color of the Browser. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. titleTextColor: hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the title text color of the Browser. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. topRow: an integer without sign (from 0 to 65535) determining the number of the record shown on the first visible row (read only). visibleRows: an integer without sign (from 0 to 65535) determining the number of visible rows, including the last one, even if it only appears partly (read only). Button Attributes backgroundColor0: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the Button color when in normal state (not pressed). This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. backgroundColor1: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the Button color when it is pressed. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. bitmap0: a string containing the bitmap name to be shown as background of a Button when in normal state (not pressed); bitmap1: a string containing the bitmap name to be shown as the background of a Button when pressed; buttonAction: an integer without sign (from 0 to 2) determining the type of action of the button, which can be Momentary (0), On-Off (Toggle) (1) or Jog (2); buttonType: an integer without sign (from 0 to 6) determining the button type from 7 types available: Scripts 303 buttonType = 0 buttonType = 1 buttonType = 2 buttonType = 3 buttonType = 4 buttonType = 5 buttonType = 6 description: a string containing a brief description of the Button; goToScreen: Only for the use of Elipse SCADA. It is not allowed modifications on the part of users. name: a string containing the Button name, used as identifier of the Button. text0: a string containing the text that will be shown in the Button when it is in normal state (not pressed); text1: a string containing the text that will be shown in the Button when it is pressed; textColor0: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the Button text color when in normal state (not pressed). This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. textColor1: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the Button text when it is pressed. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. value0: an integer without sign (frm 0 to 65535) determining the Button value when in normal state (not pressed); value1: an integer without sign (from 0 to 65535) determining the Button value when pressed: visible: a Boolean attribute determining that the Button is visible. Returns true (different from zero) if the Button is shown, or false (zero) if not. 304 Scripts User Manual width: an integer without sign (from 0 to 65535) determining the width of the Button in pixels. It is used together with the height attribute to define the size of the Button x: an integer with sign (from -32768 to 32767) determining the X coordinate for the top left corner of the Button, in pixels. It is used together with the Y attribute to define the position of the top left corner of the Button from the origin of screen (0,0) y: an integer with sign (from -32768 to 32767) determining the Y coordinate for the top left corner of the Button, in pixels. It is used together with the X attribute to define the position of the top left corner of the Button from the origin of screen (0,0) Display Attributes backgroundColor: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the background color of the Display. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. description: a string containing a brief description of the Display; enabled: a Boolean attribute used to enable the access of keyboard and mouse to the Display object. Returns true (different from zero) if the access is enabled, or false (zero) if not. height: an integer without sign (from 0 to 65535) determining the height of the Display, in pixels. It is used together with the width attribute to define the size of the Display; horizontalAlign: an integer without sign (from 0 to 2) determining the horizontal alignment for data to be shown in Display, in accordance with the table below: VALUE 0 1 2 ALIGNMENT Left Center Right multiLine: a Boolean attribute used to enable multiline in the Display. Returns true (different from zero) if the use of multiline is enabled, or false (zero) if not. name: a string containing the Display name, used as identifier of the Display. precision: an integer without sign (from 0 to 254) determining the number of decimals to be shown on Display. It can never be bigger than the size attribute. prefix: a string containing a prefix to be shown before the value of Tag associated to the Display; size: an integer without sign (from 0 to 255) determining the size of data to be shown on Display. Scripts 305 showTip: a Boolean attribute that enables the object to show a Tip when the mouse is over it. Returns true (different from zero) if the tip is enabled, or false (zero) if not. suffix: a string containing a sufix to be shown after the Tag value associated to the Display; textColor: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the text color of the Display. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. type: an integer without sign (from 1 to 2) determining the data type to be shown in the Display, which can be a string (1) or a number (2). verticalAlign: an integer without sign (from 0 to 2) determining the vertical alignment for data to be shown in Display, in accordance with the table below: VALUE 0 1 2 ALIGNMENT Top Center Bottom visible: a Boolean attribute determining that the Display is visible. Returns true (different from zero) if the Display is visible, or false (zero) if not. width: an integer without sign (from 0 to 65535) determining the width of the Display, in pixels. It is used together with the height attribute to define the size of the Display x: an integer with sign (from -32768 to 32767) determining the X coordinate for the top left corner of the Display, in pixels. It is used together with the Y attribute to define the position of the top left corner of the Display from the origin of screen (0,0) y: an integer with sign (from -32768 to 32767) determining the Y coordinate for the top left corner of the Display, in pixels. It is used together with the X attribute to define the position of the top left corner of the Display from the origin of screen (0,0) Gauge Attributes backgroundColor: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the background color of the Gauge. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. bulletsVisible: a Boolean attribute determining that ticks are shown under the form of bullets. Returns true (different from zero) if the bullets are shown, or false (zero) if not; 306 Scripts User Manual decimalPlaces: an integer without sign (from 0 to 65535) determining the number of decimals to be used in the formatting of Gauge values. description: a string containing a brief description of the Gauge; enabled: a Boolean attribute used to enable the access of keyboard and mouse to the Gauge object. Returns true (different from zero) if the access is enabled, or false (zero) if not. frameColor: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the Gauge frame color. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. frameVisible: a Boolean attribute determining that a frame is shown along the path of the Gauge needle. Returns true (different from zero) if the frame is shown, or false (zero) if not. height: an integer without sign (from 0 to 65535) determining the height of the Gauge, in pixels. It is used together with the width attribute to define the size of the Gauge; hiColorLegend: an hexadecimal (de 0h a 1000000h) or decimal number (from 0 to 16777215) defining the legend color for the interval of values specified as High. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. hiDiv: a real number setting up the value of the bottom limit of the High interval; hiHiColorLegend: an hexadecimal (de 0h a 1000000h) or decimal number (from 0 to 16777215) defining the legend color for the interval of values specified as High-High. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. hiHiDiv: a real number setting up the value of the bottom limit of the High-High interval; hiLimit: a real number in the interval [0,1], setting up the position of the top border of the Gauge legend. It is used together with attribute lowLimit to define the thickness of the legend; isHiHiLimitVisible: a Boolean attribute determining that the HighHigh interval of Gauge values will be shown in the legend. Returns true (different from zero) if the HighHigh interval is shown, or false (zero) if not. isHiLimitVisible: a Boolean attribute determining that the High interval of Gauge values will be shown in the legend. Returns true (different from zero) if the High interval is shown, or false (zero) if not. Scripts 307 isLowLimitVisible: a Boolean attribute determining that the Low interval of values of Gauge will be shown in the legend. Returns true (different from zero) if the Low interval is shown, or false (zero) if not. isLowLowLimitVisible: a Boolean attribute determining that the interval of LowLow values of Gauge will be shown in the legend. Returns true (different from zero) if the LowLow interval shown, or false (zero) if not. legendVisible: a Boolean attribute determining that the legend is shown in the Gauge. Returns true (different from zero) if the marks are shown, or false (zero) if not; limitVisible: a Boolean attribute determining that the Gauge limits are shown. Returns true (different from zero) if the limits are shown, or false (zero) if not; lowColorLegend: an hexadecimal (de 0h a 1000000h) or decimal number (from 0 to 16777215) defining the legend color for the interval of values specified as Low. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. lowDiv: a real number setting up the value of the top limit of the Low interval; lowLimit: a real number in the interval [0,1], setting up the position of the bottom border of the Gauge legend. It is used together with attribute hiLimit to define the thickness of the legend; lowLowColorLegend: an hexadecimal (de 0h a 1000000h) or decimal number (from 0 to 16777215) defining the legend color for the interval of values specified as Low-Low. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. lowLowDiv: a real number setting the value of the top limit of the Low-Low interval; maximum: a real number setting up the maximum value for the Gauge. It is used together with attribute minimum to define an interval of values for the Gauge; minimum: a real number setting up the minimum value for the Gauge. It is used together with attribute maximum to define an interval of values for the Gauge; name: a string containing the Gauge name, used as Gauge identifier. needleColor: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the Gauge needle color. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. needleThickness: an integer without sign (from 1 to 2) determining the thickness of the Gauge needle, which can be a thin (1) or thick pointer(2); normalColor: an hexadecimal (de 0h a 1000000h) or decimal number (from 0 to 16777215) defining the legend color for the interval of values specified as normal. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. 308 Scripts User Manual orientation: an integer without sign (from 0 to 3) determining the orientation of the Gauge graph as follows: Gauge1.orientation = 0 Gauge1.orientation = 1 Gauge1.orientation = 2 Gauge1.orientation = 3 points: an integer without sign (de 0 a 65535) determining the number of points in the Gauge ruler. Some points cannot be shown if many points are defined for a small Gauge. showTip: a Boolean attribute that enables the object to show a Tip when the mouse is over it. Returns true (different from zero) if the tip is enabled, or false (zero) if not. startAngle: a real number setting up the initial angle of the Gauge needle; subTicksColor: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the color of Gauge sub-ticks. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. subTicksVisible: a Boolean attribute determining that sub-ticks are shown between main ticks. Returns true (different from zero) if the sub-ticks are shown, or false (zero) if not; textColor: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the text color that will be shown in the Gauge. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. thickTicks: a Boolean attribute determining that main Gauge ticks are thick. Returns true (different from zero) if the ticks are thick, or false (zero) if not; tickColor: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the color of main Gauge ticks. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. ticksValues: a Boolean attribute determining that values of ticks are shown in the Gauge. Returns true (different from zero) if the values are shown, or false (zero) if not; Scripts 309 ticksVisible: a Boolean attribute determining that main ticks are shown in the Gauge. Returns true (different from zero) if the ticks are shown, or false (zero) if not; totalNumberOfSubticks: an integer without sign (from 0 to 9) determining the total number of sub-ticks to be shown between main ticks. valueVisible: a Boolean attribute determining that the Gauge value will be shown. Returns true (different from zero) if the Gauge value is shown, or false (zero) if not. visible: a Boolean attribute determining that the Gauge is visible. Returns true (different from zero) if the Gauge is visible, or false (zero) if not. width: an integer without sign (from 0 to 65535) determining the width of the Gauge, in pixels. It is used together with the height attribute to define the size of the Gauge x: an integer with sign (from -32768 to 32767) determining the X coordinate for the top left corner of the Gauge, in pixels. It is used together with the Y attribute to define the position of the top left corner of the Gauge from the origin of screen (0,0) y: an integer with sign (from -32768 to 32767) determining the Y coordinate for the top left corner of the Gauge, in pixels. It is used together with the X attribute to define the position of the top left corner of the Gauge from the origin of screen (0,0) Setpoint Attributes autoSend: (Boolean) When in 1 (one), sends automatically data inserted in the control to the associated tag when it looses focus. backgroundColor: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the background color of the SetPoint. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. checkMaximum: (Boolean) Used to enable the verification of the SetPoint value having the maximum value specified for it. Returns true (different from zero) if the verification is enabled, or false (zero) if not. checkMinimum: (Boolean) Used to enable the verification of the SetPoint value having the minimum value specified for it. Returns true (different from zero) if the verification is enabled, or false (zero) if not. dateFormat: (string) Defines a format to show and insert data of Date/Time in a setpoint. Example: "dd/mm/yy hh:mm:ss" will be shown as "02/07/97 18:35:22". 310 Scripts User Manual Date/Time formats for attribute dateFormat FORMAT w W ww WW d dd m mm mmm MMM mmmm MMMM mmmmm MMMMM yy YY h hh m mm s ss AM/PM MEANING Week day (Sun – Sat) Week day (SUN – SAT) Week day (Sunday – Saturday) Week day (SUNDAY – SATURDAY) Day (1 – 31) Day (01 – 31) Month (1 – 12) Month (01 – 12) Month (Jan – Dec) Month (JAN – DEC) Month (January – December) Month (JANUARY – DECEMBER) Month (j – d) Month (J – D) Year (00 – 99) Year (1970 – 9999) Hour (0 – 23) Hour (00 – 23) Minute (0 – 59) (should be accompanying hours or followed by seconds) Minute (00 – 59) (should be accompanying hours or followed by seconds) Second (0 – 59) Second (00 – 59) Hour in the 12 hours format, shows AM (morning) and PM (afternoon). am/pm Hour in the 12 hours format, shows am and pm. A/P Hour in the 12 hours format, shows A and P. a/p Hour in the 12 hours format, shows A and P. Tenths of a second (should be preceded by seconds) Hundredths of a second (should be preceded by seconds) Thousandths of a second (should be preceded by seconds) New row (CR + LF) 0 00 000 | description: (string) Contains a brief description of the SetPoint. enabled: (Boolean) Used to enable the access of keyboard and mouse to the Setpoint object. Returns true (different from zero) if the access is enabled, or false (zero) if not. Scripts 311 height: an integer without sign (from 0 to 65535) determining the height of the SetPoint, in pixels. It is used together with the width attribute to define the size of the SetPoint; horizontalAlign: an integer without sign (from 0 to 2) determining the horizontal alignment for data to be shown in SetPoint, in accordance with the table below: 0, to the left; 1, center, or 2, to the right. maximum: a real number setting up the maximum value for the SetPoint. It is used together with attribute minimum to define an interval of values for the SetPoint; minimum: a real number setting up the minimum value for the SetPoint. It is used together with attribute maximum to define an interval of values for the SetPoint; multiLine : a Boolean attribute used to enable multiline in the SetPoint. Returns true (different from zero) if the use of multiline is enabled, or false (zero) if not. name: (string) Contains the SetPoint name, used as identifier of the SetPoint. precision: an integer without sign (from 0 to 254) determining the number of decimals to be shown in SetPoint. It can never be bigger than the size attribute. prefix: a string containing a prefix to be shown before the value of the Tag associated to the SetPoint; Example: SetPoint.prefix = "Weight" refresh: a Boolean attribute determining that the SetPoint value is automatically refreshd if any modification occurs in the associated Tag. Returns true (different from zero) if the automatic updating is enabled, or false (zero) if not. selectAll: a Boolean attribute determining that all characters of SetPoint are selected when the object receives the focus. Returns true (different from zero) if the selection of all characters is enabled, or false (zero) if not. showTip: a Boolean attribute that enables the object to show a Tip when the mouse is over it. Returns true (different from zero) if the Tip is enabled, or false (zero) if not. size: an integer without sign (from 0 to 255) determining the size of data to be shown in the SetPoint. suffix: a string containing a suffix to be shown after the value of the Tag associated to the SetPoint; Example: SetPoint.suffix = "Kg" textColor: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the text color that will be shown in the SetPoint. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. type: an integer without sign (from 1 to 2) determining the data type to be shown in the SetPoint, which can be a string (1) or a number (2). 312 Scripts User Manual verticalAlign: an integer without sign (from 0 to 2) determining the vertical alignment for data to be shown in SetPoint, in accordance to the table below: 0, from the top; 1, center, and 2, from the bottom. visible: a Boolean attribute determining that the SetPoint is visible. Returns true (different from zero) if the SetPoint is visible, or false (zero) if not. width: an integer without sign (from 0 to 65535) determining the width of the SetPoint, in pixels. It is used together with the height attribute to define the size of the SetPoint x: an integer with sign (from -32768 to 32767) determining the X coordinate for the top left corner of the SetPoint, in pixels. It is used together with the Y attribute to define the position of the top left corner of the SetPoint from the origin of screen (0,0) y: an integer with sign (from -32768 to 32767) determining the Y coordinate for the top left corner of the SetPoint, in pixels. It is used together with the X attribute to define the position of the top left corner of the SetPoint from the origin of screen (0,0) Slider Attributes description: a string containing a brief description of the Slider; enabled: a Boolean attribute used to enable the access of keyboard and mouse to the Slider object. Returns true (different from zero) if the access is enabled, or false (zero) if not. frameColor: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the Slider frame color. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. height: an integer without sign (from 0 to 65535) determining the height of the Slider, in pixels. It is used together with the width attribute to define the size of the Slider; name: a string containing the Slider name, used as identifier of the Slider. orientation: an integer without sign (from 0 to 1) determining the orientation of the Slider. Returns 0 (zero) if the Slider is horizontal, or 1 (one) if vertical; precision: an integer without sign (from 0 to 254) determining the number of decimals to be shown in limits and in the visible value of the Slider. rangeMaximum: a real number setting up the maximum value for the Slider. It is used together with attribute rangeMinimum to define an interval of values for the Slider; Scripts 313 rangeMinimum: a real number setting up the minimum value for the Slider. It is used together with attribute rangeMaximum to define an interval of values for the Slider; showRange: a Boolean attribute determining that the limits of the Slider are shown. Returns true (different from zero) if the limits are shown, or false (zero) if not; showTip: a Boolean attribute that enables the object to show a Tip when the mouse is over it. Returns true (different from zero) if the tip is enabled, or false (zero) if not. showValue: a Boolean attribute determining that the Slider value will be shown. Returns true (different from zero) if the Slider value is shown, or false (zero) if not. step: a real number to be incremented or decremented from the Slider value when its arrows are pressed; textColor: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the text color that will be shown in the Slider. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. updateOnRelease: a Boolean attribute determining that the Slider value is refreshd when the mouse button is released after moving the Slider lever. Returns true (different from zero) if the Slider is refreshd when its lever is moved, or false (zero) if not. visible: a Boolean attribute determining that the Slider is visible. Returns true (different from zero) if the Slider is visible, or false (zero) if not. width: an integer without sign (from 0 to 65535) determining the width of the Slider, in pixels. It is used together with the height attribute to define the size of the Slider; x: an integer with sign (from -32768 to 32767) determining the X coordinate for the top left corner of the Slider, in pixels. It is used together with the Y attribute to define the position of the top left corner of the Slider from the origin of screen (0,0) y: an integer with sign (from -32768 to 32767) determining the Y coordinate for the top left corner of the Slider, in pixels. It is used together with the X attribute to define the position of the top left corner of the Slider from the origin of screen (0,0) Text Attributes description: a string containing a brief description of the Text; enabled: a Bboolean attribute used to enable the access of keyboard and mouse to the Text object. Returns true (different from zero) if the access is enabled, or false (zero) if not. 314 Scripts User Manual height: an integer without sign (from 0 to 65535) determining the height of the Text, in pixels. It is used together with the width attribute to define the size of the Text; name: a string containing the Text name, used as identifier for the Text. showTip: a Boolean attribute that enables the object to show a Tip when the mouse is over it. Returns true (different from zero) if the tip is enabled, or false (zero) if not. visible: a Boolean attribute determining that the Text is visible. Returns true (different from zero) if the Text is visible, or false (zero) if not. width: an integer without sign (from 0 to 65535) determining the width of the Text, in pixels. It is used together with the height attribute to define the size of the Text; x: an integer with sign (from -32768 to 32767) determining the X coordinate for top left corner of the Text, in pixels. It is used together with the Y attribute to define the position of the top left corner of the Text from the origin of screen (0,0) y: an integer with sign (from -32768 to 32767) determining the Y coordinate for the top left corner of the Text, in pixels. It is used together with the X attribute to define the position of the top left corner of the Text from the origin of screen (0,0) Trend Attributes description: a string containing a brief description of the trend; enabled: a Boolean attribute used to enable the access of keyboard and mouse to the trend object. Returns true (different from zero) if the access is enabled, or false (zero) if not. enableDataRec: a Boolean attribute used to enable the trend to collect new value whenever the Tags associated to it change. Returns true (different from zero) if the values are collected, or false (zero) if not; frozen: a Boolean attribute used to enable/disable the automatic scroll of Trend. Returns true (different from zero) if the Trend is frozen, or false (zero) the scroll is enabled (default). height: an integer without sign (from 0 to 65535) determining the height of the Trend, in pixels. It is used together with the width attribute to define the size of the Trend. isXY: a Boolean attribute. Only for the use of Elipse SCADA. It is not allowed modifications on the part of users. name: a string containing the Trend name, used as identifier of the Trend. Scripts 315 orientation: an integer without sign (from 0 to 3) determining the orientation of the Trend, in accordance with the following table: VALUE 0 1 2 3 ORIENTATION Horizontal right to left Horizontal left to right Vertical, top down Vertical, bottom up showTip: a Boolean attribute that enables the object to show a Tip when the mouse is over it. Returns true (different from zero) if the tip is enabled, or false (zero) if not. timeSpan: a real number determining the time to be visualized in the Trend in seconds. visible: a Boolean attribute determining if the trend is visible. Returns true (different from zero) if the trend is visible, or false (zero) if not. width: an integer without sign (from 0 to 65535) determining the width of the Trend in pixels. It is used together with the height attribute to define the size of the Trend. x: an integer with sign (from -32768 to 32767) determining the X coordinate for the top left corner of the Trend, in pixels. It is used together with the Y attribute to define the position of the top left corner of the Trend from the origin of screen (0,0) y: an integer with sign (from -32768 to 32767) determining the Y coordinate for the top left corner of the Trend, in pixels. It is used together with the X attribute to define the position of the top left corner of the Trend from the origin of screen (0,0) Frame Attributes borderColor: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the Frame border color. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. borderEnabled: a Boolean attribute determining that the Frame border is shown. Returns true (different from zero) if the border is shown, or false (zero) if not. borderThickness: an integer without sign (from 0 to 255) determining the thickness of the Frame. color: an hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the tick color. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. description: a string containing a brief description of the Frame; enable3D: a Boolean attribute used to enable a 3D effect in the Frame. Returns true (different from zero) if the 3D effect is enabled, or false (zero) if not. 316 Scripts User Manual frame: a Boolean attribute determining that the Frame will be shown. Returns true (different from zero) if the Frame is shown, or false (zero) if not. name: a string containing the Frame name, used as Frame identifier; separator: a Boolean attribute determining that a separation row of the title is shown. Returns true (different from zero) if the row is shown, or false (zero) if not. set3DInset: a Boolean attribute determining that the 3D effect is in the inside or outside part of the Frame. Returns true (different from zero) if the 3D effect is shown inside, or false (zero) if outside. thickness3D: an integer without sign (from 0 to 255) determining the thickness of the 3D effect in the Frame. title: a string containing the Frame title; titleColor: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the text color of the title. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. titleEnabled: a Boolean attribute determining that the Frame title will be shown. Returns true (different from zero) if the title is shown, or false (zero) if not. 19.6.6. Plotter Attributes autoRangeX: a Boolean attribute determining that the limits of X axis in the graph are automatically calculated. Returns true (different form zero) if the automatic calculation for the limits of X-axis is enabled, or false (zero) if not; autoRangeY: a boolean attribute determining that the limits of Y axis in the graph are automatically calculated. Returns true (different form zero) if the automatic calculation for the limits of Y-axis is enabled, or false (zero) if not; backgroundColor: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the background color of the Plotter. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. backRulerColor: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the background color of the Plotter. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. bottomLimit: a real number setting up the bottom limit to be shown in the ruler of Y axis. It is used together with attribute topLimit to define an interval of values; bottomRuler: a Boolean attribute determining that a ruler of values is shown at the bottom part of the Plotter. Returns true (different from zero) if the inferior ruler is shown, or false (zero) if not. Scripts 317 bShowMsec: a Boolean attribute determining that the milliseconds are shown in Plotter. Returns true (different from zero) if the milliseconds are shown, or false (zero) if not; description: a string containing a brief description of the Plotter; enableXUnit: a Boolean attribute determining that the unit of X axis will be shown in Plotter. Returns true (different from zero) if the unit of X axle is shown, or false (zero) if not. enableYUnit: a Boolean attribute determining that the unit of Y axis will be shown in Plotter. Returns true (different from zero) if the unit of Y axle is shown, or false (zero) if not. gridColor: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the grid color of the Plotter. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. gridVisible: a Boolean attribute determining that the Plotter border is shown. Returns true (different from zero) if the grid is shown, or false (zero) if not. gridX: an integer without sign (from 0 to 65535) determining the number of divisions in X axis; gridY: an integer without sign (from 0 to 65535) determining the number of divisions in Y axis; leftLimit: a real number setting up the left limit to be shown in the ruler of X axis. It is used together with attribute rightLimit to define an interval of values; leftRuler: a Boolean attribute determining that a ruler of values is shown at the left of the Plotter. Returns true (different from zero) if the ruler at the left is shown, or false (zero) if not. name: a string containing the Plotter name, used as Plotter identifier; rightLimit: a real number setting up the right limit to be shown in the ruler of X axis. It is used together with attribute leftLimit to define an interval of values; rightRuler: a Boolean attribute determining that a ruler of values is shown at the right side of the Plotter. Returns true (different from zero) if the ruler at the right is shown, or false (zero) if not. rulerColor: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the Plotter ruler color. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. topLimit: a real number setting up the top limit to be shown in the ruler of Y axis. It is used together with attribute bottomLimit to define an interval of values; topRuler: a Boolean attribute determining that a ruler of values is shown at the top part of the Plotter. Returns true (different from zero) if the top ruler is shown, or false (zero) if not. 318 Scripts User Manual xUnit: a string containing the name of the unit to be shown in X axis; yUnit : a string containing the name of the unit to be shown in Y axis; Cursor Attributes barCalc: Specifies the calculation method for bar value, as follows: 0 = Medium; 1 = Maximum; 2 = Minimum; 3 = By Sample. barWidth: Defines X axis bar’s width by sample. bottomWorld: Specifies chart’s inferior data value. description: Contains object’s description. leftWorld: Specifies chart’s left data value. mode: Contains cursor’s operation mode, as follows: 0 = None; 1 = Selection Mode; 2 = Zoom Mode; 3 = Scroll Mode. name: Contains the name identifying the object. penColor: Specifies cursor pen’s color. The range of valid values goes from 0h to 1000000h (in hexadecimal values) or from 0 to 16777215 (in decimal values). You can also use RGB() function to specify this color. penStyle: Specifies cursor pen’s style, as follows: 0 = Solid; 1 = Dash; 2 = Dot; 3 = Dash-Dot; 4 = Dash-Dot-Dot. penType: Specifies cursor pen’s type, as follows: 1 = Line; 2 = Bar; 3 = Area. penVisible: Boolean attribute indicating whether the pen is visible (True) or not (False). penWidth: Defines pen width, in pixels (integers from 0 to 65,535). rangeType: Specifies cursor selection, as follows: 0 = no selection; 1 = the selection is a point; 2 = the selection is a retangle. rangeX1: Specifies the first range value of the coordinate X, when rangeType is 2. rangeX2: Specifies the last range value of the coordinate X, when rangeType is 2. rangeY1: Specifies the first range value of the coordinate Y, when rangeType is 2. rangeY2: Specifies the last range value of the coordinate Y, when rangeType is 2. rightWorld: Specifies chart’s right data value (rangeType must be 2). Scripts 319 selLabel: Name of selected pen. selRecord: Number of the selected record; if the value is -1, there will be no selection. selX: Specifies the X coordinate at the selected point (rangeType = 1). selY: Specifies the Y coordinate at the selected point (rangeType = 1). topWorld: Specifies chart’s top data value. vLock: If True (not zero), specifies that the vertical limits of the chart are locked in zoom or scroll mode. Pen Attributes description: a string containing a brief description of the Pen; name: a string containing the Pen name, used as Pen identifier; penColor: an hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the Pen color. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. penStyle: an integer without sign (from 0 to 4) determining the tick style, in accordance with the following table: VALUE 0 1 2 3 4 STYLE Solid Dashed Dotted Dash-Dot Dash-Dot-Dot penVisible: a Boolean attribute determining that the Pen is shown. Returns true (different from zero) if the Pen is shown, or false (zero) if not. penWidth: an integer without sign (from 0 to 65535) determining the width of the Pen in pixels. Tick Attributes description: a string containing a brief description of the Tick; name: a string containing the Tick name, used as Tick identifier; markType: an integer without sign (from 0 to 2) determining the Tick type, in accordance with the following table: 320 Scripts User Manual VALUE 0 1 2 TYPE Point Vertical Horizontal penColor: an hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the Tick color. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. penStyle: an integer without sign (from 0 to 4) determining the Tick style, in accordance with the following table: VALUE 0 1 2 3 4 STYLE Solid Dashed Dotted Dash-Dot Dash-Dot-Dot penVisible: a Boolean attribute determining that the Tick will be shown. Returns true (different from zero) if the Tick is shown, or false (zero) if not. penWidth: an integer without sign (from 0 to 65535) determining the width of the Tick in pixels. x: a real number determining the X coordinate of Tick in pixels. It is used together with the Y attribute to define the position of Tick from the origin of the graph (0,0); y: a real number determining the Y coordinate of Tick in pixels. It is used together with the X attribute to define the position of Tick from the origin of the graph (0,0); 19.6.7. Alarm Attributes description: a string containing a brief description of the Alarm; displayMessageBox : a Boolean attribute determining that the alarm messages are shown when an alarm occurs. Returns true (different from zero) if the messages are enabled, or false (zero) if not; filename: a string containg the name of the log file of Alarms; lastAlarmPri: an integer without sign (de 0 a 65535) informing the priority of last activated alarm. It is a read only attribute. logAlarms: a Boolean attribute determining that the alarms are recorded in the log file of Alarms. Returns true (different from zero) if the recording is enabled, or false (zero) if not. Scripts 321 name: a string containing the Alarm name, used as identifier of the Alarm. nRecords: an integer without sign (from 0 to 65535) determining the number of more recent alarms to be recorded in the log file of alarms. soundType : an integer without sign (from 0 to 65535) determining the type of sound to be played when an alarm occurs. Only available if the warningSound attribute is enabled; warningSound: a Boolean attribute used to enable an alert sound when an alarm occurs. Returns true (different from zero) if the alert sound is enabled, or false (zero) if not. 19.6.8. Recipe Attributes description: a string containing a brief description of the Recipe; name: a string containing the Recipe name, used as Recipe identifier; 19.6.9. Historic Attributes batch: a Boolean attribute used to enable a batch process. Returns true (different from zero) if the batch is enabled, or false (zero) if not. description: a string containing a brief description of the Historic; enabled: a Boolean attribute used to enable the recording of historic data in the Historic file. Returns true (different from zero) if the recording is enabled, or false (zero) if not. filename: a string containing the name of the Historic file; isBatchRunning: a Boolean attribute (read only) determining if the batch is being executed or not. Returns true (different from zero) if the batch is running, or false (zero) if not. name: a string containing the Historic name, used as identifier of the Historic. networkSupport: A Boolean attribute used to enable the support to network for the Historic, i.e., allows the Historic to be accessed (only for reading) by other Elipse applications in the Network through a Browser or Report of HAnalysis type. Returns true (different from zero) if the support to network is enabled, or false (zero) if not. size: an integer without sign (from 0 to 65535) determining the size of the Historic file in number of records. writeTime: a long integer without sign (from 0 to 232) determining the frequency in which data are written in the Historic file; 322 Scripts User Manual 19.6.10. HAnalysis Attributes advised: this attribute is only for reading, and makes no sense for the HAnalysis; description: a string containing a brief description of the HAnalysis; maximizeButton: a Boolean attribute determining that the maximize button is enabled in the HAnalysis window. Returns true (different from zero) if the button is enabled, or false (zero) if not. minimizeButton: a Boolean attribute determining that the minimize button is enabled in the HAnalysis window. Returns true (different from zero) if the button is enabled, or false (zero) if not. modal: a Boolean attribute determining that the dialog box of the HAnalysis is modal (doesn't allow the access to any other window before being closed) or modeless (doesn't need to be closed in order to access other screens). Returns true (different from zero) if the page is modal, or false (zero) if not. name: a string containing the HAnalysis name, used as Analysis identifier; pageStyle: an integer without sign (from 0 to 2) determining which pages of the HAnalysis should be shown, in accordance with the following table: VALUE 0 1 2 PAGES Shows all pages Shows only the Analysis page (Graph) Shows only selected pages resizeable: a Boolean attribute determining that the window of HAnalysis can be redimensioned during running time. Returns true (different from zero) if the window can be redimensioned, or false (zero) if not. showGraphPage: a Boolean attribute determining that the Graph page is shown in the window of HAnalysis. Returns true (different from zero) if the page is shown, or false (zero) if not. showPenColorsPage: a Boolean attribute determining that the Pen Colors page is shown in the window of HAnalysis. Returns true (different from zero) if the page is shown, or false (zero) if not. showPensPage: a Boolean attribute determining that the Pens page is shown in the window of HAnalysis. Returns true (different from zero) if the page is shown, or false (zero) if not. showPrintSetupPage: a Boolean attribute determining that the Print page is shown in the window of HAnalysis. Returns true (different from zero) if the page is shown, or false (zero) if not. Scripts 323 showQueryPage: a Boolean attribute determining that the Query page is shown in the window of HAnalysis. Returns true (different from zero) if the page is shown, or false (zero) if not. showSettingsPage: a Boolean attribute determining that the Set ups page is shown in the window of HAnalysis. Returns true (different from zero) if the page is shown, or false (zero) if not. 19.6.11. Query Attributes batchField: text (string) that defines which will be the header field to be used in a query in a historic in batch. This value is equivalent to the Field in the Settings pages in the properties of browser. After this property is setted, function RefreshQuery() should be called in order to view the new data in the browser. criteria: a string containing the name of the batch we want to search. description: a string containing a brief description of the Query; filename: a string containing the name of the file in which the Query will be applied. finalDay: an integer without sign (from 1 to 31) determining the final day when the Query type is by Time Interval; finalHour: an integer without sign (from 0 to 23) determining the final hour when the Query type is by Time Interval; finalMinute: an integer without sign (from 0 to 59) determining the final minute when the Query type is by Time Interval; finalMonth: an integer without sign (from 1 to 12) determining the final month when the Query type is by Time Interval; finalSecond: an integer without sign (from 0 to 59) determining the final second when the Query type is by Time Interval; finalYear: an integer without sign (from 1970 to 2039) determining the final year when the Query type is by Time Interval; name: a string containing the Query name, used as Query identifier; queryType: an integer without sign (from 0 to 2) determining the Query type, in accordance with the following table: VALUE 0 1 2 QUERY TYPE Time interval Most recent data Without Criteria queryUnit: It is used together with the queryValue attribute when it is equal to 1 (most recent data or newest data). It is an integer without sign (from 0 to 5) 324 Scripts User Manual determining a time unit for the search of newest data, in accordance with the following table: VALUE 0 1 2 3 4 5 FORMAT Day Month Year Hours Minutes Seconds queryValue: Only available if the queryType attribute is 1 (Most Recent Data or newest data). It is an integer without sign determining a time period for the search of newest data, specified in the Last field in the Query page. It is used together with the queryUnit attribute. startDay: an integer without sign (from 1 to 31) determining the initial day when the Query type is by Time Interval; startHour: an integer without sign (from 0 to 23) determining the initial hour when the Query type is by Time Interval; startMinute: an integer without sign (from 0 to 59) determining the initial minute when the Query type is by Time Interval; startMonth: an integer without sign (from 1 to 12) determining the initial month when the Query type is by Time Interval; startSecond: an integer without sign (from 0 to 59) determining the initial second when the Query type is by Time Interval; startYear: an integer without sign (from 1970 to 2039) determining the initial year when the Query type is by Time Interval; 19.6.12. SPC Attributes avg: a real number that determines the average; cp: Only for the use of Elipse SCADA. cpk: Only for the use of Elipse SCADA. cr: Only for the use of Elipse SCADA. description: a string containing a brief description of the SPC; dispersionChartType: an integer without sign (from 0 to 1) determining the type of graph as Sigmas (0) or Ranges (1); Scripts 325 dispLCL: a real number setting up the bottom limit of the Dispersion graph. It is used together with attribute dispUCL to define an interval of variation; dispUCL: a real number setting up the top limit of the Dispersion graph. It is used together with attribute dispLCL to define a interval of variation; k: Only for the use of Elipse SCADA. lcl: a real number setting up the bottom limit of the Control. It is used together with attribute ucr to define an interval of variation; lel: a real number setting up the bottom limit of Engineering. It is used together with attribute uer to define an interval of variation; maxValue: (read only) a real number indicating the maximum value between samples that are calculated. minValue: (read only) a real number indicating the minimum value between samples that are calculated. name: a string containing the SPC name, used as identifier of the SPC. nRecords: (read only) an integer without sign (from 1 to 65535) indicating the total number of records analyzed. pointsPerGroup: an integer without sign (from 0 to 65535) determining the number of points per sample; stdDev: a real number determining the Standard Deviation; ucl: a real number setting up the top limit of the Control. It is used together with attribute lcr to define an interval of variation; uel: a real number setting up the top limit of Engineering. It is used together with attribute ler to define an interval of variation; 19.6.13. Batch Attributes description: a string containing a brief description of the Batch; fieldName: a string containing the name of the Batch file; fieldType: an integer without sign determining the type of Batch (read only). name: a string containing the Batch name, used as Batch identifier; 19.6.14. Report Attributes bottomMargin: an integer without sign (from 0 to 65535) determining the bottom margin of the Report, in millimiters. description: a string containing a brief description of the Report; 326 Scripts User Manual leftMargin: an integer without sign (from 0 to 65535) determining the left margin of the Report, in millimiters. name: a string containing the Report name, used as identifier of the Report. printHeader: a Boolean attribute used to enable the printing of a page containing information of batch header. Returns true (different from zero) if printing of header is enabled, or false (zero) if not. printTitle: a Boolean attribute used to enable the printing of a title in the Report. Returns true (different from zero) if printing of title is enabled, or false (zero) if not. rightMargin: an integer without sign (from 0 to 65535) determining the right margin of the Report, in millimiters. rowColor: a hexadecimal (from 0h to 1000000h) or decimal number (from 0 to 16777215) defining the color of Report rows. This value can also be specified by function RGB(r,g,b) in which each component (r,g,b) can vary from 0 to 255. topMargin: an integer without sign (from 0 to 65535) determining the top margin of the Report, in millimiters. 19.6.15. Driver Attributes PLC Driver abortOnError: a Boolean attribute used to enable the interruption of communication if some error occurs. Returns true (different from zero) if communication is enabled, or false (zero) if not. busy: a Boolean attribute used to inform if some communication is occurring. Returns true (different from zero) if some communication is occurring, or false (zero) if no communication is being done; description: a string containing a brief description of the Driver; driverName: a string containing the Driver name by the manufacturer; this name will be used for communication with the PLC; driverPath: a string containing the localization (path) of the Driver; enableRead: a Boolean attribute used to enable the reading of values and blocks of the driver. Returns true (different from zero) if the reading is enabled, or false (zero) if not. enableRetry: a Bboolean attribute used to enable a new attempt of communication if some error occurs. Returns true (different from zero) if the attempt is enabled, or false (zero) if not. Scripts 327 enableWrite: a Boolean attribute used to enable the writting of values and blocks of driver. Returns true (different from zero) if the writting is enabled, or false (zero) if not. hideMouse: a Boolean attribute determing that the mouse is hidden during communication. Returns true (different from zero) if the mouse hidding is enabled, or false (zero) if not. isLoaded: a Boolean attribute used to inform if the driver is loaded in the memory or not. Returns true (different from zero) if the driver is loaded, or false (zero) if not. isStarted: a Boolean attribute used to inform if some communication has been started or not. Returns true (different from zero) if some communication has been initiated, or false (zero) if not. name: a string containing the Driver name, used as identifier of the Driver. p1: an integer with sign (from -32768 to 32767) setting up parameter P1 in accordance with the documentation of the Driver; p2: an integer with sign (from -32768 to 32767) setting up parameter P2 in accordance with the documentation of the Driver; p3: an integer with sign (from -32768 to 32767) setting up parameter P3 in accordance with the documentation of the Driver; p4: an integer with sign (from -32768 to 32767) setting up parameter P4 in accordance with the documentation of the Driver; retryCount: an integer without sign (from 0 to 65535) determining the number of trials, if attribute enableRetry is enabled; Network Driver bytesReceived: an integer without sign (from 0 to 65535) determining the number of bytes received by the driver (read only). bytesSent: an integer without sign (from 0 to 65535) determining the number of bytes sent by the driver to clients (read only). description: a string containing a brief description of the Driver; name: a string containing the Driver name, used as identifier of the Driver. nClients: an integer without sign (from 0 to 65535) determining the number of clients currently connected to the driver (read only). rx: a Boolean attribute used to inform if the driver is receiving data or not. Returns true (different from zero) if the driver is receiving data, or false (zero) if not. 328 Scripts User Manual tx: a Boolean attribute (read only) used to inform if the driver is sending data or not. Returns true (different from zero) if the driver is sending data, or false (zero) if not. 19.6.16. Database Attributes description: a string containing a brief description of the Database; directory: Determines the Database directory. filter: a string or value used as filter when a query is done to the Database. lastErrorStr: a string containing the description of last error occurred in operations with the Database. name: a string containing the name of the database, used as Database identifier; originalTableName: Specifies information referring to the database table. recno: an integer without sign (from 0 to 65535) determining the number of current record. sort: a string containing the field name on the Database which is used to order it. Attributes of Database Fields advised: (Boolean, read only) Indicates that the field is in advise, i.e., it is refreshd everytime an associated object is referred to. originalFieldName: Determines the name of the field in the database. type: Determines the type of field. 19.6.17. Attributes of User List description: a string containing a brief description of the User; name: a string containing the User name, used as identifier of the User. 19.6.18. Remote Application Attributes description: String containing a brief description of the Remote Application; isConnected: Boolean attribute that informs whether Remote Application is connected or not. It returns True (different from zero) if connected, otherwise it returns False (zero). Scripts 329 isConnecting: Boolean attribute that informs whether Remote Application is connecting or not. It returns True (different from zero) if being connected, otherwise it returns false (zero). name: String containing the name of the Remote Application, used as the Remote Application’s identifier. Remote File Attributes bytesDone: Unsignaled integer (from 0 to 232) that determines the number of bytes already compared/transferred (read-only). description: String containing a brief description of the Remote File; lastError: Unsignaled integer (from 0 to 5) that determines the error code occurred during last file transference (read-only), according to the following table: VALUE 0 1 2 3 4 5 EVENT OK transfer Client file could not be opened or created Server file has not been found. Invalid data received from the server during connection Out of sequence block received from the server Writing or placement error in client file name: String containing the name identifying the Remote File; result: Signaled integer (from -1 to 1) that determines the result of last file transference (read-only), according the following table: VALUE -1 0 1 EVENT No transfer has been accomplished Last transfer has failed Last transfer has been successful. state: Unsignaled integer (from 0 to 3) indicating current file transference atatus (read-only), according to the following table: VALUE 0 1 2 3 EVENT No transfer going on Connecting Comparing files Transferring totalLength: Unsignaled integer (from 0 to 2³²) determining the number of bytes to be compared/transferred (read-only). 330 Scripts User Manual Remote Tag Attributes alarmDelay: Unsignaled integer indicating the minimum period of time the tag must remain in the same alarm condition before it is activated. If alarmDelay is modified in runtime, clock counter is restarted. This atribute is only valid if delayedAlarm attribute is True (see delayedAlarm). alternateName: Alternate name for this tag in alarm log. alwaysInAdvise: Keeps tag value always updated. currentAlarm: Determines tag status. The available options are: INDEX DESCRIPTION 0 1 2 3 4 No active alarms LOLO level alarm. LOW level alarm. HIGH level alarm. HIHI level alarm. delayedAlarm: Boolean attribute. If True, tag must remain for a minimum interval of time (specified by alarmDelay) in the same alarm condition (Hi, Hihi, Lo, Lolo) to activate (or generate) the corresponding alarm. enableAlternateName: Enable an alternate name for the tag. enableReturnLog: Enables/disables alarm return messages log. initialValue: String with tag’s initial value. It can be modified in runtime. remoteTag: Remote tag’s path. remoteTagPath: String indicating remote tag’s path in a Remote Application. returnMessage: Determines tag alarm return’s message. timeStamp: Date/time the tag was generated. Remote Video Attributes name: Object’s name. remoteCameraId: Determines remote camera’s ID. Remote Video Camera Attributes bitsPerPixel: Determines the required number of bits to store each image’s pixel. Scripts 331 brightness: Sets image brightness. cameraId: Camera’s ID in the application (from 0 to 65535). color: Sets image color. contrast: Sets image contrast. curentFrameRate: Sets current frame rate. currentPos: Detemirnes current position (in seconds) in video sequence. firstPos: Determines first position (in seconds) in video sequence. frameSize: Determines last captured frame size (in bytes). gamma: Gamma setting (from 0 to 1000). imageHeight: Sets image height, in pixels. imageWidth: Sets image width, in pixels. isPaused: Indicates whether the video is paused in a certain frame. isPlaying: Indicates whether the video is playing. isStopped: Indicates if video input is stopped. lastPos: Determines last position (in seconds) in video sequence.. name: Sets camera name. sharpness: Sets image sharpness. tint: Sets image tint. velocity: Indicates the velocity the video is being played. The available options are: s: Available options INDEX 332 DESCRIPTION 1 Normal velocity onwards. -1 Normal velocity backwards. Scripts User Manual 19.6.19. Watcher Attributes Common Attributes description: String containing a brief description of the Watcher; name: String containing Watcher’s name, used as its identifier. AVI Object Attributes duration: Sets AVI’s total number of frames. filename: Sets AVI file’s name. position: Sets frame position in AVI file. reverse: Rewinds a frame in AVI file. speed: Sets AVI frames’ velocity. timeFormat: Sets frame’s time format: 0 – duration and position are set in number of frames, and 1 – duration and position are set in milliseconds. volume: Sets sound volume in 0,1% units of original sound level (1000 = original volume, 500 = half-volume, etc.) AVI Recorder Attributes description: Object’s description. fileName: AVI file name. frameRate: Sets recording frame rate (per seconds). isRecording: Starts/Stops recording in the AVI file. name: Object’s name. S611 Board Attributes board: Sets board number (from 0 to 7). color: Sets video output color format. customHeight: Customizes image height, in pixels (advanced scale). custonWidth: Customizes image width, in pixels (advanced scale). format: Sets image format (PAL-M, NTSC, etc). frameRate: Sets picking up frame rate (per second). input: Sets video input. Scripts 333 interlaced: Sets image interlacing. The available options are: ÍNDICE DESCRIÇÃO 0 Non-interlaced image. 1 Interlaced image. scale: Sets image scale. S613 Board Attributes board: Sets board number (from 0 to 7). cfactor: Sets compression factor. The available options are: INDEX 0 Up to 65535 DESCRIPTION Lower compression Higher compression color: Sets video output color format. compress: Sets image compression. The available options are: INDEX DESCRIPTION 0 No compression 1 MJPEG customHeight: Customizes image height, in pixels (advanced scale). customWidth: Customizes image width, in pixels (advanced scale). description: Object’s description. format: Sets image format (PAL-M, NTSC, etc). frameRate: Sets picking up frame rate (per second). input: Sets video input. interlaced: Sets image interlacing. If 0, image is interlaced. If 1, it is not. name: Object’s name. scale: Sets scale size. VFW Attributes deviceIndex: Sets device index on system’s device list. deviceName: Sets the name of the device supporting Video for Windows. 334 Scripts User Manual deviceVersion: Sets the version of the device supporting Video for Windows. frameRate: Sets picking up frame rate (per second). XPresPlus Camera Attributes fileName: Video file name. format: Image format (PAL-M, NTSC, etc). name: Object’s name. nFrame: Sets current frame number. numBoard: Sets board number. numCam: Defines the total number of cameras. 19.6.20. Steeplechase Attributes server: (string) Contains the name of the Steeplechase server. scan: (integer) Scan time and updating of Steeplechase (in milliseconds). 19.6.21. OPC Server Attributes serverStatus: (integer) Shows the OPC server current status. If the OPC server status checking is enabled on OPCServer properties (option “Check OPC servers…”), the property serverStatus will be updated on the frequency specified in vrfyTime property. If the verification is disabled, the property will assume the following values: 0 (not connected) or -1 (unknown). vrfyTime: (integer) Specifies the period of time (in milliseconds) in which the system should verify if the server is active. totalAlarms: (integer) Indicates the total number of active alarms in a group of OPC tags. Scripts 335 Chapter 20 20. Support to DDE Elipse SCADA allows the change of information with other programs through the support to DDE technology (DDE - Dynamic Data Exchange). The system can operate as server or client of applications like Microsoft Excel, Microsoft Access, and others. 20.1. Elipse SCADA as Client Elipse SCADA working as DDE Client allows the search of data from DDE server applications. For accomplishing such connection, it is necessary that the other application is DDE server (in the same computer). The DDE syntax is defined in the server application. As DDE Client, Elipse SCADA should have a DDE tag configured in accordance with the documentation of syntax supplied by the server application. It is not necessary to create any definition in the server application, for Elipse SCADA can automatically find the information. The setting of the DDE tag is accomplished in the general page of the tag in Organizer, as it can be seen below. Support to DDE 337 Picture 150: Setting page of the DDE tag Fields Name of Server, TTopic and Item are always defined in accordance with the server application. If the application is open in the same computer in which the Elipse SCADA is running, it is automatically detected through items Server and Topic. It is possible to test the connection with the server application through the button [Test Connection]. You can send a DDE command to a server application through Scripts, by using the DDEExecute() function. See the Chapter about Scripts, in Special Functions, Global Manager. Example: Elipse SCADA & Microsoft Excel The following setting establishes a DDE connection between Elipse SCADA as client, and Microsoft Excel as server, by using cell A1 in a spreadsheet called Sheet1 in the work folder Book1. Both programs are running in the same computer. For this example, execute the following procedures: 338 Create a DDE Tag. Make the following settings in the DDE Tag: Support to DDE User Manual FIELD Server Name Topic Item VALUE Excel [Book1.xls]Sheet1 R1C1 Note: For different versions or languages of the software, topics and items can change. The button Test Connection allows the test of the DDE connection. Once the connection is done, the DDE tag that is setted can be used in screen objects, scripts or other functions. 20.2. Elipse SCADA as Server Elipse SCADA doesn't need any special setting to work as a DDE server; it just needs to be running with an open application when other application needs to access your data. In order to set up the client application, just specify the three parameters to access the Elipse SCADA as DDE server: server, topic, and item. Example: Elipse SCADA & Microsoft Excel In this example, the Excel (Client) must access a tag in Elipse SCADA (Server) by using DDE. For this example, execute the following procedures: Support to DDE Define the tag that Excel will access in Elipse SCADA. For example: tagDDE. Create a table in Excel and save it with any name, for example: tabela.xls. In Excel, type in the wanted cell the following formula: =ELIPSE|Aplicação!Tags.tagDDE, where: "ELIPSE" is the DDE server, " Application" is the topic, and Tags.tagDDE is the item to be accessed. This item can be any tag or attribute of any object in the application as for example: "Hist1.DateTime". Go to the Edit menu, Link option. Select the link with Elipse and click "Manual". Enter in Link again, select the link with Elipse, and choose "Automatic". 339