Maxscript A5
Maxscript A5
Valmet
2750 Morris Road
Lansdale, PA 19446
This document is the exclusive intellectual property of Valmet, Inc. and/or its subsidiaries (collectively “Valmet”) and is
furnished solely for operating and maintaining the supplied equipment and/or software. Use of the document for any
other project or purpose is prohibited. All copyrights to the document are reserved by Valmet. Accordingly, the
document or the information contained therein shall not (whether partly or entirely) be reproduced, copied or disclosed to
a third party without prior written consent of Valmet.
Valmet 278588
Contents
PREFACE ............................................................................................................................III
How This Book Is Organized .............................................................................................................................. iii
Audience .............................................................................................................................................................. iii
Using Online Help ............................................................................................................................................... iii
Using Other Programming Facilities .................................................................................................................... iii
Introduction .................................................................................................................................................................1-1
Overview.................................................................................................................................................................... 1-1
Creating a Display Containing Script..................................................................................................................... 1-1
Creating Script Files .......................................................................................................................................... 1-2
Developing Script Using maxSCRIPT ................................................................................................................... 1-2
Using Dimension Statements ................................................................................................................................. 1-3
Using Local Variables........................................................................................................................................ 1-3
Reading and Writing from the Software Backplane ........................................................................................... 1-4
Performing External Writes ............................................................................................................................... 1-5
Interacting with Other maxVUE Objects ........................................................................................................... 1-5
Writing Script Logic .............................................................................................................................................. 1-7
Using Let and If, Else Commands ..................................................................................................................... 1-7
Using the Bitmap Command .............................................................................................................................. 1-8
Using the SbpQuality Command ........................................................................................................................ 1-8
Using Functions ................................................................................................................................................. 1-8
Using Special Variables ..................................................................................................................................... 1-9
Placing Scripts in Groups ...................................................................................................................................... 1-9
Making Scripts Portable Using Parameterization ................................................................................................ 1-10
Specifying a Percent (%) Character ................................................................................................................. 1-11
Putting It All Together ......................................................................................................................................... 1-11
Reviewing maxSCRIPT Error Messages ............................................................................................................. 1-12
Writes to Constants Are Prevented .................................................................................................................. 1-12
Using the maxSCRIPT Editor .............................................................................................................................. 1-12
Creating New Files and Projects .......................................................................................................................... 1-13
Working with Projects ......................................................................................................................................... 1-13
Renaming the Project ....................................................................................................................................... 1-14
Adding Files..................................................................................................................................................... 1-14
Renaming Files ................................................................................................................................................ 1-14
Editing Files ......................................................................................................................................................... 1-15
Enabling Standard Editor Options ....................................................................................................................... 1-15
Using Auto Complete....................................................................................................................................... 1-16
Using Line Numbering..................................................................................................................................... 1-17
Using Line Highlighting .................................................................................................................................. 1-17
Using Syntax Highlighting ............................................................................................................................... 1-17
Formatting Files ................................................................................................................................................... 1-18
Valmet 278588
maxSCRIPT User's Guide
Valmet 278588
Contents
v
Preface
Audience
This publication is intended for process control and software engineers and
programmers involved with the design and development of human-machine
interface applications in a control environment.
Hidden Logic This has full Visual Basic capability, but in addition
to maxVUE, you must make a separate purchase of
the Visual Basic tools and have some knowledge of
the Visual Basic environment.
Valmet 278588
maxSCRIPT User's Guide
You may also add Visual Basic and C ++ controls to maxVUE to add full-
blown programming capabilities to maxVUE, however, these options present
some obvious disadvantages.
iv Valmet 278588
Chapter 1
Introduction
Overview
maxSCRIPT is an OCX Control that helps you design a custom display
within the maxVUE environment. Use maxSCRIPT for screen design
applications to incorporate customized logic not available from any of the
other existing standard controls.
maxSCRIPT uses a simplified Basic-like language that you can learn quickly
to create logical statements and perform simple calculations. One or more
instances of this control may be placed onto any maxVUE display.
Use the control to create local data and perform simple calculations using
live data. The results of the calculations can be displayed on the associated
display.
Color changes can be applied to other controls. For example, assume your
process contains a tank that is filled with a reagent that must be heated to
1000 degrees. Script logic could be used to change the color of the graphic
every 250 degrees. Logic could be set up as follows:
Use the mouse to create and place the maxSCRIPT control object on
your display. You may scale the control to any size including full screen.
Valmet 278588
maxSCRIPT User's Guide
Access the Script property page to create or edit the script file in a
maxSCRIPT Editor session. Use the Editor to create simple text files
with a default extension of .mxs.
An additional control property page called Default lets you define a bitmap
that you want to appear in the maxSCRIPT window to replace the standard
maxSCRIPT icon.
A script may be stored with a display if used only by that display. When you
intend to use scripts multiple times, they should be kept in the common area
C:\Custom\Displays\Operating\Scripts.
One Caution: if you use Notepad or another text editor to edit a script
outside of the maxVUE Editor or if you copy an updated .mxs file from one
PC to another, the old .mxo file will not be updated (the maxSCRIPT Editor
automatically deletes the .mxo file for you if you make an edit). You can
simply delete the .mxo file to cause a compilation to take place the next time
that the script is executed.
Note: scripts have no size limits (other than any editing utility size
limitations). Keep in mind, however, that as the script is compiled when the
display is called up, large scripts may affect display performance.
Where:
<alias> any string that uniquely identifies this value in the rest of the script
Example
Dim x as dbl
Dim x as int
Dim x as str
Where:
<alias> any string that uniquely identifies this value in the rest of the script
<service> any valid SBP service name
<extended member> any valid SBP extension
<type> consists of the following in and out types
xxxOut types create (and delete when the screen closes) an LSS object for
output (as well as input) so that other controls can access the calculated
results. A <service> is created for the purpose of housing outputs in the
Local Status Server. The same service can (and should) be used for multiple
members. The members can be of all different types.
Note that although the xxxOut variable is being created for writing, the
current value of the variable is available to the script for internal
calculations.
Note: the <type>Q syntax may be used to propogate SBP data quality from
an input value to an output value. Without the <type>Q declarations SBP
data quality is ignored in a script calculation.
Example:
dimx s as StrOut(_sel_pt.tagname)
This lets you write to existing software backplane service members, such as
DPU point (service) attributes (members) and LSS service members, such as
_sel_pt.
The function of the x is to prevent the script from creating an _lss variable of
the name (<external name>.<external attribute>), which is deleted when the
script is terminated.
DIMX is only functional for dimension statements using out types as shown
in the following:
Example:
Where:
<xxx> is replaced by Dbl, Int or Str; note that the types include the
characters ctl, indicating the script will interact with other controls. For
example, Dblctlout or StrctlIn.
Ctlout indicates that this is a write to a maxVUE control object.
CtlIn indicates that this is a read of a maxVUE control object property.
<object name> is the name of the object as seen and set in the Layers button
of the maxVUE Editor
<parameter> is from the list:
x - the x position in percent of screen
y - the y position in percent of screen
width - the width of the object
height - the height of the object
color - the Fill Color of a maxVUE static object
linecolor - the Line Color of a maxVUE static object
UseBorderScheme – enable/disable (1/0) border scheme of object
PropertyName - the Property Name of the control object.
Example:
Dim y as IntCtlOut(object.y)
Let y = 10
Example:
For example:
Let c = a + b.
The following script sample uses Let and if, else expressions.
if ( AnyAlarm1 = 1 ) or (AnyAlarm2 = 1 )
Let AnyAlarm = 1
Else
Let Anyalarm = 0
EndIf
Bitmap "C:\custom\displays\operating\common\bmp\s-misc-1.bmp"
SBP_QUALITY_GOOD
SBP_QUALITY_DOUBTFUL
SBP_QUALITY_SUBSTITUTE
SBP_QUALITY_BAD
For example:
Using Functions
Functions are so called because they are used as a function of a variable in
an expression as in this syntax:
For example:
maxSCRIPT supports the functions listed in Table 1-1, which are also listed
in Chapter 3, "Using Special Functions."
The following sample script includes the RGB function. In this example the
RGB function changes the color of the caption text placed on a button based
on the state of the input BExp1. When the if statement becomes true, the
caption appears, assuming the color represented by "96,96,96". When the if
statement is not true, the RGB function generates a null string representing
no color, effectively canceling the button text.
If BExp1 = 1
Let ButtonTxtColor1 = RGB "96,96,96"
Else
Let ButtonTxtColor1 = RGB "0,0,0"
Endif
If Mouseclick
Let Mouseclick = 0
Let display = "popups\zpop-ct-dv2-o-s-c.mn dp1=%param1%"
Endif
See "Using Special Variables," in Chapter 3 for a listing of all the available
variables and their syntaxes.
Where scripts are included with a group, cutting and pasting the group will
also take the script reference along. Note in this case, multiple groups would
be using the same script. This is handy when you want to make global
changes to script logic that affect all instances.
Example
Dim p1 as DblIn(%param1%)
Dim p2 as DblIn(%param2%.ao)
Dim out as DblOut(%param3%)
Let out = p1 + p2
You must include the control in a group – even if it contains only a single
script item – to properly use parameters. If you edit the parameters of a
control not in a group, you will be editing the one and only set of default
parameters for the whole display.
Select Edit Group Parameters from the Group Menu to access the
Parameters Property Sheet.
Enter the point name to be used with the Parameter in the Parameter
Assignment field and a description for the parameter. A parameter may be
defined to be another parameter such as %DP1%. At run-time, maxVUE will
continue parsing the parameterized name until it has been resolved.
Now, you may create a display once and use it many times in many places. If
you define subsystems using hierarchical identifiers, for instance, you will
probably find yourself creating similar displays for multiple hierarchical
groups.
You are now free to copy the display containing the parameter names. At
runtime, maxVUE decodes the parameters it finds and inserts the actual
values.
Note: by using parameters for the outputs of the script, the same parameter
can be used for the script as is used for a Bar or a List Box in the same
Group insuring no mistakes.
Dim x as DblIn(test.op%%)
Bitmap "C:\custom\displays\operating\common\bmp\s-misc-1.bmp"
if ( AnyAlarm1 = 1 ) or (AnyAlarm2 = 1 )
Let AnyAlarm = 1
Else
Let Anyalarm = 0
EndIf
dim s as StrIn(_lss.time)
Let s = "now"
This generates the following error message. The 2 indicates that the error
was detected at line two.
In another script example, the following contains a logic error that would
yield the erroneous result i = 2. maxSCRIPT diagnostic capabilities prevent
this from occurring.
dim i as int
Let 1 = 2
Let i = 1
From the File menu, point to New and click maxSCRIPT file.
To create a new project click 'New' then 'maxSCRIPT Project' under the File
menu or the <CTRL> + J shortcut key.
From the File menu, point to New and click Project to access the Create
Project dialog.
Enter a file name for the project, select a directory location, and click Save.
When you save the file, the Editor adds a *.msp to the file name.
When you create the project file, the Editor opens a properties window
containing a Windows Explorer style directory tree showing all the files in
the current project.
The files can be given a name to identify themselves in the project. Any
changes to the project will not be saved until Save Project is clicked under
the File menu.
Select the root file name, the topmost node in the project window, right click
and select Rename from the popup menu.
Renaming the project gives the project a name to identify itself and does not
change the actual filename.
Adding Files
To add a file to the project
Right-click anywhere in the project window and click Add, or click the Add
button on the project window toolbar.
Removing Files
right click on the file you wish to remove and click Remove, or click the
Remove button on the project window toolbar.
Renaming Files
To change the name of a file in the current project, select the file you wish to
rename, right click and select Rename from the popup menu. Renaming the
file simply changes the name to identify itself in the project and does not
change the actual filename.
Creating New Files: To create a new maxSCRIPT file simply navigate the
File menu to New then select maxSCRIPT File. You can also click the New
button on the toolbar or use the <CTRL> + N shortcut key.
Editing Files
Cut, Copy, and Paste functions can be accessed from the Edit menu or by
clicking their icons on the toolbar.
Undo and Redo can be accessed from the Edit menu or by clicking their
icons on the toolbar. Undo can also be accessed by using the <CTRL> + Z
shortcut key. You can undo and redo actions an unlimited amount of times.
Find, find next and replace functions can be accessed from the Edit menu,
clicking their icons on the toolbar or using their <CTRL> + F, F3, and
<CTRL> + H shortcut keys respectively.
Selecting all text can be accessed from the Edit menu or by using the
<CTRL> + A shortcut key.
Auto complete
Line numbering
Line highlighting
Syntax highlighting
All of these features can be seen in the following picture of an edit window:
Select Options from the Tools menu to enable auto complete, if the feature is
not enabled by default. From the Options dialog, check Auto Complete to
enable it. Uncheck the checkbox to disable the feature.
Inside the maxSCRIPT Editor window, press the period key <.> to access a
pop-up list of commonly used attributes.
As you continue to type normallly, the auto complete feature will select the
word it thinks you are typing.
Press the [TAB] or [SPACE] key or click the selection to finish the word.
Press the [ENTER] key to insert whatever word you have typed in the auto
complete box without finishing the word.
You may customize the auto complete attributes list to suit your specific
requirements.
Select MaxScriptEditor.txt from the Tools menu. When you edit the
MaxScriptEditor.txt file it will be placed in
C:\Custom\Displays\Operating\Database\. The original MaxScriptEditor.txt
file can be found in the C:\MCS\Setup\ directory and should not be edited.
Select Options from the Tools menu to enable line numbering, if the feature
is not already enabled. From the Options dialog, check Line Numbering to
enable it. Uncheck the checkbox to disable the feature.
Press <CTRL> + G. to access the Goto Line dialog box. Enter a line number
and click OK.
Select Options from the Tools menu and under line numbering, check Bold
or Italics.
Select Options from the Tools menu and check Line Highlighting to enable
the feature or uncheck the checkbox to disable the feature.
Select Options from the Tools menu and check Syntax Highlighting to
enable the feature or uncheck the checkbox to disable the feature.
Formatting Files
Commenting and Uncommenting Text
Rem
; Semicolon character
' Apostrophe character
When maxSCRIPT is executed, any text beginning with the above characters
is ignored.
Place your cursor on the line to be commented and click the Comment button
on the formatting toolbar.
You may also select Comment Block from the Format pull-down menu or
press <CTRL> + I shortcut key.
Place your cursor on the line to be uncommented and click the Uncomment
button on the formatting toolbar.
You may also select Uncomment Block from the Format pull-down menu or
press < <CTRL> + U shortcut key.
Place your cursor on the line you wish to indent and click the Indent button
on the formatting toolbar.
You may also select Indent Text from the Format pull-down menu, or press
the <Tab> key.
Place your cursor on the line you wish to outdent and click the Outdent
button on the formatting toolbar.
You may also select Outdent Text from the Format pull-down menu, or press
<SHIFT> + TAB.
Toggling Bookmarks
To toggle a bookmark at the current line click Toggle Bookmark from the
Format menu. Bookmarks allow you to quickly access specific lines of text.
You can make as many bookmarks you want in the opened file but will not
be retained after closing and opening the file again. If you’re using maxVUE
Editor to create process graphics and a maxSCRIPT error is generated, the
maxSCRIPT file will be opened in maxSCRIPT Editor with a bookmark at
the line with the error.
Clear Bookmark: to clear all the bookmarks in the current file click Clear
Bookmarks from the Format
Shortcut Keys
maxSCRIPT Editor has many shortcut keys that make it easy to access
common operations. The following table lists the default keystrokes and
their associated actions.
Creating maxSCRIPTs
Using Simple Examples
Getting Started
To use the maxSCRIPT control effectively you need to become acquainted
with the maxSCRIPT scripting language. This simple but powerful script
language consists of a relatively small number of commands, special
variables and functions that you may learn with ease. Script elements are all
listed in detail in the maxSCRIPT Script Language Reference Guide in
Chapter 3.
This chapter shows you how to create a few simple maxSCRIPT controls by
example in three introductory exercises. The first exercise shows you how to
display bitmaps based on the state of an analog output. A second exercise
shows you how to implement a similar maxSCRIPT using parameterization.
A third exercise demonstrates the use of the Mouseclick variable.
The exercises are followed by four examples of script developed for real
applications by Valmet engineers. Each example illustrates an aspect of
script that you may implement when you compose your own script files.
1. From the Start menu, point to Programs, maxDNA, Utilities, and click
TestSBP to open the TestSBP utility dialog display.
_lss.addsvc. fuel_flow.pid
Valmet 278588
maxSCRIPT User's Guide
4. Click the Apply button to add this simulated point to the Local Status
Server.
After you add fuel_flow.pid, follow the same steps to add the second
simulated point, air_flow.pid.
When you finish, you will have added two new services to the Local Status
Server. To confirm that the services were added, open the maxDNA Point
Browser. Expand the Servers node under Online Configurations. Then
expand the _LSS node and finally the PID node. When you select any of the
points, a list of default attributes appears on the details tabular, including
AO.
Note: when you close maxVUE and shutdown the maxSTATION, these two
services will be deleted from the Local Status Server.
2. Click the New tool button to access the file directory dialog box and
enter a file name, such as mydisplay.mn, or any name meaningful to you.
3. Click the maxSCRIPT Control tool button from the OLE Animator
tool bar. Place the cursor on the desired location on the screen and click
but do not release the button.
4. Drag the mouse to size the maxSCRIPT display window as desired and
release the button when satisfied with the dimensions. Remember this
will be the size and location of the bitmap window.
5. Click the Select tool button and click on the maxSCRIPT control
you just created to select it.
7. From the Script tab, click the New button to create a new script and
enter an appropriate name for the script. Create a file location under the
Custom directory such as C:\Custom\Displays\Operating\Scripts. Any
additional scripts that you create should be saved to this location.
9. From the maxSCRIPT Editor, enter the desired code and select Save
from the File menu when you are finished.
10. From the Default tab, enter an image file or background color that you
want to appear in the control window to replace the standard icon that
appears when you first call out a maxSCRIPT instance.
This summarizes all the steps required to create a maxSCRIPT control. Now
you're ready to create scripts based on the examples outlined at the
beginning of this chapter. Refer to the next sections.
The script will consists of three common script language elements, the
dimension statement, If, Else conditional statements, and the bitmap
command. In addition to the maxSCRIPT pump control, you'll be creating
another maxSCRIPT control containing a button that calls out the control.
2. The rest of the script uses if, else conditional expressions that
incorporate bitmap commands as shown in the following figure:
3. Save the script file using maxSCRIPT Editor menu options. In our
example, the script is named 3-state-vlv.mxs.
In this suggested script, the following line contains the path name of the
target display:
1. From the Windows desktop, double click on the maxVUE Runtime icon
to invoke the application.
2. Click anywhere on the logo screen to open the Main Menu display.
4. Select fuel_flow as the selected point and bring up the faceplate. Increase
or decrease the AO to within the valve condition values specified in the
maxSCRIPT. Are the Bitmaps changing based on the AO of the
specified tag?
1. From the maxVUE Editor open the display you created in Exercise 1.
2. Click the Select tool button and click on the maxSCRIPT control
you created in the previous exercise to select it.
5. From the Script tab, click the Edit button to select the script for the 3-
state valve condition you created earlier.
7. From the maxSCRIPT Editor File menu, save the script under a new
name, such as 3-state-vlv-param.
8. Click the Select tool button and click on the maxSCRIPT control
you created. Right-click to bring up Control Menu pop-up and select
Group from the context menu.
9. Select the Group, Create New Group – From Selected Objects option
to make the maxSCRIPT instance a group.
10. Select the Group, Edit Group Parameters option and edit the Param1
assignment to be Fuel_flow.
11. Now create a second instance of the script for the point air_flow. Click
the Select tool button and click on the maxSCRIPT control you
created in this exercise to select it. Copy and paste the maxSCRIPT
instance somewhere on the display.
13. Click the Save tool button to save the changes to your mydisplay.mn
display and close the maxVUE Editor.
1. From the Windows desktop, double click on the maxVUE Runtime icon
to open the application.
2. Click anywhere on the logo screen to open the Main Menu display.
3. Edit the screen button you created in the previous exercise to display
swap to mydisplay.mn, and close the maxVUE Editor.
single left mouse click, single right mouse click or a double click. The button
may use any background including bitmaps and be scaled to any size
including full screen.
1. With the maxVUE Editor, click on the New tool button to access the
file directory dialog box and enter a file name, such as
mydisplay_exercise3.mn or any name of your choosing.
3. Drag the mouse to size the maxSCRIPT display window as desired and
release the button when satisfied with the dimensions. Remember this
will be the size and location of the navigation button.
4. Click the Select tool button and click on the maxSCRIPT control
you just created to select it.
6. From the Script tab, click the New button to create a new script and
enter an appropriate name for the script, such as display_swap.mxs.
Click the Save button to bring up the maxSCRIPT Editor.
7. From the maxSCRIPT Editor, enter the desired code and select Save
from the File menu when you are done. Create a file location under the
Custom directory such as C:\Custom\Displays\Operating\Scripts.
8. The first line of script uses the bitmap command to define the
background for the display button. Refer to the following figure:
9. The next two lines set up the conditions for the display swaps based on
the value of the Mouseclick variable. Refer to the following figure:
10. The next line of script specifies the target display you wish to open with
a mouse click. Enter the name of an existing maxVUE display, such as
the displays you created in the previous exercises containing
maxSCRIPT controls.
Be sure the correct file path and display name (including file extension)
is specified. The file path must begin after
C:\Custom\Displays\Operating. For example, Main\Mainmenu2.MN,
Boiler\Boiler.MN, Air\Air.MN, etc. Refer to the following figure:
11. End the condition (Endif) and save the script file using the maxSCRIPT
Editor menu options.
1. From the Windows desktop, double click on the maxVUE Runtime icon
to open the application.
2. Click anywhere on the logo screen to open the Main Menu display.
3. Click the navigation button you created to display swap to the target
display you specified in your script, such as mydisplay.mn or whatever
you chose to call it.
The following script sets off an on-screen yellow alarm indicator when the
state of two alarm attributes associated with two input values become true.
Bitmap C:\custom\displays\operating\common\bmp\hide_bitmap.bmp"
if ( AnyAlarm1 = 1 ) or (AnyAlarm2 = 1 )
Let AnyAlarm = 1
Else
Let Anyalarm = 0
EndIf
Bitmap "C:\custom\displays\operating\common\bmp\hide_bitmap.bmp"
In this case, the bitmap is only use to hide the maxSCRIPT control on the
display. The bitmap command calls out a background color that is identical
to the screen display color, making the control blend in with its background
and disappear from view. This is a convenient way to hide the control when
it need not be visible, reducing screen clutter and confusion.
The next part of the script uses six dimension statements to read and write
values to the Local Status Server in the Software Backplane.
The first two dimension statements are reading two input values from the
parameterized tag names %param1%.out and %param2%.out.
The two inputs have two associated attributes for alarming called
AnyAlarm1 and AnyAlarm2. The following dimension statements are
reading these two values:
The script uses a Let statement to calculate an average for the two input
values, Input1 and Input2. The following dimension statement is used to
output the result of this calculation to a location in the Local Status Server
called %param1%_avg.out.
Finally, the script uses an If expression to test for an alarm state. The
expression states that if AnyAlarm1 or AnyAlarm2 enters a true state, then
Let an output value, created in maxSCRIPT, called AnyAlarm equal 1. Using
a dimension statement, this value is then passed on to an output tag called
%param1%_avg.Anyalarm. This then activities a screen alarm indicator. See
the following dimension statement:
If DP1 = "OILSEQAF"
Let TitleTxt1 = "Oil Elevation A Front Sequence"
Let TitleTxt2 = "Oil Elevation A Front Sequence"
Endif
The script begins with two dimension statements that are writing to the Text
property of two maxVUE Editor static text objects called TitleTxt1 and
TitleTxt2. These two objects are in a Group named “Title”. (Refer to
Layers dialog fragment below).
A third dimension statement is declaring a text string that is set from any
maxVUE display file with the parameterized reference, dp1.
The script logic following the dimension statements states that if a display is
accessed where dp1 is "OILSEQAF," Let the display title be "Oil Elevation
A Front Sequence."
'-------------------------------------------------
'This script hides the State2 command and feedback
'button when Numstate = 2.
'-------------------------------------------------
' Configure Runtime Bitmap to hide MAXscript.ocx
Bitmap "S-popback-1.bmp"
If Numstate = 2
Let Width_rect = 0
Let Width_button = 0
Let Height_rect = 0
Let Height_button = 0
Endif
The pop-up as created contains three buttons that may be assigned different
functionality depending on the inputs the pop-up is currently referencing. In
certain specific instances, however, only two buttons are relevant to the
application that called the pop-up. The script shown here is designed to hide
the third button when an input indicates only two buttons are needed.
The script begins with several comment lines set off by the initial single
quote or apostrophe character. When the script is compiled, text StrIngs that
follow a single quote are ignored. The comments summarize the purpose of
the script, which is to hide the State 2 command and feedback button when
an input called Numstate equals 2.
The script continues with a bitmap command that displays a pop-up display
file called S- popback-1.bmp.
The four other dimension statements define names to be used to write to the
size attributes of the State2 button. Note that the size attributes include a
rectangle that refers to the border surrounding the button.
Note: controls can be renamed using maxVUE Editor Layers button. Click
the Layers button, locate and select the control of interest, right-click and
select Rename from the menu and enter a new name. See discussion under
"Interacting with Other maxVUE Controls," in Chapter 3.
The logic that follows the dimension statements states that if Numstate reads
an input equaling 2 then write a zero to the size attributes of the button and
surrounding rectangle. This effectively makes the button and button border
disappear from the display when this script is in effect.
Note: when you select Test Mode in the maxVUE Editor, scripts can modify
the parameters of other unsaved controls, such as width, height, x or y, or
color. If you save the graphic after the script is run, these parameters changes
will be remembered. Be sure to save prior to testing to prevent this.
By using script this way, you create a single display that may be tailored for
multiple purposes, eliminating the need to create multiple displays designed
to anticipate very specific uses.
Bitmap "c:\custom\displays\operating\common\bmp\s-cb-a-1.bmp"
fBitmap "c:\custom\displays\operating\common\bmp\s-cb-a-1fl.bmp"
Bitmap "c:\custom\displays\operating\common\bmp\s-cb-a-2.bmp"
fBitmap "c:\custom\displays\operating\common\bmp\s-cb-a-2fl.bmp"
elseif DevState = 2
Bitmap "c:\custom\displays\operating\common\bmp\s-cb-a-1.bmp"
fBitmap ""
elseif DevState = 1
Bitmap "c:\custom\displays\operating\common\bmp\s-cb-a-2.bmp"
fBitmap ""
else
Bitmap "c:\custom\displays\operating\common\bmp\s-cb-a-5.bmp"
fBitmap ""
Endif
If Mouseclick
Let Mouseclick = 0
Let SelPt = "%param1%"
Endif
If mousedclick
Let mousedclick = 0
Let display = "popups\zpop-ct-dv2-o-s-c.mn dp1=%param1%"
Endif
The script uses three dimension statements to define inputs for DevState,
Ovrd1, and Ovrd0. The logic that follows the dimension statements reads the
inputs for the above attribute values to determine which set of inputs makes
any of a series of if expressions true.
For instance if Ovrd1 = 1 and DevState = 2, then the script displays the
following two bitmaps using these path names:
"c:\custom\displays\operating\common\bmp\s-cb-a-1.bmp"
"c:\custom\displays\operating\common\bmp\s-cb-a-1fl.bmp"
The bitmap images are identical but use different shades of the color red.
The first bitmap uses a medium red and the second bitmap uses a dark red.
The first bitmap is called out using the Bitmap command, while the second
bitmap is called out using the fBitmap command. To create the illusion of a
single flashing image, the fBitmap command causes maxVUE in runtime
mode to display both bitmaps alternating in rapid succession.
Note that the script is written to display only one of two flashing bitmaps
when the proceeding if conditional logic is satisfied. The fBitmap command
is used in three other places in the script followed by a null text string as in
the following:
Bitmap "c:\custom\displays\operating\common\bmp\s-cb-a-5.bmp"
fBitmap ""
When a script uses the fBitmap command, you must continue to use this
command in other places that call for a bitmap even when a flashing bitmap
is not desired. For instances where a flashing bitmap is not desired, use the
fBitmap "" script construct to nullify or cancel a flashing bitmap command.
Also note that the path for the bitmap may be a fully qualified pathname as
in this example or it may be a partial path as in the “Hiding a Button in a
Popup Display” example.
Overview
The maxSCRIPT OCX control uses a Basic-like script language, allowing
you to create maxVUE display applications using a more free-form
programming approach. The script language, developed by Valmet, uses
elements, such as dimension statements, commands, variables, and logical
expressions, providing you with a rich coding language. All the elements you
may currently include in your script files are listed in this reference chapter.
Each of the following sections describes the script element and its general
syntax, and shows you how the element is typically incorporated in script
using basic examples.
Where:
<alias> any string that uniquely identifies this value in the rest of the script
<type> is from
Valmet 278588
maxSCRIPT User's Guide
Note when you first create them, double variable (0.0), integer variable (0)
and string variable (“”) begin as null values. In addition, the <type>Q
variables begin with Good Quality. The following technique can be used to
do something on the first pass only:
Example
Dim f as Int
If f = 0
Let f = 1
…..do something
Endif
Where:
<alias> any string that uniquely identifies this value in the rest of the script
<service> any valid SBP service name
<extended member> any valid SBP extension
<type> consist of the following in and out types:
In Types:
Out Types:
xxxOut types create (and delete when the screen closes) an LSS object for
output (as well as input if necessary) so that other controls can access the
calculated results. A <service> is created for the purpose of housing outputs
in the Local Status Server. The same service can (and should) be used for
multiple members. The members can be of all different types.
Dim A as StrOut(_sel_pt.tagname)
has the unfortunate effect of deleting the selected point object when the
script is terminated. It is up to the script writer not to use existing local status
variable names in an xxxOut dimension. Use the Dimx statement to write to
existing local status variables:
Dimx A as StrOut(_sel_pt.tagname)
dimx s as StrOut(_sel_pt.tagname)
When out types are used with the dimx command, an existing variable is
assumed (and not created or deleted).
The function of the x is to prevent script from creating an _lss variable of the
name (<external name>.<external attribute>), which is deleted when the
script is terminated.
Should you write a dimx statement for xxxIn types, the script will perform
like a dim statement without the x. The x is ignored for inputs.
Syntax
Where:
<alias> any string that uniquely identifies this value in the rest of the script
<service> any valid SBP service name
<extended member> any valid SBP extension
<type> is IntOut, DblOut or StrOut
Example
A command is an action that takes place upon a write from the software
backplane. Although commands are not readable, you might write the same
value each time (0, for example).
Where:
<alias> any string that uniquely identifies this value in the rest of the script
<service> any valid SBP service name
<extended member> any valid SBP extension
<type> consist of the following out type:
Example
Without the use of the command statement, maxSCRIPT only writes the
value once, assuming nothing has changed since the last write. The
command statement, in effect, forces a demand write. maxSCRIPT will
perform the write regardless of what was written to this command the last
time, and it will not subscribe to the command to update current values.
Note that the maxSCRIPT variable Display (See Table 1-1 above) uses the
sCmdOut command statement on behalf of the user.
Note that normal outputs DO subscribe to values and can be used as inputs.
Example:
dim a as IntOut(test.out)
if a = 5
Let a = 0
Endif
Subscribe _KEYBOARD.BUFFER.<MASK>
M - ode
D - isplay
P- an
C - ursor
Z - oom
U - ser
L -ogic
S - etpoint
O - utput
A –alarm
For example:
_keyboard.buffer.a
Finding Keycodes
Notice that the script in the preceding example references a specific function
key by its number code, 626. The following script can be used to find
keycodes:
Put this script on a graphic, with a single point displaying the integer at
test.out, and you will see keys as they are pressed. Notice that a key is
always followed by a zero around one second after the key has been pressed.
Where:
Example:
Dim x as IntCtlOut(object.x)
Dim y as IntCtlOut(object.y)
Let x = 20
Let y = 10
Note: when you select Test Mode in the maxVUE Editor, scripts can modify
the parameters of other unsaved controls, such as width, height, x or y, or
color. Be sure to save any unsaved controls prior to testing to prevent this.
Color is best represented by a dbl value. The dbl value should be calculated
as:
IntCtlOut(<controlname>.<attribute>)
DblCtlOut(<controlname>.<attribute>)
StrCtlOut(<controlname>.<attribute>)
You need to know the name of the target control, which may be any
available maxVUE control, such as a Button Control, List Box, and so forth.
1. Click the Layers Button to display the Edit Layers and Control Order
dialog of the selected display file.
2. When you access the Edit Layers and Control Order dialog, display
objects appear in Folders, organized in a tree structure.
3. To change the default name to any name of your choosing, select the
object and right-click to bring up a pop-up menu. Click Rename from
the menu and enter a new name.
All Group Folders (except the root) may be renamed. The individual drawing
items within a Folder may also be renamed. It is OK that the names are not
unique when a group is copied and pasted. This function will first search for
a control within the group with <controlname>. It will then look at the next
level of grouping and so forth.
Let
If, Else, Elseif, Endif
Bitmap/fbitmap
Play
ToolTip
Run
SbpQuality
Where:
Example:
Bitand and bitor are used to AND or OR two operators together to produce
either a zero or non-zero result. Typically, one of the operators will be an
integer constant whose decimal equivalent is one or more bits set, while the
other is a multi-bit integer which is to be tested for the state of a bit buried
within the integer.
Example of use of bitand; the goal of the code is to animate individual bits of
a word; thus, through parameters, this code is called 16 times in the Popup.
Bitmap = "C:\mcs\displays\common\bmp\backgray.bmp"
Dim bn as Int
Dim bit as Int
Dim word as IntIn(%param1%.%param3%)
Dim start as IntIn(%param1%.BIT_NUM)
Dim bits as IntIn(%param1%.FIELD_SZ)
Let bn = %param2%
Endif
If <expression>
Else
ElseIf <expression> (Note one word)
Endif
Where:
Example
When you create the control in the maxVUE Editor, you may scale the
window to any size including full screen. The bitmap assumes the size of the
control window.
You can control how and when a bitmap or multiple bitmaps appear in run
mode using the bitmap instruction by itself or with additional script logic:
Bitmap “<expression>”
Where
<expression> is the file path and name to the desired bitmap. You may use a
partial pathname if your bitmap is in one of the standard locations for
bitmaps:
The folder where the display is located
C:\Custom\Displays\Operating\Common\Bmp
C:\Mcs\DISPLAYS\Common\Bmp
Dim f as int
If f = 0
Let f = 1
Bitmap “c:\winnt\winnt.bmp”
Endif
bitmap "2handbrt24bit.bmp"
fbitmap "2handdim24bit.bmp"
fbitmap ""
You can reset the name of the normal bitmap and flashing bitmap at anytime.
play "c:\winnt\media\start.wav"
To create a ToolTip that displays the last error message for the maxSCRIPT
control, combine the ToolTip command with the Error variable. See "Using
the Error Variable," in the following section.
If MouseClick
Let MouseClick = 0
Run "c:\Mcs\Report\ReportControlPanel.exe,Reports Control Panel"
Endif
The Window Title may include the wild card character (*) to match multiple
characters, or the position wild card character (?) to match any character in a
position:
If MouseClick
Let MouseClick = 0
Run "C:\Windows\System32\mspaint.exe,*paint"
Endif
Run "C:\mcs\Report\ReportPrintPreview.exe,
Report Preview of Test1 Daily Last,
ReportPrintPreview Test1,Daily,Last
If MouseClick
Let MouseClick = 0
Run "C:\Windows\System32\mspaint.exe,Bad Title"
Endif
For Visual Basic applications, the title of the application can be blanked and
its ‘Visible’ property set to False in addition to the above change to the Run
command that starts the application.
Where:
This command will set the SBP data quality of the script variable to the
proper value to show one of the quality states listed above.
Display
If Mouseclick = 1
Let Mouseclick = 0 ;need to reset it
……
Endif
Tooltip Error
will copy the last error to ToolTip. Error can be set by applications
software:
Note the units of row and col are percent of the graphic and can be placed
into x and y directly.
Note: Mouse row and column are only calculated in maxVUE Runtime.
Example:
For example,
Or in a Let expresstion:
ABS(Expression)
Example:
Dim dev as dbl
Dim pv as DblIn(tagname.pv)
Dim sp as DblIn(tagname.lsp)
Let dev = abs(pv-sp)
Example:
dim i as IntIn(script.int)
dim s as str
Let s = "The " + Asc(i) + "time"
Note there are no errors. Asc will truncate all numbers from 0 to 255 without
raising an error.
Examples:
The ASK function places a message popup in front of the operator so that
the operator can make a decision. The operator must always answer the
message popup.
Yesno: the operator will be asked yes or no to answer a question. The result
will be 1 if the operator clicks on Yes, or 0 if the operator clicks on No.
Input: the operator will be asked to enter a string variable, which will then
be placed in the result.
Alert: the operator will merely have to acknowledge the popup; no result
will be returned.
Where
<popup caption> would be replaced by the title of the message box, such as
Add Trend Point
dim s as StrIn(_sel_pt.tagname)
dim d as str
if Mouseclick
Let Mouseclick = 0
if s <> ""
Let d = p_control(s)
if d <> ""
Let d = d + " dp1=" + s
Let display = d
else
ask "Selected Point Not Recognized|No Control popup|alert"
Endif
Endif
Endif
tooltip "Click to call up a Point Control popup for the selected
point. Note - You must Select a point first."
In this example, the code generates an alert-type message box, with text
message Selected Point Not Recognized, and with title No Control popup, if
the p_control function does not return a display name.
Before using an AVI it must be loaded. In the following example, this script
is used to load an AVI called clock:
avi <frame>
Frame Rate
The frame rate for new frames is 1/2 second. For example, the following
code will display the frames 1,2,3,5,7 in sequence at a rate of 1/2 second.
If gonow
Let gonow = 0
avi 1
avi 2
avi 3
avi 5
avi 7
Endif
Example:
Put a list control with two entries (writes on junk.in) and you can type in a
string (%param1%.%dp1%) and see what it gets expanded to.
Dim s as str
dim d as dbl
Dim i as IntIn(test.in)
Let s = "%%"
if i = 0
Let s = s + "fic101"
elseif i = 1
Let s = s + "lic101"
Endif
Let s = s + ".pv%%"
Let d = exp(s)
Note the double parenthesis characters (%%) are used because lines of script
are pre-expanded prior to compilation. %% expands to a %.
NOT (Expression)
Example:
if not (a = b)
Use the Objmap function to look up the mapping of an object type (such as
PID, SUMMER etc.) to find its appropriate point detail and point data
popup.
The function references a database file listing all known object types and
their associated point detail and point data pop-up displays by specific file
name. All objects in systems from MAX1 through maxDNA have an object
type such as PID, SUMMER etc. This file is located in:
C:\custom\displays\operating\database\typemap.mdb
The database file table consists of the following columns, which can be
filled in:
PointDataPopup
PointDetailPopup
PointControlPopup
UserDefined1
UserDefined2
UserDefined3
UserDefined4
Help
Note: The only ones in service for maxDNA are PointDataPopup and
PointDetailPopup.
Where
Example
Note that the temporary string ‘s’ is used to compute the string consisting of
the object type and the column to be accessed separated by the vertical bar.
Objmap will return an error message in the string should an object type not
be found, or the column name not be found. In addition, you can test the
quality of an Objmap function to determine if the lookup is successful:
Example
If qua(objmap(“%_sel_pt.forward.objtype%” +
“|PointDataPopup”)
…
Endif
For DBM-based points, the TypeMap.mdb database file is searched for the
name of a popup, which will typically come from either
C:\Mcs\Displays\Mn\PointData folders, or C:\Mcs\Displays\Mn\PointDetail
folders as described in the Objmap function above. You may, however,
create a modified set of displays in the C:\Custom\Displays\Operating path).
For maxDPU-based points, the Point Control popups will typically come
from C:\Mcs\Displays\Mn\Popups\dpmsxxx folders (where dpmsxxxx is the
name of an atomic block). The Point Detail popups will typically be the
PtDetailsTabular.mn display (looks like the Point Browser), although you
could create custom Control or Detail popups which would be stored in the
C:\Custom\Displays\Operating\Popups path.
For maxDPU -based atomic blocks, the display names are always going to be
stored in a folder C:\Custom\Displays\Operating\Popups\<objname>, with
The Valmet-supplied Point Control popup for the ATAG atomic block is:
C:\Mcs\Displays\Mn\Popups\dpmsATAG\dpmsATAG-control.mn.
C:\Custom\Displays\Operating\Popups\dpmsATAG\dpmsATAG-control.mn.
These path and file names are the template for what you would use if you
had created your own maxDPU Custom Function Blocks, and wanted to
provide them with either a Control or Detail popup.
Dim s as StrIn(_sel_pt.tagname)
Dim d as str
If Mouseclick
Let Mouseclick = 0
If s <> ""
Let d = p_control(s)
If d <> ""
Let d = d + " dp1=" + s
Let display = d
Else
Ask "Selected Point Not Recognized|No Control popup|alert"
Endif
Endif
Endif
Tooltip "Click to call up a Point Control popup for the selected
point. Note - You must Select a point first."
The variable s contains the tagname of the selected point. The variable d
contains the path and name of the popup found by p_control. This sample
appends a display parameter set to the selected point tagname to the display
name.
Example:
Dim s1 as StrIn(input1.tagname)
Dim s2 as StrIn(input2.tagname)
Dim same as int
If s1 = s2
Let same = 1
Endif
The s1 and s2 are initialized to Bogus (bad). The if statement first makes the
calculation:
s1 = s2
If any variable in a calculation is bad (timed out, tag not found, data not
available yet) the result is zero or false. So the above program will work.
There are still situations where it would not as in the following example:
To be absolutely sure the data is good incorporate the Qua function in scripts
as shown in the following example:
Dim s1 as StrIn(input1.tagname)
Dim s2 as StrIn(input2.tagname)
Dim same as int
If qua(s1 = s2)
If s1 = s2
Let same = 1
Endif
Endif
Note: the Qua function is performed on the result of the calculation s1 = s2.
The result is thrown away.
Caution: some scripts that used to operate under Release 1.6.4 may operate
differently under Release 1.6.5 due to the introduction of quality. In the first
example, your program may depend on falling through the comparison (even
though it is an error to do so)!
RGB ("r,g,b")
Example:
Dim c as DblCtlOut(box.color)
Let c = rgb "255,0,128"
The following example sets a full red, no green and half-blue intensity. RGB
returns a double and can be stored in any dbl variable.
Example:
Dim c as dblctlout(box.color)
Dim d as dbl
Let d = rgb "255,0,128"
Let c = d
You may use the RGB function with the color and linecolor attributes of a
control using this syntax:
The following script will popup the point picker on a mouse click:
If Mouseclick
Let Mouseclick = 0
SendMsg “Point Picker WakeUp”
Endif
SVC ("service.member")
Example:
Let Output = 1
Else
Let Line1Txt = TRANS("ERROR") (Translated Text in Alternate Language Mode)
Let Output = 4
Endif
Example:
Note there are no errors reported. Val will convert as many characters as are
appropriate and stop without error in any case.
Example:
Example:
Dim In as DblInQ(10GAS_MON.Out)
Dim Q as Int
Let Q = SbpQuality(In)
0 = good
1 = doubtful
2 = substitute
3 = bad
Example:
Dim In as DblInQ(10GAS_MON.Out)
Dim Q as Int
Let Q = SimplifiedQuality(In)
Note that the “_scr” addition to one of the driving tagnames creates a unique
LSS object in which to store the output of the script. And the Group
Parameter for param1 will be set to a tagname.
%_LSS.Unique%
Note that expanded parameters are cached for the life of the display, so the
expansion of %_LSS.Unique% will return the same value for all uses on a
single display. So if multiple groups that use this technique to generate a
unique name are used on a single display, the Group Parameter definition for
each instance must be unique. For example:
Without the declaration of dummy, the above script will only execute when
the out subscription times out.
Rem
; Semicolon character
' apostrophe character
When maxSCRIPT is executed, any text beginning with the above characters
is ignored.
Property Names
The available Properties from standard controls are shown in the table
below. Refer to the description of xxxCtlIn and xxxCtlOut dimensions
above.
Please note: this table may become obsolete if new properties are added to
controls, or new controls are added to the system. You may determine the
names of properties for a control by using the following technique:
Create a new maxVUE display and put the control you are interested
in on that display.
Use the maxVUE Editor “Export As” File menu option to create a
text copy of the display.
Open the file in a text editor such as NotePad to view the names of
the control’s properties.
Valmet 278588
maxSCRIPT User's Guide
BrowserTree showNodes
ButtonControl ToolTipEnabled
ButtonControl ReadPointIdentifier
ButtonControl TRUEBitmap
ButtonControl FALSEBitmap
ButtonControl BooleanOperator
ButtonControl ButtonCaption
ButtonControl PointAttribute1
ButtonControl PointAttribute2
ButtonControl ToolTipText
ButtonControl FontTypeFaceName
ButtonControl FontWeight
ButtonControl FontStyle
ButtonControl WritePointAttribute
ButtonControl TRUEColor
ButtonControl FALSEColor
ButtonControl BorderThickness
ButtonControl ButtonTextColor
ButtonControl FontPointSize
ButtonControl WritePointValueType
ButtonControl PointValue
EnumFields PointIdentifier
EnumFields DefaultText
EnumFields SBPWriteEnable
EnumFields ConfirmationEnable
EnumFields UseToolTipText
EnumFields ToolTipText
EnumFields BorderStyle
EnumFields BackgroundColor
EnumFields TextColor
EnumFields HilightBackgroundColor
EnumFields HilightTextColor
EnumFields FontTypefaceName
EnumFields FontStyle
EnumFields FontPointSize
EnumFields FontWeight
IPViewControl IPSourceStation
IPViewControl PageNumber
IPViewControl ToolTipEnabled
IPViewControl BorderThickness
IPViewControl ToolTipText
ListControl ColumnHeaderEnable
ListControl ColumnHeaderText
ListControl RowHeaderEnable
ListControl RowHeaderText
ListControl ReadPointIdentifier
ListControl BStyle
ListControl GridEnable
ListControl ToolTipEnable
ListControl ToolTipText
ListControl RowHeaderBkGndColor
ListControl RowHeaderTextColor
ListControl ColumnHeaderTextColor
ListControl ColumnHeaderBkGndColor
ListControl ReadPointFormat
ListControl ReadPointMandE
ListControl ReadPointTotalWidth
ListControl ReadPointDecimalWidth
ListControl WriteAction
ListControl WritePointIdentifier
ListControl FontName
ListControl FontStyle
ListControl FontWeight
ListControl FontPointSize
ListControl ColumnWidth
ListControl BlinkPointIdentifier
ListControl BlinkAttributeState
ListControl BkGndColor
ListControl TextColor
ListControl BlinkColor
ListControl BlinkEnable
ListControl WritePointFormat
ListControl GridColor
ListControl GridThickness
ListControl BorderOffset
ListControl SelectedPointEnable
ListControl SelectedPointIdentifier
ListControl TFormat
ListControl TotalRows
ListControl TotalCols
ListControl CurrentCol
ListControl CurrentRow
MAXScript ScriptFile
MAXScript revision
MAXScript LastError
MAXScript DefBitmap
OpLogic ModeKG
OpLogic AlarmKG
OpLogic SetpointKG
OpLogic OutputKG
OpLogic LogicKG
OpLogic PointType
OpLogic PointIdentifier
PtCallupBtn ReadIdentifier
PtCallupBtn WriteIdentifier
PtCallupBtn DatabaseName
PtCallupBtn DatabaseKeyField
PtCallupBtn DatabaseRetrieveField
PtCallupBtn ButtonCaption
PtCallupBtn BtnFontTypeFaceName
PtCallupBtn BtnFontWeight
PtCallupBtn BtnFontStyle
PtCallupBtn BtnTextColor
PtCallupBtn BtnFontPointSize
PtCallupBtn BtnBitMap
PtCallupBtn BtnColor
PtCallupBtn BtnBorderThickness
PtCallupBtn ToolTipEnabled
PtCallupBtn ToolTipText
PtDetail ToolTipEnabled
PtDetail ReadPointIdentifier
PtDetail ToolTipText
SbpCtl NumOfObjects
SbpCtl MinTime
SbpCtl MaxTime
SbpCtl SubscribeEvent
SbpCtl ReadEvent
SbpCtl WriteEvent
SbpCtl EventConsolidation
SbpCtl SeparateConnection
SbpCtl Username
SbpCtl Priority
SbpCtl CurrentArrayIndex
SbpCtl AutoSubscribe
SbpCtl DeltaValue
SbpCtl PointId
SbpCtl Value
SbpCtl Status
SbpCtl ValueTimestamp
SbpCtl TimeOut
SbpCtl ValueTimestamp
SglPtValueControl BStyle
SglPtValueControl ToolTipEnable
SglPtValueControl ToolTipText
SglPtValueControl FontName
SglPtValueControl FontWeight
SglPtValueControl FontStyle
SglPtValueControl OptionalStrIng
SglPtValueControl ReadPointIdentifier
SglPtValueControl ReadPointFormat
SglPtValueControl ReadPointMandE
SglPtValueControl StatePointAttribute
SglPtValueControl BkGndColor
SglPtValueControl TextColor
SglPtValueControl BlinkColor
SglPtValueControl State
SglPtValueControl BlinkEnable
SglPtValueControl ReadPointTotalWidth
SglPtValueControl ReadPointDecimalWidth
SglPtValueControl FontPointSize
SglPtValueControl BorderOffset
SglPtValueControl SelectPointSupportEnable
SglPtValueControl SelectPointIdentifier
SglPtValueControl TFormat
TextState ReadPointIdentifier
TextState ReadPointType
TextState BStyle
TextState BorderOffset
TextState ToolTipEnable
TextState ToolTipText
TextState FontPointSize
TextState FontWeight
TextState FontStyle
TextState RelationOperator
TextState CompareValue
TextState DisplayText
TextState BkGndColor
TextState TextColor
TextState BlinkColor
TextState BlinkEnable
TextState FontName
TextState DefaultText
TimeSetter TimeFormat
TimeSetter TextColor
TimeSetter BackgroundColor
TimeSetter SetTimeEnable
TimeSetter BorderStyle
TimeState ReadPointIdentifier1
TimeState ControlBorderStyle
TimeState DefaultState
TimeState ToolTipEnable
TimeState ToolTipText
TimeState ReadUseOLDPI1
TimeState ReadUseOLDPI2
TimeState ReadUseOLDPI3
TimeState ReadUseOLDPI4
TimeState ReadOLDPointIdentifier1
TimeState ReadOLDPointIdentifier2
TimeState ReadOLDPointIdentifier3
TimeState ReadOLDPointIdentifier4
TimeState ReadOLDPI1Caption
TimeState ReadOLDPI2Caption
TimeState ReadOLDPI3Caption
TimeState ReadOLDPI4Caption
TimeState ReadOLDPI1CaptionLocation
TimeState ReadOLDPI2CaptionLocation
TimeState ReadOLDPI3CaptionLocation
TimeState ReadOLDPI4CaptionLocation
TimeState ReadOLDPI1CaptionOnly
TimeState ReadOLDPI2CaptionOnly
TimeState ReadOLDPI3CaptionOnly
TimeState ReadOLDPI4CaptionOnly
TimeState ReadOLDPI1UseToolTipText
TimeState ReadOLDPI2UseToolTipText
TimeState ReadOLDPI3UseToolTipText
TimeState ReadOLDPI4UseToolTipText
TimeState ReadOLDPI1BorderStyle
TimeState ReadOLDPI2BorderStyle
TimeState ReadOLDPI3BorderStyle
TimeState ReadOLDPI4BorderStyle
TimeState ReadOLDPI1BorderWidth
TimeState ReadOLDPI2BorderWidth
TimeState ReadOLDPI3BorderWidth
TimeState ReadOLDPI4BorderWidth
TimeState ReadOLDPI1BackgroundColor
TimeState ReadOLDPI2BackgroundColor
TimeState ReadOLDPI3BackgroundColor
TimeState ReadOLDPI4BackgroundColor
TimeState ReadOLDPI1ForegroundColor
TimeState ReadOLDPI2ForegroundColor
TimeState ReadOLDPI3ForegroundColor
TimeState ReadOLDPI4ForegroundColor
TimeState ReadOLDPI1FontTypefaceName
TimeState ReadOLDPI2FontTypefaceName
TimeState ReadOLDPI3FontTypefaceName
TimeState ReadOLDPI4FontTypefaceName
TimeState ReadOLDPI1FontStyle
TimeState ReadOLDPI2FontStyle
TimeState ReadOLDPI3FontStyle
TimeState ReadOLDPI4FontStyle
TimeState ReadOLDPI1FontPointSize
TimeState ReadOLDPI2FontPointSize
TimeState ReadOLDPI3FontPointSize
TimeState ReadOLDPI4FontPointSize
TimeState ReadOLDPI1FontWeight
TimeState ReadOLDPI2FontWeight
TimeState ReadOLDPI3FontWeight
TimeState ReadOLDPI4FontWeight
TimeState ReadOLDPI1ValueFormat
TimeState ReadOLDPI2ValueFormat
TimeState ReadOLDPI3ValueFormat
TimeState ReadOLDPI4ValueFormat
TimeState ReadOLDPI1TotalWidth
TimeState ReadOLDPI2TotalWidth
TimeState ReadOLDPI3TotalWidth
TimeState ReadOLDPI4TotalWidth
TimeState ReadOLDPI1DecimalWidth
TimeState ReadOLDPI2DecimalWidth
TimeState ReadOLDPI3DecimalWidth
TimeState ReadOLDPI4DecimalWidth
TimeState ReadOLDPI1MandE
TimeState ReadOLDPI2MandE
TimeState ReadOLDPI3MandE
TimeState ReadOLDPI4MandE
TimeState OLDUseGeneralAttributes
TimeState OLDUseToolTipText
TimeState OLDHideOnControl
TimeState GeneralBorderStyle
TimeState GeneralBorderWidth
TimeState BackgroundColor
TimeState ForegroundColor
TimeState FontTypefaceName
TimeState FontStyle
TimeState FontPointSize
TimeState FontWeight
TrendControl HideTrace
TrendControl PointIdentifier
TrendControl RangeHi
TrendControl RangeLo
TrendControl AlarmHi
TrendControl AlarmLo
TrendControl AlarmHiColor
TrendControl AlarmLoColor
TrendControl TraceColor
TrendControl TraceStyle
TrendControl Background
TrendControl GridColor
TrendControl BorderColor
TrendControl DateOrTimeColor
TrendControl TrendCursorColor
TrendControl ErrorColor
TrendControl Orientation
TrendControl TimeUnits
TrendControl MaxSamples
TrendControl EnableZooming
TrendControl EnableGrids
TrendControl ShadingStyle
TrendControl EnableTrendCursor
TrendControl TraceType
TrendControl ShadingNo
TrendControl ShadingType
TrendControl TraceThickness
TrendControl TimeInterval
TrendControl TrendCursorLocation
TrendControl TrendMode
TrendControl CompressionType
TrendControl TrendCursorUnits
TrendControl HistoryStartDate
TrendControl PointNo