ITApp Management
ITApp Management
InTouch® HMI
Application
Management and
Extension Guide
10/10/13
All rights reserved. No part of this documentation shall be reproduced, stored in a retrieval system, or
transmitted by any means, electronic, mechanical, photocopying, recording, or otherwise, without the
prior written permission of Invensys Systems, Inc. No copyright or patent liability is assumed with respect
to the use of the information contained herein. Although every precaution has been taken in the
preparation of this documentation, the publisher and the author assume no responsibility for errors or
omissions. Neither is any liability assumed for damages resulting from the use of the information
contained herein.
The information in this documentation is subject to change without notice and does not represent a
commitment on the part of Invensys Systems, Inc. The software described in this documentation is
furnished under a license or nondisclosure agreement. This software may be used or copied only in
accordance with the terms of these agreements.
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, Factelligence,
FactoryFocus, FactoryOffice, FactorySuite, FactorySuite A2, InBatch, InControl, IndustrialRAD,
IndustrialSQL Server, InTouch, MaintenanceSuite, MuniSuite, QI Analyst, SCADAlarm, SCADASuite,
SuiteLink, SuiteVoyager, WindowMaker, WindowViewer, Wonderware, Wonderware Factelligence, and
Wonderware Logger are trademarks of Invensys plc, its subsidiaries and affiliates. All other brands may
be trademarks of their respective owners.
3
Contents
Welcome .................................................. 11
Documentation Conventions ......................................................... 11
Technical Support .......................................................................... 12
Index..................................................... 241
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.
• Details of how to recreate the problem.
• The exact wording of the error messages you saw.
• Any relevant output listing from the Log Viewer or any other
diagnostic applications.
• Details of what you did to try to solve the problem(s) and your
results.
• If known, the Wonderware Technical Support case number
assigned to your problem, if this is an ongoing problem.
Chapter 1
Managing InTouch
Applications
Application
Start Start
Manager
Manage Start
Run Run
WindowViewer
Stand-alone IDE-Managed
Stand-alone IDE-Managed
InTouch
Stand-alone InTouch
Managed
InTouch InTouch
Applications
InTouch Applications
InTouch
Applications Applications
Applications Applications
2 Configure the application folder. If the folder you specify does not
exist, you are prompted to create it.
• Click Browse to specify a folder other than the default.
• Select the Set As Default Directory check box to make the
specified folder the default.
3 Click Next. The next wizard page appears.
To rename an application
1 Select the application in the list.
2 On the File menu, click Rename.
To delete an application
1 Select an application in the list.
2 On the File menu, click Delete.
3 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.
You can post published applications to a web server where they can be
downloaded and installed. The following package information is shown
for posted applications:
• Package description
• Publisher name
• Published file name (executable)
• Application resolution
For example:
Description Dairy Processing Application
Chapter 2
Distributing Applications
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.
Development Node View Node 1 View Node 2
Network
You can modify and test the application on the development node
without affecting the running process. However, you must distribute
the modified application to the View nodes. You must shut down each
View node locally, copy the new application to it, and then restart.
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
Using a local I/O Server significantly increases the load on the process
connection network. For example, three nodes triples the traffic
created by one node, as each node's requests must be separately
processed.
For more information about defining an Access Name for a local I/O
Server, see Data Access with I/O in the InTouch® HMI Data
Management Guide
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.
• Extensive diagnostics of the data throughput, the server loading,
computer resource consumption, and network transport are made
accessible through the Microsoft Windows operating system
performance monitor.
• Consistent high data volumes can be maintained between
applications regardless if the applications are on a single node or
distributed over a large number of nodes.
SuiteLink is not a replacement for DDE, FastDDE, or NetDDE. Each
connection between a client and a server depends on your network
requirements.
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
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;
Where X is minutes and can be set to any interval between 5 and 120.
Node 1 Node 2
Node3
Log/Retrieve Retrieve
Retrieve Retrieve
Log/Retrieve
Remote
Local
History File
History File
(HistPrv1)
After you have distributed your application, you can run the View
nodes and retrieve both local tags and tags from a remote history
provider. While the application runs on all the View nodes, only the
logging node logs to the historical log file; other nodes can only read
from it.
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.
4 To configure an InTouch history provider, do the following:
a Click InTouch Provider.
b In the UNC box, type the UNC path to the InTouch application
directory and then click Add.
The UNC path format is:
\\node_name\volume_name\directory\
Where a 1 specifies the trend pen that plots the specified remote
history provider tag.
The run-time Historical Trend Setup dialog box and .Pen dotfield are
not supported for remote history providers.
2 Select the Enable Historical Logging check box to turn on global tag
logging.
3 Select Store Log Files in Specific Directory, and then in the input
box, type the path of the location where the log files are stored.
You must type a valid Universal Naming Convention (UNC) path.
For example, \\Node\Share\Path
If you are using NAD, make sure the path points to a folder other
than the application folder.
4 In the Name of Logging Node box, type the name of the node that
will be logging to the history log file.
This setting only allows the node named here to log to the file.
5 Click OK.
ViewNADCopyApplicationOnStartup=1
ViewNADOnApplicationChanged=3 ( or 4)
ViewNADThreadPriority=2
5 In the Change Mode area, select the option that determines the
action WindowViewer takes when the master application changes.
• Click Ignore changes to have the WindowViewer node ignore
any changes made on the development node.
• Click Restart Window Viewer to have the WindowViewer node
copy over the updated master application (if configured to do
so) and then restart itself.
• Click Prompt user to Restart WindowViewer to show the
operator a message that the application has changed. The
operator can either restart WindowViewer with the application
updates or continue using the current application.
• Click Load Changes into WindowViewer to dynamically load in
WindowViewer the changes made in the development node.
This may affect performance for large updates.
Category
application
Usage
$ApplicationChanged
Remarks
This system tag changes to 1 every time the update signal is generated
by selecting Notify Clients on the WindowMaker Special menu.
$ApplicationChanged is reset to 0 when the application is updated.
This tag can be used to generate a message that informs the operator
that the master application has changed.
You can also use the $ApplicationChanged system tag in a data
change script to build a node update notification script. This script can
launch your own dialog boxes or stop running processes. Then, you
could use the ReloadWindowViewer() function to start the update
process.
Data Type
Discrete (read only)
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
Category
application
Usage
$ApplicationVersion
Remarks
The value associated with the $ApplicationVersion system tag is set to
the current version of the InTouch application. The version changes
with every change to the application that can be saved or undone. This
tag can be used to generate a message that informs the operator that
the master application has changed.
Data Type
Real (read only)
Example
If used in an analog display link, this system tag shows the current
version of the application that is running within WindowViewer.
$ApplicationVersion
See Also
$ApplicationChanged
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();
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.
See Also
$ApplicationChanged
Note: WindowViewer recursively deletes all files and sub folders in the
destination application folder except those required for run-time
language switching. This folder should be considered a temporary
folder. No other files should be placed in it.
The NAD client starts an update by creating a local list of files and
sub-directories that appear in the client application directory. As it
looks for updates in the list of master files, the NAD client removes the
corresponding client file for each master file from the local list. The
remaining entries in the local list are obsolete files and sub-directories
that should be deleted from the application.
3 Select the Lock Window Size check box. By default, the check box
is not selected.
4 Click OK.
3 Select the Lock Window Size check box. By default, the check box
is not selected.
4 Click OK.
Corporate Network
InTouch
Terminal Server
Supervisory Network
Note: Running with the same logon account on multiple sessions can
cause corruption and other unexpected results.
The alarm query syntax for console alarms includes a colon (:) after the
node name; for example:
\\ServerNodename:\InTouch!$system
DDE from MS Office (for Yes Excel and the InTouch HMI must be
example, Hot-link running in the same session.
configured in Excel)
Printing Alarms No --
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
Stopping a Service
You can manually stop the WindowViewer service using the Control
Panel.
If you want to change the master account, use the ArchestrA Change
Network Account Utility.
2 Change the user account. For more information, see the Change
Network Account documentation.
3 Click OK.
Chapter 4
InTouch Application
DBDump
Tagname
Dictionary
CSV File
PumpInP PumpRPM
Inlet
RPM
Pressure
PumpOutP PumpState
Outlet On/Off
Pressure State DBLoad
You use the DBDump utility within the Application Manager to export
the contents of the Tagname Dictionary to a Comma Separated Value
(CSV) file. You can view and edit the exported file with Microsoft
Notepad or Microsoft Excel. After making edits, you then import the
tag definitions to an InTouch application with the DBLoad utility,
which is also an Application Manager utility.
You must convert an application to the current version of the InTouch
HMI software before you can export the tag definitions.
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.
The file consists of keywords, their attributes, and data from the
Tagname Dictionary arranged in column order beneath keyword
attributes.
Notice the :MemoryDisc keyword in the example of the Excel
spreadsheet. This keyword identifies memory discrete tags that were
exported from a Tagname Dictionary. On the same spreadsheet row,
the attributes of a memory discrete tag appear in separate spreadsheet
columns. For example, the Logged attribute column shows whether a
memory discrete tag’s data is logged or not.
Immediately beneath the keyword and attributes row are the exported
tags and their associated properties. In the example of the Excel
spreadsheet, OutputValve is a memory discrete tag whose data is not
logged.
You can view or edit the export file created by DBDump with any
program that supports the .csv file format. Typically, Excel is used
because its columnar spreadsheet format makes it easy to organize tag
data. But, you can also use Microsoft Notepad if you prefer to view or
edit the file’s contents in its native comma-delimited string format.
Keyword Description
Keyword Description
After creating a template, you then manually add tag data beneath the
keyword that identifies the type of tag. You insert the properties of
your tags in the corresponding attribute columns associated with the
tag type keywords.
:MODE=UPDATE
:MODE=ASK
:MODE=IGNORE
:MODE=TERMINATE
:MODE=TEST
: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.
:Group=Group1
:IODisc,Group,DConversion
Tagname1,Group2,
Tagname2,,
Tagname3,,Reverse
:Group=
Tagname4,,
The tag types must be compatible if the type is being changed and the
tag is in use. For example, an existing historical trend tag cannot be
changed to an I/O Integer if the tag is in use by the application. Also, a
tag cannot be changed to ReadOnly=yes if the tag is being used on an
input link in the application. Because of these restrictions, update the
use counts for the target application before running the DBLoad
utility.
: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.
The following table shows the list of attributes associated with the
:IOAccess keyword. The table lists the attributes in the order they are
specified when using a template import file created with the DBDump
utility.
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
String Default
Position Attributes Acceptable Values Values
Beneath the tag type keyword line, individual rows specify the tags of
that type with a set of attribute values. In the following example, the
HDWStatus tag belongs to the I/O Discrete tag type in the import file.
"HDWStatus","$System","",No,No,0,No,Off,"","",,1,Direct,"Histda
taViewstr",No,"Status",No,"",0,0,"",""
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
The table shows the order that :MemoryDisc keyword attributes are
specified when DBDump is used to create the import file. See "Tag
Keyword Attributes" on page 88 for the data associated with attributes
and their default values.
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
14 DSCAlarmDisable
15 DSCAlarmInhibitor
16 SymbolicName
The table shows the order that :IODisc keyword attributes are
specified when DBDump is used to create the import file. See "Tag
Keyword Attributes" on page 88 for the data associated with these
attributes and their default values.
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
19 DSCAlarmDisable
20 DSCAlarmInhibitor
21 SymbolicName
The table shows the order that :MemoryInt keyword attributes are
specified when the DBDump utility is used to create the import file.
See "Tag Keyword Attributes" on page 88 for the data associated with
these attributes and their default values.
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
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
52 MinDevAlarmInhibitor
53 MajDevAlarmInhibitor
54 RocAlarmInhibitor
55 SymbolicName
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
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
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
62 SymbolicName
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
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
52 MinDevAlarmInhibitor
53 MajDevAlarmInhibitor
54 RocAlarmInhibitor
55 SymbolicName
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
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
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
62 SymbolicName
1 Group
2 Comment
3 Logged
4 EventLogged
5 EventLoggingPriority
6 RetentiveValue
7 MaxLength
8 InitialMessage
9 AlarmComment
10 SymbolicName
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
14 SymbolicName
Note: InTouch Group Var tags are obsolete. The :GroupVar keyword is
included to support legacy applications only.
The table shows the order that :GroupVar keyword attributes are
specified when DBDump is used to create the import file. See "Tag
Keyword Attributes" on page 88 for the data associated with these
attributes and their default values.
1 Group
2 Comment
3 SymbolicName
1 Group
2 Comment
3 SymbolicName
1 Group
2 Comment
1 Group
2 Comment
3 EventLogging
4 EventLoggingPriority
5 RetentiveValue
6 SymbolicName
1 Group
2 Comment
3 EventLogging
4 EventLoggingPriority
5 RetentiveValue
6 SymbolicName
1 Group
2 Comment
3 EventLogging
4 EventLoggingPriority
5 RetentiveValue
6 SymbolicName
:MemoryDisc,Comment,Group
Tagname1,,$System
Tagname2,"",$System
where:
The value of the Comment field for Tagname1 is Hi, and the value of
the Comment field for Tagname2 is a blank comment.
:MemoryDisc,Comment,Group
Tagname1,,$System
Tagname2,,$System
To ensure that a blank string is used with Excel, type a space in the
cell as the attribute value.
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.
ParentInstance\ChildMember\Submember
ParentInstance\ChildMember\
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 79.
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.
You must convert an application to the current version of the InTouch
HMI software before you can import windows.
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 123. 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.
5 Select the Windows check box and then click Select to select the
individual windows to import.
6 Select the Use Existing Tags (Conserve Placeholders) check box if
the tags associated with the imported windows already exist in
your application and you want to use them instead of placeholders.
7 Click Import.
8 Convert the placeholder tags to either local tags or remote tag
references. For more information, see "Converting Placeholder
Tags for an Imported Window" on page 117.
9 If an imported window contains one or more wizards, double-click
on each wizard to open its properties panel. If an imported window
contains one or more SmartSymbols, edit each SmartSymbol and
create new instances.
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.
You must convert an application to the current version of the InTouch
HMI software before you can export windows.
When you export a window, all objects and animation links associated
with that window are exported. The tags associated with the objects in
the window are converted to placeholder tags to prevent existing tags
in the destination application from being overwritten. For more
information on converting placeholder tags, see "Converting
Placeholder Tags for an Imported Window" on page 117.
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.
You must convert an application to the current version of the InTouch
HMI software before you can import scripts.
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 123. 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.
3 Select the folder for the application that contains the scripts to
import.
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.
Note: To import a window script, you must import the entire window.
For more information, see "Importing Windows" on page 115.
The following flowchart describes how tags are handled for imported
windows and QuickScripts.
BEGIN
Import a window
or QuickScript
No No
No
END
Chapter 5
Securing InTouch
... ...
Application Server
Note: The inactivity timer does not reset for Active-X controls, and
OLE Automation controls.
5 To log off the user and show the window named "Logged Off" after
the inactivity timeout elapses, create a condition script with
"$InactivityTimeout" as the condition and the following script
body:
LogOff();
Show "Logged Off";
Category
security
Usage
$InactivityTimeout
Remarks
Set to 1 when the inactivity timer elapses. For more information on
setting the log off time, see "Configuring an Inactivity Time-Out" on
page 126.
Note: The inactivity timer does not reset for ActiveX controls, OLE and
automation controls.
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
Category
security
Usage
$InactivityWarning
Remarks
Set to 1 when the inactivity warning time elapses. The inactivity timer
is reset by mouse clicks or keyboard activity only. For more
information on setting the log off warning, see "Configuring an
Inactivity Time-Out" on page 126.
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 "Logoff Pending";
ENDIF;
See Also
$InactivityTimeOut
4 Click OK.
5 Write a script that runs when WindowViewer starts running the
InTouch application.
The script should include statements to dynamically lock or unlock
key based on the access level of the person who logged on to
WindowViewer.
Include the EnableDisableKeys() function within the script to
enable/disable the ALT, ESC, and WIN keys. The
EnableDisableKeys() function enables or disables system keys
based on the discrete values of its arguments:
EnableDisableKeys(AltKey,EscKey,WinKey);
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 the shortcut for locking the Windows desktop.
Disabling the Esc key disables it for all actions.
Example(s)
EnableDisableKeys(0,0,0); // enable all three keys
Note: You can use the $LogicRunning system tag to enable the
operator to start and stop all QuickScripts.
• Select the Debug check box if you are testing your application.
Otherwise, clear the Debug check box to hide the Debug menu
during run time.
• Clear the Special menu items to prevent operators from
stopping ongoing InTouch functions like logging and I/O
connections.
• Clear the Security check box to prevent operators from
changing security related options.
4 In the Window area, select the window controls that you want to
make available to an operator from WindowViewer. These options
affect the window that is running the InTouch application. Do the
following:
• Clear the Control Menu check box to hide the controls that
close, minimize, maximize, and resize the window.
• Clear the Minimize Box check box to prevent an operator from
minimizing the window.
• Clear the Maximize Box check box to prevent an operator from
maximizing the window.
• Clear the Size Controls check box to prevent an operator from
resizing the window.
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.
• Select the Hide Cursor check box to hide the mouse pointer
during run time. This is useful if you are designing the
application for a touch-screen.
• Select the Always Maximize check box to keep the window
running the InTouch application fully maximized on the
operator’s screen.
7 Click OK.
8 Restart WindowViewer to apply your changes.
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.
3 On the Special menu, point to Security, and then click Log On.
The Login dialog box appears.
Note: After you log on as a smart card user, you must keep the card in
the smart card reader. If you remove it, the system logs you off.
Important: For Galaxies that have security enabled and are migrated
to Application Server version 3.5, the “Can Modify Operate Attributes”
operational permission setting will be copied to the “Can Verify Writes”
attribute. Starting with Application Server 3.5, Galaxies have the “Can
Verify Writes” operational permission setting disabled by default.
Note: The reason description and the predefined Comment list and
box are shown in the Secured Write or Verified Write dialog box only
in InTouch WindowViewer and not in Tag Viewer.
The None and Administrator names are reserved and only the password
of the Administrator can be changed (the default is wonderware). After
you configure user names for your application, change the
Administrator password. The Administrator default access level
(9999) is the highest and allows access to all InTouch functions
including the Configure Users command.
You can also link a User Input - Discrete button to the
$ConfigureUsers tag to allow an authorized operator with an access
level of equal to or greater than 9000 to access the Configure Users
dialog box to edit the security user name list. When the operator clicks
the button, the value of the $ConfigureUsers tag is set to 1 and the
Configure Users dialog box appears. When the operator closes the
dialog box, the system resets the value to 0. This is a system discrete
tag intended for write operation only.
Note: The $ConfigureUsers tag only works if the security type is set to
InTouch. It does not work for ArchestrA-based and operating system
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 log ons.
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);
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();
Category
security
Usage
$AccessLevel
Remarks
The value for this tag is determined by the access level assigned to the
currently logged-in user's security profile within the InTouch HMI.
This profile can be accessed using the Configure Users menu in
WindowViewer.
The actual numeric value of $AccessLevel has no meaning to
WindowViewer, except that a value of 9000 or greater indicates
administrative privileges and enables the Security menu within
WindowViewer. Use the $AccessLevel system tag to further customize
security within the system.
Data Type
Integer (read only)
Valid Values
0 through 9999
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;
ELSE
ENDIF;
See Also
$Operator, $OperatorEntered, $PasswordEntered; $ConfigureUsers
Category
security
Usage
$ChangePassword
Remarks
Set this value to 1 to show the Change Password dialog box. The value
of the $ChangePassword system tag resets to 0 when the dialog box
closes. If you set this system tag to a value other than 1, the results are
undefined.
Data Type
Discrete (write only)
Valid Values
1
Example(s)
You can create a discrete push button that opens the Change
Password dialog box. Assign a single discrete push button link, with
the Set option selected, to the push button. When the button is
pressed, the $ChangePassword system tag is set to 1, and the Change
Password dialog box opens.
See Also
$AccessLevel, $OperatorEntered, $PasswordEntered, $Operator,
$ConfigureUsers
Category
security
Usage
$ConfigureUsers
Remarks
This function only works with InTouch security.
Set the value to 1 to open Configure Users dialog box.
The value of this system tag resets to 0 when the dialog box closes. If
you set this system tag to a value other than 1, the results are
undefined.
The user must have an $AccessLevel of >9000 to show this dialog box.
Data Type
Discrete (write only)
Valid Values
1
Example(s)
You can create a discrete push button that opens the Configure Users
dialog box. Assign a single discrete push button link, with the Set
option selected, to the push button. When the button is pressed, the
$ConfigureUsers system tag is set to 1, and the Configure Users
dialog box opens.
See Also
$Operator, $OperatorEntered, $ChangePassword, $PasswordEntered,
$AccessLevel
Note: You can also show the Log On dialog box using the
PostLogonDialog() function. For more information, see
"PostLogonDialog() Function" on page 158.
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.
If the operator has never logged on successfully before and the domain
is unavailable, the logon attempt fails. The InTouch HMI logs a system
event to the error log.
If the password is expired, an error message is shown. After the
operator clicks OK, the Change Expired Password dialog box appears,
so that the operator can change the password and attempt to log on
again with the new 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 $ConfigureUsers 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
Logs on to InTouch with a user account that is currently logged on to
the Windows operating system.
• InTouch configured with OS security: the user is logged on to
WindowViewer.
• InTouch configured with ArchestrA security: the user must be a
member of ArchestrA OS user-based or OS group-based security.
• InTouch configured with ArchestrA OS user-based or OS
group-based security and the user account is configured with
smart card credentials: user is logged on using the smart card
credentials. The user is logged off if the smart card is removed
from the reader.
Category
security
Syntax
IntegerResult = LogonCurrentUser();
Return Value
Returns -1 and no change to the values assigned to $Operator,
$OperatorName, $OperatorDomain, and $AccessLevel if the logon
fails.
Remarks
This function is available only in InTouch scripting, not in ArchestrA
client scripting.
Example
IntegerResult = 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 argument 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.
• If the log on attempt fails, then FALSE is returned, and the
currently logged on user (if any) continues to be the current user.
The Domain argument is only valid for operating system-based
security. If ArchestrA security mode is in use and if ArchestrA security
is in turn using operating system-based security, the UserId argument
should contain the fully qualified user name with domain name or
computer name.
Examples
When security is operating system-based:
DiscreteTag=AttemptInvisibleLogon("UserId", "Password",
"Domain" );
See Also
PostLogonDialog(), InvisibleVerifyCredentials(), IsAssignedRole(),
QueryGroupMembership(), AddPermission()
Category
security
Usage
$OperatorEntered
Remarks
You can use this tagname to create a custom log-on window. You can
link touch-sensitive input objects and/or QuickScripts to this tag to set
the user name for the logon.
Data Type
Message (write only)
See Also
$AccessLevel, $Operator, $PasswordEntered, $ChangePassword,
$ConfigureUsers
Category
security
Usage
$PasswordEntered
Remarks
The $PasswordEntered system tag always reads as an empty string.
Display links tied to this system tag are always blank. Because the tag
always returns an empty string, data change scripts never trigger off
of this tag. You can use this tagname to create a custom log-on
window. You can link touch-sensitive input objects and/or scripts to
this tag to set the password for the user.
Data Type
Message (write only)
See Also
$AccessLevel, $Operator, $OperatorEntered, $ChangePassword,
$ConfigureUsers
Category
Security
Remarks
Whenever the $PasswordEntered tag changes, a log on is attempted
without showing a dialog box. The log on attempt uses the $*Entered
tags as input user name and the string value of
$OperatorDomainEntered as the domain name (used only if the
current mode is operating system-based security). If the mode is not
operating system-based, this tag is ignored.
Data Type
String
Examples
$OperatorEntered == "john";
$OperatorDomainEntered == "Corporate_HQ";
$PasswordEntered == "password";
See Also
$Operator
ENDIF;
You can also control an object's touch functionality based upon the
value of an internal security tag by using the Disable animation link.
For example:
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.
This function does not change the currently logged on user. The
Domain argument is only valid for operating system-based security. If
ArchestrA security is in use and if ArchestrA security is in turn using
operating system-based security, the UserId argument should contain
the fully qualified user name with domain name or computer name.
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
-4 Account disabled
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 role. 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" );
See Also
PostLogonDialog(), InvisibleVerifyCredentials(), IsAssignedRole(),
AttemptInvisibleLogon(), AddPermission()
Category
Security
Data Type
String (read-only)
Examples
IF $OperatorName <> "" THEN
{Configure some defaults}
ENDIF;
See Also
$Operator
Category
Security
Data Type
String
Examples
IF $OperatorDomain == "PRODUCTION" THEN
{Allow change to setpoint}
ELSE
{Change denied}
ENDIF;
See Also
$Operator
Category
Security
Data Type
String
Category
security
Usage
$VerifiedUserName
Remarks
When the $VerifiedUserName system tag changes (when the
InvisibleVerifyCredentials() function is called), an event is generated.
Data Type
Message (read only)
Valid Values
A user's full name.
Example(s)
Tag = InvisibleVerifyCredentials( "john","password",
"Plant_Floor");{ If the call is successful, the
$VerifiedUserName is set to "John Smith" and an Operator Event
is generated. If the above call is not successful,
$VerifiedUserName is set to "".}
See Also
InvisibleVerifyCredentials(); $OperatorName, $Operator
$ConfigureUsers Yes No No
AddPermission() No Yes No
ChangePassword() Yes No No
IsAssignedRole() No No Yes
Chapter 6
3 In the list of languages, select the target language, and then click
Modify Font. A standard Windows Font dialog box appears.
5 In the Touch Pushbuttons area, click Action. The Touch -> Action
Script dialog box appears.
SwitchDisplayLanguage() Function
Switches the display of visible, static texts and alarm fields in a
desired language for which translated strings are provided.
Category
misc
Syntax
SwitchDisplayLanguage(LocaleID);
Parameter
LocaleID
The language in which static text strings and alarm fields are to be
shown at run time.
Example(s)
In this example, German is the language to be shown at run time.
SwitchDisplayLanguage(1031);
See Also
$Language system tag
Category
system
Data Type
Integer (read / write)
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.
Caution: Before exporting alarm and tag comments, back up any files
in your target directory in case of possible data corruption or errors.
3 In the Path box, type the folder to which you want to export the
dictionary. Click Browse to select an existing folder or create a
new folder.
4 In the Two characters representing Unique application box, type
the two characters. The ID can only contain alphanumeric
characters and it is case-sensitive.
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.
Enter the translation for the translation strings. Do not change any of
the other information.
You can override some of the Alarm State, Alarm Type, and Alarm
Class values. The maximum allowed length for these values is 50
characters.
The following Alarm State values can be overridden for InTouch
generated alarms:
Default string to be
Value to override shown
UNACK_RTN UNACK_RTN
ACK_RTN ACK_RTN
UNACK_ALM UNACK_ALM
ACK_ALM ACK_ALM
Default string to be
Value to override shown
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
Default string to be
Value to override shown
DEV DEV
ROC ROC
DSC DSC
EVENT EVENT
VALUE VALUE
3 In the Path box, type the path to the dictionary file to import or
click Browse to browse and select the file.
4 Click Import. If there is no translation done in the dictionary file, a
dialog box appears saying that there are no translated dictionary
files to import.
5 Click OK. If the import is successful, the Import Successful dialog
box appears.
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.
12 In the Keyboard area, select the type of keyboard you want to use,
if any.
For more information about setting keyboard options in
WindowViewer, see Animating Objects in the InTouch® HMI
Visualization Guide.
13 Click OK.
4 Restart WindowViewer.
32-bit 1519 MB
64-bit 2048 MB
4 Do the following:
• In the Size box, enter the size of the wwHeap memory. You can
enter any value between 1 MB and 2048 MB.
• In the Start Location box, enter the start address.
5 To restore the default values, click Restore Default.
6 Click OK.
• Make sure the CPU check box is selected for each processor you
want WindowViewer to be able to run on.
• Click Limit to 0 to only allow WindowViewer to run on
processor 0. When you click this button, the CPU 0 check box is
automatically selected.
You can clear a selected processor at any time and select a new
processor from the list. You can also select multiple processors at a
time. If you clear a processor check box, the WindowViewer
instance continues to run on that processor.
6 Click OK. WindowViewer starts on the next CPU based on the
other View sessions.
The names of all the windows that are applicable for the selected
command appear in the list. For example, the Windows to Show
dialog box appears after clicking on the Open Window command.
Click Details to change from the list view to the details view. The
details show 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.
• To cancel your selections and close the dialog box, click Cancel.
• To return the dialog box to list view, click List.
• To select all listed windows, click Select All.
• To clear all selected windows, click Clear All.
• To sort the list in ascending or descending order, click the column
header.
2 Click the check box next to the name of each window that you want
to open.
3 Click OK to close the dialog box and open windows you selected.
2 Click the check box next to the name of one or more windows that
you want to close.
3 Click OK to close the windows you selected.
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.
3 Follow the steps of the Create New Application wizard. The wizard
includes a dialog box with options to enter the application name,
provide a description, and specify it as an InTouchView
application.
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
Node running
InTouch
application
Video
Card
Multi-Monitor Configurations
You can use two basic multi-monitor configurations.
• Single video card
• Multiple video card
Each configuration has unique hardware, software, and configuration
requirements. Also, each configuration supports a different set of
multi-monitor features.
Node running
InTouch
application
800 X 600 800 X 600
Multi-monitor
screen at
1600 x 1200
In this figure, the resolution setting is for four monitors arranged side
by side in a single row. The resolution for each monitor is 1024 x 768.
Added together, the composite screen resolution is 4096 x 768. You
only need to configure a single monitor’s resolution, color depth, and
refresh rate. The resolution setting applies to all monitors connected to
the single video card.
Node running
InTouch Video
application Cards
Parameter Description
If the .ini setting is not configured, the InTouch HMI converts and
scale all of the graphics and windows in the application to the new
resolution. Doing so stretches and enlarge all windows and graphic
displays, thus creating some unwanted results.
MultiMonitors = WWMultiMonitorNode();
{After executing this function Result = 4}
Chapter 9
The Annotate Layout dialog box contains a toolbar and menu options.
The dialog box shows the screen capture in its client area. You can
annotate the image using various drawing tools, and save, print, or
send the screen capture in an e-mail message.
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 window, 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.
2 Enter the host name of the SMTP e-mail server to use for sending
e-mail. If you are unsure, ask your administrator for assistance.
Click OK.
3 On the File menu, click E-Mail. The E-mail dialog box appears.
4 Enter sender and recipient addresses and write a message. An
image file of the annotated window is automatically added as an
attachment.
5 Click Send to send the e-mail message.
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.
• Save the image and the annotation as a .gif or .jpeg file.
• Print the image and the annotation (if a printer is configured).
• Send the image and the annotation as an attachment of an e-mail
message (if SMTP is configured).
Appendix A
Customizing Applications
Settings from the
INTOUCH.ini File
The first time you run an InTouch application, the INTOUCH.ini file
is created in the application folder. When the INTOUCH.ini file is
created, values are assigned to a set of parameters that determine the
operating characteristics of an individual InTouch application.
As you continue configuring your application from WindowMaker or
WindowViewer, new INTOUCH.ini parameters are created or existing
parameters are modified. For example, when you configure logging
from the WindowMaker Historical Logging Properties dialog box,
logging parameters are added to the INTOUCH.ini file.
Other configuration parameters must be manually added to the
INTOUCH.ini file.
After you customize your application, you can copy the INTOUCH.ini
file to a different application's folder. This way, you can create
consistent operating characteristics for your applications without
having to repeat all customization steps.
In this case, the keypad does not resize based on screen resolution and
the numeric keypad size remains fixed.
Example:
Resizable InputLink = 1
Also, you can edit the INTOUCH.ini file to manually modify the values
assigned to these parameters.
Index
O S
objects ScaleForResolution parameter 225, 237
blink speed 196 scripts
objects, blink speed 196 adding user permissions 151
oldrightmousebehavior parameter 236 change user password 152
opening/closing windows 209 determine user group membership 166
log on a user to InTouch automatically 160
P managing user accounts 151–155
parameters retrieving information about the current
16PenTrendDrawMode 238 logged on user 168
CommentRetentive 237 setting loop timeout limit 236
ForceLogCurrentValue 235 show the InTouch Logon dialog box 158
ForceLogging 235 stopping in run time 133, 134
LoopTimeout 236 verifying user credentials 164
MultiScreen 224 security
MultiScreenHeight 224 adding user permissions with a script 151
MultiScreenWidth 224 authentication 135
NoKeyboardResize 238 authorization 135
oldrightmousebehavior 236 change user password with a script 152
PrintScreenWait 237 changing a password at run time 149
PrintWindow 237 creating a custom logon window 158
Resizable InputLink 239 determine user group membership with a
ScaleForResolution 225, 237 script 166
PostLogonDialog() function 156, 158, 171 disable animation link 164
PrintScreenWait parameter 237 hiding menu items at run time 132–134
PrintWindow parameter 237 inactivity time-out feature 126
processors 205 InTouch-based authentication 135
locking system keys 129–131
Q log on a user to InTouch automatically with
a script 160
QueryGroupMembership() function 167, 171
logging a user on or off with ArchestrA-
based security 157
R logging user on or off with InTouch-based
RDP 57 security 156
ReloadWindowViewer() function 51 overview 125
Remote Desktop Protocol 57 restricting access to InTouch
remote history provider functionality 163
creating list 42–43 retrieving information about the current
description 42 logged on user with a script 168
RESET command 112 setting InTouch security authentication and
Resizable InputLink parameter 239 authorization 147–149
RestartWindowViewer() function 51 setting up ArchestrA-based 151
run time setting up operating system-based
customizing 193 authorization 150–151
Fast Switch 195 show InTouch Logon dialog box with a
script 158
run time, customizing for InTouchView 193
using ArchestrA-based authentication 137
using operating system-based
authentication 136
verifying user credentials with a script 164 creating DBLoad input file 77
server-based architecture 33 exporting contents with DBDump 74
services formatting an input file 76
configuring a user account 68–69 importing tags with DBLoad 114
configuring WindowViewer to start as a tags
service 67 $InactivityTimeout system tag 126
description 65 DBLoad keywords 87
InTouch component registry keys 71 exporting contents of Tagname
manually starting 67 Dictionary 74
starting WindowViewer 66 importing into Tagname Dictionary with
stopping using a command 68 DBLoad 114
stopping using the Control Panel 68 keyword attributes 88–94
troubleshooting 69 logging remote referenced 235
troubleshooting user account problems 70 SuperTag instances 113
viewing error messages 70 technical support, contacting 12
SuiteLink,description 37 Terminal Services
SwitchDisplayLanguage() function 178, 179 deploying InTouch applications with 58
system key locking 129–131 description 57, 57
system tags limitations 61
$AccessLevel system tag 153, 158 planning considerations 58
$ApplicationChanged system tag 49 running scripts 60
$ApplicationVersion system tag 50 securing applications 59
$ChangePassword system tag 149, 154 starting an I/O Server 60
$ConfigureUsers system tag 148, 155, 158 working with Distributed Alarm
$InactivityTimeout system tag 126, 128 System 58–59
$InactivityWarning system tag 126, 128 Terminal Services Client command 57
$Language system tag 178, 179 tick interval 196
$LogicRunning system tag 133 transferring to WindowMaker from
WindowViewer 211
$Operator system tag 59, 158, 169
TseGetClientId() function 59, 62
$OperatorDomainEntered system tag 163
TseGetClientNodeName() function 62
$OperatorEntered system tag 158, 161
TseQueryRunningOnClient() function 63
$OperatorName system tag 168
TseQueryRunningOnConsole() function 63
$PasswordEntered system tag 158, 162
$VerifiedUserName system tag 169
V
T Value Time Quality (VTQ) 37
Tablet PC
W
changing screen orientation 231
WindowMaker
cut, copy, and paste annotations 229
disabling transfer from WindowViewer 133
deleting annotations 229
editing lock 52
description 227
opening an application 20
making window annotations 228–229
restrictions when developing InTouchView
printing a window 230
applications 212
selecting annotations 229
setting mouse behavior 236
sending an annotated window as an e-mail
WindowViewer
attachement 230
closing all open windows on transfer to
TagID keyword 109
WindowMaker 195
Tagname Dictionary
closing on transfer to WindowMaker 195
configuring to start as a Windows service 67 setting drawing mode of 16-Pen Trend 238
copying an application 52 setting option to dynamically change screen
customizing 193 resolution 54
disabling transfer to WindowMaker 133 setting print waiting period 237
hiding menu items at run time 132–134 setting script looping timeout interval 236
Logic menu 133 starting as a service 66
memory properties 199 WindowViewer, memory properties
opening an application 20 setting 199
resizing the numeric keypad 238 Wonderware Historian
running as a service 66 configuring as a history provider 43
WWMultiMonitorNode() function 226