It App Management
It App Management
It App Management
Revision A
Trademarks
All terms mentioned in this documentation that are known to be trademarks or
service marks have been appropriately capitalized. Invensys Systems, Inc. cannot
attest to the accuracy of this information. Use of a term in this documentation
should not be regarded as affecting the validity of any trademark or service mark.
Alarm Logger, ActiveFactory, ArchestrA, Avantis, DBDump, DBLoad, DT Analyst,
FactoryFocus, FactoryOffice, FactorySuite, FactorySuite A2, InBatch, InControl,
IndustrialRAD, IndustrialSQL Server, InTouch, MaintenanceSuite, MuniSuite, QI
Analyst, SCADAlarm, SCADASuite, SuiteLink, SuiteVoyager, WindowMaker,
WindowViewer, Wonderware, and Wonderware Logger are trademarks of Invensys
plc, its subsidiaries and affiliates. All other brands may be trademarks of their
respective owners.
Contents
Welcome.......................................... 11
Documentation Conventions.............................................11
Technical Support .............................................................12
InTouchView....................................................................197
Creating a New InTouchView Application .................198
Converting an Application Between InTouch and
InTouchView ............................................................198
Converting an InTouchView Application to
an InTouch Application..........................................199
Converting an InTouch Application to an
InTouchView Application ......................................200
InTouchView Licensing................................................200
Welcome
Documentation Conventions
This documentation uses the following conventions:
Technical Support
Wonderware Technical Support offers a variety of support
options to answer any questions on Wonderware products
and their implementation.
Before you contact Technical Support, refer to the relevant
section(s) in this documentation for a possible solution to the
problem. If you need to contact technical support for help,
have the following information ready:
• The type and version of the operating system you are
using. For example, Microsoft Windows XP, SP1.
Chapter 1
Application
Start Start
Manager
Stand-alone Managed
WindowMaker Create InTouch InTouch Create ArchestrA IDE
Applications Applications
Run Run
WindowViewer
Manage
create, create,
delete, View delete,
manage manage
Stand-alone Stand-alone
Stand-alone
InTouch Stand-alone
InTouch
Stand-alone
InTouch Managed
InTouch
Applications Applications
InTouch
Applications InTouch
Applications
Applications Applications
Note When you start the Application Manager for the first time,
the INTOUCH.ini file is created. The INTOUCH.ini file contains the
default configuration settings for your application. As you
configure your application, the new settings are written to the
INTOUCH.ini file.
To rename an application
1 Select the application in the list.
2 On the File menu, click Rename.
To delete an application
1 On the File menu, click Delete.
2 In the message that appears, click Yes.
To find applications
1 On the Tools menu, click Find Applications. The Browse For
Folder dialog box appears.
• Publisher name
• Application resolution
For example:
You see the Backup Configuration dialog box after you confirm
that you want to migrate an older application to the current
version of the InTouch HMI. You must specify the folder to
create the backup copy and if you want to exclude any files
from the backup.
Chapter 2
Distributing Applications
Note You can also manage and deploy InTouch applications using
the ArchestrA IDE. For more information about using the
ArchestrA IDE with the InTouch HMI, see Chapter 1, About
InTouch and ArchestrA Integration, in the InTouch® HMI
and ArchestrA® Integration Guide.
• Server-based
• NAD
InTouch Process
App. serial connection
Client-Based Architecture
In a client-based architecture, there is a unique copy of one
InTouch application for each computer running
WindowViewer (View node) or in a unique location on a
network server. In the following example, an application is
developed and tested on the development node and then
copied to each View node.
Network
Server-Based Architecture
A server-based architecture distributes a common InTouch
application to several View nodes. In the following figure,
two View nodes access the same application from the
development node.
Development Node
View Node 1 View Node 2
InTouch
App. Process
Network
Network
The View node must have the same access to data sources as
the development node.
Process
Network
Network
Process
Network
Network
Wonderware SuiteLink
The Wonderware SuiteLink communications protocol is
based on the TCP/IP protocol. Use SuiteLink for your
high-speed industrial applications, as it provides these
features:
• Value Time Quality (VTQ), in which a timestamp and
quality indicator are associated with all data values
delivered to VTQ-aware clients. The InTouch HMI is a
VTQ-aware client whose tag data is delivered with a VTQ
indicator.
The View node must have the same access to data sources as
the development node.
Network
Network
Before you can access a file through UNC, you must create a
file share on the computer you want to access. For more
information, see your Windows documentation.
For example, assume that you have a computer with the
network name of “EngineRm” that you have shared the root
drive “C:\” with the share name of “Root”. To set up a UNC
path to the “C:\IT\Apps\Boiler” application you must use
the following UNC:
\\EngineRm\Root\IT\Apps\Boiler
If the “Boiler” directory itself was shared as “Boiler,” the
UNC could be shortened to:
\\EnginerRm\Boiler
No path is required if the share is the path.
A remote node retrieving data from a history file may not see
data for the last hour of data (based on the logger node's
time). Remote trends can only view data that has been
written to the logging node's disk.
Data for each tag checked for 'Log Data' is automatically
written to disk after 22 samples for that tag have been
collected. If the HTUpdateToCurrentTime() function is
called, data is written to disk regardless of the number of
samples collected. By default, data is written to disk once an
hour. You can change this interval by adding the following
line to the INTOUCH.ini file:
ForceLogging=X;
Node 1 Node 2
Node3
Log/Retrieve Retrieve
Retrieve Retrieve
Log/Retrieve
Remote
Local
History File
History File
(HistPrv1)
3 In the Provider Name box, type the name you want to use
for the new historical provider.
A provider name can be 16 alphanumeric characters or
fewer.
• RestartWindowViewer() Function
• ReloadWindowViewer() Function
Example
Using the following statement in the tagname box of a data
change script causes the body of the script to run. The script
body could show a window informing the user to restart
WindowViewer for the change to take effect.
$ApplicationChanged
See Also
$ApplicationVersion
RestartWindowViewer() Function
Shuts down WindowViewer, copies the updated master
application (if configured to do so), and then restarts
WindowViewer.
Category
system
Syntax
RestartWindowViewer();
Remarks
This function is used to update an application when the
automatic update Network Application Development (NAD)
functions are not used.
Use the $ApplicationChanged system tag to determine when
a NAD update has occurred.
You use the Notify Clients command to initiate a NAD update.
However, the operator may want to delay the update until a
later time. You can use this function with a button action
script so that the operator can restart WindowViewer when it
is convenient.
You could instead use the ReloadWindowViewer() function,
which updates the View node without shutting down
WindowViewer.
See Also
$ApplicationChanged, ReloadWindowViewer()
ReloadWindowViewer() Function
Dynamically updates WindowViewer with the updated
master NAD application without any interruption in service.
Category
system
Syntax
ReloadWindowViewer();
Allows the user control over reloading WindowViewer.
Remarks
Use this function to update an application when the
automatic update Network Application Development (NAD)
functions are not used.
Use the $ApplicationChanged system tag to determine when
a NAD update has occurred.
You use the Notify Clients command to initiate a NAD update.
However, the operator may want to delay the update until a
later time. You can use this function with a button action
script so that the operator can reload the application in
WindowViewer when it is convenient.
See Also
$ApplicationChanged
Corporate Network
InTouch
Terminal Server
Supervisory Network
• TseGetClientNodeName() Function
• TseQueryRunningOnConsole() Function
• TseQueryRunningOnClient() Function
TseGetClientId() Function
Returns a string version of the client ID (the TCP/IP address
of the client) if the View application is running on a Terminal
Server client. This client ID is used internally to generate
SuiteLink server names and logger file names. Otherwise,
the TseGetClientId() function returns an empty string.
Syntax
MessageResult=TseGetClientId();
Example
The client IP address 10.103.202.1 is saved to the MsgTag
tag.
MsgTag=TseGetClientID();
TseGetClientNodeName() Function
Returns the client node name if the View application is
running on a Terminal Server client assigned a name that
can be identified by Windows. Otherwise, the
TseGetClientNodeName() function returns an empty string.
Syntax
MessageResult=TseGetClientNodeName();
Example
The client node name is returned as the value assigned to the
MsgTag tag.
MsgTag=TseGetClientNodeName();
TseQueryRunningOnConsole() Function
The TseQueryRunningOnConsole() function can be run from
a script to indicate whether the View application is running
on a Terminal Services console.
Syntax
Result=TseQueryRunningOnConsole();
Return Value
Returns a non-zero integer value if the View application is
running on a Terminal Services console. Otherwise, the
TseQueryRunningOnConsole() function returns a zero.
Example
IntTag is set to 1 if WindowViewer is running on a Terminal
Services console.
IntTag=TseQueryRunningOnConsole();
TseQueryRunningOnClient() Function
Returns a non-zero integer value if the View application is
running on a Terminal Services client. Otherwise, it returns
a zero.
Syntax
Result=TseQueryRunningOnClient();
Return Value
Returns 0 if View is not running on a Terminal Services
client.
Example
IntTag is set to 1 if WindowViewer is running on a Terminal
Services client.
IntTag=TseQueryRunningOnClient;
Chapter 3
• Alarm DB Purge/Archive
• Wonderware SuiteLink
• Wonderware WindowViewer
Stopping a Service
You can manually stop the WindowViewer service using the
Control Panel.
Deactivation of Tags
If you have InTouch Access Names defined with the Advise
only active items option turned on and I/O tags that are
active only in certain InTouch application windows (the tags
are not used anywhere else in the application), it is possible
to deactivate those tags. After the run-time user logs off, if
WindowViewer is running as a service, there is no user
interface for navigating the application. If you close an
application window using a script, the window automatically
is unloaded from memory, thus terminating the link to those
tags.
• HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\
Services\slssvc
• HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\
Services\SuiteLink
Wonderware WindowViewer:
• HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\
Services\VIEW
Chapter 4
InTouch Application
DBDump
Tagname
Dictionary
CSV File
PumpInP PumpRPM
Inlet
RPM
Pressure
PumpOutP PumpState
Outlet On/Off
Pressure State DBLoad
5 In the Name of CSV Dump file box, type a name for the file
with a .csv file name extension.
6 Select the type of data grouping in the export file.
• Select the Group output by types check box to group
the data by the types of tags in the export file. This is
the default.
• Clear Group output by types to save the output to the
export file alphabetically by tag name.
7 Click OK to save the contents of the Tagname Dictionary
to the selected file. A message appears indicating the
contents were saved successfully to the file.
Keyword Description
:MODE=REPLACE
If a duplicate tag is encountered, the DBLoad utility deletes
the existing tag in the Tagname Dictionary and replaces it
with the tag from the import file with the same name.
:MODE=UPDATE
If a duplicate tag is encountered, the DBLoad utility
overwrites the existing tag definition in the Tagname
Dictionary only with data explicitly specified from the import
file. All other data associated with the tag remains
unchanged in the Tagname Dictionary.
Fields are considered explicitly defined if the field is in the
record and entered by you or is set by the
“:KEYWORD=value” mechanism. If a field is not specified in
the record, and the keyword has been reset using the
“:KEYWORD=” command, the current field value is not
updated.
:MODE=ASK
DBLoad stops when a duplicate tag is encountered while
loading the Tagname Dictionary. The Duplicate Name dialog
box appears and shows a list of options to handle duplicate
tags. This is the default import mode.
:MODE=IGNORE
The DBLoad import utility ignores the duplicate tag and
continues processing the remaining records of the import file.
:MODE=TERMINATE
The DBLoad import operation stops when a duplicate tag is
encountered.
:MODE=TEST
DBLoad scans the import file for errors and does not attempt
to load tag definitions into the Tagname Dictionary. DBLoad
generates a report that identifies any format errors by line
number and location in the import file.
Run DBLoad with :mode=test first to identify any errors in
the import file. After correcting any errors, change the mode
keyword value to :mode=replace or :mode=update before
running DBLoad."
String Default
Position Attributes Acceptable Values Values
String Default
Position Attributes Acceptable Values Values
String Default
Position Attributes Acceptable Values Values
String Default
Position Attributes Acceptable Values Values
String Default
Position Attributes Acceptable Values Values
Default
Attribute Acceptable Value Value
Default
Attribute Acceptable Value Value
Default
Attribute Acceptable Value Value
Default
Attribute Acceptable Value Value
Default
Attribute Acceptable Value Value
Default
Attribute Acceptable Value Value
Default
Attribute Acceptable Value Value
String
Position Attribute
1 Group
2 Comment
3 Logged
4 EventLogged
5 EventLoggingPriority
6 RetentiveValue
7 InitialDisc
8 OffMsg
9 OnMsg
10 AlarmState
11 AlarmPri
12 AlarmComment
13 AlarmAckModel
String
Position Attribute
14 DSCAlarmDisable
15 DSCAlarmInhibitor
String
Position Attribute
1 Group
2 Comment
3 Logged
4 EventLogged
5 EventLoggingPriority
6 RetentiveValue
7 InitialDisc
8 OffMsg
9 OnMsg
10 AlarmState
11 AlarmPri
12 Conversion
13 AccessName
14 ItemUseTagname
15 ItemName
16 ReadOnly
17 AlarmComment
18 AlarmAckModel
String
Position Attribute
19 DSCAlarmDisable
20 DSCAlarmInhibitor
String
Position Attribute
1 Group
2 Comment
3 Logged
4 EventLogged
5 EventLoggingPriority
6 RetentiveValue
7 RetentiveAlarmParameters
8 AlarmValueDeadband
9 AlarmDevDeadband
10 EngUnits
11 InitialValue
12 MinValue
13 MaxValue
14 Deadband
15 LogDeadband
16 LoLoAlarmState
17 LoLoAlarmValue
String
Position Attribute
18 LoLoAlarmPri
19 LoAlarmState
20 LoAlarmValue
21 LoAlarmPri
22 HiAlarmState
23 HiAlarmValue
24 HiAlarmPri
25 HiHiAlarmState
26 HiHiAlarmValue
27 HiHIAlarmPri
28 MinorDevAlarmState
29 MinorDevAlarmValue
30 MinorDevAlarmPri
31 MajorDevAlarmState
32 MajorDevAlarmValue
33 MajorDevAlarmPri
34 DevTarget
35 ROCAlarmState
36 ROCAlarmValue
37 ROCAlarmPri
38 ROCTimeBase
39 AlarmComment
40 AlarmAckModel
41 LoLoAlarmDisable
42 LoAlarmDisable
43 HiAlarmDisable
44 HiHiAlarmDisable
45 MinDevAlarmDisable
46 MajDevAlarmDisable
String
Position Attribute
47 RocAlarmDisable
48 LoLoAlarmInhibitor
49 LoAlarmInhibitor
50 HiAlarmInhibitor
51 HiHiAlarmInhibitor
52 MinDevAlarmInhibitor
53 MajDevAlarmInhibitor
54 RocAlarmInhibitor
String
Position Attribute
1 Group
2 Comment
3 Logged
4 EventLogged
5 EventLoggingPriority
6 RetentiveValue
7 RetentiveAlarmParameters
8 AlarmValueDeadband
9 AlarmDevDeadband
10 EngUnits
11 InitialValue
12 MinEU
String
Position Attribute
13 MaxEU
14 Deadband
15 LogDeadband
16 LoLoAlarmState
17 LoLoAlarmValue
18 LoLoAlarmPri
19 LoAlarmState
20 LoAlarmValue
21 LoAlarmPri
22 HiAlarmState
23 HiAlarmValue
24 HiAlarmPri
25 HiHiAlarmState
26 HiHiAlarmValue
27 HiHIAlarmPri
28 MinorDevAlarmState
29 MinorDevAlarmValue
30 MinorDevAlarmPri
31 MajorDevAlarmState
32 MajorDevAlarmValue
33 MajorDevAlarmPri
34 DevTarget
35 ROCAlarmState
36 ROCAlarmValue
37 ROCAlarmPri
38 ROCTimeBase
39 AlarmComment
39 MinRaw
40 MaxRaw
String
Position Attribute
41 Conversion
42 AccessName
43 ItemUseTagname
44 ItemName
45 ReadOnly
46 AlarmComment
47 AlarmAckModel
48 LoLoAlarmDisable
49 LoAlarmDisable
50 HiAlarmDisable
51 HiHiAlarmDisable
52 MinDevAlarmDisable
53 MajDevAlarmDisable
54 RocAlarmDisable
55 LoLoAlarmInhibitor
56 LoAlarmInhibitor
57 HiAlarmInhibitor
58 HiHiAlarmInhibitor
59 MinDevAlarmInhibitor
60 MajDevAlarmInhibitor
61 RocAlarmInhibitor
String
Position Attribute
1 Group
2 Comment
3 Logged
4 EventLogged
5 EventLoggingPriority
6 RetentiveValue
7 RetentiveAlarmParameters
8 AlarmValueDeadband
9 AlarmDevDeadband
10 EngUnits
11 InitialValue
12 MinValue
13 MaxValue
14 Deadband
15 LogDeadband
16 LoLoAlarmState
17 LoLoAlarmValue
18 LoLoAlarmPri
19 LoAlarmState
20 LoAlarmValue
21 LoAlarmPri
22 HiAlarmState
String
Position Attribute
23 HiAlarmValue
24 HiAlarmPri
25 HiHiAlarmState
26 HiHiAlarmValue
27 HiHiAlarmPri
28 MinorDevAlarmState
29 MinorDevAlarmValue
30 MinorDevAlarmPri
31 MajorDevAlarmState
32 MajorDevAlarmValue
33 MajorDevAlarmPri
34 DevTarget
35 ROCAlarmState
36 ROCAlarmValue
37 ROCAlarmPri
38 ROCTimeBase
39 AlarmComment
40 AlarmAckModel
41 LoLoAlarmDisable
42 LoAlarmDisable
43 HiAlarmDisable
44 HiHiAlarmDisable
45 MinDevAlarmDisable
46 MajDevAlarmDisable
47 RocAlarmDisable
48 LoLoAlarmInhibitor
49 LoAlarmInhibitor
50 HiAlarmInhibitor
51 HiHiAlarmInhibitor
String
Position Attribute
52 MinDevAlarmInhibitor
53 MajDevAlarmInhibitor
54 RocAlarmInhibitor
String
Position Attribute
1 Group
2 Comment
3 Logged
4 EventLogged
5 EventLoggingPriority
6 RetentiveValue
7 RetentiveAlarmParameters
8 AlarmValueDeadband
9 AlarmDevDeadband
10 EngUnits
11 InitialValue
12 MinEU
13 MaxEU
14 Deadband
15 LogDeadband
16 LoLoAlarmState
17 LoLoAlarmValue
String
Position Attribute
18 LoLoAlarmPri
19 LoAlarmState
20 LoAlarmValue
21 LoAlarmPri
22 HiAlarmState
23 HiAlarmValue
24 HiAlarmPri
25 HiHiAlarmState
26 HiHiAlarmValue
27 HiHiAlarmPri
28 MinorDevAlarmState
29 MinorDevAlarmValue
30 MinorDevAlarmPri
31 MajorDevAlarmState
32 MajorDevAlarmValue
33 MajorDevAlarmPri
34 DevTarget
35 ROCAlarmState
36 ROCAlarmValue
37 ROCAlarmPri
38 ROCTimeBase
39 MinRaw
40 MaxRaw
41 Conversion
42 AccessName
43 ItemUseTagname
44 ItemName
45 ReadOnly
46 AlarmComment
String
Position Attribute
47 AlarmAckModel
48 LoLoAlarmDisable
49 LoAlarmDisable
50 HiAlarmDisable
51 HiHiAlarmDisable
52 MinDevAlarmDisable
53 MajDevAlarmDisable
54 RocAlarmDisable
55 LoLoAlarmInhibitor
56 LoAlarmInhibitor
57 HiAlarmInhibitor
58 HiHiAlarmInhibitor
59 MinDevAlarmInhibitor
60 MajDevAlarmInhibitor
61 RocAlarmInhibitor
String
Position Attribute
1 Group
2 Comment
3 Logged
4 EventLogged
String
Position Attribute
5 EventLoggingPriority
6 RetentiveValue
7 MaxLength
8 InitialMessage
9 AlarmComment
String
Position Attribute
1 Group
2 Comment
3 Logged
4 EventLogged
5 EventLoggingPriority
6 RetentiveValue
7 MaxLength
8 InitialMessage
9 AccessName
10 ItemUseTagname
11 ItemName
12 ReadOnly
13 AlarmComment
String
Position Attribute
1 Group
2 Comment
String
Position Attribute
1 Group
2 Comment
String
Position Attribute
1 Group
2 Comment
String
Position Attribute
1 Group
2 Comment
3 EventLogging
4 EventLoggingPriority
5 RetentiveValue
String
Position Attribute
1 Group
2 Comment
3 EventLogging
4 EventLoggingPriority
5 RetentiveValue
String
Position Attribute
1 Group
2 Comment
3 EventLogging
4 EventLoggingPriority
5 RetentiveValue
where:
The value of the Comment field for Tagname1 is Hi, and the
value of the Comment field for Tagname2 is a blank
comment.
Microsoft Excel ignores quotation marks that denote a blank
string when it saves the file, resulting in the following:
:Comment="HI"
:MemoryDisc,Comment,Group
Tagname1,,$System
Tagname2,,$System
This sets the default value of the referenced field for all
subsequent data records. Use this feature to set the default
value for fields that should remain unchanged for a number
of records. If a field has a default value defined, the default
value is used if there is no data in the record for the value.
For example, if you set :GROUP=Reactor_Site, then all tags
that have a blank entry for the GROUP column are assigned
to the Reactor_Site Alarm Group. If the tag has, for example,
$System entered for the GROUP, the tag remains assigned to
the Alarm Group $System.
You can reset an individual keyword to its original default
value by omitting the value in the equation. For example,
:GROUP=.
To reset all keywords, use the :RESET command. This
command does not have arguments and affects all entries in
the file that occur after the command.
7 In the Name of CSV Load file box, locate and select the file
you want to import.
8 Click OK.
The next step varies based upon whether DBLoad
imports new or existing tag definitions to the Tagname
Dictionary.
• If you are importing new tag definitions, the new tag
data is loaded into the application’s Tagname
Dictionary. A message appears confirming the data
was successfully loaded and merged.
• If you are importing existing tag definitions, the
import stops if the :mode keyword is set to :mode=ask
and the import file contains duplicate tags. You are
shown options to handle the duplicate tags or you can
cancel the import. For more information about
keyword options, see Setting the Operating Mode for
Dictionary Import Files on page 81.
Importing Windows
Importing windows from an existing InTouch application
into your current application allows you to reduce
development time because you can reuse your previously
created windows, objects, and window scripts.
By default, placeholders are created for the tags associated
with an imported window. After importing, you can convert
the placeholders to local tags or remote tag references. For
more information, see Tag Placeholders for Imported
Windows and Scripts on page 125. If the associated tags
already exist in the target application, during the import you
can select to use these instead.
When you import windows containing SmartSymbols and
select to use existing tags, the InTouch HMI still keeps
placeholders for the recovered symbols, even though the tags
are available in the target application.
When you import a window from an application that contains
SuperTags, only the SuperTag instances actually used in the
window are imported into the new application. The entire
SuperTag template structure is not imported. For example, if
the application has hundreds of SuperTag member tags
defined in it, and only 50 of those are used in the imported
window, only those 50 are imported.
To import a window
1 Close all windows in your current application.
2 On the File menu, click Import. The Import from directory
dialog box appears.
6 Click OK.
Exporting Windows
You can export application windows to:
• Create or maintain a library application of all windows.
• Create remote tag references in another application.
To export a window
1 Close all windows in your current application.
2 On the File menu, click Export Window. The Export to
directory dialog box appears.
Importing Scripts
You can import existing QuickScripts from an InTouch
application into your current application to save development
time.
By default, placeholders are created for the tags associated
with an imported QuickScript. After importing, you can
convert the placeholders to local tags or remote tag
references. For more information, see Tag Placeholders for
Imported Windows and Scripts on page 125. If the associated
tags already exist in the target application, during the
import you can choose to use these instead.
To import a window script, you must import the entire
window.
For an imported ActiveX Event script to function properly in
the target application, the same ActiveX control and the
same event for which the script was originally created must
also be used in the target application and it must be loaded
into memory. If the window containing an ActiveX control is
closed, any scripts associated with it (either ActiveX Event
scripts or QuickScripts) do not run properly.
To import a QuickScript
1 Close all windows in your current application.
2 On the File menu, click Import. The Import from directory
dialog box appears.
5 Select the check box for the QuickScript type(s) that you
want to import and then click Select to select the
individual script(s) to import.
BEGIN
Import a window
or QuickScript
No No
No
END
Chapter 5
Securing InTouch
• ArchestrA-based security
WindowMaker
(Design-Time) No Security
…. …. ... ...
A_User2 pwd8734
... ...
Application Server
• Lock keys
• Hide menus
Note The inactivity timer does not reset for Active-X controls,
OLE Automation controls, and SPC wizards.
Note The inactivity timer does not reset for ActiveX controls, OLE
automation controls, and SPC wizards.
Data Type
Discrete (read only)
See Also
$InactivityWarning
Example(s)
The following example is an “on true” condition script:
If $InactivityTimeout == 1 THEN
Show "Logged Off";
ENDIF
See Also
$InactivityWarning
Note The inactivity timer does not reset for ActiveX controls, OLE
automation controls, and SPC wizards.
Data Type
Discrete (read only)
Example(s)
The following example is an “on true” condition script:
If $InactivityWarning == 1 THEN
Show "You are about to be logged off-window";
ENDIF;
See Also
$InactivityTimeOut
EnableDisableKeys() Function
Enables/disables key filters for the Alt, Escape, and Windows
keys.
Category
View
Syntax
EnableDisableKeys(AltKey, EscKey, WinKey);
Parameters
AltKey
Integer to enable or disable key filters for the Alt key:
1 = enable filter (disable Alt key)
0 = disable filter (enable Alt key)
EscKey
Integer to enable or disable key filters for the Escape key:
1 = enable filter (disable Esc key)
0 = disable filter (enable Esc key)
WinKey
Integer to enable or disable key filters for the Windows key:
1 = enable filter (disable Win key)
0 = disable filter (enable Win key)
Remarks
Disabling the Alt key also disables the Win+L key
combination (for locking the Windows desktop). Win+L is the
shortcut for another combination of keys that involves the
Alt key. Thus, disabling the Alt key also disables this
particular shortcut.
Example(s)
EnableDisableKeys(0,0,0); // enable all three keys
EnableDisableKeys(1,1,1); // disable all three keys
EnableDisableKeys(0,0,1); // enable Alt and Escape
keys, disable Windows key.
Note You can use the $LogicRunning system tag to enable the
operator to start and stop all QuickScripts.
5 In the Title bar area, configure the title bar of the window
running the InTouch application. Do the following:
• In the Title Bar Text box, type a title to be shown in
the WindowViewer title bar.
• Select the Show Application Directory check box to
include the path to the InTouch application's folder in
the title bar.
• Select the Hide Title Bar check box to hide the
window’s title bar.
6 In the Miscellaneous area, do the following:
• Select the Impossible to Close check box to prevent an
operator from closing the WindowViewer window
running the InTouch application. Selecting this
option disables the window’s Close button.
If you want to hide the Close button, clear the Control
Menu check box in the Window area.
• Clear the Allow CTRL-Break to stop scripts check box to
disable the CTRL + BREAK key combination that
enables operators to stop QuickScripts.
After you add a new user name to the security list and
restart WindowMaker or WindowViewer, the default user
name is automatically reset to None with an access level of 0,
which prevents access to the Configure Users command in
both WindowMaker and WindowViewer. However, the
Administrator account and password remain and can still be
used.
After an operator logs on to the application, access to any
protected function is granted upon verification of the
operator's password and access level against the value
specified for the internal security tag linked to the function.
Note The $ConfigureUser tag only works if the security type is set
to InTouch. It does not work for ArchestrA-based security.
AddPermission() Function
Assigns a certain InTouch access level to a given user group
on the local system or on the domain. When a user belonging
to that group logs on to the InTouch HMI after the
AddPermission() function is called, he or she receives the
specified access level.
Category
security
Syntax
DiscreteTag=AddPermission( "Domain", "Group",
AccessLevel);
Arguments
Domain
Name of the domain or local computer in which the group is
located.
Group
Windows user group.
AccessLevel
InTouch access level that you want to associate with the
given group.
Remarks
Valid for operating system security only. When this function
is called, it checks for the presence of the specified group in
the specified domain or workgroup. If successful, TRUE is
returned, and the specified Access Level is associated with
the group for subsequent user logons. In all other cases, (that
is, if an invalid value is specified for any of the arguments)
FALSE is returned.
This function is typically configured to run on application
startup. It does not affect users that are currently logged on.
Only users that log on after AddPermission() is successfully
called receive the access level associated with their group.
Examples
DiscreteTag=AddPermission( "corporate_hq",
"InTouchAdmins", 9000);
DiscreteTag=AddPermission( "johns01", "InTouchUsers",
5000);
See Also
PostLogonDialog(), InvisibleVerifyCredentials(),
IsAssignedRole(), AttemptInvisibleLogon(),
QueryGroupMembership()
ChangePassword() Function
Shows the Change Password dialog box, allowing the logged on
operator to change his/her password.
Category
security
Syntax
[Result=]ChangePassword();
Return Value
Returns one of the following integer values:
0 = Cancel was pressed.
1 = OK was pressed.
Remarks
If the operator uses a touch screen, the operator can use the
alphanumeric keyboard to enter the new password.
Example
The following script can be placed on a button or called from
a condition script or data change script.
Errmsg=ChangePassword();
Example(s)
The following statement is used for the visibility link to make
an object, such as a button, visible based on the logged on
user's access level:
$AccessLevel >= 2000;
{Objects can have a "disable" link associated with
them, with the expression based on $AccessLevel.}
$AccessLevel < 5411;
IF $AccessLevel <=500 THEN
Show "Access Denied"; {popup window denying access}
ELSE
Show "Access Granted"; {popup window granting access}
ENDIF;
See Also
$Operator, $OperatorEntered, $PasswordEntered;
$ConfigureUsers
Note You can also show the Log On dialog box using the
PostLogonDialog() function. For more information, see
PostLogonDialog() Function on page 153.
To log on to an application
1 On the Special menu, point to Security, and then click Log
On. The Log On dialog box appears.
2 In the Name box, type your user name.
3 In the Password box, type your password.
4 Click OK.
• Password
To log on
1 Start the ArchestrA-secured InTouch application. A log
in dialog box appears.
2 Type a valid user name and password. If the system
cannot authenticate you, you are prompted again to log
on.
After the system authenticates your logon credentials, access
to all future operations is granted based on your associated
roles/permissions in the security model.
Note The $ConfigureUser tag only works if the security type is set
to InTouch. It does not work for ArchestrA-based security.
PostLogonDialog() Function
Shows the InTouch Logon dialog box and returns TRUE.
Category
security
Syntax
DiscreteTag=PostLogonDialog();
Examples
DiscreteTag=PostLogonDialog();
See Also
InvisibleVerifyCredentials(), AttemptInvisibleLogon(),
IsAssignedRole(), QueryGroupMembership(),
AddPermission()
LogonCurrentUser() Function
Returns a discrete value. Sets $Operator, $OperatorName,
$OperatorDomain, and $AccessLevel.
Category
security (write only)
Syntax
DiscreteTag = LogonCurrentUser();
Return Value
Returns -1 and no change to the values assigned to
$Operator, $OperatorName, $OperatorDomain, and
$AccessLevel if the logon fails.
Remarks
Use this function only for operating system-based security.
Example
DiscreteTag = LogonCurrentUser();
See Also
PostLogonDialog(), InvisibleVerifyCredentials(),
IsAssignedRole(), AttemptInvisibleLogon(),
QueryGroupMembership(), AddPermission()
Logoff() Function
Logs the user off from an InTouch application.
Category
security (write only)
Syntax
DiscreteTag = LogOff();
Remarks
Logs off the currently logged on user and sets the current
user status to the default none operator.
Example
DiscreteTag = LogOff();
See Also
PostLogonDialog(), InvisibleVerifyCredentials(),
IsAssignedRole(), AttemptInvisibleLogon(),
QueryGroupMembership(), AddPermission()
AttemptInvisibleLogon() Function
The AttemptInvisibleLogon() function can be used in a script
to log on a user to InTouch using the supplied credentials.
The user is not required to enter a password or user ID.
Category
security
Syntax
DiscreteTag=AttemptInvisibleLogon( "UserId",
"Password", "Domain" );
Arguments
UserId
A valid user account name.
Password
Password of the user.
Domain
Name of the local computer, workgroup, or domain to which
the user belongs. This column applies only if the current
security type is operating system-based.
Return Value
Returns TRUE if authentication is successful. Otherwise, it
returns FALSE.
Remarks
An attempt is made to log on to the InTouch HMI using the
supplied credentials.
• If the logon attempt succeeds, then TRUE is returned
and the $OperatorDomain, $OperatorName,
$AccessLevel, and $Operator system tags are updated
accordingly.
Examples
When security is operating system-based:
DiscreteTag=AttemptInvisibleLogon("UserId", "Password",
"Domain" );
When security is either InTouch-based or ArchestrA-based:
DiscreteTag=AttemptInvisibleLogon("UserId", "Password",
"" );
See Also
PostLogonDialog(), InvisibleVerifyCredentials(),
IsAssignedRole(), QueryGroupMembership(),
AddPermission()
Data Type
Message (write only)
See Also
$AccessLevel, $Operator, $PasswordEntered,
$ChangePassword, $ConfigureUsers
Data Type
Message (write only)
See Also
$AccessLevel, $Operator, $OperatorEntered,
$ChangePassword, $ConfigureUsers
InvisibleVerifyCredentials() Function
The InvisibleVerifyCredentials() function can be used in a
synchronous QuickScript to verify the credentials of the
given user without logging the user on to the InTouch HMI.
Category
security
Syntax
AnalogTag=InvisibleVerifyCredentials( "UserId",
"Password", "Domain" );
Arguments
UserId
Windows operating system user account name that is part
of local computer, workgroup, or domain.
Password
Password for the account.
Domain
The Windows domain for the account.
Remarks
If the supplied combination of user, password, and domain
are valid then the corresponding access level associated with
the user is returned as an integer. Otherwise, -1 is returned.
Example
AnalogTag=InvisibleVerifyCredentials( "john",
"Password", "corporate_hq" );
See Also
PostLogonDialog(), AttemptInvisibleLogon(),
IsAssignedRole(), QueryGroupMembership(),
AddPermission()
GetAccountStatus() Function
Returns the number of days until the user’s password
expires.
Category
security
Syntax
Result=GetAccountStatus(Domain, UserID);
Arguments
Domain
Name of the domain or local computer in which the user
account is located.
UserID
Windows user account name that is part of the local
computer, workgroup, or domain.
Return Value
This function also returns the following values:
Result Description
Remarks
Use this script function with operating system-based
security. Do not use this function with the ArchestrA security
mode.
If the GetAccountStatus() function is used with ArchestrA
security, the script attempts to retrieve the account
information directly from the domain controller. This works
as long as the ArchestrA Galaxy Repository is using
operating system security with the same domain.
Example(s)
Status = GetAccountStatus("Corporate_HQ","Operator");
IsAssignedRole() Function
Determines whether the currently logged on user is a
member of the specified user group. Only applies to
ArchestrA security.
Category
security
Syntax
DiscreteTag=IsAssignedRole( "RoleName" );
Arguments
RoleName
The role associated with an Application Server user.
Remarks
Valid for ArchestrA security mode only and applies to the
currently logged on user. If a user is currently logged on and
has the RoleName role assigned in the Galaxy IDE, then
TRUE is returned. Otherwise, FALSE is returned.
Example
DiscreteTag=IsAssignedRole( "Administrators" );
See Also
AttemptInvisibleLogon(), PostLogonDialog(),
InvisibleVerifyCredentials(), QueryGroupMembership(),
AddPermission()
QueryGroupMembership() Function
Determines whether the currently logged on user is a
member of the specified user group. Only applies to operating
system security.
Category
security
Syntax
DiscreteTag=QueryGroupMembership( "Domain", "Group" );
Arguments
Domain
Name of the domain or local computer in which the group is
located
Group
Name of the group.
Remarks
Valid for operating system security mode only and applies to
the currently logged on user. If a user is currently logged on
and if he or she is part of the group located on the domain,
then TRUE is returned. Otherwise, FALSE is returned.
The QueryGroupMembership() function works with
operating system-based security and with ArchestrA security
only when the ArchestrA security is set to operating
system-based security.
Examples
DiscreteTag=QueryGroupMembership( "corporate_hq",
"InTouchAdmins" );
DiscreteTag=QueryGroupMembership( "JohnS01",
"InTouchUsers" );
See Also
PostLogonDialog(), InvisibleVerifyCredentials(),
IsAssignedRole(), AttemptInvisibleLogon(), AddPermission()
Chapter 6
SwitchDisplayLanguage() Function
Switches the display of visible, static texts in a desired
language for which translated strings are provided.
Category
misc
Syntax
SwitchDisplayLanguage(LocaleID);
Parameter
LocaleID
The language in which static text strings are to be shown at
run time.
Example(s)
In this example, German is the language to be shown at run
time.
DIM German as INTEGER;
German=1031
SwitchDisplayLanguage(German);
See Also
$Language system tag
• Button text.
• User messages.
• On/off messages inside input links.
• On/off messages in output links.
• Text on wizards.
You cannot export the dictionary until you close all windows
in WindowMaker. If you make changes to your application
after you export your dictionary files, you must export the
dictionary file again. For more information, see Exporting
Text to an Existing Dictionary File on page 174.
You can only export the text strings for one language at a
time. By default, the InTouch HMI opens the My InTouch
Applications folder. If you choose any other folder, the
InTouch HMI then defaults to that path. Creating a new
folder to export phrases for each language makes it easy to
manage dictionary files. For example, ...\My InTouch
Applications\My German Files\.
The InTouch HMI creates a dictionary file for your
application and a separate dictionary file for each
SmartSymbol within the application. The application
dictionary name has a format of application name_localeID
whereas SmartSymbol dictionary files have a format of
SSD_Name of the Symbol_localeID_GUID.
When you export the dictionary for an application, the file is
an .xml file that you can edit using Microsoft Excel 2003 or
later.
If you click Yes, the existing .xml files are updated with any
new strings and language information added since you
exported last. If the existing dictionary file contains
translations for any phrases and you imported it to the
InTouch HMI previously, those translations are preserved. If
you deleted any phrases from the application since the last
export, they are removed from the dictionary file.
3 Click OK.
The XML file opens in Excel with columns for the:
• Phrases in your application.
• Translated phrases from the translator.
• Translated font name.
• Translated font properties.
• Translated font size.
• Base font properties.
• Base font size.
• Context, phrase ID, language ID and foreign
language ID.
Click Yes to update the existing dictionary files with any new
strings and language information added since you exported
last. If the existing dictionary file contains translations for
any phrases and you imported it to InTouch previously, those
translations are preserved. If you deleted any phrases from
the application since the last export, they are removed from
the dictionary file.
Click Yes to All to update existing dictionary files for all
languages configured in the InTouch HMI.
Click No or No to All to prevent overwriting the existing file or
the existing files for all languages, respectively.
The existing translations for any alarm comments, alarm
fields and tag comments are preserved if they are exported
again.
UNACK_RTN UNACK_RTN
ACK_RTN ACK_RTN
UNACK_ALM UNACK_ALM
ACK_ALM ACK_ALM
SPC SPC
HIHI HIHI
HI HI
LO LO
LOLO LOLO
MINDEV MINDEV
MAJDEV MAJDEV
ROC ROC
DSC DSC
OPR OPR
LGC LGC
DDE DDE
SYST SYST
USER USER
PRO PRO
LOGON_FAILED LOGON_FAILED
DEV DEV
ROC ROC
DSC DSC
EVENT EVENT
VALUE VALUE
• The unique IDs for the alarm fields such as EVENT and
ACK, are predefined and have the same ID across
multiple dictionary files in different nodes. Alarm clients
pick the translation from the first loaded dictionary file
and the translations from other dictionary files are
ignored. Ideally, the alarm fields in all dictionary files
should have the same translation in a language. Multiple
alarm clients (Alarm DB View and Alarm Viewer
controls) use the same translation for the same alarm
state for a given language
Chapter 7
About WindowViewer
WindowViewer provides the run-time environment for
InTouch applications. Based upon your application’s
operational requirements, you can configure how
WindowViewer supports an application. For example,
depending on your application’s security requirements, you
can configure the menus and commands available to
operators from WindowViewer.
Window
Configuration
Properties For More Information, see
5 Restart WindowViewer.
Click Details to change from the list view to the details view.
The details show when the window was created, the
window's type, and the date and time when a window was
last modified.
In the details view, you can select and deselect any unopened
window by clicking on any portion of its row, not just the
check box. The entire row is highlighted when selected.
• To open selected windows click OK.
2 Click the check box next to the name of each window that
you want to open when you transfer to WindowMaker.
3 Click OK to close the dialog box and transfer to
WindowMaker.
InTouchView
InTouchView shows the visual interface of HMI applications
designed specifically for use in an ArchestrA Application
Server environment. InTouchView applications run as a
client with Application Server acting as a server that
provides most HMI functionality.
InTouchView applications offer only some of the standard
functions available from full-featured InTouch applications.
InTouchView applications:
• Cannot connect to I/O sources other than the ArchestrA
Application Server Galaxy.
• Access Names
• Alarm Groups
• Configure...Alarms
• Configure...Historical Logging
• Configure...Distributed Name Manager
• Unavailable Tagname Dictionary options:
• Alarms
• Details & Alarms
• Log Data
• Log Events
• Priority
You run an InTouchView application as you would an
InTouch application. Simply start the application in
WindowViewer.
Important You must remove all Access Names other than Galaxy
before converting an InTouch application to InTouchView. If they
are not removed, a message is shown during the conversion
attempt.
InTouchView Licensing
When an InTouchView application starts, WindowViewer
requests a specific InTouchView license from the License
Manager. If an InTouchView license is not available, License
Manager requests a full-featured InTouch license. If the
InTouch line is successfully read, WindowViewer starts the
application. Otherwise, WindowViewer indicates the
InTouchView license is unavailable and gives a brief
description of the problem. WindowViewer offers options to
quit, retry, or run the InTouchView application in
demonstration mode.
Chapter 8
Setting Up a Multi-Monitor
System
Multi-Monitor Configurations
You can use two basic multi-monitor configurations.
• Single video card
• Multiple video card
Multi-monitor
screen at
1600 x 1200
• Y location = 0
Parameter Description
Chapter 9
To select annotations
1 Click the Lasso icon in the toolbar.
2 While holding down the stylus button, draw an area
around the annotations that you want to select.
You can now cut, copy or delete the selected annotations.
To delete annotations
Do any of the following:
• To delete all annotations on a chart, on the Edit menu,
point to Clear and then click All.
• To delete annotations that you selected using the
lasso, on the Edit menu, point to Clear and then tap
Selection.
AnnotateLayout() Function
Shows the Annotate Layout dialog box, where you can
annotate the current view screen from where this script
function is called. This function is only supported on the
Windows XP Tablet PC Edition operating system.
Category
System
Syntax
AnnotateLayout()
Remarks
When Annotate Layout dialog box appears, the screen image
of WindowViewer is captured. Use the dialog box to:
• Annotate the screen capture using the pen in conjunction
with tool bar and menu item settings.
Appendix A
Example:
Resizable InputLink = 1
Resizable InputLink Width=300
Resizable InputLink Height=50
On Key Down 1
On Key Up with mouse on button 0
On Key Up with mouse off button 0
• MouseMustBeOnObjectForOnKeyUp=1
On Key Down 1
On Key Up with mouse on button 0
On Key Up with mouse off button 1
Use this parameter value to prevent an On Key Up script
from starting.
Index
Symbols A
$AccessLevel system tag 130, 147, 153, Access Name
158 advising only active items 73
$ApplicationChanged system tag 52 restrictions with InTouchView
$ApplicationVersion system tag 53 applications 36
$ChangePassword system tag 143, 148 selecting to convert placeholder
$ConfigureUsers system tag 141, 149, tags 119
153 selecting to convert placeholder tags to
$InactivityTimeout system tag 129, 130, remote references 124
131 Access Names
$InactivityWarning system tag 129, 132 specifying in DBLoad file 84
$Language system tag 171, 172 AddPermission() function 139, 146
$LogicRunning system tag 136, 172 AlarmGroup keyword 86–88
$Operator system tag 61, 153, 158, 164 AnnotateLayout() function 214, 217
$OperatorDomain system tag 163 Application Manager
$OperatorDomainEntered system creating an InTouch application 19–20
tag 157 customizing the window 22
$OperatorEntered system tag 152, 156 description 14
$OperatorName system tag 163 finding applications 23
$PasswordEntered system tag 152, 157 modifying an application 21
$VerifiedUserName system tag 164 opening an application with
WindowMaker 20
Numerics opening an application with
16PenTrendDrawMode parameter 225 WindowViewer 20
starting 16–17
starting the ArchestrA IDE 18