SdrGmsDrawUI30 English
SdrGmsDrawUI30 English
SdrGmsDrawUI30 English
SdrV7
$Modtime:: 3/06/06 12:40p
cna-in
$Author:: Cna-in
$Workfile:: SdrGmsDrawUI30_English.doc
$
$
$
Disclaimer:
The information in this document is subject to change without notice and should not be construed as a commitment
by FLSmidth A/S. FLSmidth assumes no responsibility for any errors that may appear in this document.
In no event shall FLSmidth be liable for direct, indirect, special, incidental or consequential damages of any nature
or kind arising from the use of this document, nor shall FLSmidth be liable for incidental or consequential damages
arising from use of any software or hardware described in this document.
Options specified and described in the FLSmidth documentation as part of the general description - but initially
neither ordered by the customer nor confirmed by the seller - will not commit the supplier to any further and future
supply and/or installation.
The software described in this document is furnished under a license and may be used, copied, or disclosed only in
accordance with the terms of such license.
Copyright FLSmidth A/S.
Contents
ECS OpStation Editor
Introduction
ECS OpStation Editor Reference Manual
SL-GMS Draw User's Guide
Picture Directories
Directory Structure
Picture Files
Picture Location
New Picture
Default Settings
Model Owner
Open Picture
Palettes
Classic Dynamics
Assigning Object Owner
PointVal Object
PointValEnt Object
Color Symbol Objects
Changing Symbol Objects
Filling Symbol Objects
Trend Object
Buttons
Picture Select Button
Picture Popup Button
Picture Popup Floating Button
Faceplate Popup Button
Bit Control Button
Bit Set Button
Bit Pulse Button
Bit Toggle Button
Bit Toggle Check
Mode Control Button
Percent Change Button
Sdr Trend Button
Start Process Button
Toolbar buttons
General action buttons
Using OpenGMS Dynamics
Renaming Variables
Fonts
PointNo Variable
PntCode Object
PntCodeVis Object
1
1
1
2
2
2
3
3
3
3
3
4
5
6
6
6
7
7
8
9
10
11
11
12
12
13
13
14
14
15
16
16
17
17
18
18
18
19
19
20
21
21
21
PntText Object
PntVal Object
PntValText Object
PntValEnt Object
PntMSWInt Object
PntMSWHex Object
PntMSWBit Object
PntMSWBitText Object
PntThermoVer Object
PntThermoDev Object
PntThermoSca Object
PntSlider Object
PlcVal Object
PlcValEnt Object
PlcInt Object
PlcIntEnt Object
PlcParName Object
LangText Object
AbbreviationText Object
FlsDateTime Object
Generic route property text object
Generic group property text object
Generic department property text object
Generic point property text object
Creating OpenGMS Dynamics
GMS Dynamic Properties
OpenGMS Functions
Information Functions
Trend Functions
Action functions
Animation
Making Dynamics in Editor
PntFloat Example
Faceplates
Creating Faceplates
Assigning Faceplates
PIDFace Example
Bitmaps
Active X control support
Converting Pictures From VMS
iv Contents
22
22
23
23
23
24
24
25
25
26
26
27
27
28
28
29
29
30
30
31
31
32
32
33
33
33
36
37
56
59
75
78
83
86
86
86
87
88
89
89
Glossary of Terms
91
Index
93
Introduction
The ECS OpStation Editor is the tool for creation and modification of graphical mimic pictures for display by the
ECS OpStation application. These pictures are also called models. The graphical system employed is GMS by SL.
FLSADev\ToolsNt\Acroread
Picture Directories
Directory Structure
FlsaGmsPic is the name of the share directory for OpStation pictures.
This directory is born with the following subdirectories.
.\Faceplates for library of popup pictures called faceplates.
.\Demo demo picture.
.\SdrTestOps test pictures.
.\Submods for library of static ready made sub models that may be used in pictures.
.\Gismos for library of dynamic objects (gismos) that may be used in pictures.
.\Palettes for library of pictures with sub models and gismos to use in picture editing.
.\Bitmaps for bitmaps used in pictures, sub models, and gismos.
The files in these subdirectories are delivered with the system, the directories should not be used by the endusers to
store any picture files.
Installed subsystems can have there own directories.
.\<SubSystemName>
.\<SubSystemName>\Faceplates
.\<SubSystemName>\Demo
.\<SubSystemName>\Test
.\<SubSystemName>\Submods
.\<SubSystemName>\Gismos
.\<SubSystemName>\Palettes
The picture files in these directories are delivered with the subsystem and these directories should not be used by the
enduser either.
2 Glossary of Terms
The enduser can make directories for models, gismos, submodels, faceplates, and bitmaps. This is done in ECS
Opstation Configuration. Or the enduser can place picture files directly under main directory. Only recommended for
opgrades where new pictures are rarely made.
The directories are located on the ECS server.
Glossary of Terms 3
Picture Files
Pictures are stored in two files:
Picture_name.g is a source file in ASCII format. Can be read by a text editor. This file is useful if you have to
move pictures from one platform to another (e. g. NT and VMS).
Picture_name.m1 is a binary file. It is the file used by the application to display the picture.
There is a utility SDR_Setup_Tools->GMS Conversion for converting .g files to .m1 files and vice versa.
You normally do not have to bother with this as the editor always automatically will save both files.
Subsystems will normally prefix there pictures with the subsystem name.
Picture Location
In a distributed system the ECS OpStation Editor runs on the local machine. However, pictures are loaded from and
saved to the Server (MOP) partner. In this way changes apply globally in the system. The OpStation application will
make sure that the newest version on the Server will be copied and displayed on the local machine.
New Picture
Default Settings
A new picture will have the following default settings:
Model width 100
Model height 75
Background enabled
Background color 31 (Flsa_Background_Color)
This can be changed from menu Model->Properties.
Note that pictures displayed in the same window should have the same size. Pictures displayed in separate window,
like faceplates, need not.
Model Owner
Each main picture may be assigned a department. When a picture is selected in the OpStation application, the
department of the picture becomes the selected department and the name is displayed in the status bar pane. The
assignment of a department to a picture is done as follows.
4 Glossary of Terms
Open Picture
When a picture is open the open picture dialog is displayed.
The open picture maps the directories of the server into to a logical structure.
The models and gismos delivered by FLSA can be found in the folder FLSA and a given sub folder.
If there has been defined directories for Models, Faceplates etc. these will be displayed under Models, Faceplates etc
directly. If no directories have been defined, the user should place the models in the root folder.
Opstation editor
ECS server
The mapping between the open and save dialog and the physical structure on the ECS server for the directories
delivered with opstation. (Here shown with no directory configuration) Note that the bitmap directory is not seen in
Open od Save diaolog box, because it does not contain OpStation picture files.
Opstation Editor
Opstation Configuration
ECS Server
The end user directories is mapped through the opstation configuration in the way illustrated on picture.
Glossary of Terms 5
ECS server
Normally a subsystem will not be delivered with all directories. If a directory is not delivired it will not appear in the
open/save dialog box.
Known subsystems are Acesys, CPS, Fuz, Qcx.
Palettes
A number of palette pictures offer predesigned sub models and gismos to use in pictures. A palette, gismos, and
submodels is selected by clicking on the menu Palette->Palette/Submodel/Gismos..... . The following window
will appear
Expanding the any of the folders Submod, Gismos, or Palettes in this window, will list a subfolder for each
subsystem that provides files, the local defined files (Local), and the files provided by the default installation
(FLSA). Clicking on the subfolder, the available Palettes, Gismos, or Submodels in that folder will be listed.
Selecting a palette will make the palette appear as a picture in a separate window. An object is selected from palette
by:
Gismos and submodels can be selectected directly by clicking on a filename one of the subfolders under Gismos or
SubModels. After the selection
6 Glossary of Terms
Classic Dynamics
Classic dynamics is the easiest and most efficient form of dynamic objects to use. However it has some limitations.
For advanced dynamics you should use OpenGMS dynamics as described later. Classic dynamics is used in the
main mimic pictures wherever the needs are sufficient. OpenGMS dynamics is especially used on faceplates.
Dynamics created in this way (by menu item Owner object) is called classic dynamics.
Palettes Flsa_symbols_dynamic, flsa_symbols_dynamic1 contain objects prepared for classic dynamics.
In the following frequently used classic objects are described.
PointVal Object
This object displays an analog value. Value, color and blink are dynamically updated according to the owner point.
The format of the value and the unit is as defined for the owner point in the database.
Select Owner
Glossary of Terms 7
Faceplate is used to assign a faceplate to the object. The name of the faceplate is selected from the dropdown list.
Note that all objects by default are assigned the faceplate associated the point algorithm. However, this may be
overruled by assigning a faceplate in the owner box.
PointValEnt Object
Similar to PointVal but allows data entry.
Select Owner
8 Glossary of Terms
Edge-, Text-, Fill-color (one or more) is selected as the color attribute to control
Faceplate is selected if special faceplate shall overrule default as assigned the point algorithm.
The disabled option FUS item is not used but kept for backwards compatibility. It is only relevant for old pictures
from VMS platform to inspect how the setting was.
Select Owner
Glossary of Terms 9
Select Owner
10 Glossary of Terms
Trend Object
This object displays up to 4 trend curves as real time trends, i.e. when set up the 3/4 of the area displays the most
recent historical trends. The curves are then dynamically updated with real time values to the right. When right
border is reached curves are scrolled left 1/4.
Select Owner
Glossary of Terms 11
12 Glossary of Terms
Buttons
Buttons are objects where the dynamic behavior is activated by clicking on the button with the mouse.
A number of buttons are available for various purposes. These are found on palette flsa_buttons.
The parameters for a button instance are specified as follows by Rename variables.
Glossary of Terms 13
14 Glossary of Terms
Glossary of Terms 15
16 Glossary of Terms
Glossary of Terms 17
18 Glossary of Terms
Glossary of Terms 19
Toolbar buttons
All toolbar buttons in OpStation is available in the toolbar palette, and can be added to any picture. They work
exactly the same way as the OpStation toolbar buttons.
20 Glossary of Terms
The button flsa_twocalls makes one call to any action function on mouse press and another call to any action
function on mouse release if the first call does not put another application on top of the button.
Renaming Variables
After instantiating an OpenGMS object in a picture, parameters are specified as follows by rename variables.
As an example the rename variables box for the PntVal object (used to display a point value) is shown below.
Glossary of Terms 21
Fonts
The fonts available are the following true type fonts:
Font index
Font Description
Arial
Courier New-Bold
Courier New
Courier New-Italic
Arial-Bold
Arial-Italic
10
11
Arial-Bold-Italic
12
Courier New-Bold-Italic
13
Symbol
22 Glossary of Terms
PointNo Variable
As for above example all OpenGMS objects will have a variable PointNo.
If the object is part of a faceplate the PointNo is entered as $ (dollar sign) which means that the actual pointno will
refer to the point selected when the faceplate is activated.
If the object is part of a normal mimic picture PointNo is the point number of the controlling point. As the user
knows only point codes and not point numbers, a conversion function must be used. This function
pointno("<pointcode>") converts a point code to a point number. Instead of entering e.g. pointno("J4P12") as plain
text you may set Get point as Point number and then use the toolbar buttons to get a point code from the point
list. The point will then automatically be entered as pointno("<pointcode>").
The use of Special Point related Get and Special PLC related Get is explained in section "Creating
OpenGMS Dynamics"
The following describes the ready-made OpenGMS objects.
PntCode Object
This object displays the point code for a point.
PntCodeVis Object
This object displays the point code for a point with visibility control. If a controlling B-point is set, the point code
will be visible, if cleared the point code will be invisible.
A picture may thus have hidden point codes, which becomes visible when a toggle button in the picture is pushed to
set the controlling B-point value.
Glossary of Terms 23
FillColor Fill color of the box. Color given as GMS color index. Use Special Color Get to select the color from a
palette.
EdgeColor Edge color of the box given as GMS color index.
TextColor Text color of the box given as GMS color index
Font Text font as GMS True Type font index. 1 .. 13
PointNo Point number of the point.
PntText Object
This object displays the point text of a point.
PntVal Object
This object displays the point value for an A-point. Value, color and blink are dynamically updated according to the
controlling point. The format of the value and the unit is as defined for the point in the database. The object is
selectable, i.e. click on object will behave as for classic object PointVal.
24 Glossary of Terms
PntValText Object
This object displays the point value text for a B-point (e.g. "run", "stop"). Value, color and blink are dynamically
updated according to the controlling point. The object is selectable, i.e. click on object will behave as for classic
object PointVal.
PntValEnt Object
This object displays the point value of an A-point. Similar to PntVal but allows data entry by left click on point.
PntMSWInt Object
This object displays the machine status word (MSW) for a B-point. The 16-bit value is displayed as an integer.
Glossary of Terms 25
PntMSWHex Object
This object displays the machine status word (MSW) for a B-point. The 16-bit value is displayed as a hexadecimal
integer.
PntMSWBit Object
This object displays the value of a single bit of the machine status word (MSW) for a B-point. The value is displayed
as 0 or 1.
26 Glossary of Terms
PntMSWBitText Object
This object displays the value of a single bit of the machine status word (MSW) for a B-point. The value is displayed
as text.
Figure 39 - PntMSWBitText
Variables to rename:
AlignX Horizontal alignment of value in the box. 1 = left, 2 = mid, 3 = right
BitNo Number of bit in MSW to display. 0 .. 15
FillColor Fill color of the box. Color given as GMS color index. Use Special Color Get to select the color from a
palette.
EdgeColor Edge color of the box given as GMS color index.
TextColor Text color of the box given as GMS color index.
Font Text font as GMS True Type font index. 1 .. 13
PointNo Point number of the controlling point.
TextColor0 Color text for value 0 given as GMS color index
TextColor1 Color text for value 1 given as GMS color index
ValueText0 Text for value 0
ValueText1 Text for value 1
PntThermoVer Object
This object displays the value of an A-point as a percentage fill of a vertical thermometer. The fill percent is
calculated from the actual value and the operator graphical limits. Red lines mark the high- and low alarm limits. A
green line marks the normal value. The fill color and blink is that of the controlling point. The thermometer is
dynamically updated.
Glossary of Terms 27
PntThermoDev Object
This object displays the value of an A-point as a percentage fill of a deviation thermometer. A green line in center
marks the normal value. Plus- and minus deviation from normal value is displayed as percentage fill. Behavior is as
for PntThermoVer.
PntThermoSca Object
This object displays the value of an A-point as a percentage fill of a thermometer. The Thermometer is equipped with
a scale indicating high- medium- and low- limits. Limits are operator graphical limits. Behavior is as for
PntThermoVer.
28 Glossary of Terms
PntSlider Object
This object displays the value of an A-point as a percentage fill of a thermometer. The behavior is as for
PntThermoVer, but this object also permits data entry by dragging the slider knob. A small window displays the
actual numerical value while dragging. Upon release of the slider knob the new value is sent out to the IO system.
PlcVal Object
This object displays a PLC-parameter value with unit. Plc parameters are located in a parameter block associated a
point address in the PLC. The parameters are described according to a block algorithm. The format of the value and
the unit is as defined in the block algorithm associated the parameter.
Glossary of Terms 29
PlcValEnt Object
This object displays a PLC parameter value and allows data entry by clicking on the object. The entered value is sent
to the PLC to change the parameter. The value display is as for PlcVal.
PlcInt Object
This object displays a PLC parameter value of type unsigned, integer or bit pattern without unit.
30 Glossary of Terms
PlcIntEnt Object
This object displays a PLC parameter value of type unsigned, integer or bit pattern without unit. Data entry is
allowed by click on the object. The entered value is sent to the PLC and the parameter is changed.
PlcParName Object
This object displays the name of a PLC parameter in current language. The name is defined in the block algorithm.
Glossary of Terms 31
LangText Object
This object displays a text constant in the current language. The texts constants are defined in the table
LanguageTexts of the database FlsaDev\ProDb\SdrOpsSpecial
Text10.mdb.
Note. LangText is intended for FLSA use only. Some of the standard faceplates provided by FLSA uses these objects
for text constants. The end customer should use plain text or text rectangle primitives in his native language when he
makes new pictures.
AbbreviationText Object
This object displays a text abbreviation according to a currently selected set of abbreviations. The texts constants are
defined in the table AbbreviationTexts of the database FlsaDev\ProDb\SdrOpsSpecialText10.mdb.
Note. AbbreviationText is intended for FLSA use only. The ACESYS faceplates use different abbreviations for
different applications (FLSA, FLS, HTC, etc. ). The set to use for a specific project is selected through the ECS
OpStation Configuration utility under Abbreviations sub function.
32 Glossary of Terms
FlsDateTime Object
This object displays the current date and/or time. The time is dynamically updated every second. The format
conforms to the current users locale setting. The locale setting is changed through the Regional Settings function of
Windows NT.
Variables to rename:
AlignX Horizontal alignment of value in the box. 1 = left, 2 = mid, 3 = right
FillColor Fill color of the box. Color given as GMS color index. Use Special Color Get to select the color from a
palette.
EdgeColor Edge color of the box given as GMS color index.
TextColor Text color of the box given as GMS color index.
Font Text font as GMS True Type font index. 1 .. 13
Property The route property. Use __Routexxx where xxx is the property.
RouteCode the code of the route.
SampleFreq number of seconds between update of value. 0 for every scan. 1 for static. (update only first time and
on refresh all)
Glossary of Terms 33
Variables to rename:
AlignX Horizontal alignment of value in the box. 1 = left, 2 = mid, 3 = right
FillColor Fill color of the box. Color given as GMS color index. Use Special Color Get to select the color from a
palette.
EdgeColor Edge color of the box given as GMS color index.
TextColor Text color of the box given as GMS color index.
Font Text font as GMS True Type font index. 1 .. 13
Property The group property. Use __Groupxxx where xxx is the property.
GroupCode the code of the Group.
SampleFreq number of seconds between update of value. 0 for every scan. 1 for static. (update only first time and
on refresh all)
Variables to rename:
AlignX Horizontal alignment of value in the box. 1 = left, 2 = mid, 3 = right
FillColor Fill color of the box. Color given as GMS color index. Use Special Color Get to select the color from a
palette.
EdgeColor Edge color of the box given as GMS color index.
TextColor Text color of the box given as GMS color index.
Font Text font as GMS True Type font index. 1 .. 13
Property The department property. Use __Depxxx where xxx is the property.
DepCode the code of the department.
SampleFreq number of seconds between update of value. 0 for every scan. 1 for static. (update only first time and
on refresh all)
34 Glossary of Terms
Variables to rename:
AlignX Horizontal alignment of value in the box. 1 = left, 2 = mid, 3 = right
FillColor Fill color of the box. Color given as GMS color index. Use Special Color Get to select the color from a
palette.
EdgeColor Edge color of the box given as GMS color index.
TextColor Text color of the box given as GMS color index.
Font Text font as GMS True Type font index. 1 .. 13
Property The point property. Use __Pointxxx where xxx is the property.
PointCode the code of the point.
SampleFreq number of seconds between update of value. 0 for every scan. 1 for static. (update only first time and
on refresh all)
Glossary of Terms 35
Description
ecolor int
edge color
estyle int
ewidth float
edge width
fcolor int
fill color
fstyle int
finter int
fdir int
fpercent float
filled int
mcolor int
marker color
mstyle int
tcolor int
text color
theight float
text height
tpath int
tfont int
tprec int
text content.
format:
"%d"
integer
string
detect int
vis int
movex float
movey float
rotate float
scale float
scale evenly
scalex float
scale horizontally
scaley float
scale vertically
radius float
arclength float
startangle float
redraw
call function
userword string
userdata int
36 Glossary of Terms
1. Unconditional
For Unconditional Dynamic Properties, the actions are executed when the picture is loaded and then whenever any
variable in an action argument changes (or are forced to be updated). Built in variables are starting with __ . E.g.
__VALUE, __ALARMHIGH. Some of these variables are forced to update every half second.
Syntax:
*
action argument(s)
Example:
*
stext pntfloat(__ALARMHIGH, pointno("j4p12")) "%5.2f"
The text rectangle will be set equal to the AlarmHigh of point j4p12 everytime __ALARMHIGH changes.
2. Conditional
For Conditional Dynamic Properties, the actions are executed if a condition is true. Included Conditional Dynamic
Properties is a Variable Expression. A Variable Expression is an expresson that results in a value. If any variable in
the variable expression changes the Condition( s) that follow are evaluated, which may result in Action(s). There are
special built variables that can be used in a Variable Expression called __COLV7UPDATE and __COLV7STATIC.
When __COLV7UPDATE is used as a Variable Expression, the Condition(s) that follow are always evaluated if the
Condition is set to = * . If __COLV7STATIC is used the condition is evaluated when the model is loaded and if
refresh is used.
Type 1:
Syntax:
Variable expression
condition value
action argument(s)
Glossary of Terms 37
Type 2:
Syntax:
Variable expression
= *
action argument(s)
The actions are executed whenever any variable in variable expression argument changes. Using for example
__COLV7UPDATE as variable expression will ensure an update at every scan. Using __COLV7STATIC will update
the action when the picture is loaded or refreshed.
Type 3.
Syntax:
Variable expression
= value1:value2
action argument
The actions are executed if the variable expression lies in the range value1 to value2
Upon Input (click)
For Upon input Dynamic Properties, the callback is executed when the mouse is pressed, released, moved with the a
button pressed. Most callback action functions have a filter to ensure that the callback only is called with mouse
release.
Syntax:
#
call function
Example:
#
call gms_push_btn_select())
call iosbitaction(PointNo, BitNo, BitVal, EventText, Confirm)
Above has two function calls. The first is a GMS function to change the look of a button when pressed. The second
is a FLSA function to send out a bit control command to a PLC. The values of the variables in the function call are
specified by rename variables when the object is instantiated in a picture.
OpenGMS Functions
OpenGMS functions are functions that interact with the SDR system. They can return data from the database or send
an IO command to a PLC. These functions may be used in expressions as part of dynamic properties.
Note: that the function names are case sensitive.
The functions are described in the following.
The functions can be split into function returning information and action functions.
38 Glossary of Terms
Information Functions
Pointno Function
int pointno( PointCode )
returns the point number given the point code for a point. The function is used as an auxiliary function when
supplying point number arguments to the other OpenGMS functions.
PointCode is point code as a text string (in double quotes)
Example:
pointno("j4p12")
Pntfloat Function
float pntfloat( ValueId, PointNo )
returns a floating point (real) value.
ValueId specifies the point attribute as shown in the following table
PointNo is point number of the controlling point.
Value Id
Description
__VALUE
__SYSHIGH
__SYSLOW
__GRAHIGH
__GRALOW
__HYSTERES
__INTERVAL
__ALARMHIGH
__ALARMLOW
__NORMVALUE
__GAIN
__OFFSET
__CONST1
__CONST2
__CONST3
__CONST4
__CONST5
__CONST6
__CONST7
__CONST8
__CONST9
__CONST10
Glossary of Terms 39
Example:
__COLV7UPDATE
=*
stext pntfloat(__ALARMHIGH, pointno("j4p12")) "%5.2f"
writes the high alarm limit for point j4p12 as text
Pntint Function
int pntint( ValueId, PointNo )
returns an integer value.
ValueId specifies the point attribute as shown in the following table
PointNo is point number of the controlling point.
Value Id
Description
__DEPARTMENT
__CONV_ALG
__EVENT_ALG
__REP_ALG
__EVENT_PNT
__REPORT_PNT
__INTERFACE
__PRIORITY
Alarm priority
__COLOR
__SYMBOLOFF
__INT_STATUS
__INT_STAAUX
__INT_VALREF
__INT_STAREF
__ALARMLEVEL
__MSW
__FILTER
__FORMAT
__REF_PNT1
Reference point 1
__REF_PNT2
Reference point 2
__REF_PNT3
Reference point 3
__REF_PNT4
Reference point 4
__REF_PNT5
Reference point 5
__REF_PNT6
Reference point 6
__REF_PNT7
Reference point 7
__REF_PNT8
Reference point 8
__REF_PNT9
Reference point 9
__REF_PNT10
Reference point 10
40 Glossary of Terms
__UNITNO
Pnttext Function
char* pnttext( ValueId, PointNo )
returns a text string.
ValueId specifies the point attribute as shown in the following table
PointNo is point number of the controlling point.
Value Id
Description
__DEP_NAME
__POINTCODE
Point code
__POINTTEXT
Point text
__STATUSTEXT
__VALUETEXT
__UNITTEXT
Pntbit Function
int pntbit( ValueId, PointNo, BitNo )
returns 0 or 1 as integer value.
ValueId specifies the point attribute as shown in the following table
PointNo is point number of the controlling point.
BitNo specifies the bit (0..15), the value of which is returned.
Value Id
Description
__BIT_MSW
Glossary of Terms 41
Pntvalue Function
pntvalue( ValueId, Object, PointNo )
This function sets an object to the current point value. The object must be a text or text rectangle object. The value is
formatted according to point format and the color of the value is the point color. The function is a more powerful
alternative to pntfloat(__VALUE, PointNo).
ValueId must be the constant __VALUE.
Object must be the constant __self.
PointNo is point number of the controlling point.
Example:
__COLV7UPDATE
=*
call pntvalue(__VALUE, __self, PointNo)
The value of the variable PointNo is determined by rename variables when the object is instantiated.
Below is the full ..\gismos\pntval.g file for the ready-made pntval object. This object uses openGMS functions
pntvalue, pntunit and pntselect.
mtran0
vis 1
detect 1
pntval: model
. dynprop
(#
\
\
42 Glossary of Terms
size 0 0
tconstraint 0
unittext: ftrect 3 0 0 2.5 "un"
. refpoint 0 0
vis 0
estyle 1
divide: line 0.3 1.25 2.5 1.25
. refpoint 0.119995 1.25
endm
vis 1
estyle 0
height 1.5
align 2 3
ftrect 0 2.5 8 0 "PntVal"
. dynprop
(__COLV7UPDATE
(= *
(= *
(fcolor FillColor)))
(Font
(= *
(tfont Font)))
. refpoint 0 0
unit: inst unit 0 0
. dynprop
(__COLV7UPDATE
(= *
(fcolor FillColor)))
(Font
(= *
\
\
(tfont Font)))
. move 8 0
endm
Glossary of Terms 43
Pntunit Function
pntunit( ValueId, Object, PointNo )
This function sets the engineering unit to that of the controlling point. The unit will be shown as special GMS text as
for the classic dynamic object pointval. e.g. kg/m3 will be displayed as 3 lines in small size font to minimize the
space required for the unit. The color of the unit will be the point color. The object must be like the gismo called unit
with a text rectangle called unittext and a line called divide (see below).
The function is a more sophisticated alternative to pnttext(__UNITTEXT, PointNo), the latter writing the unit as
single line plain text.
ValueId must be the constant __VALUE.
Object must be the constant __self.
PointNo is point number of the controlling point.
Example:
__COLV7UPDATE
=*
call pntunit(__VALUE, __self, PointNo)
The object to which the function applies is shown below as an external gismo unit (file ..\gismos\unit.g):
mtran0
vis 1
detect 1
unit: model
fcolor 22
fstyle 1
finter 1
fdir 0
fpercent 100
ecolor 7
estyle 0
ewidth 1
tcolor 7
height 1
path 1
font 1
prec 0
align 1 3
size 0 0
unittext: ftrect 3. 0. 0. 2.5
"un"
. refpoint 0 0
vis 0
estyle 1
divide: line 0.3 1.25 2.5 1.25
. refpoint 0.12 1.25
endm
44 Glossary of Terms
Plctext Function
char* plctext( ValueId, PointNo, ParameterKey )
Returns a PLC parameter as a text string.
ValueId is as specified in the table below.
PointNo is point number of the controlling point. This identifies address of the PLC parameter block and the block
algorithm that holds the description of the parameter.
ParameterKey is the key identifying the PLC parameter (string) in the block algorithm.
Value Id
Description
__PLCTXTPAR
__PLCCAPTEXT
__PLCUNIT
Plcdouble Function
double plcdouble( ValueId, PointNo, ParameterKey )
Returns a double floating point PLC parameter.
ValueId must be the constant __PLCDBLPAR
PointNo is point number of the controlling point. This identifies address of the PLC parameter block and the block
algorithm that holds the description of the parameter.
ParameterKey is the key identifying the PLC parameter (string) in the block algorithm.
Example:
__COLV7UPDATE
=*
stext plcdouble( __PLCDBLPAR, PointNo, Gain) %5.2f
Above will get the floating point PLC parameter with key Gain as a double and write it as a text string in format
xxxxx.yy. The actual value of PointNo is determined by rename variables when the object is instantiated.
Note. The function plctext can return the value as a text string formatted as specified in the block algorithm.
Glossary of Terms 45
Plcint Function
int plcint( ValueId, PointNo, ParameterKey )
Returns a PLC parameter as an integer. The parameter must be of type bit pattern.
ValueId must be the constant __PLCINTPAR
PointNo is point number of the controlling point. This identifies address of the PLC parameter block and the block
algorithm that holds the description of the parameter.
ParameterKey is the key identifying the PLC parameter (string) in the block algorithm.
Example:
__COLV7UPDATE
=*
stext plcint( __PLCINTPAR, PointNo, ParKey) %d
Above will get a PLC parameter identified by variable ParKey and write it as a string. The value of PointNo and
ParKey is determined rename variables when the object is instantiated.
Plcunit Function
plcunit( Object, PointNo, ParameterKey )
This function sets the engineering unit to that of the block algorithm parameter. The unit will be shown as special
GMS text as for the classic dynamic object pointval. e.g. kg/m3 will be displayed as 3 lines in small size font to
minimize the space required for the unit. The object must be like the gismo called unit with a text rectangle called
unittext and a line called divide (see below).
The function is a more sophisticated alternative to plctext(__PLCUNIT, PointNo, ParameterKey), the latter writing
the unit as single line plain text.
Object must be the constant __self
PointNo is point number of the controlling point. This identifies address of the PLC parameter block and the block
algorithm that holds the description of the parameter.
ParameterKey is the key identifying the PLC parameter in the block algorithm.
Example:
__COLV7STATIC
=*
call plcunit( __self, PointNo, ParKey )
The value of PointNo and ParKey is determined rename variables when the object is instantiated.
The object to which the function applies is shown below as an external gismo unit (file ..\gismos\unit.g):
mtran0
vis 1
detect 1
unit: model
fcolor 22
fstyle 1
finter 1
fdir 0
fpercent 100
ecolor 7
estyle 0
ewidth 1
tcolor 7
height 1
path 1
font 1
prec 0
align 1 3
46 Glossary of Terms
size 0 0
unittext: ftrect 3. 0. 0. 2.5 "un"
. refpoint 0 0
vis 0
estyle 1
divide: line 0.3 1.25 2.5 1.25
. refpoint 0.12 1.25
endm
Langtext Function
char* langtext( TextKey )
This function returns a text constant in current language. The functions apply to a text or text rectangle object. The
language texts are defined in the database Flsadev\ProDb\
SdrOpsSpecialText10.mdb table LanguageTexts.
The function is used in the standard gismo LangText.
The purpose of the function is to allow text constants, which automatically will be displayed, in the current language.
The function is intended for FLSA use only. The end customer should write text constants in his native language
only.
An example using the function is the PidFace where all text constants are made with langtext.
TextKey is text string identifying the text in the LanguageText table.
Example:
__COLV7STATIC
=*
stext langtext( "lngManual" ) "%s"
Abbreviationtext Function
char* abbreviationtext( TextKey )
This function returns a text abbreviation according to a currently selected set of abbreviations. The functions apply to
a text or text rectangle object. The abbreviation texts are defined in the database
Flsadev\ProDb\SdrOpsSpecialText10.mdb table AbbreviationTexts.
The function is used in the standard gismo AbbreviationText.
The purpose of the function is to allow text, which will be displayed according to a certain type of application. For a
specific project the type is selected via ECS OpStation Configuration utility sub function Abbreviations. The
function is intended for FLSA use only.
An example using the function is the ACESYS faceplates where all text abbreviations are made with this function.
TextKey is text string identifying the text in the AbbreviationsTexts table.
Example:
__COLV7STATIC
=*
stext abbreviationtext( "GRP_GSEL" ) "%s"
Glossary of Terms 47
Datetime Function
char* datetime( ValueId, DateOnly, TimeOnly, NoSecs )
Returns the current date and/or time in format defined by current users locale setting.
The function is used in the standard gismo FlsDataTime.
ValueId is the constant that drives the updating of the time. Must be equal __VALUE.
DateOnly =1 if only current date is returned, =0 otherwise
TimeOnly =1 if only current time is returned, =0 otherwise
NoSecs =1 if seconds shall be omitted from the time, =0 otherwise
Example:
__COLV7UPDATE
=*
stext datetime(__VALUE, 0, 0, 1)
will display date and time without seconds.
char* colv7datetime( cFormat )
Returns the time according to format specifiation where
cFormat Format specifikation
%a Abbreviated weekday name
%A Full weekday name
%b Abbreviated month name
%B Full month name
%c Date and time representation appropriate for locale
%d Day of month as decimal number (0131)
%H Hour in 24-hour format (0023)
%I Hour in 12-hour format (0112)
%j Day of year as decimal number (001366)
%m Month as decimal number (0112)
%M Minute as decimal number (0059)
%p Current locales A.M./P.M. indicator for 12-hour clock
%S Second as decimal number (00 59)
%U Week of year as decimal number, with Sunday as first day of week (0053)
%w Weekday as decimal number (0 6; Sunday is 0)
%W Week of year as decimal number, with Monday as first day of week (00-53)
%x Date representation for current locale
%X Time representation for current locale
%y Year without century, as decimal number (00 99)
%Y Year with century, as decimal number
%z,%Z Time-zone name or abbreviation; no characters if time zone is unknown
%% Percent sign
48 Glossary of Terms
Example:
__COLV7UPDATE
=*
stext colv7datetime(%H:%M:%S )
extxxx functions
long extlong (Server, Type, Key1, Key2)
double extdouble (Server, Type, Key1, Key2)
char *exttext (Server, Type, Key1, Key2)
These functions return a long, double or a text from an external server respectively.
Server server name configured in OpStation Configuration.
Type value type. See table below.
Key1 first part of the parameter key.
Key2 second part of the parameter key.
Function
Type
Sample frequency
Extlong
__EXTLONG
Extlong
__EXTLONG1
Extlong
__EXTLONG2
Extlong
__EXTLONG3
Extlong
__EXTLONG4
Extlong
__EXTLONG5
Extdouble
__EXTDOUBLE
Extdouble
__EXTDOUBLE1
Extdouble
__EXTDOUBLE2
Extdouble
__EXTDOUBLE3
Extdouble
__EXTDOUBLE4
Extdouble
__EXTDOUBLE5
Exttext
__EXTTEXT
Exttext
__EXTTEXT1
Exttext
__EXTTEXT2
Exttext
__EXTTEXT3
Exttext
__EXTTEXT4
Exttext
__EXTTEXT5
Exttext
__EXTTEXT
All
__SAMPLEFAST
All
__SAMPLESLOW
All
__STATICVALUE
Glossary of Terms 49
colv7getgeneric functions
char* colv7getgenericstrlkey(ObjectType, lKey, Property, SampleFreq)
char* colv7getgenericstr(ObjectType, strKey, Property, SampleFreq)
double colv7getgenericdouble(ObjectType, strKey, Property, SampleFreq)
long colv7getgenericlong(ObjectType, strKey, Property, SampleFreq)
These function raps the PointAuto interface to get any value return as a char, long, or double
ObjectType One of the four object types in the Point Auto. __DepartmentObject, __GroupObject,
__RouteObject, or __PointObject.
The object type variables has a forced update at every scan
lKey long key. Number of object. E.g. for a __PointObject the point number.
sKey String key. Code of object. E.g. for a __PointObject the point code.
Property Property in object. All relevant properties from PointAuto. flsSomething is replaced with __Something.
I.e. the property flsGroupColor will be __GroupColor.
SampleFreq The update rate in number of seconds for fssauto. 0 means every update. 1 means that it is static, and
the value will only be updated on refresh all in OpStation.
Example:
__COLV7STATIC
=*
stext colv7getgenericstr(__PointObject,j4p12,__PointParentDepCode,-1) %s
Will display the parent department of the point j4p12.
The following are valid for __PointObject
__PointNo
__PointCode
__PointText
__PointLocalText
__PointDefaultText
__PointType
__PointParentDepNo
__PointParentDepCode
__PointParentGroupNo
__PointParentGroupCode
__PointParentPointNo
__PointParentPointCode
__PointActiveRouteNo
__PointActiveRouteCode
__PointConversionAlg
__PointBlockAlg
__PointEventAlg
__PointReportAlg
__PointCategory
50 Glossary of Terms
__PointAlarmTreatPointNo
__PointAlarmTreatPointCode
__PointReportTreatPointNo
__PointReportTreatPointCode
__PointPriority
__PointRefPoint1No
__PointRefPoint1Code
__PointRefPoint2No
__PointRefPoint2Code
__PointRefPoint3No
__PointRefPoint3Code
__PointRefPoint4No
__PointRefPoint4Code
__PointRefPoint5No
__PointRefPoint5Code
__PointRefPoint6No
__PointRefPoint6Code
__PointRefPoint7No
__PointRefPoint7Code
__PointRefPoint8No
__PointRefPoint8Code
__PointRefPoint9No
__PointRefPoint9Code
__PointRefPoint10No
__PointRefPoint10Code
__PointStatusText
__PointStatusBits
__PointAuxStatusBits
__PointColor
__PointUpdateTime
__PointIsOpAlarmSuppressed
__PointIsReportSuppressed
__PointIsNormal
__PointKindOf
__PointIsOperatorInserted
__PointIoAddress
__PointIoSysType
__PointAlarmsCurHour
__PointAlarmTimeCurHour
__PointErrorsCurHour
Glossary of Terms 51
__PointAlarmsPrevHour
__PointAlarmTimePrevHour
__PointErrorsPrevHour
__PointAlarmsCurShift
__PointAlarmTimeCurShift
__PointErrorsCurShift
__PointAlarmsPrevShift
__PointAlarmTimePrevShift
__PointErrorsPrevShift
__PointAlarmsCurDay
__PointAlarmTimeCurDay
__PointErrorsCurDay
__PointAlarmsPrevDay
__PointAlarmTimePrevDay
__PointErrorsPrevDay
__PointValue
__PointEngUnit
__PointFormat
__PointGraphicalHigh
__PointGraphicalLow
__PointHysteresis
__PointIntervalSize
__PointAlarmHigh
__PointAlarmLow
__PointConstant1
__PointGain
__PointConstant2
__PointOffset
__PointConstant3
__PointConstant4
__PointConstant5
__PointConstant6
__PointConstant7
__PointConstant8
__PointConstant9
__PointOutputRangeLow
__PointConstant10
__PointOutputRangeHigh
__PointNormalValue
__PointRawValue
52 Glossary of Terms
__PointStatusUnSupText
__PointAlarmLevel
__PointFilterTime
__PointMinCurHour
__PointAvgCurHour
__PointMaxCurHour
__PointSamplesCurHour
__PointReportValueCurHour
__PointAuxValueCurHour
__PointMinPrevHour
__PointAvgPrevHour
__PointMaxPrevHour
__PointSamplesPrevHour
__PointReportValuePrevHour
__PointAuxValuePrevHour
__PointMinCurShift
__PointAvgCurShift
__PointMaxCurShift
__PointSamplesCurShift
__PointReportValueCurShift
__PointAuxValueCurShift
__PointMinPrevShift
__PointAvgPrevShift
__PointMaxPrevShift
__PointSamplesPrevShift
__PointReportValuePrevShift
__PointAuxValuePrevShift
__PointMinCurDay
__PointAvgCurDay
__PointMaxCurDay
__PointSamplesCurDay
__PointReportValueCurDay
__PointAuxValueCurDay
__PointMinPrevDay
__PointAvgPrevDay
__PointMaxPrevDay
__PointSamplesPrevDay
__PointReportValuePrevDay
__PointAuxValuePrevDay
__PointFilterConstant
Glossary of Terms 53
__PointSymbolOffset
__PointMSW
__PointRunTimeCurHour
__PointRunTimePrevHour
__PointRunTimeCurShift
__PointRunTimePrevShift
__PointRunTimeCurDay
__PointRunTimePrevDay
__PointRunTimeTotal
__PointRunTimePrevTotal
__PointCalculationAlg
__PointSignalHigh
__PointSignalLow
__PointBconstant1
__PointBconstant2
__PointBconstant3
__PointBconstant4
__PointBconstant5
__PointBconstant6
__PointBconstant7
__PointBconstant8
__PointBconstant9
__PointBconstant10
__PointIsSelectable
__PointFilterRouteNo
__PointFilterRouteCode
__PointIsAlarmSuppressed
__PointNotSuppressedByHierarchy
__PointRunsCurHour
__PointRunsPrevHour
__PointRunsCurShift
__PointRunsPrevShift
__PointRunsCurDay
__PointRunsPrevDay
54 Glossary of Terms
Glossary of Terms 55
Colv7format function
char * colv7format(dValue, lFormat)
This function returns a string format of the value with the current regional settings.
dValue Double value.
lFormat number of decimal points
Example:
__COLV7UPDATE
=*
stext colv7format (pntfloat(__VALUE, PntNo1),pntint(__FORMAT,PntNo2)) %s
Colv7ConCat function
char * colv7concat(sString1, sString2)
This function returns a concatenated string of sString1 and sString2.
ColV7SplitReturnFirst function
char * colv7splitreturnfirst(sString1, sString2)
This function returns the first part of sString1 ending at the sSTring2.
ColV7SplitReturnLastfunction
char * colv7splitreturnlast(sString1, sString2)
This function returns the last part of sString1 starting at sString2.
ColV7TokenNr
char * colv7tokennr(sString1, sSep, lNo)
This function returns the lNo token of sString1 where sSep are a string containing the seperating characters.
56 Glossary of Terms
Colv7uacright function
long colv7uacright(Right)
This function returns 1 if the user has this particular right else it returns zero. The prefix in the rights table needs to
be Ops
Right the right key.
Colv7Color function
long colv7color(__COLV7UPDATE, lColorIndex)
This function switches between returning the colorindex and the colorindex of the flashcolor. It is used for flashing.
Example:
__COLV7UPDATE
=*
fcolor colv7color(__COLV7UPDATE, Color)
ColV7HiliteSymbol
long colv7hilitesymbol(__self, lSymbolIndex)
This function switches between hiliting different parts of a group or submodel.
lSymbolIndex is the zero based index of the part to be shown. The following will select the part equal to the Value
Text Number of the B point.
Example:
__COLV7UPDATE
=*
call colv7hilitesymbol(__self, pntint(__VALUE, 1 + pointno("SdrTestFrSpeed")))
QObjectUserword function
long qobjectuserword(__self, lObjNumber)
This function fetches the user word of the objects parents child number lObjnumber. Is used together with the action
function ObjectUserWord.
This function can be used to show different parts of a group.
Example:
__COLV7UPDATE
=*
call colv7hilitesymbol(__self, quserobjectword(__self,1))
Glossary of Terms 57
Trend Functions
Pointtrend Function
long pointtrend(__self, lHorizon, lUpdatePeriod,
sPntID1, dMax1, dMin1,
sPntID2, dMax2, dMin2,
sPntID3, dMax3, dMin3,
sPntID4, dMax4, dMin4,
sPntID5, dMax5, dMin5,
sPntID6, dMax6, dMin6,
sPntID7, dMax7, dMin7,
sPntID8, dMax8, dMin8)
This function creates a point trend with up to 8 traces. sPntID? is the point id for trace. dMax? is the maximum
value for the trace dMin? is the minimum value for the trace. lHorizon is the horizon in seconds, lUpdateperiod the
period with which the pointvalues are fetched.
The requirement for this function is a submodel of the following form. Here fore example a for a model with three
traces.
trend3: model
fcolor 31
fstyle 1
finter 1
fdir 0
fpercent 100
ecolor 21
estyle 1
ewidth 1
tcolor 7
height 5
path 1
font 1
prec 0
align 2 3
size 0 0
tconstraint 0
t_extent: ftrect 54 26 0 0 "TREND"
fcolor 23
ecolor 12
t_x_axis: line 0 0 18 0
. move 0 0
t_x_major_tick: line 0 0 0 -1
t_x_minor_tick: line 0 0 0 -0.5
fcolor 31
ecolor 15
estyle 0
58 Glossary of Terms
tcolor 17
height 1
t_xaxis_label: ftrect 3 -3 -3 -1 "~time ~24hour:~minute"
fcolor 23
ecolor 12
estyle 1
t_y_axis: line 0 0 0 12
t_y_major_tick: line 0 0 -1 0
t_y_minor_tick: line 0 0 -0.5 0
fcolor 31
ecolor 31
tcolor 25
t_yaxis_label1: ftrect -6.5 1 -1.5 -1 "%g"
tcolor 26
t_yaxis_label2: ftrect -12.5 1 -7.5 -1 "%g"
tcolor 27
t_yaxis_label3: ftrect -18.5 1 -13.5 -1 "%g"
fcolor 17
ecolor 25
t_trace1: line 14 8 26 8
fcolor 1
ecolor 26
t_trace2: line 14 6 26 6
fcolor 18
ecolor 27
t_trace3: line 14 4 26 4
fcolor 15
ecolor 22
mygrid: line 0 20 54 20
tcolor 7
bcolor 0
height 2
text "1" 27.5 8
text "2" 27.5 6
text "3" 27.5 4
endm
The submodel contains named objects. These objects are the one that are used to draw the trend.
t_extent: is the area where the traces are drawn. Has to be a rectangle of some kind. Here it is a text rectangle. The
top corresponds to max value and the bottom to the min value the width corresponds to the horizon.
t_x_axis: a line showing the color of and thickness of the the x-asis. If omitted no x-axis is drawn
t_x_major_tick: a line showing how big the major tick has to be. If omitted no major tick marks on x-axis.
t_x_minor_tick: a line showing how big the minor tick has to be. If omitted no minor tick marks on x-axis.
t_xaxis_label: label for the x-axis a each major tick mark.
"~time ~24hour:~minute": format of x-axis. See gms manual for explanation.
t_y_major_tick: a line showing how big the major tick has to be. If omitted no major tick marks on y-axis.
Glossary of Terms 59
t_y_minor_tick: a line showing how big the minor tick has to be. If omitted no minor tick marks on y-axis.
t_yaxis_label1: a label for each major ticks on yaxis. Placed where it should be x axis wise. If obmitted no labels.
2, 3 ect for the next points. %g is the format of the number.
t_trace1: a line indicating color a thickness and form of the first trace. 2,3 etc lines defined for the the other traces.
To make a trend is simply to instanciate this submodel with the pointtrend function. Here show to make a gismo,
where the user har to rename PointID1 up to 3, and the min, max values for the three traces.
It is important that __COLV7STATIC is used, because this functions sets the trend.
mtran0
vis 1
detect 1
pointtrend3: model
inst trend3 0 0
. dynprop
(__COLV7STATIC
(= *
ExttrendFunction
long exttrend(__self, sSVR, lHorizon, lUpdatePeriod,
sVarID1, dMax1, dMin1,
sVarID2, dMax2, dMin2,
sVarID3, dMax3, dMin3,
sVarID4, dMax4, dMin4,
sVarID5, dMax5, dMin5,
sVarID6, dMax6, dMin6,
sVarID7, dMax7, dMin7,
sVarID8, dMax8, dMin8)
This function is used exactly as the point function. The only difference is that sSVR is the external server and
sVarID? Is the tagid of the value to fetch from the external server.
Four gismos exists for this function and can be used directly. exttrend1, exttrend2, exttrend3, exttrend4. The first it
one trace the second with two traces etc.
60 Glossary of Terms
Action functions
Action functions are normally called Upon input, but the new version 7 functions can also be called on parameter
change. The version 6 functions have a filter so they only react on left mouse button release.
Pntselect Function
pntselect( Object, PointNo )
This function makes the object and the point the selected object and point when clicked upon.
The object is surrounded by a white rectangle and point information is set in the status bar panes. When right
clicking on the object a popup menu will appear.
Object identifies the object. This argument must be the constant __self.
PointNo is point number of the controlling point.
Example:
#
call pntselect(__self, PointNo)
The value of the variable PointNo is determined by rename variables when the object is instantiated.
Pntedit Function
pntedit( Object, PointNo )
This function allows for entering and sending an output value to IO system. The function must be part of input
dynamics of an object. This object must have two text rectangles of same size on top of each other. First must be
called valuefield and displays the current value. The second must be called editfield and is used when entering a
value. A click on the main object will make the edit field visible. The user enters a value and press of return on
keyboard will send the entered value to IO system. The value field then again becomes visible.
Object must be __self.
PointNo is point number of the controlling point.
Example:
#
call pntedit( __self, PointNo )
Below is the full ..\gismos\pntvalent.g file for the ready-made pntvalent object. This object uses openGMS function
pntedit.
mtran0
vis 1
detect 1
pntvalent: model
. dynprop
(#
\
\
Glossary of Terms 61
fpercent 100
ecolor 7
estyle 0
ewidth 1
tcolor 7
height 1
path 1
font 1
prec 0
align 1 3
size 0 0
tconstraint 0
unittext: ftrect 3 0 0 2.5 "un"
. refpoint 0 0
vis 0
estyle 1
divide: line 0.3 1.25 2.5 1.25
. refpoint 0.119995 1.25
endm
vis 1
estyle 0
height 1.5
align 2 3
value: ftrect 0 2.5 8 0 "PntValE"
. dynprop
(__VALUE
(= *
\
\
(= *
(fcolor FillColor)))
(Font
(= *
(tfont Font)))
unit: inst unit 0 0
. dynprop
(__VALUE
(= *
\
\
(fcolor FillColor)))
(Font
(= *
\
\
62 Glossary of Terms
(tfont Font)))
. move 8 0
vis 0
edit: ftrect 0 2.5 8 0 ""
. dynprop
(AlignX
(= *
Pntupdownpercent Function
pntupdownpercent(PointNo, PercentChange, ManModeMask, ManModeValue, Confirm)
pntupdownpercentv7(PointNo, PercentChange, ManModeMask, ManModeValue, Confirm, Ignore)
Change a point value with a given percentage. This function behave in a special way when applied to a set point
because the change will affect the output point related to the set point if the mode related to the set point is manual.
PointNo Point number of controlling point
PercentChange percentage of the points system range to raise or lower the current value
ManModeMaskBits mask bits of MSW for manual mode given as a integer (may be hex). e.g. 10 (or 0x000a)
means bit 1 and bit 3 defines manual mode. Defines the bits that must be tested to determine manual mode.
ManModeValueBits value bits of MSW for manual mode given as integer (may be hex). Defines the values of the
bits given by the mask that determines manual mode. e.g. 2 (or 0x0001) means that with the above mask given
manual mode is defined as bit 1 = 1 and bit 3 = 0.
Confirm specifies whether operator must confirm action in a confirmation box (0 - no confirm, 1 - confirm)
Ignore specifies that the input action filter is off. The function always is always executed when called. (0 only on
left mouse button, 1 always)
Iosbitaction Function
iosbitaction( PointNo, BitNo, BitVal, EventText, Confirm )
iosbitactionv7( PointNo, BitNo, BitVal, EventText, Confirm , Ignore)
This function sends a bit control action to IO system. Iosbitaction only reacts on left mouse release action, while the
iosbitactionv7 reacts on any call if ignore is set to 1.
PointNo is point number for point to which action applies
BitNo specifies the output bit number (0..15)
BitVal specifies the output value (0 or 1)
EventText a text string (in double quotes) for the event line generated by the action
Confirm specifies whether operator must confirm action in a confirmation box (0 - no confirm, 1 - confirm)
Ignore specifies that the input action filter is off. The function always is always executed when called. (0 only on
left mouse button, 1 always)
Glossary of Terms 63
Example:
#
call iosbitaction( PointNo, BitNo, BitVal, EventText, Confirm)
Above function will be called when user clicks on the object with the left mouse button when the mouse button is
released. The values of the variables PointNo, BitNo, BitVal, EventText, Confirm are determined by rename
variables when the object is instantiated.
Example v7:
#
call gms_flash()
(__button_hilite == 0) && (__locator != 0)
!= 0
iosbitactionv7( PointNo, BitNo, BitValRelease, EventTextRelease, 0, 1)
(__button_hilite == 1) && (__locator != 0)
!= 0
iosbitactionv7( PointNo, BitNo, BitValPress, EventTextPress, 0, 1)
In the above v7 example the action will be called with the value of BitValPress when the user clicks on the object
and with the value BitValRelease when the mouse button is released. The values of the variables PointNo, BitNo,
BitValPress, BitValRelease, EventTextRelease, EventTextPress are determined by rename variables when the
object is instantiated.
Iosbittoggle Function
iosbittoggle ( PointNo, OutBitNo, InBitNo, EventText, Confirm)
iosbittogglev7 ( PointNo, OutBitNo, InBitNo, EventText, Confirm, Ignore)
This function sends a bit control action to IO system. It sets the output bit to the opposite of what is read in the input
bit. iosbittoggle only reacts on left mouse release action, while the iosbittogglev7 reacts on any call if ignore is
set to 1.
PointNo is point number for point to which action applies
OutBitNo specifies the output bit destination (0..15)
InBitNo specifies the input bit to toggle. (0..15)
EventText a text string (in double quotes) for the event line generated by the action.
Confirm specifies whether operator must confirm action in a confirmation box (0 - no confirm, 1 - confirm)
Ignore specifies that the input action filter is off. The function always is always executed when called. (0 only on
left mouse button, 1 always)
64 Glossary of Terms
Iosbitpulse Function
iosbitpulse (IdType, Object, PointNo, OutBitNo, InBitNo, First, EventText, Confirm,)
iosbitpulse1 (IdType, Object, PointNo, OutBitNo, InBitNo, First, EventText, Confirm,
TimeOutSecs)
iosbitpulsev7 (IdType, Object, PointNo, OutBitNo, InBitNo, First, EventText, Confirm,
TimeOutSecs , Ignore)
This function is used as a two-step function. The first action is to set the output bit to 1 and start the timer. If the
input bit has changed to 1 within the timeout period the output bit is set to 0. If the first two version 6 functions are
used it demands a call Upon input where first is set to 1 and an Unconditional action. In order make the
back action. Iosbitpulse has a timeout of 15 seconds.
IdType Used to force update for supervision. (Use __VALUE)
Object must be the constant __self.
PointNo is point number for point to which action applies
OutBitNo specifies the output bit destination (0..15)
InBitNo specifies the input bit to toggle. (0..15)
First , 1 = first call, 0 = supervision call
EventText , Text for event log
Confirm specifies whether operator must confirm action in a confirmation box (0 - no confirm, 1 - confirm)
TimeOutSecs, No of seconds to wait for 1 to be set before give up
Ignore specifies that the input action filter is off. The function always is always executed when called. (0 only on
left mouse button, 1 always)
The fls_m_bitpulse uses this function and looks as follows:
mtran0
vis 1
detect 1
fls_m_bitpulse: model
. dynprop
(#
(call gms_push_btn_select()) \
(call iosbitpulse(__VALUE, __self, PointNo, OutBitNo,
InBitNo, 1, EventText1, Confirm)))
(*
(extent_width
(= *
Glossary of Terms 65
fdir 0
fpercent 100
ecolor 14
estyle 0
ewidth 0
tcolor 7
height 1.5
path 1
font 1
prec 1
align 2 3
size 0 0
plate: ftrect 10 4 0 0
. dynprop
"BitPulse"
(button_label \
(= *
(font \
(= *
(tfont font)))
fcolor 12
ecolor 15
estyle 1
lower: line 0 0 10 0 10 4
fcolor 15
ecolor 12
upper: line 0 0 0 4 10 4
endg
vis 0
fcolor 13
fstyle 8
finter 3
ecolor 13
estyle 0
shield: frect 1 1 0 0
endm
66 Glossary of Terms
Iosbitsetcond Function
iosbitsetcond (PointNo, OutBitNo, OutBitVal, InBitNo, InBitVal, EventText, Confirm)
iosbitsetcondv7 (PointNo, OutBitNo, OutBitVal, InBitNo, InBitVal, EventText, Confirm, Ignore)
Send a bit action to OutBitNo if value of current InBitNo is InBitVal.
PointNo is point number for point to which action applies
OutBitNo specifies the output bit destination (0..15)
OutBitVal output value (0 or 1)
InBitNo specifies the input bit to toggle. (0..15)
InBitVal conditional input value (0 or 1)
EventText , Text for event log
Confirm specifies whether operator must confirm action in a confirmation box (0 - no confirm, 1 - confirm)
Ignore specifies that the input action filter is off. The function always is always executed when called. (0 only on
left mouse button, 1 always)
IosDigitalOutV7 Function
iosdigitaloutv7( PointNo, Mask, Value, Confirm , Ignore )
This function sends a digital output action to IO system.
PointNo is point number for point to which action applies
Mask specifies the output mask
Value specifies the output value (MSW)
Confirm specifies whether operator must confirm action in a confirmation box (0 - no confirm, 1 - confirm)
Ignore specifies that the input action filter is off. The function always is always executed when called. (0 only on
left mouse button, 1 always)
Example:
#
call iosdigitaloutv7( PointNo, 0xFFFFFFFF, Value, Confirm, 0)
Iospbsetpoint Function
iospbsetpoint(PointNo, Value)
iospbsetpointv7(PointNo, Value, Ignore)
This function requests the value of PointNo to be changed to value.
PointNo is point number for point to which action applies
Value new value of the point.
Ignore specifies that the input action filter is off. The function always is always executed when called. (0 only on
left mouse button, 1 always)
Confirm specifies whether operator must confirm action in a confirmation box (0 - no confirm, 1 - confirm)
Ignore specifies that the input action filter is off. The function always is always executed when called. (0 only on
left mouse button, 1 always)
Glossary of Terms 67
Plcbitset Function
plcbitset( PointNo, ParameterKey, BitVal, Confirm)
plcbitsetv7( PointNo, ParameterKey, BitVal, Confirm, Ignore)
This function sends a request to set the bit corresponding to the parameter key of the block algorithm for the point.
PointNo is point number for point to which action applies
ParameterKey is the block table entry key.
Bitval the value of the bit to set.
Confirm specifies whether operator must confirm action in a confirmation box (0 - no confirm, 1 - confirm)
Ignore specifies that the input action filter is off. The function always is always executed when called. (0 only on
left mouse button, 1 always)
Plcbitsetcond Function
plcbitsetcond(PointNo, ParameterKey, OutBitVal, InBitVal, Confirm)
plcbitsetcondv7(PointNo, ParameterKey, OutBitVal, InBitVal, Confirm, Ignore)
Sends OutBitVal to PLC parameter if read bit value = InBitVal.
PointNo is point number for point to which action applies
ParameterKey is the block table entry key.
OutBitVal output value (0 or 1)
InBitVal conditional input value (0 or 1)
Confirm specifies whether operator must confirm action in a confirmation box (0 - no confirm, 1 - confirm)
Ignore specifies that the input action filter is off. The function always is always executed when called. (0 only on
left mouse button, 1 always)
Plcbittoggle Function
plcbittoggle(PointNo, ParameterKey, Confirm)
plcbittogglev7(PointNo, ParameterKey, Confirm, Ignore)
This function sends a request to toggle the bit corresponding to the parameter key of the block algorithm for the
point.
PointNo is point number for point to which action applies
ParameterKey is the block table entry key.
Confirm specifies whether operator must confirm action in a confirmation box (0 - no confirm, 1 - confirm)
Ignore specifies that the input action filter is off. The function always is always executed when called. (0 only on
left mouse button, 1 always)
Plcedit Function
plcedit( ValueId, Object, PointNo, ParameterKey )
This function allows for entering and sending an output PLC parameter to IO system. The function must be part of
input dynamics of an object. This object must have two text rectangles of same size on top of each other. First must
be called valuefield and displays the current value. The second must be called editfield and is used when
entering a value. A click on the main object will make the edit field visible. The user enters a value and press of
return on keyboard will send the entered value to IO system. The valuefield then again becomes visible.
Note. plcedit requires that the 'allow write' is set in the block algorithm for the PLC parameter.
ValueId is as specified in the table below
68 Glossary of Terms
PointNo is point number of the controlling point. This identifies address of the PLC parameter block and the block
algorithm that holds the description of the parameter.
ParameterKey is the key identifying the PLC parameter (string) in the block algorithm.
Value Id
Description
__PLCDBLPAR
__PLCINTPAR
Example:
#
call plcedit(__PLCDBLPAR, __self, PointNo, ParKey )
Above allows edit of a floating point PLC parameter when clicking on the object. The value of PointNo and ParKey
is determined rename variables when the object is instantiated.
Below is the full ..\gismos\plcvalent.g file for the ready-made plcvalent object. This object uses openGMS function
plcedit.
mtran0
vis 1
detect 1
plcvalent: model
. dynprop
(#
\
\
Glossary of Terms 69
estyle 0
height 1.5
align 2 3
value: ftrect 0 2.5 8 0 "PlcValE"
. dynprop
(__PLCTXTPAR
(= *
(= *
(fcolor FillColor)))
(Font
(= *
(tfont Font)))
(TextColor
(= *
(tcolor TextColor)))
unit: inst unit 0 0
. dynprop
(__PLCTXTPAR
(= *
(fcolor FillColor)))
(Font
(= *
(tfont Font)))
(TextColor
(= *
(tcolor TextColor)))
. move 8 0
vis 0
edit: ftrect 0 2.5 8 0 ""
. refpoint 0 0
endm
70 Glossary of Terms
ColV7ToggleSymbol
long colv7togglesymbol(Object, Ignore)
This function switches between hiliting two parts of a group or submodel.
The following will toggle between the two parts when clicked upon.
Object must be __self.
Ignore specifies that the input action filter is off. The function always is always executed when called. (0 only on
left mouse button, 1 always)
Example:
#
call gms_flash()
((__button_hilite == 0) && (__locator != 0))
!= 0
call colv7togglesymbol(__self, 1)
Colv7ExtSelect function
colv7extselect(Object, Server, BaseKey, KeyField1, SampleField1,
KeyField2, SampleField2, KeyField3, SampleField3,
KeyField4, SampleField4, ExtFaceplate)
This function makes the object the selected object and displays information according to the KeyField in the
StatusBar of opstation when clicked upon.
The text to displayed is retrieved with the function exttext with arguments (Server, SampleField?, BaseKey,
KeyField?) where ? is 1 to 4.
Object must be __self.
Server server name configured in OpStation Configuration.
BaseKey Displayed together with server where the pointcode would be displayed for a selected point
KeyField1 used to retrieve the text to be displayed in the statusbar where the point text is displayed when a point is
shown.
SampleField1 used to tell how often the value show be retrieved.
KeyField2 used to retrieve the value to be displayed in the statusbar where the point value is displayed when a
point is selected.
SampleField2 used to tell how often the value show be retrieved.
KeyField3 used to retrieve the value to be displayed in the statusbar where the point status is displayed when a
point is selected.
SampleField3 used to tell how often the value show be retrieved.
KeyField4 used to retrieve the value to be displayed in the statusbar where the point control is displayed when a
point is selected.
SampleField4 used to tell how often the value show be retrieved.
Glossary of Terms 71
ExtFaceplate used to tell that an externaldata faceplate is associated with the object. The following replacement
are made in dynamics and renamed variables in the faceplate.
String to be replaced
Repacement
$SVR
<value of Server>
$ID
<value of BaseKey>
$DES
<value of KeyField1>
$VAL
<value of KeyField2>
$STA
<value of KeyField3
$CON
<value of KeyField4>
ExtSetxxx function
extsetlong(Server, Type, Key1, Key2, lValue, Confirm)
extsetdouble(Server, Type, Key1, Key2, dValue,Confirm)
extsettext(Server, Type, Key1, Key2, Text,Confirm)
extsetlongv7( Server , Type, Key1, Key2, lValue, Confirm, Ignore)
extsetdoublev7( Server, Type, Key1, Key2, dValue, Confirm, Ignore)
extsettextv7( Server, Type, Key1, Key2, sText, Confirm, Ignore)
These function is used to set values in an external server.
Key1 is concatenated with Key2 to form the key parameter in the external server.
Server server name configured in OpStation Configuration.
Type value type irrelevant in this case.
Key1 first part of the parameter key.
Key2 second part of the parameter key.
lValue long value to set.
dValue double value to set.
sText text value to set.
Confirm specifies whether operator must confirm action in a confirmation box (0 - no confirm, 1 - confirm)
Ignore specifies that the input action filter is off. The function always is always executed when called. (0 only on
left mouse button, 1 always)
Extedit function
extedit (Server, Type, Object, Key1, Key2)
This function is allows the user to edit an external parameter.
Server server name configured in OpStation Configuration.
Type value type __EXTLONG, __EXTDOUBLE, __EXTTEXT
Object must be __self.
Key1 first part of the parameter key.
Key2 second part of the parameter key.
72 Glossary of Terms
ExtActivate function
extactivate( DbName, TableName, Param, MenuItem, Confirm)
extactivatev7( DbName, TableName, Param, MenuItem, Confirm, Ignore)
This function activates an external program defined in database DbName in table TableName as entry number
MenuItem with one text parameter given as Param.
DbName name of database where to find classID of external program.
TableName name table where to find definition.
Param text parameter to pass to the external program.
MenuItem numbered ID in table.
Confirm specifies whether operator must confirm action in a confirmation box (0 - no confirm, 1 - confirm)
Ignore specifies that the input action filter is off. The function always is always executed when called. (0 only on
left mouse button, 1 always)
ExtMenu function
ExtMenu (Object, DbName, sTableName, Param, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11,
P12, P13, P14, P15 )
This function activates a menu on right click release, where the menu items can activate an external function. The
menu is defined by entries in table TableName.
DbName name of database where to find classID of external program.
TableName name table where to find definition.
Param text default parameter to pass to the external program.
P1 P15 individual arguments for each function, if specified overrides Param.
ColModelInvoke Function
ColModelInvoke( ModelName )
This function will replace the current picture with a new one. The function is normally used as an input function in
response to a button click. React only to left mouse button release.
ColModelInvokeV7(ModelName, Ignore)
Same as above but with Ignore = 1 react to any input.
ModelName is name (double quoted string) of new picture
Ignore specifies that the input action filter is off. The function always is always executed when called. (0 only on
left mouse button, 1 always)
Example:
#
call ColModelInvoke( "raw_mill")
Glossary of Terms 73
ColNewWindowInvoke Function
ColNewWindowInvoke( ModelName )
ColNewWindowInvokeV7(ModelName, Ignore)
This functions handles invocation of a new free-floating window.
ModelName is name (double quoted string) of new picture
Ignore specifies that the input action filter is off. The function always is always executed when called. (0 only on
left mouse button, 1 always)
ColGenPopUpInvoke Function
ColGenPopUpInvoke( ModelName, PointNo )
This function pops up a new window with a given picture. It may also popup a faceplate for a given point. The
function is normally used as an input function in response to a button click. React only to left mouse button release.
ColGenPopUpInvokeV7( ModelName, PointNo , Ignore)
Same as above but with Ignore = 1 react to any input.
ModelName is name (double quoted string) of picture or faceplate to pop up.
PointNo is point number of activation point in sake of a faceplate. Must be = 0 for an ordinary popup picture.
Ignore specifies that the input action filter is off. The function always is always executed when called. (0 only on
left mouse button, 1 always)
Example:
#
call ColGenPopUpInvoke( "raw_mill_popup", 0)
Facepopupio(FacePlateNameSuffix, lPointNo )
facepopupio( FacePlateNameSuffix, PointNo )
facepopupiov7(FacePlateNameSuffix, PointNo, Ignore )
This function popup a faceplate prefixed with the IO system prefix.
FacePlateNameSuffix is name to append to the prefix of the IOsys (double quoted string) of picture or faceplate
to pop up.
PointNo is point number of activation point in sake of a faceplate. Must be = 0 for an ordinary popup picture.
Ignore specifies that the input action filter is off. The function always is always executed when called. (0 only on
left mouse button, 1 always)
StartProcess function.
startprocess( Program, P1, P2, P3, P4, P5, Confirm)
startprocessv7( Program, P1, P2, P3, P4, P5, Confirm, Ignore)
This program starts a program.
Program full program path and name of program.
P1..P5 text parameters to pass to the program.
Confirm specifies whether operator must confirm action in a confirmation box (0 - no confirm, 1 - confirm)
Ignore specifies that the input action filter is off. The function always is always executed when called. (0 only on
left mouse button, 1 always)
74 Glossary of Terms
ShowTrend function.
showtrend (TrendPackNo)
showtrendv7 (TrendPackNo, Ignore)
Shows a trend package.
TrendPackNo number of trend package to show.
Ignore specifies that the input action filter is off. The function always is always executed when called. (0 only on
left mouse button, 1 always)
Showbrowser function.
showbrowser( Function, Code, View, Ignore )
showbrowserbyno( Function, No, View, Ignore )
This function shows the SdrBrowserUI either starting out with a department, point, group, or route, and one of the
three possible views.
Function telling what kind of Code or number is passed. __ShowDepartment, __ShowPoint, __ShowRoute or
__ShowGroup.
Code the code of the point, department, group, or route.
No the number of the point, department, group, or route.
View "EVENTLIST" , "POINTLIST" or "POINTGRID"
Ignore specifies that the input action filter is off. The function always is always executed when called. (0 only on
left mouse button, 1 always)
Colv7executecommand function
colv7executecommand(CommandID, Ignore)
This functions emulates a toolbar button press.
CommandID See the table
Ignore specifies that the input action filter is off. The function always is always executed when called. (0 only on
left mouse button, 1 always)
Glossary of Terms 75
CommandID
Action
__ID_FILE_TOPMODEL
__ID_FILE_OPEN
Open Graphic
__ID_FILE_PRINT_CLIENT
Print Graphic
__ID_CONTROL_SELECT
__ID_CONTROL_START
__ID_CONTROL_STOP
__ID_CONTROL_QUICKSTOP
Send quick stop command for the current department. All equipment
will be stopped immediately
__ID_CONTROL_MASTERSTOP
Send master stop command for the current department. All equipment
will be stopped in a manner described by the PLC program
__ID_ALARM_SILENCE
__ID_ALARM_RESET
__ID_ALARM_DEPLIST
__ID_ALARM_POINTLIST
__ID_ALARM_GROUP_POINTSTATUS
Open the alarm status list for the selected points owner group.
__ID_TREND_PACKAGE
__ID_TREND_POINT
Open the SDR Trend display with the selected point assigned to the
trend group
__ID_POINT_LIST
__ID_POINT_LIST_ADD_FAVOURITE
__ID_POINT_PARAMETERS
Open the SDR Point Parameter display for the selected point
__ID_POINT_CONFIG
Open the SDR Point Configuration display for the selected point
__ID_NOTEPAD
Open the ECS Note Pad and display notes for the selected point
__ID_HELP
ObjectUserword function
objectuserword(__self, lObjNumber, lValueToSet)
This function set the user word of the objects parents child number lObjnumber to lValueToSet Is used together with
the information function QObjectUserWord.
ColClose function
colclose()
This function is used to close a faceplate.
76 Glossary of Terms
Animation
It is possible to animate things using a variable called __GMSANI. This variable is updated every 25 millisecond
and running from 0 to 60000 milliseconds every minute. The simplest way to make animation is to have some
models on top of each other and the changing the visibility depending on __GMSANI. There are some flags that are
usefull in a model.
been move.
The following example show how to use visibility, a base model that consist of six models of exactly, the same size
amin_sub00 to amin_sub05 called amin_sub. This model uses the flag dbflag and noerase flag. The noerase flags
ensures that the last executed vis 1 is visible. The variable ShowPic is used to tell which vis 1 is executed. This
model is the instantiated in another model called anim, with ShowPic renamed to ((Speed * __GMSANI / 200) %
6 ). Speed can then in the model where it is instantiated be anything from 0 to 8, where 0 is stopped and 8 is as fast
as goes. (%6 means modulus 6).
Example:
mtran0
vis 1
detect 1
anim_sub: model
. dbflag 1
. noerase 1
inst anim_sub00 0 0
. dynprop
(ShowPic
(= 0
(vis 1) ))
. move 0 0
inst anim_sub01 0 0
. dynprop
(ShowPic
(= 1
(vis 1) ))
. move 0 0
inst anim_sub02 0 0
. dynprop
(ShowPic
(= 2
(vis 1) ))
. move 0 0
inst anim_sub03 0 0
. dynprop
Glossary of Terms 77
(ShowPic
(= 3
\
\
(vis 1) ))
. move 0 0
inst anim_sub04 0 0
. dynprop
(ShowPic
(= 4
\
\
(vis 1) ))
inst anim_sub05 0 0
. dynprop
(ShowPic
(= 5
\
\
(vis 1) ))
. move 0 0
endm
mtran0
vis 1
detect 1
anim: model
inst anim_sub 0 0
. move 0 0
renamedvars
If on the other hand we have a fixed background with different motives, another strategy is needed, because know
the noerase flag cannot be used as the background is not updated. Instead the flag batcherase and repairflag is used.
This will look as follows having the 6 different motives in anim_sub00 to anim_sub05, and the background in
anim_back., notice that vis 0 is set after the first instantiated sub model this is mode in order for the gismo look nice
in the editor. Note also now that vis 0 is used on in the dynamics on the model. This is done because they are no
longer overridden by one of the models. The anim model will be exactly the same as in the previous example.
Example:
mtran0
vis 1
detect 1
anim_sub: model
. dbflag 1
group
. repairflag 1
. batcherase 1
inst anim_back 0 0
. move 0 0
inst anim_sub00 0 0
. dynprop
(ShowPic
(= 0
78 Glossary of Terms
(vis 1) )
(!= 0
(vis 0) ))
. move 0 0
vis 0
inst anim_sub01 0 0
. dynprop
(ShowPic
(= 1
(vis 1) )
(!= 1
(vis 0) ))
. move 0 0
inst anim_sub02 0 0
. dynprop
(ShowPic
(= 2
(vis 1) )
(!= 2
(vis 0) ))
. move 0 0
inst anim_sub03 0 0
. dynprop
(ShowPic
(= 3
(vis 1) )
(!= 3
(vis 0) ))
. move 0 0
inst anim_sub04 0 0
. dynprop
(ShowPic
(= 4
(vis 1) )
(!= 4
(vis 0) ))
. move 0 0
inst anim_sub05 0 0
. dynprop
(ShowPic
(= 5
(vis 1) )
(!= 5
(vis 0) ))
. move 0 0
endg
endm
Glossary of Terms 79
mtran0
vis 1
detect 1
anim: model
inst anim_sub 0 0
. move 0 0
renamedvars
These examples can be used by replacing anim_sub00 etc with the models of own choise.
To be guided through, use the tabs to enter the different types of dynamics. The box is used to enter dynamic
properties of the three types Unconditional, Conditional and Upon input, the window outlook depends on the
dynamic type selected.
80 Glossary of Terms
Unconditional action.
Action. Select the dynamic action from the drop down list
Argument. Click the empty argument field (text edit field). Fill in
the argument by typing or better use Special Get button for entering an point related OpenGMS function,
a PLC related OpenGMS function or a GMS color index. For an action with two arguments (like stext)
make sure to enter both arguments ( for stext type in format as second argument).
and
Glossary of Terms 81
Value type Select one of the types (resulting in one of the four
functions pntfloat, pntint, pnttext, pntbit).
Value Select the attribute (Value id) from the drop down list. The
list of available attributes depends on the Value type.
82 Glossary of Terms
Conditional action
Special Get
Special Get
and
Glossary of Terms 83
Upon input
Input action. Click the text field and type in a function call. See
the section on OpenGMS functions for available input function calls.
84 Glossary of Terms
and
PntFloat Example
In this example we will create a new dynamic sub model (gismo), which can display the value of any of the floatingpoint attributes of a point.
Creating pntfloat
The sub model is created as follows:
In the editor select menu File -> new
Model properties. The default model properties are with dark blue background enabled and model size 100 * 75.
As we want our model to be a text rectangle of size 10 * 2.5 we must change the model properties as follows:
If the blue background does not disappear (GMS error), click in the
background and press delete on keyboard. Now you should have a white working area.
follows:
Create statics. We now create the static part of the sub model as
In the Enter Point box displayed type 0 0 and press Apply. Then
type 10 2.5 and press Apply again and the Close. You should now have a text rectangle in the lower left
part of the working area.
Type the text "PntFloat" in the text rectangle, then right click and
select Done from popup menu. The object should now be selected indicated by a frame.
Right click and select Graphic Properties from the popup menu.
box.
In the graphics properties box select the fill color 22 and close the
as follows:
Glossary of Terms 85
actions (and close the box by OK):
86 Glossary of Terms
ValueID
=*
stext pntfloat(ValueId, PointNo) "%s5.2f"
EdgeColor
=*
ecolor EdgeColor
FillColor
=*
fcolor FillColor
TextColor
=*
tcolor TextColor
Font
=*
tfont Font
AlignX
=*
talign AlignX 3
Save model. We now save the model as a gismo as follows:
(ValueId
(= * \
Glossary of Terms 87
(= * \
(talign AlignX 3)))
(FillColor
(= * \
(fcolor FillColor)))
(EdgeColor
(= * \
(ecolor EdgeColor)))
(TextColor
(= * \
(tcolor TextColor)))
(Font
(= * \
(tfont Font)))
endm
Using pntfloat
We may now use the new sub model in a picture to display the low and high alarm limits for the point j4p12.
In the editor create a new picture or load an existing one.
Instantiate sub model:
Select menu Palette -> Submodels ..
In the Sub model List box displayed locate and click on pntfloat, then click on first position in picture where pntfloat
shall be displayed, then on second position, then right click and select Done from popup menu.
Close the sub model list by OK. You should now have two instances of pntfloat.
Rename Variables:
Left click the first instance to select it, then right click and select Rename Variables from the popup menu. fill in
the variables as follows (and close the box by OK):
AlignX 3
EdgeColor 7
FillColor 22
Font 1
PointNo pointno("j4p12")
TextColor 7
ValueId __ALARMLOW
Left click the second instance to select it, then right click and select Rename Variables from the popup menu. fill
in the variables as follows (and close the box by OK):
AlignX 3
EdgeColor 7
FillColor 22
Font 1
PointNo pointno("j4p12")
88 Glossary of Terms
TextColor 7
ValueId __ALARMHIGH
Save the picture.
The picture will now display the low alarm limit for the point j4p12 in the first object and the high alarm limit in the
second object. The values will be right aligned black text in Arial normal font, the text rectangle will have a black
edge and a gray fill color. The values will be displayed in floating point format xxxxx.yy.
Faceplates
Faceplates are sub models where all the dynamics are related to an activation point. In OpStation a faceplates is
activated by right click on a point and then selecting Faceplate from the popup menu. A window with the faceplate
will then pop up. The dynamics on the faceplate will relate to the point you clicked upon. An example of a faceplate
is the PIDFace, which is discussed in the section "PIDFace example".
Creating Faceplates
When creating new faceplates the following guidelines should be observed.:
Location of faceplates files. Faceplates must reside in directory FlsaGmsPic\Faceplates So when saving a
faceplate in the editor make sure to select this directory.
Model properties of faceplates. Faceplates do not have the standard model size and background color. So when
starting a new faceplate select menu Model -> Properties .. and change background color and rectangle size in the
model properties box. If the size of the work area does not change after this, save the model and reload it again
(GMS peculiarity).
Dynamics. Preferably use OpenGms dynamics (palettes opengms_dynamics_1 and opengms_dynamics_2). This
will allow you also to instantiate a faceplate directly in a standard mimic picture. For such an imbedded faceplate
you use Rename variables to assign a point number for the variable $. You may use classic dynamics in a
faceplate, but in that case you will not be able instantiate the faceplate directly in a mimic, but only use it as a popup
faceplate.
PointNo use $. When binding variables by rename variables The point number variable should be set to $ as a
placeholder for the activation point. The correct point number will then be substituted upon activation of the
faceplate. If you use classic dynamics, the object owner should also be set to $ for the same reason.
Assigning Faceplates
Once a faceplate has been created you must determine to which class of activation points the faceplate shall be
assigned. There are two ways of doing this.
Assign faceplate to point algorithm. This is done using the ECS OpStation Configuration utility. Here you
assign the name of the faceplate to one or more A- or B-point algorithms. All points having one of these algorithms
will then by default use the assigned faceplate.
Assign faceplate to picture object owner. When you assign an owner to a classic dynamic object in a mimic
picture you may in the same box assign a faceplates (select one from dropdown list). If you do so the assigned
faceplate will apply to that specific object in the picture. This kind of assignment will overrule the assignment by
point algorithm.
Glossary of Terms 89
PIDFace Example
In the following we will illustrate how the PIDFace is constructed. The figures below show the PIDFace as it looks
in the editor and as it looks at runtime in OpStation. The PIDFace is exclusively made of OpenGMS dynamics. We
go through the dynamics an explain the Rename variables setting for Point Numbers.
90 Glossary of Terms
Third PntVal is point value for the mode point. PointNo = pntint(__REF_PNT4, $)
LangText (LT) are text constants in current language. For the manual mode button TextKey = "lngManual".
Similarly for the other instances.
PntThermoVer is thermo value for the process point. PointNo = pntint(__REF_PNT1, $)
First PntSlider is Thermo val entry for the set point. PointNo = $
Second PntSlider is Thermo val entry for the outp. point. PointNo = pntint(__REF_PNT2, $)
fls_m_mode_diamon. is mode switch button for the mode point. PointNo = pntint(__REF_PNT4, $). BitVal
= 1. The BitNo variable is in range 0..4 the down most button having BitNo = 0 and the topmost BitNo = 4.
fls_m_percent_up, fls_m_percent_up_small, fls_percent_down, fls_percent_down_small are percent
change buttons. They apply to the output point if the mode is manual otherwise to the set point. PointNo = $.
ManModeMaskBits = 1, ManModeValueBits = 1 (bit 0 is 1 for manual mode).
Left fls_m_facepopup button shall popup up plcparameterface for set point. PointNo = $. FaceplateName =
"plcparamface".
Right fls_m_facepopup button shall popup up pidtrend for set point. PointNo = $. FaceplateName =
"pidtrend".
Bitmaps
Bitmaps may be inserted in a picture as static objects. The bitmaps are full scalable.
To insert a bitmap in a picture do as follows:
From the bitmap name list select your bitmap file and click at
position in picture where the bitmap shall be placed followed by right click and Done
Note that the bitmap file must reside on the Server. If OpStation is started on a Client all mimic pictures and bitmaps
will be copied from the Server to the Client (if not already there). However, this implies that if you create a new
bitmap you must restart OpStation to view it on a Client, or you must copy the bitmap file by hand to the Client.
Glossary of Terms 91
4-byte real.
8-byte real.
Date.8 String.
11
If the properties has to be set in a given order a primary index key kan be made to control the order. In order to find
the DispatchIDs a tool like OLEVIEW can be used.
92 Glossary of Terms
Glossary of Terms
Faceplate
Popup window with dynamics related to activation point (point clicked upon)
gismo
Graphical Interactive State Management Object. Any object with dynamics behavior
GMS
Graphical Modeling System by SL
MSW
Machine Status Word. Contains the actual bit values for a B-point
SL
Sherrill Lubinski Corporation. Supplier of the GMS product
Index
S
symbol offset 8, 38