GENESIS64 Core Training Manual
GENESIS64 Core Training Manual
GENESIS64 Core
Training Manual
Version 10.01
GENESIS64 Core Training Manual
© 2008 ICONICS, Inc. All rights reserved worldwide. This document may not be
reproduced or copied in any manner without written authorization from ICONICS,
Inc.
The information contained within this document is subject to change without notice.
ICONICS, Inc. does not guarantee the accuracy of the information.
Windows, Windows XP, Windows 2000, Windows 2003 Server, Windows CE,
Windows NT, Windows XP-64, Windows 2003-64, Windows Vista and Windows
Server 2008 are registered trademarks of Microsoft Corp. in the United States and
other countries.
Other product and company names mentioned herein may be trademarks or registered
trademarks of their respective owners.
Opening and using the enclosed software for any purpose indicates your acceptance of the terms and conditions of this license agreement.
If you do not agree with them you should return all software, documentation and copy protection keys within seven days of shipment
unopened and your money will be refunded.
ICONICS provides this program and licenses its use in the United States, Puerto Rico, or internationally. You assume the responsibility for
the selection of the program to achieve your intended results, and for the installation, use and results obtained from this program.
LICENSE
You are granted a personal license to use this program under the terms stated in this Agreement. You may: 1) Install and use the program
on a single machine. 2) Make a single archival back-up copy of the program for the sole purpose of supporting your use of the single
program on a single machine. 3) You may not use, copy, modify, or transfer the program, or transfer any copy, in whole or in part, except as
expressly provided in this license, or with a written contractual agreement with ICONICS, Inc.
TERM
The license is effective until terminated. It will terminate if you fail to comply with any term or condition of this Agreement. You agree, upon
such termination, to destroy the program and all copies that were made from it and to promptly return any copy protection key(s) to
ICONICS.
LIMITED WARRANTY
ICONICS WARRANTS THE CD-ROM OR PHYSICAL DISKETTES, ON WHICH THE PROGRAM IS FURNISHED, AND PHYSICAL
DOCUMENTATION TO BE FREE OF DEFECTS IN MATERIALS AND WORKMANSHIP UNDER NORMAL USE FOR A PERIOD OF
NINETY (90) DAYS FROM THE DATE OF DELIVERY TO YOU AS EVIDENCED BY YOUR RECEIPT. THIS PROGRAM IS PROVIDED
“AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
WARRANTIES OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE
RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE,
YOU ASSUME THE ENTIRE COST OF ALL NECESSARY SERVICING, REPAIR, OR CORRECTION.
ICONICS SPECIFICALLY DISCLAIMS ALL OTHER WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO,
IMPLIED WARRANTIES OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN
PARTICULAR, WITH RESPECT TO ANY PARTICULAR APPLICATION, USE OR PURPOSE, IN NO EVENT SHALL ICONICS INC. BE
LIABLE FOR ANY OTHER COMMERCIAL DAMAGE, INCLUDING BUT NOT LIMITED TO SPECIAL, INCIDENTAL, CONSEQUENTIAL OR
OTHER DAMAGES. ICONICS DOES NOT WARRANT THAT THE FUNCTIONS CONTAINED IN THE PROGRAM WILL MEET YOUR
REQUIREMENTS OR THAT THE OPERATION OF THE PROGRAM WILL BE UNINTERRUPTED OR ERROR FREE.
LIMITATION OF REMEDIES
ICONICS’ entire liability and your exclusive remedy shall be the replacement of any CD-ROM or diskette not meeting ICONICS’ “Limited
Warranty” which is returned to ICONICS with a copy of your receipt within the warranty period. The remedy for breach of this warranty shall
be limited to replacement and shall not encompass any other damages including but not limited to loss of profit, special, incidental,
consequential, or other similar claims arising out of the use or inability to use such program even if ICONICS has been advised of the
possibility of such damages, or for any claim by any other third party.
GENERAL
This Agreement will be governed by the laws of the Commonwealth of Massachusetts. Should you have any questions concerning this
Agreement, you may contact ICONICS in writing at:
ICONICS, Inc.
100 Foxborough Boulevard
Foxborough, MA 02035
You acknowledge that you have read this agreement, understand it and agree to be bound by its terms and conditions. You further agree
that it is the complete and exclusive statement of the Agreement between you and ICONICS which supersedes any proposal or prior
Agreement, oral or written, and any other communications between you and ICONICS relating to the subject matter of the Agreement.
Contents
1. Introduction to GENESIS64
1.1 OBJECTIVES ............................................................................................................................................ 1-1
1.2 INTRODUCTION ....................................................................................................................................... 1-1
1.3 GENESIS64 ARCHITECTURE ..................................................................................................................... 1-3
1.4 PLC, OPC, AND GENESIS64.................................................................................................................... 1-6
1.5 DATA CONNECTIONS .............................................................................................................................. 1-13
1.6 THE DATA BROWSER.............................................................................................................................. 1-14
LAB: DATA CONNECTIVITY ......................................................................................................................... L1-1
REVIEW: INTRODUCTION TO GENESIS64 REVIEW....................................................................................... R1-1
2. The Workbench
2.1 OBJECTIVES ............................................................................................................................................ 2-1
2.2 INTRODUCTION TO THE WORKBENCH .......................................................................................................... 2-1
2.3 CREATING A PROJECT ............................................................................................................................... 2-8
2.4 CONFIGURATION AND LAYOUT MANAGEMENT ............................................................................................ 2-13
2.5 PROJECT MANAGEMENT TOOLS ............................................................................................................... 2-22
2.6 DEPLOYMENT ....................................................................................................................................... 2-24
REVIEW: THE WORKBENCH REVIEW ........................................................................................................... R2-1
3. AlarmWorX64 Server
3.1 OBJECTIVES ............................................................................................................................................ 3-1
3.2 ALARMWORX64 SERVER ......................................................................................................................... 3-1
3.3 ALARM TAGS .......................................................................................................................................... 3-2
3.4 CONFIGURING ALARM TAGS ...................................................................................................................... 3-3
3.5 GROUP ALARM TAGS BY AREA ................................................................................................................. 3-11
LAB: ALARMWORX64 SERVER .................................................................................................................... L3-1
REVIEW: ALARMWORX64 SERVER REVIEW ................................................................................................ R3-1
4. AlarmWorX64 Viewer
4.1 OBJECTIVES ............................................................................................................................................ 4-1
4.2 INTRODUCTION TO THE ALARMWORX64 VIEWER .......................................................................................... 4-1
4.3 CONFIGURING THE VIEWER ....................................................................................................................... 4-3
4.4 ALARM VIEWER RUNTIME OPTIONS .......................................................................................................... 4-15
LAB: VIEWING ALARMS .............................................................................................................................. L4-1
REVIEW: ALARMWORX64 VIEWER REVIEW ................................................................................................ R4-1
ICONICS, Inc i
Contents GENESIS64 Core Training Manual
5. AlarmWorX64 Logger
5.1 OBJECTIVES ............................................................................................................................................ 5-1
5.2 INTRODUCTION TO THE ALARMWORX64 LOGGER ......................................................................................... 5-1
5.3 STARTING THE ALARMWORX64 LOGGER CONFIGURATOR............................................................................... 5-2
5.4 ALARMWORX64 LOGGER CONFIGURATION ................................................................................................. 5-2
5.5 COLUMN DEFINITIONS.............................................................................................................................. 5-8
5.6 NODES CONFIGURATION ........................................................................................................................... 5-9
LAB: ALARM LOGGER ................................................................................................................................. L5-1
REVIEW: ALARMWORX64 LOGGER REVIEW ............................................................................................... R5-1
6. TrendWorX64 Logger
6.1 OBJECTIVES ............................................................................................................................................ 6-1
6.2 INTRODUCTION TO TRENDWORX64 LOGGER................................................................................................ 6-1
6.3 TRENDWORX64 LOGGER IN THE WORKBENCH ............................................................................................. 6-2
6.4 DATABASE CONFIGURATIONS..................................................................................................................... 6-3
6.5 DATABASE GROUPS ................................................................................................................................. 6-4
6.6 ADDING LOGGING GROUPS ....................................................................................................................... 6-5
6.7 ADD TAGS TO A LOGGING GROUP............................................................................................................. 6-10
LAB: TRENDWORX64 LOGGER .................................................................................................................... L6-1
REVIEW: TRENDWORX64 LOGGER REVIEW ................................................................................................ R6-1
7. TrendWorX64 Viewer
7.1 OBJECTIVES ............................................................................................................................................ 7-1
7.2 INTRODUCTION ....................................................................................................................................... 7-1
7.3 TRENDWORX64 VIEWER MODES .............................................................................................................. 7-2
7.4 TRENDWORX64 VIEWER PROPERTIES ......................................................................................................... 7-2
7.5 SIDE PANEL ............................................................................................................................................ 7-4
7.6 TABS ..................................................................................................................................................... 7-4
7.7 CHART VIEW .......................................................................................................................................... 7-5
7.8 PLOT TYPE.............................................................................................................................................. 7-9
7.9 PEN CONFIGURATION ............................................................................................................................. 7-10
7.10 RUNTIME OPERATIONS ........................................................................................................................... 7-12
7.11 WORKBENCH VS. GRAPHWORX64 ........................................................................................................... 7-15
LAB: TREND VIEWER .................................................................................................................................. L7-1
REVIEW: TRENDWORX64 VIEWER REVIEW ................................................................................................ R7-1
9. GraphWorX64 Basics
9.1 OBJECTIVES ............................................................................................................................................ 9-1
9.2 BASIC 2D SHAPES AND OBJECTS ................................................................................................................. 9-1
ii ICONICS, Inc
GENESIS64 Core Training Manual Contents
15. Security
15.1 OBJECTIVES .......................................................................................................................................... 15-1
15.2 INTRODUCTION TO ICONICS SECURITY ..................................................................................................... 15-1
15.3 SECURITY SYSTEM COMPONENTS.............................................................................................................. 15-2
15.4 GLOBAL SETTINGS ................................................................................................................................. 15-3
15.5 SECURITY OBJECTS AND THEIR RELATIONS .................................................................................................. 15-7
15.6 SECURITY PRIVILEGES ........................................................................................................................... 15-13
15.7 LOGGING-IN AND LOGGING-OUT ............................................................................................................ 15-19
15.8 ADVANCED SETTINGS ........................................................................................................................... 15-22
LAB: SECURITY ......................................................................................................................................... L15-1
REVIEW: SECURITY REVIEW...................................................................................................................... R15-1
iv ICONICS, Inc
GENESIS64 Core Training Manual Introduction to GENESIS64
Introduction to
1
GENESIS64
1.1 Objectives
After completing this chapter, you should:
1.2 Introduction
Look around. In any modern industrial economy the water you drink, the food
you eat, the clothes you wear, the energy you use, and the myriad other
necessities and amenities of life are made possible through computer aided
observation and control of automated systems used to process them. Industrial
automation takes data issued by devices, puts them into a form that can be sent
over a network, and delivers that data to the computer that has the software
necessary to process it. Process control in turn takes commands issued by
automation software on a computer and sends it to the correct device(s) where the
command is translated into action. For this scheme to work in an open system
(multi-vendor environment), devices and systems must be discoverable,
communication must use known transport protocols, and data must be in a
predictable format – all of which require standards.
The software you will be learning about in this course, the ICONICS GENESIS64
automation suite, is an open system software suite based on Microsoft Windows
and industry standardized networking protocols. Listed below are some
applications and functions within the GENESIS64 suite:
You can perform aall system configurations in the Workbench. From your Alarm
Server configuration to your system security, to your configuring your HMI
displays, you can do it all within the Workbench. Figure 1..2 illustrates the
relationship of the Workbench to tthe
he different GENESIS64 components as well as
how GENESIS64 communicates to third third-party applications.
As you see from Figure 1.2, you can connect to and configure many different
GENESIS64 applications within the Workbench. Some of the applications that
you can access includes:
Aside from the utilities and the configurators, we have containers to view
different types of data in the Workbench. These containers are also controls that
you can add into GraphWorX64 displays. Unlike GENESIS32, where containers
are standalone applications, most containers in GENESIS64 can only be
configured and run within Workbench. The GraphWorX64 container is the only
one in the GENESIS64 suite that allows for configuration and runtime without
going into the Workben
Workbench.ch. Like the Workbench, these you can configure and
even go into runtime to view data in these containers.
In Figure 1.3, the Workbench is shown in runtime mode; to open this display in
configuration mode you would need to “edit” the display using that command on
the display’s context menu in the navigation tree on the left.
Figure 1.5 below shows form for the default account policy in the Security Server.
ICONICS security provides access to user and group accounts using policies
applied to these security object
objects.
A computing device can sample the value of the resistance, and that value is then
converted from the value in ohms to a temperature measurement based on a
standard physical property. While this device has one measurement of interest
(the temperature as converted from the resistance), in order for the information to
be useful, the temperature value needs to be packaged with additional pieces of
information, including:
Even though the field data sought is a single value measurement, at least three
thre or
four related values must be transmitted with it to make the data useful; and they
must be packaged in a way (addressed) that allows the data to be found (browsed)
and understood. That is in essence the function of OPC data.
OPC originally stood for Object Linking and Embedding for Process Control; a
name chosen because the technology was based on Microsoft’s inter-application
communication (IAC) standard at the time, OLE. The rise of the Internet led
Microsoft to update OLE with first, the Common Object Model (COM), and in
rapid fashion DCOM (Distributed COM). DCOM added the ability to
communicate with remote networked systems.
You can recognize software built using DCOM because it loads ActiveX
components into a browser or into a container application. GENESIS32 versions 5
through 9 all used ActiveX technology inside container applications.
The OPC standard specifies a set of objects, interfaces (APIs), and methods that
are used by automation software in an open system. OPC bridges devices like
PLCs and DCS to client applications using applications called OPC servers that
communicate using the OPC protocol. An OPC server can be a local service
running on the same system as the client (also known as the localhost), on a
server on the LAN, or somewhere in the cloud (WAN).
OPC communication eliminates the need for developers to write individual device
drivers to connect clients to individual devices. As long as a client understands the
correct flavor of OPC, the connection or “subscription” may be made. OPC ended
up publishing a number of different specifications based on DCOM as they
embraced different classes of devices. Eventually OPC included:
• OPC Data Access (OPC DA). This set of standards connects real time
data acquisition devices to applications.
• OPC Alarm and Events (OPC AE). These standards provide event-based
alarm communication.
• OPC Historical Data Access (OPC HDA). Historical data access
specifies how to log data to a data store and retrieve the data for later
analysis.
• OPC Security. This specification sets the protocol for applications to
securely communicate with OPC devices and systems.
• OPC Batch. The batch standard offers communication methods useful for
batch processing needs.
• OPC XML-DA. XML DA extended the Data Access specification so that
it communicates using XML over Microsoft Simple Object Access
Protocol (SOAP).
• OPC Complex Data. This specification extended OPC to include binary
data, complex data objects (like BLOBs), and XML documents.
Of the different standards it is only the first three – OPC DA, OPC AE and OPC
AE – that find widespread use.
You can now see the reasons for the origin of individual ICONICS GENESIS
applications to support each of the different standards:
1.4.2.1 OPC UA
ICONICS GENESIS64 (which is version 10) is based on the newest OPC
standard, called OPC Unified Architecture (OPC UA). OPC UA is based on the
Microsoft .NET Framework and is meant to leverage the capabilities of object
oriented languages such as C#. OPC UA specifies a Service Oriented Architecture
(SOA) with multi-platform implementation using ANSI C, Java, or .NET. OPC
UA data sources communicate through the ICONICs FrameWorX64 server in
GENESIS64.
have the property of inheritance, they start with all of the properties, events, and
methods (PEM) of the parent and add additional properties to that. Figure 1.8
shows a view of part of the OPC UA address space.
The displays people build generally show only the data of interest, which
representss only a small fraction of the data that the underlying devices are
transmitting and which are received and/or stored. Each switch can be drawn to
show its state: closed, open. Underlying the display is process logic that the
developer creates to control bbehavior.
ehavior. For an alarm condition, perhaps the
developer will choose to draw the affected portion of the system in red or flash an
alarm. Maybe the developer will include a button on the screen that can initiate an
action. All of which are made possible from monitoring a point from the OPC
Server, which we call OPC Tags or process points.
• the top temperature sensor outputs the temperature of the return fluid,
• the middle sensor indicates whether an alarm condition exists
• and the bottom temperature sensor outputs temperature of the supply fluid.
These three sensors could all be wired into a single PLC device and transmitted to
a single OPC server where the data is aggregated into a data set. Then that data set
would be transmitted as a unit or single transaction. Alternatively, the two real-
real
time data sensor temperature outputs could be sent to one OPC server that is a
process system and the alarms to another for events. OPC UA is flexible enough
to handle either instance.
From the standpoint of a client, the connection to meaningful data value defines a
data point as oppose to the method used to package the data and communicate it.
If an OPC server exposes the OPC data as a single object (all three values) –
which for the sake of simplicity let’s call the object Boiler – GENESIS64 would
browse the OPC UA data as a single object tha thatt shows all of the different
individual values. If instead there were two objects, one called Flows (with
temperatures) and another called Alarms (with events), then GENESIS64 would
require that you browse two different OPC UA objects in order to assign a data
source to a process point on a display.
In either instance, there are three values connected to the display and GENESIS64
treats both instances as if there were three individual data points, also called tags.
A tag is therefore considered to be the co connection
nnection of a GENESIS64 display to a
single useful value.
Note that a tag was defined as the connection to a meaningful data point. point A
temperature value or alarm condition is meaningful data. However, when you are
dealing with data that is multi
multi-valued, thee entire definition of the data point is part
of the same tag. In EarthWorX64
EarthWorX64, GPS locations are used, which include values
for latitude, longitude, and altitude. Each value would be meaningless without the
To take this one step further, if you have a truck moving on your EarthWorX64
map and you show location, load condition, and direction, then you consume two
tags. The first tag is for the GPS location, as described in the previously. The
second tag is for the load condition: whether it is empty, full, or in a partially
loaded state. The third displayed metric for direction is not assigned a tag value
because it is based on a calculation between the last two GPS locations – with the
vector connecting the two – defining a direction in your display’s coordinate
system.
Since ICONICS GENESIS64 uses the number of tags as part of its licensing
scheme, you can see that the abstraction has some real world financial
implications. Just keep in mind that objects in OPC UA can be complex data
types indeed, while usage defined by their tag values can be either simple (single-
valued) or complex (multi-valued).
• Variables
• Simulation functions
• Real time OPC servers with tags that can be READ-only, WRITE-only, or
READ/WRITE
• Historical data that has been stored in a memory cache or saved in a disk
file or log
• Custom data stored in a database for use when required
Consider the simple dial with its corresponding process point data value shown
below in Figure 1.11. The dial works by having a defined rotation angle that starts
at the beginning of the range (the 0 point) and ends at the end of the range (the
100 point). It’s the relationship between the process point value (here having a
value of 53) and the rotational angle of the indicator shape (the chevron) that is
important.
Other properties de
determine
termine how many increments the knob has, what the labels of
each increment are, whether the knob is analog or digital (has steps), and other
properties. The data point might have a one one-to-one
one correspondence of each
process point’s value to the labels of tthe
he knob, but the relationship can be linear,
exponential, or whatever you define.
Both the text box and the rotation dynamic of the chevron object in the dial are
connected to the same data source. You assign the data source for each of these
two objects byy entering the address of the variable, simulation, expression, or tag
into the DataSource property. As long as the value you enter into the DataSource
property is syntactically correct
correct, it will be allowed; it is up to the developer to
determine the correc
correctness of the assignment. At runtime, the value of the data
source refreshes at an interval that is another property of the display.
The knob and the process point in Figure 1.11 display READ-only only data,
data which
allows for observation but no operator input. However, if the OPC tags are
writable, you can easily make this into a device where you can control the value
by turning
rning the knob or writing a value in the process point. Conceptually, control
is as simple to perform as observation in the OPC model.
For example, the Simulation tab allows you to select one of ICONICS
GENESIS64 simulator functions as the data source: a ramp function, sine wave,
random number generator, square function, and so forth. These simulators enter
their expressions in the form localism::sine to indicate that the simulator is on the
local system; sine is the actual name of the function. More formally,
localism::sine is an address that GENESIS64 knows how to parse and when you
select this function and click the OK button
button, the Data Browser enters the correct
address and syntax back into the Data Source property.
The Data Browser gives you a set of tools for navigating the OPC address space,
browsing data sources, and selecting the exact data source (tag) that you require.
In Figure 1.14, the OPC UA tab is shown with a tag already selected. Notice that
the address to the device tag is displayed in the address bar. (When the address
bar isn’t
n’t selected as it was here
here, it appears in a Vista breadcrumb style.) When
you click OK the Data Browser enters the address in the DataSource property in
the correct form using the appropriate syntax.
The power of the Data Browser is that it lets you know what Data Sources are
actually available and correctly defines the addresses using the appropriate syntax.
All data source request goes through the FrameWorX64 Server. However, to keep
backwards compatibility, the FrameWorX64 server uses GenBroker to
communicate to legacy systems (e.g. OPC DA) and expose these data in the OPC
UA address space. Obviously the syntax for a true OPC UA tag is different from a
tag coming from a legacy system. The he Data Browser frees you from having to
know the individual syntax coming from the different serversservers.. You can simply
browse for tags; the addresses are entered back into the display configuration in
the correct form. Now when you save yyourour configuration and go into runtime,
runtime the
needle is connected to the tag you just assigned to it and it changes appropriately.
• Explore GenDemo
• Connect your PLC to an OPC server
• Connect to OPC tags
• View and manipulate OPC tags within GraphWorX64
2. Once the display opens, click on the gears near the top to show the Carousel
play list. You can pause tthe
he play list if you wish. Scroll down the list and
locate the GENESIS64_Architecture.gdfx and double
double-click
click on it. This display
shows an overall view of how different components such as your OPC server,
Databases, and different GENESIS64 components work tog together.
ether.
3. Add process point by going to the Dynamics tab, in the select Process Point in
the Text Objects section.
4. In the Data Browser that comes up, click on the Simulation tab, and select the
localism:ramp tag. Notice the tag properties on the right
right-hand
hand pane.
5. Click on the Runtime button on the upper-right hand corner to go into runtime
and see the data change.
6. Go back into configuration mode. In the object explorer on the right-hand side,
notice the data source only says localism:ramp on it. This is because we are
using a GraphWorX64 local simulation tag. You will not be able to use this
tag outside of GraphWorX64.
7. Add another process point, in the Data Browser OPC UA tab, select My
Server ICONICS.OpcUaServerBK_DA Channel_0_User_Defined
Ramp Ramp1. Notice the syntax for the data source looks like:
@ICONICS.OpcUaServerBK\Channel_0_User_Defined.Ramp.Ramp1.Value
The prefix @ and suffix .Value indicates that this is a tag from and OPC DA
server and not an OPC UA server.
8. We’ll add one final process point. This time, we will type in the path instead.
In the Dynamics Explorer, find the DataSource filed and type in
opc.tcp://ComputerName:Port\\:Server.:ServerStatus.:BuildInfo.:ManufacturerN
ame
9. Now go into runtime and see that all of your data shows up with some value.
Although the data sources are different, it displays your data the same way.
Introduction to
R1
GENESIS64 Review
1.1 Objectives Review
You should now know and understand the following topics:
1.2 Summary
GENESIS64 is automation observation, analysis, and control software that allows
you to build HMI and SCADA systems. Based on open standards developed by
the OPC Foundation for Windows systems, GENESIS64 works with the newest
standard of data called OPC UA as well as maintained backwards compatibility to
the older standards such as OPC DA, OPC AE, OPC HAD, and others.
1.3 Terms
Address Space AlarmWorX64 Common Object Model
Configuration Mode Distributed Control System EarthWorX64
GenBroker GenTray GraphWorX64
GUI HMI HyperHistorian
IAC OLE OPC AE
OPC Client OPC DA OPC HDA
OPC Server OPC PLC
Project File Runtime Mode SCADA
Tags Service Oriented Architecture TrendWorX64
Unified Data Browser Unified Data Manager Workbench
3. True or False: A tag allows you to display OPC data in a client application.
The Workbench 2
2.1 Objectives
After completing this chapter, you should be familiar with:
The Workbench, shown in Figure 2.1, provides a frame in which you can use
every component of GENESIS64. In addition to being a configuration tool, the
Workbench can also act as an operator interface and project management tool.
Using GENESIS64 applications in the Workbench, you will use its configuration
configuratio
and runtime operations. The Workbench:
what is available. (Note that if you have a Hyper Historian installation, the
set of components is slightly smaller than the one you see listed here.)
As illustrated in Figure 2.3, the Workbench is made up of three general areas: the
Project Explorer, the ribbon menu bar, and the content area.
Above the ribbon bar is a quick access toolbar containing, by default, icons for the
New and Save commands. By using the drop-down down menu located directly
above the Project menu (shown in Figure 2.6), ), you can add icons to the quick-
quick
access toolbar and place the quick
quick-access
access toolbar below the ribbon bar.
Using this same menu, you can also minimize the ribbon so that only its menu
items display. You can also do this by double
double-clicking
clicking on the ribbon tabs.
You can also choose various color schemes using the Style button at the top right
of the ribbon bar.
As you move the object and your cursor closer to a docking station, a blue area
appears (on the left in Figure 2.9)) in the Content area, showing you where the tool
you are dragging will display if you release the mouse button.
Figure 2.10 - Auto Hide (Left) and Pinned Down (right) Project Explorer
You can click on the Full Screen button to expand the Workbench across all
available screens; the Full Screen button is useful only if you are working with a
configuration of multiple monitors. Once in full screen, pressing Alt-F4
Alt returns
you to normal.
The best way to understand a project is to create one. You can do this by
launching the Workbench from the Windows Start Programs
Program ICONICS
GENESIS64 Workbench
Workbench.
The Workbench launches with the default ICONICS project, which includes all
GENESIS64 components, along with sample files. When you create a new project,
you can create it using the ICONICS default project as a starting point, or from
scratch. To create the project from scratch, you can select New Empty
Project from the File Menu.
A popular selection is the ICONICS Viewers, also shown in the Figure 2.13.
ICONICS Viewers is a composite of the following viewers:: GraphWorX64,
AlarmWorX64, TrendWorX64, and EarthWorX
EarthWorX64. If you choose to add the
ICONICS Viewers
Viewers, the default properties for this selection
ection makes one
application button called “ICONICS Viewers” for all four of the included viewers
in the Project Explorer.
You
ou can separate the four viewers into their own individual application button.
Simply add the application, and tthen n configure the File filter to include the
different files types. You can also change the Text to reflect the files types
selected. Figure 22.15 illustrates how you would change the properties so that the
application bar would encompass only the GraphWorX64 Viewer. As you can see,
you would change the Text property to “GraphWorX64”; deselect all but the
GraphWorX64 files for the File Filter property, then for the Root Folders button
browse to the directory where you want to save the GraphWorX64 files. You can
repeat these steps for each viewer you want to create a separate application button
in a similar manner.
Once the project’s applications are listed in the Project Explorer, you can get to
work, but first, let us go over some ways you can manage the applications within
the Project Explorer
Explorer.
Selecting Show More Buttons from the popup menu puts all application icons in
the icon tray. Selecting Show Less Buttons puts only the selected
elected icons in the
icon tray.
Notice in Figure 22.21 that the needle of the gauge is selected, and that the object is
a polygon (Polygon4). The object hierarchy is displayed in the Explorer
navigation tree on the right, and the Properties pane exposes the object's
Properties, Dynamics (Events and Methods), as well as the Preferences for the
application and objects.
We have discussed the difference between runtime and configuration mode in the
previous
vious chapter, here we’ll recap the major points. You can open a file in either
configuration mode or runtime mode.
• Double-click
click a file to open it in runtime mode in the current tab of the
content area
• Wheel-click
click (or middle-mouse click) on a file to open it in runtime mode
in a new tab of the content area
• Right-click
click on a file to popup a menu of options on how to opening the
file.. Typically, popup menu options let you open the file in runtime mode
in the same tab or a different tab, and edit the file in the same tab or a
different tab.
The default layout when you have multiple files opened is the tabbed format,
where each file is a tab in the content area. You can rearrange the layout of the
files onn the Home tab of the ribbon. Use se the buttons in the Arrange section to
organize the different files in stacked , tabbed , side-by-side , or in a
table format. The tabular format has a drop drop-down box,, from which starting in
the top-left
left corner, allows you to choose the number of cells you want the content
area to divide into; the format chosen in Figure 2.23 would display two rows of
three files.
To use the Template Editor, you can open an existing template or start from
scratch. Select a tab area in the window, and then click a button to split the tab
horizontally or vertically . You can also change the size of any tab area by
grabbing the edge (the cursor will change to or ), dragging the cursor with
the mouse button down, and then releasing the button when the tab is at the
desired size. Save the template when you are done.
2.4.2.5 Layouts
Once you have opened a template in the content area of the Workbench, any file
you open defaults to the currently selected section in the content area.
area Therefore,
before you open a file, click in the section you want to open file in first, and then
open the file.. You can even open your Home Page in a new section. section You will
notice that the default arrangement in each section is still opening the files in tabs.
You can, of course, rearrange the files in stacked or side by side format within the
section.
Once you
ou have opened files in the sections you want, you have a layout. Whereas
a template is a simple arrangement of the different section that you can insert files,
files
a layout is an arrangement of individual files in a template.
Figure 2.26 shows a sample layout with three sections.. Note that the top-left
top
section has two alarm displays; the top
top-right
right has an alarm display and a trend
display; and the bottom only contains one trend display.
2-18 ICONICS, Inc
GENESIS64 Core Training Manual The Workbench
On the Layout tab of the ribbon, you’ll find buttons to create a new layout, open
an existing layout, and save a layout in the File section.
Saved layouts do not automatically appear in the Layout Gallery, which we will
discuss next. If you want to add the new layout to the Gallery, you can either
import it after saving, or simply use the Save Current Layout To Gallery option
in the Layouts Gallery section.
You can look at these samples and use them as a starting pointpoin for your own
layouts; or you can remove the samples and create your own. Note that you can
import layouts from other projects, too. The layouts are local; they are not saved
with the project and are not available with the project when you package it and
deploy it.
For example, you have two displays of one facility – one display monitors pipes
and the other monitors circuitry – and you want the runtime display to toggle
between the two. You can use carousel to do this.
You can also use the carousel for your own convenien
convenience
ce during configuration. In
it, you can list any files you want available from a particular tab of the layout;
those files are listed in the carousel for easy access.
To start carousel, make sure the tab where you want carousel to apply is selected,
then click on the Layouts Carousel button on the Layout ribbon. The Carousel
dialog box displays, and looks something like Figure 2.29.
In this dialog box, you can create a playlist consisting of Workbench layout files
(.wblx). When you create a new playlist, then edit the list by adding or removing
layouts. You can pput
ut the layout files in the sequence in which you want them to
be replayed. The playlist is saved with the extension .wb.carousel.xml.
As you add files to a playlist using the Edit Playlist dialog, you can click on the
Options button to dispdisplay the Playlist Options dialog, where you can enter
specifications
fications for playing the list.
See how you can limit the number of times a playlist repeats; play files at random;
limit how long individual files can run; automate the time at which the playlist
stops; and queue up the next playlist to play with
within the options.
• Applications
• Database configurations such as the Global Aliasing, Language Aliasing,
and other SQL databases
• Network services tools such as GenTra
GenTray,y, SNMP, the FrameWorX Server,
and the Security Server (see “Working w with
ith Services” on the next page)
• Workbench configuration settings that you apply to the Workbench
window position, styles, modifications made to the design surface, layouts,
layouts
and templates
ates are saved within a project
A project is normally stored on the system where the servers are running. In
actuality, there may be several servers that need to be accessed in order to run the
different displays that an enterprise might require. As long as you yo have defined
their connection
ion details
details, those connection details are saved, too.
It follows the optimistic concurrency model; there are no database locks. Multiple
application servers and databases can be configured simultaneously. An additional
ICONICS Workbench Toolkit can be used to create plug-ins from third-party and
OEM content providers.
There are two security models ICONICS Security Server database and Windows
Active Directory. We will discuss security in more details in a later chapter.
• GenTray: starts and stops any service, including ICONICS and Windows
services.
• FrameWorX64 Server: allows configuring GenBroker, GenEvents, and
web services. You can also configure the databases that support these
different methods of communications.
• AlarmWorX64 Server: starts and stops the alarm server, as well as
provides a configuration interface to configure alarms.
• TrendWorX64 Server: starts and stops the historical trend server, as well
as provide a configuration interface to add historical trend tags.
• SNMP: configure and manage the SNMP (Simple Network Management
Protocol) service that is used to discover SNMP devices and their
properties over a network.
• Unified Data Manager (UDM): the UDM is a central location for storing
expressions, subscriptions, groups, values, registers, triggers, and other
data that can be used by any GENESIS64 application. The service can be
started, stopped, and all of these data types and data instances can be
created and modified within the UDM in the Workbench
• Security Server: the Security Server stores accounts and policies in a
database organized by users and groups. You can start, stop, modify, and
create security policies from within the Security Server.
• Global Aliasing: the Global Aliasing System (GAS) stores variable names
and their values within an SQL database so that these variables can be
To open and review a remote system, click on the Connect to Server button in
the Project tab of the ribbon and set up access to the remote system; it then
becomes available from the Workbench.
Allowing team members to connect to your server remotely using the Connect to
Server button on the Project ribbon lets them open the project and edit it as
necessary. Alternatively, you can co
copy
py the project using the tools described in the
“Deployment” section
section.
The Connect to Server button is handy with deployed projects as well. If you are
supporting a customer project remotely, and the customer gives you access to its
server, you can connect and edit the customer’s deployed project without having
to make an onsite visit.
2.6 Deployment
With a large project, there are typically several configuration files, databases,
databases and
resources. Configurations and files may even be spread across several machines
machine
among the team members working on a project. Sometime
Sometimes the real challenge is
not the configuration itself
itself,, but how to copy all of those resources already
configured on a target machine to share them with a team member on a separate
The Workbench
R2
Review
2.1 Objectives Review
You should now know and understand the following topics:
2.2 Summary
In this chapter, we learned that the GENESIS64 Workbench is a centralized web-
based work environment for GENESIS64 products. It provides a configuration
environment that runs multiple applications and customized third-party
environments. In addition to being a configuration tool, the Workbench can act as
an operator interface and project management tool.
We looked at three distinct parts of the Workbench: the Project Explorer, the
Ribbon, and the content area and reviewed ways to customize each. In creating a
project, you start by adding ICONICS applications to the project; there are several
ways to manage those applications in the project. We looked at sample
configuration forms and display files in the Workbench in configuration mode
and in runtime mode, and then reviewed the ways in which you can work with
those files in the Workbench: by arranging files, saving an arrangement as a
template, and saving an arrangement of files as a layout.
2.3 Terms
Contents Area Configuration Mode Home Page
ICONICS Viewer Ribbon Runtime Mode
Workbench Workbench Layout Workbench Template
2. True or False: You can use Workbench to edit multiple servers at the same
time.
a. Configuration Environment
b. Runtime Environment
c. Both
a. No
b. Yes, all .net controls, WPF and Active-X applications
c. Only *.EXE applications
a. Yes
b. No
c. Only through an import filter
7. True or False: You can start and stop only local Genesis64 services from the
Workbench.
AlarmWorX64 Server 3
3.1 Objectives
After completing this chapter, you should be familiar with:
All alarm detection and reporting that it does conforms to OPC Alarm and Events
standards. Event notifications generated by the AlarmWorX64 Server are sent to
OPC UA clients (such as, AlarmWorX64 Viewer and AlarmWorX64 Logger) that
subscribe to it.
AlarmWorX64
rX64 Server can be run as a service. The server reads its configuration
information from a Microsoft SQL Server database file (which by default is
AWXSVRCONF.MDF). During runtime runtime, the server polls the configuration
database for changes, allowing on-the-fly configuration change without stopping
the server.
You use the AlarmWorX64 Server interface to create and maintain a database
configuration of alarm tags. To start AlarmWorX64 Server, go to Start
ICONICS GENESIS64 AlarmWorX64 AlarmWorX64 Server
Configurator. The AlarmWorX64 Server Configurator opens in the Workbench.
You can also launch the configurator in the Workbench from the AlarmWorX64
Server program icon at the bottom of the Project Explorer as shown in Figure 3.2.
AlarmWorX64 server generates an alarm. The alarm client will then be able to
display the condition for nearby operators to rectify the situation.
For example, you can generate an alarm when the speed of a cooling fan rises
above or falls below an acceptable range. As a result, an operator can investigate
or make adjustments to rectify the problem before damage can occur to goods or
to the equipment. Other scenarios for generating an alarm could be when a
secured door is opened or when a pressure gauge reading drops rapidly.
For each alarm that you configure, you can require an operator to acknowledge
the alarm. You can even require an operator to acknowledge an alarm that has
return to the normal state. Remember that you do not have to limit your alarms to
adverse or critical conditions. For example, you can configure an alarm that
provides instructions for a manual step at a key point in a process, or you can
configure a series of alarms on a piece of equipment that provide automated
training for new operators.
These alarms come with their own conditions that you can choose from in order to
configure them for an OPC tag.
The different types of alarms are available for each alarm tag that you create. You
can configure each alarm type in their own tab and section of the alarm properties.
You can also configure any or all of these alarms in one alarm tag.
You should give the alarm a name and in the OPC Input field, specify the tag
whose value you want to use for the alarm. For example, xample, if the alarm is
monitoring water pressure, you want to use pressure readings from the pressure
gauge. You can click on the browse button to the right of the OPC Input field to
bring up the Data Browse and select the appropriate tag
tag.
The name and thee OPC Input will always be available regardless which tab you
are on in configuring the alarm. There are four different tabs in the alarm tag
Now that we haveve reviewed the general options available for any alarm tag that
you configure, let’s look at the details of each of the four types of alarms (Limit,
Deviation, Digital, and Rate of Change) you can configure in an alarm tag. Note
that you can configure any of the alarms described here, and can even combine
co
them into one alarm tag configuration.
limits that you do not want exceeded such as temperature,, counters, pressure
gauges, etc.
This alarm reads the values of the OPC tag you specified in the OPC Input field
by default. You can overwrite this tag by adding
ing a different tag to the OPC
Override Input field in the Limit pane
pane.
Let uss skip the Deadband value for now, and take a look at the Value fields in
which you provide the acceptable limits of the tag’s readings. You can set one,
two, three, or four limits, each with its own warning or alert text, severity level,
and acknowledgement requirements. The values that you enter are readings from
the tag in the OPC Override Input field, if any, or the OPC Input field at the
top of the configurator.
You can add Lo (low value), LoLo (very low value), Hi (high value), or HiHi
(very high value) limits. A tag value that is at or below the LoLo
Lo value is in an
alarm condition, and the alarm generates with the message and severity
configured for it, as well as requiring acknowledgement if the Req. Ack. value is
1. Values that are at or below the Lo value does the same, as do values that are at
or exceed the Hi and HiHi values.
There’s a lot of flexibility in your ability to configure any of these limits. For
example, you can use the Lo limit as a warning level and LoLo as an alert. You
can tie Message Text directly to each value that creates an alarm
larm condition. The
Severity is the OPC
OPC-defined
defined value for alarm priority; the OPC severity range is 0
(lowest) to 1000 (highest).
On the Return to Normal line, you can also provide the message text that
displays when the tag’s value returns to normal from an alarm condition and you
can require the operator’s acknowledgement of a return to normal condition.
Values between the Lo and Hi limit, exclusively, are considered normal.
normal
Take a look at the example below in which the high limit is 101. A Deadband of 1
prevents an alarm from being reported on readings of 100 and 102. Were the
Deadband 0,, these readings would report an alarm.
All other fields in the Deviation pane work in the same way they work for the
Limit alarm, but with one significant exception is the Value field: instead of
entering the value of a tag that will set off an alarm, you enter the delta
(differences) between the two input values that will set off an alarm.
3-8 ICONICS, Inc
GENESIS64 Core Training Manual AlarmWorX64 Server
For example, you are creating a Deviation alarm that compares today’s ongoing
water level readings to yesterday’s final water level reading. You have a tag that
holds the value of yesterday’s final water level, in centimeters; you enter that tag
in the OPC Input 2 field. The OPC Input tag at the top of the configurator
contains the tag of today’s water level. These tw
two tags are compared.
Then you enter the delta values at which you want an alarm to generate. For
example, you want to be notified if the water level drops or rises more than 2
centimeters or more compared to yesterday’s value. You would enter a Hi value
of 2. You also want to know if it drops or rises 5 centimeters or more. In this case,
you would enter a HiHi value of 5. When the difference between the two OPC
tags is 2-4,
4, it will generate a Hi alarm and when it is 5 or more, it will generate a
HiHi alarm.
Iff yesterday’s reading was 50 centimeters, and today the water falls to 48, the
server generates a Hi alarm. When the water drops to 45, the alarm server
generates the HiHi alarm.
In the Alarm State Value field, type the value of the state that triggers the alarm.
Since this is a digital alarm, the valid state values for this alarm are limited to 1
and 0. If there are multiple states that can trigger the alarm, you can incorporate
those states into an expression
expression. However, the result of this expression must equal
1 or 0. The
he value that is not the alarming state will be the normal state.
Like all
ll other alarms, you can specify a severity and require an operator to
acknowledge the alarm. In the Return to Normal field, specify the message to
display when the alarm returns to normal and indicate whether an operator is
required to acknowled
acknowledge a return to normal condition.
This alarm reads the values of the OPC tag you specified in the OPC Input field
or in the OPC Override Input field in the Rate of Change pane.
In the ROC Limit/Sec field, specify the rate of change per second that must
trigger the alarm. Following our earlier example, you can set up a Rate of Change
alarm so that if the water level drops more than 2 centimeters per second, the
alarm will report.
The rate of change is calculated by taking the absolute value of the last two OPC
values diving it by the difference of the timestamp from these two values. When
entering a rate of change, please keep the calculation met
method
hod in mind.
Like all other alarms, you can provide a message text, a severity level, and can
require operator acknowledgement. You can also configure an alarm for when
conditions return to normal, if appropriate for the condition you are monitoring.
3.5 Group
p Alarm Tags by Area
To organize the myriad of alarm tags that you create, you can group alarm tags
into areas. An area is nothing more than a folder that you create in AlarmWorX64
for a physical area in a plant, a category of sensor, or a grouping of machines
mach or
types of equipment. It can be any category you want to classify your alarm tags.
Not only do they provide a way to organize, areas can be used by clients for
filtering purposes.
You can include an alarm tag in any area you like and multiple areas if i
appropriate. Each area can have subsub-areas, and sub-areas
areas can overlap into other
areas. For example, you can create an area for Alkaline Sensors, another for
Security Alarms, and another for the Baltimore Plant that has sub-areas
sub defined
within it. Tags for
or security alarms in the Baltimore Plant area are also categorized
into the Security Alarms area. Tags for some of the Baltimore Plant’s alkaline
sensors are categorized into the Alkaline Sensors area.
Figure 3.10 provides an example of areas in the Project Explorer pane; the Critical
Temps area is expanded and one of its alarms displays in the pane on the right.
3.5.1 Adding an A
Area
To add an area, right
right-click on the Area node, then select Area from the popup
menu. This provides a very simple form in which you provide a name for the area
and a description.
You can also add a sub area using a similar method. Right
Right-click
click on the area where
you want to create the sub
sub-area,
area, then select Area from the popup menu. YouY will
get the same configuration interface.
3.5.2 Adding an A
Alarm Tag
Once you define the new area, you can add tags to it: right
right-click
click on the area and
select Area Tag from the popup menu, which displays the configurator illustrated
in Figure 3.11.. After you pick the tag’s database configuration, you can select the
alarm tag from the Tag dropdown list.
Once you select the alarm tag, the alarm’s information displays in the Tag
Information box.
If you browse back to the alarm, you should see the area listed in the Areas
section of the alarm tag. You can also add or remove areas to the alarm in this
section by clicking on the Add or Remove buttons.
If you click on the Add button, the Select or Enter Area name dialog comes up.
You can browse for the area and select iitt in this dialog to add it. Make sure that
the area you want to add is in the text field at the top of the dialog, otherwise, the
OK button will be grayed out.
You can also remove an area from the alarm by selecting the area, and click on
the Remove button.
Lab: AlarmWorX64
3
Server
3.1 Lab Overview
Starting with this lab, we will try to build up a project for the icTonics beverage
company. In this lab, we will create alarms that will alert us when the drink-
mixer-tank level is too high or too low. We will also create an alarm that alerts us
when the turner-blade in the tank stops turning. We will view these alarms in the
AlarmWorX64 Viewer in the next section.
3. In the tree-control
control on the left
left-hand
hand side, select the AlarmWorX64 Server. If
you don’t see this, look for the icon. When your mouse hovers over it, you
should see a tooltip saying AlarmWorX64 Server. Be careful that you select
the correct one; the AlarmWorX64 Logger has the same icon.
4. Once you’ve selected the alarm server, you should see it expanded in the tree
control with a default active configuration. We will create our own
right-clicking on localhost New Database…
configuration database by right
Figure L
L3.1 - Creating New Alarm Server Configuration Database
5. The SQL Create Database Wizard comes up. You can use the default instance
of the SQL server and click “Next”.
6. In the common database option screen, uncheck the Include Sample Data
checkbox, and change the Database name to icTonicsAlarmServerConfig,
icTonicsAlarmServerConfig
and click on “Finish”
7. Once the database is successfully created, you will see it in your Project
Explorer with a red stop sign on it because it’s not the currently active
configuration database.
8. Expand the database, you will see three nodes underneath it: Configurations:
Configuration
Areas, and Nodes. Since everything will be local to this computer, we will not
worry about the Nodes. However, in the next sections, we will create different
areas and a configuration that contain your alarms.
2. On the right-hand
hand pane, a new tab opens that allows you to create a new area.
Give the area a name of “USA” and an optional description.
4. Create another sub area under Foxboro called “Tank Levels”. When you are
done, your areas should look like Figure L3.5.
4. Right-click
click on the icTonicsAlarms configuration and select Add Tag to add an
alarm
5. A new tab opens with alarm properties. Give this alarm the name “Tank1
Level”
6. Click on the button with the three dots to the right of the OPC Input text box.
We’ll look for the
@ICONICS.OpcUaServerBK
@ICONICS.OpcUaServerBK\icTonics.Tanks.USA.Foxboro.Tank1.TankLeve
icTonics.Tanks.USA.Foxboro.Tank1.TankLeve
l.Value tag.
7. In the General area, enter the text “Tank1 level is” for the Base Text field.
9. Your General Tab should look like Figure L3.8.. Click on apply to save the
changes.
10. Select the Alarms Limit / Digital tab. In the Limit area, configure the alarm
properties as show in Table L3.1.
Table L33.1 - Limit Alarm Value
11. In the return to normal message, just enter normal. Your Limit section should
look like Figure LL3.9. Click on Apply to save the changes.
12. Using a similar procedure, you should now be able to create a digital alarm to
monitor
or the churning blade. It should give us an alarm if the blade has stopped
moving. Table LL3.2 shows some details of the alarm.
Table L3.2 - Digital Alarm Details
13. We are now done configuring the alarm server. Make sure that you have
activated your configuration database so that it shows a green arrow on it. If
it’s inactive, you can right
right-click
click on the database, and select Make Active. We
will view the alarms in the next lab.
AlarmWorX64 Server
R3
Review
3.1 Objectives Review
You should now know and understand the following topics:
3.2 Summary
The AlarmWorX64 Server receives field data from your OPC compliant Data
Access servers and performs alarm detection and reporting on that data. Event
notifications generated by the AlarmWorX64 Server are sent to the OPC UA
clients (such as, AlarmWorX64 Viewer and AlarmWorX64 Logger) that
subscribe to it. During runtime, the server polls the configuration database for
changes, allowing for on-the-fly configuration edit without stopping the server.
You can use alarms to alert operators to adverse or critical conditions, prompt
operators to perform manual procedures or equipment reviews, assist in training
new operators, and more. In general, AlarmsWorX64 Server takes each reading
that it gets for the OPC tag and compares it to another value, then determines if
the incoming OPC value is in an alarm condition. If it is, the alarm server
generates an alarm and sends it subscribed alarm viewers where nearby operator
can view the alarm.
There are four types of alarms: Limit, Deviation, Digital, and Rate of Change that
you can configure and combine in an alarm tag. A Limit alarm occurs when a tags
value exceeds a high or low threshold that you have configured. A Deviation
alarm occurs when the absolute value of the difference between two input values
exceeds values of your choosing. A Digital alarm occurs when the OPC Input
value equals the alarm state value that you specify. A Rate of Change alarm is
generated if the rate of change is higher than what you configure.
You can take advantage of deadbands and alarm delays to handle tags that tend to
flicker in and out of an alarm condition. You can tailor message text to alarm
levels, and you can provide instructions for the operator to follow when
responding to an alarm. You can require an operator to acknowledge an alarm and
a return to normal. Furthermore, you can collect data from other tags during an
alarm condition for the purpose of reviewing their captured readings later, for
troubleshooting, or for diagnosing a problem. Finally, you organize alarm tags
into folders called areas which can also be used by clients for filtering data.
3.3 Terms
Alarm Area Alarm State Value Alarm Tag
AlarmWorX64 Server Deviation Alarm Digital Alarm
Limit Alarm Rate of Change Alarm
a. Alarm Viewer
b. Alarm Logger
c. Historic Alarm Viewer
d. All of the above
e. Both A and B
f. Both A and C
g. Both B and C
h. None of the above
2. Which database type you can use to create and AlarmWorX64 configuration
database? (Circle all that applies).
a. MS SQL 2000
b. MSDE
c. MS SQL 2005
d. MS SQL 2005 Express
e. Oracle
f. MySQL
3. True or False: You can have multiple alarm configurations within a single
configuration database, but you can only run one active configuration at a
time.
4. True or False: Alarm areas is a way to organize your alarms into logical
folders that represent your alarm locations or structure.
For the rest of the questions, choose one of the answers below for the questions:
a. Digital
b. Limit
c. Rate of change
d. Deviation
5. If you want an alarm to trigger when a sensor’s readings are changing too
quickly, which type of alarm would you configure?
6. If you want to make sure a door or valve is closed under certain conditions,
which type of alarm would you configure?
8. If you want the levels of two reservoirs to remain relatively equal, which type
of alarm would you configure?
AlarmWorX64 Viewer 4
4.1 Objectives
By the end of this chapter, you will be familiar with the following:
The viewer connects to OPC UA servers and the legacy OPC AE servers,
providing alarm display and management features based on the connections to the
data source that you specify. In AlarmWorX64 Server, you control how often a
client can access the server for data (polling rate); in the AlarmWorX64 Viewer
you determine:
You can add an alarm viewer inside the Workbench application or you can drop
the AlarmWorX64 control onto a GraphWorX64 design surface. You can also
insert the AlarmWorX64 Viewer into any .NET Framework form.
If you like, you can display alarms in a chart, like the one shown in Figure 4.2,
which provides a summary or aggregate view of alarms organized by the criteria
you specify.
Each AlarmWorx64 Viewer can have multiple tabs and each tab can be connected
to multiple grids and charts, aas shown in Figure 4.2.
Adding a chart is like adding a grid, but with fewer options. The chart properties
are shown in Figure 4.6.. Because they are similar, and because grids offer many
more options, the remainder of this section will describe AlarmWorX64 Viewer
using grids as an example. But keep in mind that grids and charts are configured
in much the same way.
4.3.3 Adding an A
Alarm Subscription
The AlarmWorX64 Viewer gets alarm updates from real--time alarms by
connecting to an alarm server
server, which is the source of our alarms.. To configure the
alarm source, click on the grid or chart object in the tree control. As a result, the
Source tab,, as shown in Figure 4.7, displays in the properties section of the
configurator.
Then select the OPC servers that you want to subscribe to in the Edit Event
Points section. Click on the Add button in the Edit Event Points section to
bring up the Data Browser as shown in Figure 4.8.
NOTE: You can also browse for a historical alarm that will replay a timeframe
of your choosing. If you select the Historical option, you will also need to
specify the time range for the data to be replayed
Once you have added a subscription, you will see it in the Add/Remove Event
Points section. You can then select the subscription and click on the Edit
button to change it.
Figure 4.9 illustrates the subscription editor. In this editor, you can change the
name of the subscription, change the AE server that you have subscribed to and
even add a server
erver side filter to limit the amount of alarms that the alarm server
will give to the client.
You can repeat the steps to add as many subscription as you need in the
subscription list. The list is automatically saved each time you add a server
endpoint. Once you have a subscription list, you can use it anywhere inside this
instance
stance of the control.
• runtime
untime features
• tooltips
• alarm
larm acknowledgement controls, including whether comments are
required
equired when an operator acknowledges an alarm
• the
he number of events to display in the grid (for performance purposes)
In the Runtime and Alarms section, you have options that allow you to configure
what a user is allowed to do while the viewer is in runtime. In this section, you
can also create client side filters. This may help you limit the alarms shown in the
grid to those that have higher priority or thos
thosee within a certain area, making it
easier to find a particular alarm.
You can also enable tooltips for alarms. Remember that you can create help text
in the alarm server. You can enable tooltips that displays the help text configured
in the alarm server to guide the operator on steps to follow when an alarm occurs.
A status indicator consists of a set of icons you configure for the indicator, such as:
a set of arrows, flags, faces, symbols, and anything else you want.
want During runtime,
these icons swap in and out to give the operator an indication of an alarm’s state.
For example, as an alarm becomes more severe, the display shows a red arrow. As
the alarm becomes less severe, the arrow displays first a yellow arrow and then a
green one.
As shown in Figure 4.12,, each status indicator consists of a set of filters that
define the levels of severity. Each filter is assigned its own image (that is, an icon
from the selected dictionary) and a Show Value checkbox which, when checked,
shows the original value of the cell together with the image.
You can define different images to display using different conditions. You can
define a condition by clicking on a cell in the Alarm Conditions column. This
brings up the Configure Filter dialog as shown in Figure 4.13.. In here, you can
define the conditions required to display the indicator. When you are defining a
condition for a status indicator, keep in mind that you can use any alarm attribute.
For example, one filter could be Severity > 100 AND Tag = ‘Temperature’.
‘Temperature’ In
this case, the filter’s image will display for any alarm whose severity is higher
than 100 and whose alarm tag name is ‘Temperature’.
Once you have created a status indicator, you can go to the Column tab, as shown
in Figure 4.14, to apply the status indicator to any column.
The result is shown in Figure 4.15.. The images are applied to the cells of the
column when the condition is true for the whole row.
Also in the Column tab, you can edit the title, the width, and the status indicator.
When you are done editing, be sure the click on the Apply button to update the
grid. If you are not sure of what to do at any point, you can mouse over the
information icon to get some help.
By default, there is one group range configured in the grid called “Range By
Security”. The items in this grouping range comprise of filters that determines the
severity of the alarms. We have created five different filters for alarms with
different severity
ty ranges to accommodate the different needs.
To create your own group range, you can type the name of the range in the Create
or Select a Range text box, and click on the Add button. In the new Criteria
List section, click in the Alarm Conditions’ colum
columnn to bring up the Configure
Filter dialog. You can use this dialog to create your filter. In the Caption column,
you can give a descriptive name for this filter. Add as many filters as you need in
the filter group.
To apply your Group range, you will need to go to the Groping Tab, which we
will discuss next.
It is possible to create groups on more than one column. Grouping applies from
the top down of the Column to Group list. For example, in Figure 4.18, it will first
group by the Source Name of the alarm, then by the Time/Date, and lastly by the
Event ID. You can change the order of the grouping by clicking on the up or
down arrows.
Once you decide on which Columns to group, you need to decide how to group
the column. In the Grouping Type section, you can choose how to group the
columns.. For Example, in Figure 4.18,, we are grouping the SourceName column
by identical value (which, is a default grouping type). You can also select other
grouping types. The Grouping types come from the Range Group. Therefore, by
default, you have two grouping types: By Identical Value and Range By Security.
A condition is made up of a filter and a visual style. In runtime, if the filter is true
for a row, then the related visual style is applied to the row. You can create as
many conditions as you have filters and visual styles. You choose what the values
are, what the condition level is named, and how alarms are displayed in the grid
object at runtime.
You
ou can select a list of conditions or create a new list of conditions. Once you
select a condition, the Visual Styles Management section lists the different
conditions. If you create a new condition list, this section will be empty.
Clicking on a cell in the Visual Styles column brings up the Configure Styles
dialog. There are two tabs in here: the Alarm Con
Condition
dition tab and the Visual Style
tab. We will not discuss the Alarm Condition tab here for it looks exactly like
Figure 4.13.
If you right-click
click on the alarm viewer in runtime, you will get a menu similar to
Figure 4.21.. Depending on your alarm subscription: real
real-time
time alarms or historical
alarms, different options may be disabled.
At a basic level, you can acknowledge alarms, sort columns, filter data if the grid
is displaying real
real-time
time data. If you are viewing historical data, you may have
options to refresh the data, create a condense alarm report or a detail alarm report,
change the time range of the data showing.
This toolbar, shown in Figure 4.22,, can be free floating or dock within the alarm
viewer. The toolbar gives many options such as sorting and filtering alarms like
the right-click
click menu.
• icTonicsAlarmServerConfig database
1. Open the Workbench if you closed it from the previous lab and
a select the
AlarmWorX64 from the project explorer.
2. Create a new alarm view. You can do this either from the Ribbon or by right-
right
clicking on something in the project explorer.
3. Your ribbon now should load the AlarmWorX64 Configuration. Click on the
Configuree Viewer section.
4. You should now have a popup window that looks like Figure L4.1.
L
6. Select the “Local Alarm Server” in the Edit Event Points section and click on
the edit button.
8. Click on OK to close the “Local Alarm Server” dialog and click OK one more
time to close the “Configure your Control” Dialog.
2. You should now see the GraphWorx64 Ribbon. Save the display in
C:\GENESIS64Training and name the display icTonicsAlarms.gdfx. You
should save your work as you progress through the lab.
3. Select the Controls tab; click on the AlarmWorX64 Viewer, then in the
GraphWorX64 workspace. You should now see the AlarmWorX64 viewer on
your display. You can resize the viewer as desired.
5. Click on Grid in the left-hand pane. Click inside the text box next to the
grayed out plus sign in the Create/Remove Subscriptions section and type in
“icTonicsAlarms”. The button with the plus sign to the left should now be
enabled, click on it to add the subscription.
6. Notice that the Local Alarm Server event point is already inside this
subscription.
7. Select the Appearance tab, and in the Grid Style section, select the Glass style.
8. Go to the Column tab, and move the Message field just below the
OriginalSource field. You can do this by selecting the message field row, then
click on the up arrow to the upper left-hand corner.
10. Uncheck the SubConditionName and Quality field. Your Column tab should
look similar to Figure L4.2.
11. Click on the Conditions tab. Noticed that there are preconfigured condition in
here. The conditions are applied in the top
top-down
down order. We will add a new
condition for alarms with priority 900 and higher.
12. Click on the bank alarm condition to bring up the Configure Styles dialog.
Give the Filter name ““SeverityBelow900”.
13. Click
ick on the green plus sign, the Edit Filter Element section should now be
available.
14. Change the Filter Field to Severity, the Filter Operator to <=, and the Filter
Value to 900.
15. Click on the green plus sign button, the Edit Filter Element section should
become
come available. Once done, you can click on the green check mark button.
16. Go to the Visual Style Tab and give this style the name ““SeverityBelow900
SeverityBelow900”
as well.
17. Change the text color to yellow and the background color to a gradient (You
can pick your own color
colors).
18. Click on the Blinking button, and set the color to flash to; you can pick your
own colors here as well.
19. Change the Blink action to Very Slow. Click on OK to close out of the
configure style dialog.
20. Move the new condition that you have just created to tthe
he one below the
SeverityBelow800.
22. Go into runtime and noticed that you already have two alarms.
23. Double-click
click on the viewer to bring up the toolbar. Click on the Filter Data
button. We will now apply a filter to view the Tank level alarms only.
24. Chang the Filter Name to “Tank Levels” in the Configure Filter dialog.
25. In the Filter Field, select OriginalSource, set the filter Operator to “Like” and
type in the Filter Value “Level”.
26. Click on the green check mark when you are done. Your finished filter should
look similar to Figure L4.3.
27. Since you have applied a filter, you should only see one alarm on the display
now.
28. Now change the value of the TankLevel tag to 95 (you can do this with any
an
OPC client) and see that the alarm is blinking with the condition you have
created previously.
AlarmWorX64 Viewer
R4
Review
4.1 Objectives Review
You should now know and understand the following topics:
4.2 Summary
The AlarmWorX64 Viewer is client application that provides real-time and
historical alarm information within the GENESIS64 product family. The viewer
connects to OPC UA and OPC AE servers to provide alarm display and
management features based on the connections to the data source that you specify.
In the AlarmWorX64 Viewer, you determine which alarms display, what the
display looks like, and how alarms are grouped and sorted.
The viewer can be used inside the Workbench application or you can drop the
AlarmWorX64 control onto a GraphWorX64 design surface. The viewer comes
with much personalization tools in configuration mode for you to setup how
alarms appear based on conditions, Groupings, and Status indicators. In runtime
mode, you have a limited set of tools that allows you to turn on filters, sort alarms,
and acknowledge alarms, as well as other options by using either the runtime
right-click menu or the runtime toolbar.
4.3 Terms
Alarm Filter Alarm Indication Dictionary Alarm Subscription
AlarmWorX64 Viewer KPI
a. OPC UA servers
b. OPC AE servers
c. OPC DA servers
d. All of the above
e. A and B
f. A and C
g. B and C
h. None of the above
a. GraphWorX64
b. Alarm Container
c. AlarmWorX64 in the Workbench
d. All of the above
e. A and B
f. A and C
g. B and C
h. None of the above
4. True or False: The AlarmWorX64 Viewer can display only real-time alarms.
5. True or False: You can add client-side filters in the alarm viewer to limit the
alarms that displays.
AlarmWorX64 Logger 5
5.1 Objectives
After completing this chapter, you should know how to:
Once the AlarmWorX64 Logger configuration opens,, you should see an interface
similar to Figure 55.2.
The familiar Database Wizard will come up and guide you through the steps of
creating your new alarm logger database. During setup of your new configuration
database, there iss an option in the wizard that allows you to include sample data.
This option is checked by default. If you wish to exclude examples from this
configuration database, uncheck the option before proceeding with the database
creation.
5.4.1 Configurations
The configuration
guration database can host many logging configurations. The logging
configuration stores information such as the database connection to store the
alarm and event data and the subscription to the OPC AE server.
There are three tabs that are available here: Types, Categories, and Attributes.
Attri The
Types tab allows you to choose or filter the event types and severity range of the
alarms and events
events. The Categories and Attributes tabs allow you to subscribe to
custom categories and to pick the attributes that you want logged. A general rule
in the Categories tab is that if nothing is in the subscribed section, you will be
subscribed to the available categories. However, if you add any categories to the
subscribed side, then you will only receive alarms and event in those subscribed
categories.
You can start typing in the Alarm Filter box to use the Advanced Expression
engine. Or you can click on the Edit Filter button to use a Filter Wizard or the
Expression Editor
Editor.
If you want data logged to a different database, you will first need to uncheck the
Use Configuration Database for Logging checkbox and configure the database
connection by clicking on the Change Connection button. This opens the OLE
DB Connection dialog box as shown in Figure 5.8,, where you simply select the
OLE DB Provider you want to use, its location, and the database to which the
alarms will be logged. When this is done, click OK to automatically populate the
necessary
ssary fields on the OLE DB Provider and Data Source.
If the active table’s size is restricted, all incoming data continues to be logged to
the active table, but the oldest data that exceeds the restriction will be moved from
the active table into an archive table. Archive tables can also have a maximum
size determined by either a number of records or a time interval. When one
archive table is full, data will be logged to the next archive table. When all
archive tables are full, the oldest archive records will be replaced by the newer
information. Thehe name of each archive table is the name of the active table
followed by the date and time of the first alarm in the table. With this system, the
active table always has the most recent alarm data.
During runtime, the Alarm Logger will create the active table if it does not exist
and will add any columns to the table if they are missing. The Logger will not
create any indexes. Use a database administration tool to add indexes to columns
that are searched and/or sorted by queries.
NOTE: You can print incoming alarm and event messages to a printer in
addition to storing them to a database. For configuring the printer setup, see the
“Printer Logging” tab. For additional details
details, please refer to the AlarmWorX64
documentation.
In this interface, you can specify the name of the column, which will become the
column
lumn name in the logging table. You can also choose the alarm attribute
available in the Types field.
In the Printer Logging section, you can specify the width, line number, start
position, and if line wrapping is allowed. This allows you to configure how the
printer alarms looks on paper.
You can add a node, by right-clicking on Nodes and then select Node from the
pop-up menu, as shown in Figure 5.11.
A new Node tab appears. Type the Computer name for the computer you want to
use the configuration on (which in most cases is your local computer name) and
then click on Apply
Apply.
Note that when working locally on your GENESIS64 server, instead of specifying
the name of the actual machine, you can use the neutral node name “anonymous”
to run one or more alarm logger configurations on the local GENESIS64 node.
• icTonicsAlarmServerConfig database
• icTonicsAlarms.gdfx
2. Right-click
click on localhost and select “New Database…” to bring up the SQL
Create Database Wizard. Click on “Next” to get to the common database
options window.
5. Also, expand Nodes localhost and noticed that the two sample
configurations are associated to the local compute
computer already.
6. Right-click
click on “Alarms” under Configurations and select “Edit on New Tab”
This will open the configuration options for this logger configuration on the
right-hand
hand pane.
7. Notice that there is already a subscription connected to the local alarm server.
ser
Change the configuration name to “icTonicsAlarms”.
9. Uncheck the option to “use configuration database for logging” and click on
the “Change Connection…” button.
11. Click on OK to close the dialog and click on the “Table(s) Management”
section.
12. You can leave the Table Name as “AlarmLog”. Check the Max Interval in the
Active Table section and change the interval to 1 Day(s).
13. Check the Max Interval in the Archive Table section and change the interval
to 7 Day(s). This configuration will allow us to keep only one day’s
day record in
the active logging table, but archive seven day alarm record into one table.
Your Tables Management Section should look similar to Figure L5.2 L when
you are done.
1. Open the icTonicsAlarms.gdfx display that you have created in the previous
lab.
3. Select Tab, and change the Title Text to “Real Time Alarms”
5. Select the new tab and change the Title text to “Historical Alarms”. Notice
that there is already a grid under this tab.
6. Select Grid1, we are going to set up this grid similar to the one that you’ve
setup in the previous lab.
7. In the textbox next to the grayed out plus sign button, enter the text
“icTonicsHistoricalAlarms”
8. Notice that the two radio buttons to the right of the textbox is now available.
Select Historical and then click on the green plus sign button to add the
configuration.
9. Notice that the Local Logging Server is already in the Edit Event Points
section. Click on Edit to go into the subscription properties.
10. Click on the “…” button next to the OPC UA Point textbox to bring up the
OPC UA browser.
12. Change the name of the Event Point to “Local Alarm Logger” and click on
OK.
14. Your Source tab should look similar to Figure L5.4 when you are
ar done.
15. Select the Columns tab and uncheck the Severity, SubCondition, and Quality
columns. Click on OK at the bottom to exit the configuration dialog.
16. Go into runtime. You may get a message saying that there is no historical
alarm for the time range. That is OK, there were probably no alarms triggered
since we started logging alarms.
17. Trigger a new alarm by changing the tag values (you can do this with any
OPC client).
ient). See that there are alarms in the Historical Alarms tab of the
viewer.
AlarmWorX64 Logger
R5
Review
5.1 Objectives Review
You should now know and understand the following topics:
5.2 Summary
The AlarmWorX64 Logger provides a permanent copy (database storage or
printed copy) of alarm and event notifications produced by any OPC AE servers.
AlarmWorX64 Logger subscribes to OPC AE server and then store the
information in a database. You can configure the AlarmWorX64 Logger within
the GENESIS64 Workbench.
There are two types of filters: server-side and client-side. The server-side filter
sorts alarm data coming from the alarm server into the logger, and the client-side
filter filters data coming from the logger into the database.
The subscription to the alarm server ensures that the logger receives any alarm
triggered in the alarm server. The received alarm is then logged into the
destination database specified in the configuration settings. The database itself
can be the configuration database for the AlarmWorX64 Logger (default) or any
other MS SQL Database.
You can also have multiple configurations in the same machine and use those
configurations for multiple machines by configuring the nodes. After creating
some configurations that you would like to use, you can add nodes and link them
to the configurations that you have. You can also link the same configurations to
different machines or link multiple configurations to the same machine. This is
very useful because if you have different subscriptions to different alarm (and/or
event) servers but would like to log it to one machine, you will be able to do that
as well.
5.3 Terms
Alarm Logger Columns Alarm Logger Configuration Alarm Logger Node
AlarmWorX64 Logger Server Side Filtering Client Side Filtering
3. If you want to keep data for a year and store each month’s data in a new table,
what do you need to do?
a. A database
b. A printer
c. A fax
d. An Email
e. All of the above
f. Both A and B
g. Both C and D
h. None of the above
TrendWorX64 Logger 6
6.1 Objectives
After completing this chapter, you should be familiar with:
Figure 6.1 shows a diagram of how TrendWorX64 fits in with the GENESIS64
product family.
The database creation wizard will come up and assist you through creating the
configuration
nfiguration database. During this setup, you will get a choice to include sample
data. This option is by default selected. If you do not want to include sample data,
you can uncheck this option before creating the configuration database.
Once you complete the steps in the wizard, you will ll see the database in the
Project Explorer, with the database’s configuration below it in the tree (if you
include sample data)
data).
Only one configuration per computer can be active at any given time; you must
make the database active to use its configuration. To make the configuration
database active, right
right-click on it in the Project Explorer and select Make Active
from the popup
up menu.
To create a database group, you can right-click on the database configuration, and
then select Database Group
Group.. The Database Group configurator appears with the th
When creating a database group, enter a name, then on the Database Connection
tab, click on the Change Connection button to open the Change Connection
dialog. Enter the connection information for the primary data source, and then
click on the OK button.
Not only does a logging group serve as a folder for tags, it also holds important
settings for those tags. With these settings, you can:
• Control data collection rates and refresh rates for the tags,
• Automate data collection by specifying the time spans when you want data
to be collected from the logging group’s tags,
• Indicate when you want the collected data to be logged (that is, stored) in
the database,
• And manage the database tables that contain the logged data.
Use the Enable Data Refresh checkbox to refresh the data used for historical
trend logging. This opti
option
on makes a request to read (refresh) data to get an updated
sample timestamp with the most recent value. The Refresh Interval must be
longer than the data collection rate; this longer interval is necessary for getting
responsive historical replay performan
performance.
Force Interval Logging uses the TrendWorX64 Logger to force logging even
when there is no change in data. Because OPC is change based, if values do not
change between collection intervals, the OPC server may not send update to the
trend server, causing no logged data. This option allows the server to actively poll
data from the OPC server instead, making sure that there are data to log into the
database even if there is no change in the tag’s value.. Having this type of data
may be important to you later when you are tracking down values for critical OPC
points.
NOTE: this
his tab dictates times for data collection only. Collected data held in
memory is logged to disk in accordance with options on the Logging tab.
In automating start and stop times for data collection, you can:
• Start
tart data collection immediately when the logger starts up by selecting
On Start
• Define
efine the exact time at which you want data collection to start oro stop
each day by selecting On Time
• Specify
pecify a length of time after which you want data collection to start after
stopping, or stop after starting, by selecting On Interval
• Create
reate a Boolean expression that evaluates to a True or False to define the
start or stop of data collection, in which case you select On Condition.
Condition
You can use more than one of these options for starting data collection as well as
for stopping it. You can also use different methods for starting than you use for
stopping;
pping; for example, you can start every day at 8:00 AM ((OnOn Time)
Time and stop
when a key piece of equipment shut
shuts off (On Condition).
The On Time option lets you specify the exact time at which data is to be logged
each day. All data in memory at that time will be logged. With On Interval,
Interval you
can specify the interval at which data logging occurs (for example, every 30
minutes). With On Condition, you can enter a Boolean expression that causes
data to be logged when it become true. Finally, with On Records,
Records each tag’s data
will be logged when the specified number of records has been collected.
collected This last
option gives you some control over the number of records being held in memory.
• Faster access to trend data: Trend clients can be configured in a way that
they can retrieve data from the most
most-recently-created
created tables, while the
other tables are maintained for reporting and comparison to the data in the
most-recently
recently-created table.
• Database Optimiza
Optimization: Although historical information is retrieved by
combining information from various historical tables, the ability to store
data in multiple sequential tables optimizes performance by removing
older, unneeded tables.
• Improved Load Balancing
Balancing: It also helps
elps in designing a configuration for
system load balancing, as you can write tables to different SQL servers.
By controlling the size of each table, you avoid creating extremely large
tables that may degrade overall performance. To accelerate data retrieval,
retriev
SQL Server creates the necessary database schema to maintain updated
information with respect to the time interval at which each table logs data.
Use the Table Management tab tab, shown in Figure 6.8, to specify the number of
tables in the database and when to create a new table.
The Number of Tables field determines the maximum number of tables that will
be created (the
the maximum is 3,000). When that number of tables is reached and
filled, the oldest table will be overwritten with most recent data, giving you the
ability to manage the capacity of the hard drive by limiting the number
nu of tables
in the database. You should also enter a Startup Table number to tell the logger
You must also set the conditions to create a new table. To create a new table
every time data logging starts operation, use Any Time Logging Starts.
Starts To create
a new
ew table at a set time, use On Time.. To create new tables at a predetermined
interval, such as every 5 days, use On Interval.. To create a new table whenever a
Boolean expression that you have created evaluates to true, use On Condition.
Condition
Each tag is made up of a data source and the attributes or fields that are collected
by that data source. You ha have
ve control over the attributes and fields that are
collected,
lected, but the path to the OPC UA or OPC DA tag is fixed to reference the
particular tag of interest. In building the tag path,, which is referred to as the signal
name,, you can use global and language aliasing to make it easier to create and
work with tags. With this in mind, enter the Signal Name and a description of the
tag.
You must also specify which collected samples you want to log to disk. You can
log all samples or select a subset from the Log to Disk dropdown list. A number
of additional options are also available for limiting the data that is logged.
The online help for TrendWorX64 Logger provides a good explanation of these
options; you can navigate to the “Tags” online help topic by clicking on Help,
then from the help’s Content tab navigate to Reference Guide TrendWorX64
TrendWorX64 Logger Tags.
Lab: TrendWorX64
6
Logger
6.1 Lab Overview
Many companies want to log plant floor data for analysis and icTonics is no
different. They have requested us to setup a logging mechanism that allows them
to look at older data and analyze it in the future.
1. Open the Workbench if you have closed it since the previous lab and select
TrendWorX64 Logger in the Project Explorer
2. In the Edit section of the Ribbon, click on the down arrow of the Database
button and select “New Database…”
3. The Create Database Wizard should come up. Click on Next to get to the
Database option screen
5. You should see your configuration in the Project Explorer. Expand the
icTonicsTrendConfig Configurations. You should have a blank
configurationn now.
6. Right-click
click on Configuration and select Add Database Group
7. A new tab should open with configuration properties for the new database
group. Name this database gro
group “icTonicsTrends”.
9. Leave the OLE DB Provider as Microsoft SQL Server 2005. Change the
Server name to (local) and select icTonicsTrendData as the database.
da The
Finished configuration should look similar to Figure L6.2.
10. Click on the “Test Connection” button to make sure it connects to the
database successfully, and then click on the “OK” button to close out of this
dialog.
11. Click on Apply to save the changes. You may get a message telling you that
changes will not take effect until the logger restarts, just click OK on the
message to close it.
12. Right-click
click on the icTonicsTrend database group and select Add Logging
Group.
13. A new tab should open with logging group properties. Name this logging
group “Tank Levels”
15. Since our data doesn’t change very often at the moment, let’s check the Force
Interval Logging checkbox in the Other Settings section. Your finished
configuration shou
should look similar to Figure L6.4.
16. Click on Apply to save the changes and select the Logging tab.
17. Uncheck the On Records option. We will leave the default logging condition
at On Interval every 30 seconds.
19. Click on Apply to save the configuration. We will now add the tags to log the
data.
20. Right-click
click on Tank Levels and select Tag; a new tab should open with tag
properties.
21. Name this tag “Tank1 Level”. Click on the “…” button next to the signal
name to bring up the Data Browser.
23. We can leave everything else as default for the tag configuration. Click
Cli on
Apply to save the changes. Your finished tag configuration should look
similar to Figure L
L6.7.
24. Remember to make the configuration database active and start data logging by
clicking on the traffic light.
ICONICS, Inc L6-5
Lab 6: TrendWorX64 Logger GENESIS64 Core Training Manual
4. In the OPC UA tab, click on the “…” button. In the Data Browser that comes
up, select Historical Data on the left
left-hand side.
6. Noticed that the Use DA connection option is now grayed out. Your finished
Data Browser should look similar to Figure L6.8.. Click on OK to close it.
7. Click on OK in the configuration dialog. You can save the display if you wish.
8. You can now go into runtime and see your trend. Feel free to change the
values of the Tank1 Level tag a few times to see the value change on your
graph.
TrendWorX64 Logger
R6
Review
6.1 Objectives Review
You should now know and understand the following topics:
6.2 Summary
TrendWorX64 Logger handles data logging and data retrieval among multiple
types of databases. The logger collects data from OPC UA and OPC DA real-time
data source and sends that data to an SQL server database such as Microsoft SQL
Server 2005 or SQL Server 2005 Express Edition.
You can control various aspects of the TrendWorX64 Logger's behavior from
within a set of configuration forms in the Workbench. Using these forms, you can
select the database that TrendWorX64 Logger uses, create new databases, modify
databases, and create and store configuration(s) that support your trending
displays.
By creating database groups, you identify the primary data sources and can
configure redundant databases. Each database group acts as the physical
connection to the database, and it manages data updates and logging activities for
one or more logging groups.
Tags contain the data that you are collecting and logging. Tag data is collected
into memory and then stored in the active database table during logging.
To organize the various types of tags that collect data, you can create as many
logging groups as you need for each database group. A logging group serves as a
folder for tags, and it holds tag settings that control data collection rates and
refreshes, that determine the times at which data will be collected, the rate at
which collected data will be logged in the database, and manages the database
tables that contain the logged data.
6.3 Terms
Database Group Logging Group Signal Name
TrendWorX64 Configuration TrendWorX64 Logger
1. Where do you define the database in which you want to log data?
3. What must you do to set up redundancy for the data you are storing?
5. Which of the following statements are true when configuring a logging group
to start data collection?
a. No options are available; data collection always starts when the logger
service starts and always stops when the logger service stops.
b. Data collection can be configured to start at the same time each day
c. Data collection can be configured to occur when a Boolean expression
evaluates to true
d. You can specify how soon you want data collection to start after stopping,
or stop after starting
e. There is no option that stops data collection
f. All above
g. B, C, and D
h. None of the above
6. Which of the following statements are true when configuring a logging group
for data logging?
a. Logging can be configured to log data at the same time each day
b. Logging can be configured to occur when a Boolean expression evaluates
to True
c. You can specify a time interval for logging data
d. Logging can be configured to log data after a certain number of records
have been collected
e. All above
f. B, C, and D
g. None of the above
TrendWorX64 Viewer 7
7.1 Objectives
By the end of this chapter, you will be familiar with the following concepts:
7.2 Introduction
The ICONICS TrendWorX64 Viewer, shown in Figure 7.1, is a client application
that provides real-time and historical data trend displays within the GENESIS64
product family. The viewer communicates to OPC UA, OPC DA, OPC UA HDA,
and OPC DA servers to provide trend displays based on the connections to the
data source that you specify.
• 3D Visualization
• Side panel
• Multiple tabs
• Pen Groups
• Plot supports swapping Y/X Axis
• Summary Buffer View
NOTE: Not all of these configuration options are within the scope of this class.
For more information about TrendWorX64 Viewer Properties, please refer to
the TrendWorX64 Viewer Help documentation.
• Control
• Header
• Title
• Subtitle
The most important function from this tab is the Initial Position and Show Side
Panel options.
The Initial Position function allows you to choose an initial position for the
toolbar at the locations of top, bottom, right, left, float, or hidden. Notice that the
toolbar appears only in Runtime or Freeze mode. If the toolbar is hidden, double
click on the display to show the toolbar.
Show Side Panel checkbox toggles the display of the Side panel on the position
you specify, but this needs to be preconfigured in Side Panel first.
If you have the Side Panel enabled, you additionally want to create a separate tab
with different settings by right clicking on TrendWorX64 Viewer Add
Tab.
NOTE: If you want to apply the changes to all tabs, you can select the right tab
you want to use as a template for the rest of the tabs and simply click on “Apply
To All Tabs” and these changes will be applied to all tabs.
7.6 Tabs
TrendWorX64 Viewer allows you to create multiple tabs, which are visible in
Configuration mode as well as in Runtime. You can add a new tab by clicking on
the Add button at the bottom of the control’s configuration dialog or right-click
right
on the TrendWorX64Viewer in the tree ccontrol and select Add Tab.
At times, you may want to copy a configured tab and edit a few options to create a
new graph. In this case, you can use the copy paste options or you may also
duplicate an item by selecting the Multiply option in the tree control.
cont Figure 7.3
illustrates that a TrendWorX64 Viewer with multiple tabs and side panel. Using
these two features, a user can easily switch between gra
graphs
phs and gain access the
certain plots quickly and easily.
• General
• Time & Rate
• Charts Elements
• Advanced
NOTE: you can add the specific plot type by clicking on Add button under the
Chart object.
• Appearance
• Runtime Cursor
• Legend
• Summary Buffer View
The most important function from General tab is the checkbox Use 3D
Visualization which enables the trend changes to reflect a third dimension. Figure
7.5 shows an example of 3D Chart View.
The Legend checkbox in General tab allows you to show or hide the legend in
both runtime and configuration mode. When you enable or disable the Header,
Tooltips, Pen Styles, and Millisecond checkboxes, you display or hide
hid these
features in the legend.
NOTE: For more inf information about options available on the General tab,
tab
please refer to the TrendWorX32 Viewer Help documentation.
• Trend Period
Period:: describes the duration of the interval shown in the Chart
object display.
• Summary Period
Period: is the amount of data stored in the data buffer and that
can be displayed in Freeze mode in the Summary window.
• Use UTC date/time stamps: If this option is checked, all time stamps
stored in the database will be stored as UTC time stamps. This is to
The Display Refresh Rate controls the speed at which the signal curves will be
drawn. If, for example, the Data-Collection Rate is set to 250 ms and the Display
Refresh Rate is set to 1 sec, the samples will be collected at 250 ms, but the
signal curve will be updated every second without loss of data. This is a great
option to minimize system-resource use.
The History Refresh Rate controls the frequency at which the historical pens
will be refreshed with new historical data from the TrendWorX64 historical
database. This can be used as an optimization and load-balancing tool. For
example, if the TrendWorX64 Logger is configured to log to the database every
minute, then the History Refresh Rate should match this rate.
You can set the following properties on the Chart Elements tab:
• Line
• Area
• Bars
• Pie
The opacity of the chart can be changed in this section, which allows you to set a
value from 0, where the plot is transparent, up to 100, where the plot has a solid
background withh transparency at all.
When configuring a pen, you options Use DA Connection and Use HDA
connections are automatically set based on the tag you browse to; freeing you
from worrying about these options. T The Filter option in this dialog can be used in
Viewer to filter the samples logged into the logging database.
Trend Pens can be configured in details by clicking on the Pen name, name which
contains two tabs
tabs, General and Advanced, where a pen’s appearance can be
modified using Stroke and Fill Color parameters. A pen also provides a variety of
additional options like Range
Range, which can be read directly from the server
ser or
automatically scaled as shown in Figure 7.10. You can also setup a fixed range for
any pen.
Some options, such as Slider and Previous/Next Page, Zoom Trend,Trend Set Right
Time,, and Buffer Summary are on
only
ly available when the viewer is in Freeze mode.
Edit Pens opens the chart’s Properties dialog, allowing you to modify your pens.
Your changes are reflected in the chart during runtime when you are done
configuring and closes the dialog.
The Edit Trend button opens the Edit Trend dialog box as shown in Figure 7.12.
In this dialog, you can set the tick line colors and display major, minor, or no tick
lines, as well as configure Fill Style to Horizontal or Vertical Stripes settings.
Clicking on the Edit Period and Rates button opens Edit Period and Rates
dialog box as shown on the Figure 7.13.
Show/Hide Axes button shows or hides the X- and Y- axis, giving your chart
more room to display.
Swap Y/X Axes button allows you to switch the X-axis axis with the Y-axis,
Y which
can make visualization of the chart easier in some instances.
Clicking on the Zoom button and dragging a rectangle on the part of the chart
allows you to zoom in on the selected part of the cha
chart.
rt. The viewer resets the
trend period to the boundaries of your selection.
Clicking the Set Right Time button opens the Set Right Time dialog, shown in
Figure 7.14. This dialog, allows you to enter the time at the end (on the right hand
side) of the viewer.
• Visible
• Colors
• Name
• Tag
Buffer Summary View is a powerful feature located cated at the bottom of the
TrendWorX64 Viewer, which can be visible only in Freeze mode by clicking on
the arrow pointing upwards. The Buffer Summary pane is meant to give you a
method for viewing the entire data collected while moving your detailed view
through
hrough time. The Figure 7.16 shows how the data buffer can be manipulated so
that the data being viewed can be moved over time.
You can add the TrendWorX64 Viewer control into the GrapWorX64 display by
clicking on the Controls tab of the GraphWorX64 ribbon and then clicking on the
TrendWorX64 Viewer control button as shown in Figure 7.17. Alternatively, you
can click on the Toolbox and select the TrendWorX64 Viewer control within the
toolbox.
Then the initial Trend Viewer Area can be drawn by clicking and dragging the
cross hair until you have the desired control size. The TrendWorX64 Viewer
control appears, as shown in Figure 7.18, with its selection handles visible.
NOTE: The control can be resized using the handles modifying either the
horizontal or vertical dimension; or by using the corner handles resizing both
dimensions while retaining the same aspect ratio. In configuration, the viewer is
simply a graphic and does no
nott indicate the data from the data sources.
• icTonicsTrendConfig
3. Insert a TrendWorX64 Viewer onto the design surface by going to the Control
tab of the ribbon, selecting TrendWorX64 Viewer in the Controls section,
then click in the design surface.
5. This is the same dialog that you saw in the previous lab. Click on Tab and
change the Title to “icTonics Trends”
7. Click on “New Pen”, in the General tab, click on the “…” button to the right
of the Data source text box.
8. In the Data Browser dialog that comes up, click on the “…” button again.
Browse for the
@ICONICS.OpcUaServerBK\icTonics.Tanks.USA.Foxboro.Tank1.TankLeve
l.Value tag.
9. Click on OK to exit out of the Data Browser and return to your TrendWorX64
Viewer configuration dialog.
11. In the Appearance section, change the Stroke to 3 and the color to Purple.
Your finished pen configuration should look similar to Figure L7.1.
12. Right-click
click on New Plot and sele
select
ct Multiply. In the dialog that comes up,
leave the number of item as 1 and click on the green check button
13. Select the newly created plot, change the plot type to the first one for Area.
Notice that your data source for the pen should be the same.
14. Change the Stroke and fill color to yellow. You are all set for this pen.
16. Select the Time & Rate tab. In the Rates tab, change the Display refresh rater
and data collection rate to 5 seconds and change the History refresh rate to 30
seconds. Note that we’ve set the viewer’s data collection rate to match the
data collection rate of the logger and we’ve matched the History refresh rate
to the data loggin
loggingg rate in the logger. Your finished configuration should look
similar to Figure L
L7.2
17. Repeat the same steps that you took in the previous lab to add in the historical
tag. You can refer to section 6.3 of the lab for more details.
18. Give this pen the description “Tank1 Level”. In the Appearance tab, change
the Stroke too 3 and the fill color to Dark Blue.
19. Select Circle as the marker and click OK to close the configuration dialog.
Your finished historical pen configuration should look similar to Figure L7.3
20. Notice that your historical trend has circles indicating data collection points.
21. Change the Tank1 Level tag a few times. See that your real time trend shows
these changes immediately, but it takes about 30 seconds for the historical
trends to refresh. If you leave the trend running long enough, your curve from
the historical trend should look like your real
real-time trend.
TrendWorX64 Viewer
R7
Review
7.1 Objectives Review
You should now know and understand the following topics:
7.2 Summary
TrendWorX64 Viewer is a client application, which allows the user to display
real-time and historical OPC data. It can be run from ICONICS Workbench or
GraphWorX64 in three modes: Configuration, Runtime and Freeze mode.
The TrendWorX64 Viewer can contain one or more Tabs and a Side panel. A
Tab can contain one or more Charts. A Chart can contain one or more Plots.
And a Plot can contain one or more Pens.
Each of the objects has their own configuration interface. For example, the Chart
configuration can be edited in the following tabs: General, Time and Rate,
Chart elements, and Advanced.
You can change the general appearance of the viewer under the
TrendWorX64Viewer tree control item. In a Chart’s configuration interface,
under the General tab, you can check the “Use 3D Visualization” to show the
chart in 3D. You can also enable the Legend to make the visual analysis easier.
Time and Rate options determine the data collection rate, data display rate, chart
refresh rate, and other factors that determine what needs to be stored in the
TrendWorX64 Viewer data buffer to be displayed. Different Plot types can be
changed under the Plot section. Depending on this plot type, some options may or
may not be available.
Pen configuration handles the signal connection and configuration for the data
display in a trend. You can create multiple Pen Groups, which is in essence a
collection of pens containing the same plot type.
A very powerful feature is Buffer Summary View, which can be visible only in
the freeze mode. It gives the user a possibility for fast and easy long-term data
overview while displaying details in the TrendWorX64 Viewer main view.
7.3 Terms
Data Collection Rate Display Refresh Rate History Refresh Rate
GENESIS64 Controls OPC HDA Pen Group
TrendWorX64 Viewer UTC Time
a. 2 dimensional
b. 3 dimensional
c. Hyper dimensional
d. All of the above
e. Both A and B
f. Both B and C
g. None of the above
a. The Workbench
b. GraphWorX64
c. Hyper Historian
d. All of the above
e. Both A and B
f. Both A and C
g. None of the above
5. True or False: Pen Group is a collection of pens using the same plot type.
a. General
b. Time & Rate
c. Chart elements
d. Advanced
e. All above
f. None of the above
a. Configuration mode
b. Runtime mode
8. True or False: The Swap Y/X Axes button allows you to switch the X-axis
with the Y-axis.
9. Buffer Summary View is a powerful feature which can be visible only in:
a. Runtime mode
b. Configuration mode
c. Freeze mode
d. None of the above
10. True or False: Side Panel allows you to switch between the different types of
charts predefined in TrendWorX64 Viewer.
Getting to Know
8
GraphWorX64
8.1 Objectives
After completing this chapter, you should know how to:
In the upcoming sections and chapters, we will discuss some option residing in
the different tabs of the ribbon, as well as other dialogs and toolbars within the
application.
Figure 8.2, divides the GraphWorX64 interface into five different areas. At the
top, there is the ribbon. In the middle, is the contents area, in which you can create
your graphical interface by adding shapes, process points, controls, etc.
Surrounding the contents area are places where you can dock explorers. The
explorers include Dynamics, Properties, Preferences, Toolbox, Symbols, and
Scripts. Once you dock these explorers, you have the additional option to hide
them when they are not in use.
The Explorer provides a hierarchical outline of the objects that are currently on
the display surface, removing your need to drill down through several levels to get
an object within a grouped object. You can also reorganize objects by dragging
and dropping them inside the Explorer tree.
• the order (Z-order) of objects in the display, which is their sequence from
front to back.
• whether an object is selected or active. Selected objects are highlighted in
blue, while active objects are highlighted in gray.
• if an object has a dynamic action associated with it. Dynamic actions are
underlined.
• whether
hether a user
user-assigned
assigned name has been given to the object. Generic,
default names appear in normal text, while uuser-assigned
assigned names appear in
bold text..
• ann object’s type, using icons for text , rectangles , borders , etc.
• whether
hether an object is visible in the display, and whether it is locked
from being edited .
You can change the size of the icons in the tree by clicking on the Application
Style buttonn in the Misc section on the View tab and selecting Icon Sizes, as
shown in Figure 88.4. Select the size that suits you.
The eye icon indicates that the object is visible in the display. Clicking the
object's Show/Hide property makes it visible or invisible.
In the Properties Explorer, you can configure some options for the display. We
will not describe all properties, because there are too many, but we will cover
some of the most common options.
In the Measurements section, you can configure the size of the display. Figure 8.6
shows the measurement of the display to be 1024 x 768. You can change your
display to be bigger or smaller depending on your preference. You can also set the
display to be scalable or not by turning setting the IsScalable field to true or false.
Another important option is in the Runtime section. You can set the default scan
rate for any process points in the ScanRate field. He default is fifty milliseconds.
You may want to slower this rate to reduce the load on your OPC server.
You do not have to use a layout, but if there is a workspace layout that you prefer,
you can save it and select it any time you wish to use it. You can store any
number of new layouts and choose the layout that suits you at any time while you
are working.
Using the Preferences Explorer,, you can control the default settings of new
objects that you add to a works
workspace.
pace. If you find that you are constantly resetting
an object’s values, consider changing the default preferences for that object.
8.7.1 Templates
One way to control ol a design’s layout is by using a template as a starting point. A
template can include colors, backgrounds, objects, and any .NET controls. A
template can also be used to arrange display panels in prescribed positions in the
contents area, which you can ssaveave and return to later. Typically, templates are
used as tools for enforcing a uniform look
look-and-feel
feel among displays.
Figure 8.13 shows some of the preconfigured templates you can use.
Any GraphWorX64 display can be saved as a template with the .TDFX file
extension. Templates can be saved to the gallery or in a folder of your choice.
Figure 8.14 shows a display without a template and without.
Figure 8.14
14 - Display with No Template (Left) and Display with Template (Right)
8.7.2 Transitions
Transitions are special effects applied to a display as it closes or loses focus when
another display is opened in the same window. The effects work in a similar way
to Microsoft Office PowerPoint presen
presentations.
tations. You can use them to fade the
display out, fade to a blur, or wipe away in any direction or in a rotation motion,
to name just a few of the effects. Experiment with them to see which ones you
like to use.
Before creating a symbol from scratch, look in the Symbols Library for a pre-built
pre
object that you can use instead
instead. Even if you do not see the exact symbol you are
looking for in the library, you can use one as a start
starting
ing point; modify it, then save
the modified version back to the library. Figure .5 shows a handful of the wide
assortment of symbols that are available to you.
Thee Symbols Library has its own explorer in GraphWorX64. To display it, put a
checkmark in the Symbols checkbox in the Show/Hide section in the View tab.
To use a symbol from the library, click and drag the symbol from the Symbols
Among the symbols you can choose from are automotive, building control panels,
gauges, knobs, standard symbols ffor
or various machinery, oil and gas, operator
control panels, pharmaceutical, food processing and manufacturing operations,
water and wastewater operations, and 3D symbols.
You can even add your own folders and symbols to the library. Any animated
object that
at you create, along with any attached scripts, are automatically saved
and categorized for you so that the next time you use the animated object, you can
quickly bind a new data source to the object.
Lab: icTonics
8
Graphical Template
8.1 Lab Overview
In the next few labs, we will create a series of displays for icTonics. These
displays will include a welcoming screen and a tank monitor screen. icTonics has
requested that all displays uses the same banner to keep a uniform look
throughout. That is what we will do in this lab, as well as to generate a welcoming
screen.
• icTonics-logo.png
3. In the Properties Explorer for the display, change the Measurements to 1024 x
768. Your display will now be at this resolution size.
4. Since we want to maximize our design surface area displaying, we’ll change
the view to the Drawing Layout. To do this, select the View tab in the ribbon,
in the Layouts section, select the Drawing Layout.
6. Add a square that fills the top of the screen. This is going to be the basis of
our icTonics banner.
7. Right-click
click on the rectangle and select Object Properties. The Properties
Explorer should expand on the right
right-hand side.
8. Click in the
he Fill area, and then click on the “…” button to bring up the fill
color dialog.
9. Select the Gradient tab. Change the first gradient color to green (RGB: 0, 255,
0) and the last gradient color to sky blue (RGB: 0, 212, 255).
10. Delete one of the gradients in the middle so you only have three gradients.
Change the middle gradient color to cyan (RGB: 0, 255, 170) and click on OK
to apply and close the dialog. Your finished Fill dialog should look similar to
Figure L8.1.
11. Change the line color to none by click on the read x in the Line Color dialog.
12. Change the measurement of the rectangle to 1024 x 93. You should now have
a rectangle that fills across your display. To Place it at the top of the display,
you can either drag it or to be more precise, set the left and top measurements
to zero.
13. Insert the icTonics-logo.png into the display. You can locate this file in the
GENESIS64Training folder and drag the image onto the design surface.
Resize the logo to 283 x 93 and align the lefts and tops of this image to your
rectangle.
14. Insert a Time Date Dynamic by going to the Dynamics tab of the Ribbon, in
the Text Objects section, select Time Date, and then click on the design
surface.
15. Change the properties of the Time Date object so that it has a size of 275 x 31.
Put this in the upper right-hand corner for the square you’ve made.
16. Next, we are going to insert the Backward, Forward, and Home button form
the Symbols library. You can open the symbols library by clicking on the
Symbols tab on the left-hand side of the display screen.
17. Once the library opens, click on the drop-down list and expand Miscellaneous
Buttons And Switches. You can pin down the Symbols library for now for
easier access.
18. Insert the Menu button Back, Menu Button Forward, and Menu Button Home
objects onto the display. We’ll need to make some edits to these objects to
match our color scheme and style.
19. Open your display Explorer, you can pin this down for the time being. You
should notice that you have three objects in bold starting with MenuButton.
These are in bold because they are grouped options.
20. Select the MenuButtonBack object and expand it. Select the “Classic Border”
and delete this. You should notice that we no longer have a background square
for the arrow.
21. Expand the Group, there should be two more groups in the next level. Expand
the second level groups as well.
22. Select the second item in each of the group and delete it. The arrow should no
longer have the shadows.
24. We’ll now change the color for the MenuButtonForward and
MenuButtonBack object.
25. In the MenuButtonBack object, drill down to the properties of the Rectangle
and change the fill color to a Gradient. There is only two colors for this
Gradient a light orange (RGB: 255, 170, 0) and a dark orange (RGB: 255, 127,
0)
27. Repeat steps 25-26 for the Polygon in MenuButtonBack as well as the
Rectangle andd Polygon in MenuButton Forward.
28. Arrange the three symbol objects from left to right starting with
MenuButtonBack, followed by MenuButtonHome, and then
MenuButtonForward.
29. Select all three objects by holding down the shift key and click on each then
click onn the Home tab of the Ribbon, in the Arrange section, select the group
button. You can give this group a name of “Navigations” if you like.
31. We will need to give a display to the MenuHome button so that it knows what
w
to load. Select the MenuButtonHomein the Explorer, and in the Dynamics
toolbar, click on the Pick action.
8.3 icTonics’
cTonics’ Home Display
1. Open a new GraphWorX64 display and save it as icTonicsHome.gdfx
2. Go to the Layouts tab in the Ribbon and click on the down arrow in the
Templates section, and then select “Add Templates to Gallery…”
6. Insert a new
w rectangle. Change the size to 1024 x 675. The top should be at 93
and the left at 0.
7. Change the color of the rectangle to sky blue (RGB: 0, 212, 255) with no
boarder lines.
8. Add a text object by going to the Home tab of the Ribbon, in the Shapes
section, click on the Draw Label button, and then click on the design
surface.
9. Type in the text “Welcome”; we will change the font family to Lucida
Handwriting and the font size to 1100.
11. Open the Symbols library and select the GENESIS64TrainingSymbol. Drag
the Login button to just below the welcome text.
12. Save the display. We will work on this display some more in the upcoming
labs. Your current display should look similar to Figure L8.3.
Getting to Know
R8
GraphWorX64 Review
8.1 Objectives Review
You should now know and understand the following topics:
8.2 Summary
The Object Explorer is a tree control that lists all of the objects currently defined
in the GraphWorX64 display. Because its hierarchical nature and its heavy use of
icons, the Explorer can tell you several things about each object at a glance.
You can preview how your display would look in Runtime mode with Runtime
Preview, which presents the display as if in runtime while retaining configuration
abilities.
Using the template and transition features can save you time and effort, providing
an important quality control feature because you can use them to impose a
consistent look and feel throughout your displays.
The Symbols Library is a set of folders that contain pre-built design objects that
you can incorporate into your displays. Even if you do not see the exact symbol
you are looking for in the library, you can start with a predefined symbol, modify
it, and then save it back to the library for next time use.
8.3 Terms
GraphWorX64 Content Area GaphWorX64 Template Object Explorer
Preferences Explorer Properties Explorer Runtime Preview Mode
Symbol Symbols Library Transition
Z-order
1. Using the Object Explorer, what is an easy way to make an object invisible?
2. How do you add the Explorer to your workspace or remove it from your
workspace?
3. What can you tell about an object or group by looking at it in the Explorer?
4. Which GraphWorX64 features provide predefined designs that you can use in
your displays?
a. Transitions
b. Templates
c. Monitoring utilities
d. Symbols library
e. All of the Above
f. A, B, and C
g. A, B, and D
h. B, C, and D
i. None of the Above
6. What are some ways in which you can customize your workspace?
GraphWorX64 Basics 9
9.1 Objectives
After completing this chapter, you should know how to:
• Line
• Arc
• Spline
• Polyline
• Rectangle, square
• Ellipse, circle
• Polygon
Once you have drawn your basic shapes, you can combine them to new, more
complex shapes. Figure 9.1 shows an example of the different commands that you
can use to create a complex sshape.
Using these shape manipulation methods, you can create complex dazzling
objects from basic shapes. You can flip any shapes horizontally and vertically, as
well as rotate it in 90° steps using the Arrange pane on the Home ribbon. Freely
rotate and/or skew tthe
he shape as you want by dragging the corner when you see the
arrows connected by a curved line: . This handle appears when you hover over
one of the corner handles of the shape. Grab the corner to rotate the shape freely
or, if you hold down the Shift key
key,, the rotation happens in 15° steps.
Skewing the shape is simple. Just hover over one of the side handles until you see
the mouse change into two arrows separated by a line, similar to: . Then
grab the handle and move it using your mouse to skew the shape
shape.
Experiment on your own. Try out different shape combinations to get astonishing
new shapes like the one shown in Figure 9.3.. It is made by using a circle in the
middle, crossed by four ellipses, and then applying the XOR arrangement. ThenT
we applied a style from the Style and Colors tab on the Home ribbon to the shape.
9-2 ICONICS, Inc
GENESIS64 Core Training Manual GraphWorX64 Basics
Figure 99.3 - Complex Shape Created Using Ellipses with a Predefined Style
Combining these shapes with smart symbols and controls will give you the ability
to create easily dashboards as shown in Figure 9.4.
In Figure 9.4,, you can see several pieces of instrumentation: temperatures, time,
direction, pressures, and perhaps a dozen other active data points. This
GraphWorX64 display has, among its many object types, push buttons that
perform actions such as turning a pump on or off, and thumbnails of other
displays (shown in the lower right pane) that open additional GraphWorX64
displays for TrendWorX64, AlarmWorX64, and EarthWorX64. GraphWorX64
puts the power of the entire GENESIS64 programming suite at your disposal.
9.3 Dynamics
As suggested by the name, Dynamics are objects that shows changing information.
Objects such as Process Points, is an example of a dynamic. The value of the
process point changes as it reads the changing value from the OPC server. You
can
an also apply dynamics to shapes and objects to show process information
graphically. For example, you can attach a dynamic to a rectangle to create a
slider. In this section, we will discuss the different types of dynamics available in
GraphWorX64.
A Process Point object is a text object that you can associate a data source to and
display dynamic or static values in a GraphWorX64 display. By default, a Process
Point is read-only.
only. You would use a Process Point to display OPC-UA
OPC tag values,
results from expressions, or any other time-dependent data.
A Data Entry object is a Process Point Object with different default property
settings. The most striking difference is that the DataEntry field is set to true and
you have an outline textbox with the Data Entry object. Use a DataDat Entry object
when you want to set the value of an OPC point. By using a Data Entry object,
you can create a state, assign a value to a variable, or make a selection that
controls a process, changes other objects, or provides other forms of user- user
generated input.
Advanced settings in both of these object types can make a Process Point
writeable and a Data Entry object readread-only,
only, essentially interchanging their
default behavior with only slight visual clues that their original identities were
something different.
erent.
The third Text Label object is the Time Date object,, which has property
assignments that conveniently displays the time and date. The Time Date object
has similar properties compared to Process Points or Data Entry objects.
To use these dynamics, you can connect any shape to an OPC tag. Depending on
the value of the OPC tag, you can change the size, color, location, etc of the
object. Figure 9.66 illustrates a list of the simple dynamics you can connect to a
shape or object.
You can combine these dynamics into one object, for example to create a
ventilator like the one in Figure 9.7, you can use the rotation dynamic to spin it
and let it change colors depending on the speed.
• The Close Window pick action closes the window/display to which the
pick belongs.
• GraphWorX64 main
maintains
tains a history of the last 50 displays. You can
navigate through the display history using the pick actions Display
Back/Display Forward in the Pick tab of the Property Inspector. These
commands are also available as OLE Automation methods. The Display
NOTE: The display file history (forward/back commands) remembers the initial
alias settings specified when a display is opened and will reset those aliases
when you go back to that display in the file history.
• The Load Display pick action opens a window of the type that you
specify with the properties that you define. Windows can be dependent or
independent pop ups, modal, or embedded. The can even refer to the
current display (which is a refresh operation). You can specify other
parameters, such as what loads in the display and other parameters.
NOTE: The default command is Load Display. So when you add a button, it
will assume that you want to open a display (Load Display).
• The Popup Menu pick action allows you to display a collection of pick
actions to choose from when you click on an object. You can configure the
position of the popup menu.
• The Run Report pick action in the Pick tab of the Property Inspector
allows you to execute a ReportWorX report during runtime.
• The Run Script pick action runs a script that you have created using
JScript.NET in the display.
• The Run Transaction pick action allows you to execute a BridgeWorX
transaction during runtime.
• The Select Global Alias pick action allows you to select global alias
themes based on an action or criteria you specify.
• The Set Language pick action specifies languages from a pick action.
• The Set Local Aliases pick action sets aliases for data connections in
runtime mode.
• The Set Object Visibility pick action applies a Hide/Show dynamic to an
object based on the condition and using the trigger you specify.
• The Start Application (Document) pick action launches the specified
application or document in runtime mode. In addition to launching
executables, you can launch various documents, including Microsoft Word
documents, Microsoft Excel spreadsheets, HTML files, and text files. The
registered application is automatically started when the file is launched.
• The Toggle Value pick action is used to toggle between two specified
values or states during runtime mode using an action that you specify.
• The Update Database pick action updates an OLE DB data source with
the current values of tags that you specify based on the condition or action
that triggers the pick action.
• The Write Value pick action writes a value you specify or a value of a tag
to another tag.
If no object is selected when you click on the button, you will see a list of all
objects in the display. As you can see in Figure 9.9,, the Object Count dialog
counts the objects, as well as giving you other more information about your
display.
To change modes, click the Application Mode button on the View ribbon.
• icTonics Template.gdfx
1. Open Workbench if you have closed it after finishing the previous lab.
2. Create a new GraphWorX64 display and apply the icTonics template to it.
Save the display in the GENSIS64Training directory as
“icTonicsTankMonitor.gdfx”.
5. Change the DataSource of the Size dynamic tto o our Tank1 Level tag. You can
do this by clicking in the DataSoruce field, then click on the … button to bring
up the Data Browser, and then browse to the tag.
6. Add a Process Point to the display and link the DataSource to the Tank1 Level
tag. You can use the same method in the previous step to bring up the Data
Browser to select the tag.
7. In the Dynamics properties of the tag, find the PostfixLabel field and add the
percentage sign in the field. Move the Process Point to the right of the cut
away.
8. Select everything
erything that you’ve created thus far then click on the Group Objects
button in the Home tab, Arrange section of the ribbon.
9. You can still edit the individual pieces of the object by double clicking on the
pieces. You can also select the objects that you want to edit in the Explorer.
11. Resize the arrow so that it fits inside the pipe on the left. In the Dynamics
toolbar, change the Hide Dynamics to use the tag below as the data source:
14. Select the Location Dynamic, and then click on the DataSource Field to set it
to the SyrupValvStatus.
15. Go to the Path field, and then click on the “…” button.
16. Drag the end of the path to the end of the pipe and drag a point in the path to
the turning point of the pipe. Your path should look similar to Figure L9.2
17. Set the AutoRotate to True. Change the Duration to 3000 (3 seconds) and the
RepeatCount to Infinite.
18. Duplicate this arrow and put one on the pipe on the right as well. Change the
DataSource in the Hide and Location Dynamic to use the WaterValveStatus
tag and reset the Path of the Location dynamic.
19. Drill down to the valve on the left hand side and add a pick action to it.
it You
can do this by clicking on the Pick button.
20. Change the Command for the pick action to Popup Menu.
21. In the MenuItems field, click on the “…” button to bring up the Edit Menu
Items dialog
22. Click on the Add button to add a menu item. You will then see a properties
menu similar to the one in GraphWorX64.
23. Change the MenuText to Open and set the data source to the
SyrupValveStatus.
24. Change the command to Write Value and change the OnUpValue to 1 in the
CommandParameters section.
28. Save the display and go into runtime. You can click on your Valves to open
and close it to test out the display. Your finished display may look similar to
Figure L9.4
GraphWorX64 Basics
R9
Review
9.1 Objectives Review
You should now know and understand the following topics:
9.2 Summary
GraphWorX64 is an application that supports data display and processing of OPC
data from data sources. In this chapter, we reviewed the objects you can use to
easily create dashboards, consoles, and other displays.
With shapes, you can create visual objects that you need for a display. Some
objects (such as buttons) come with actions called dynamics. A library of smart
symbols makes it easy to add a control such as a dynamic knob or dial, change a
property such as the data source, and create highly effective HMI displays.
Depending on the nature of the OPC tag, you can give its object changeable
characteristics, such as a changing size or location or color, or give it motion. You
can also hide it, disable it, or use a pick action that lets you open windows and
popup menus, run scripts, write values, and more.
When you have many objects on the display, you can use the object count tool to
see the total number of objects on the display. This can be very useful if you have
a limited license that restricts the number of data sources allowed on the display
For advanced users, you can change the application mode to show more options in
the Properties Explorer, giving more flexibility in controlling your objects on the
display.
9.3 Terms
Data Entry Object Dynamic Pick Action
Process Point Object Text Object Time Date Object
2. True or False: You can combine more than one dynamic into one object.
4. True or False: Date & Time Text object can show date/time appropriately
according to local preferences (for example, US 3/24/2008, EUR 24.03.2008).
5. True or False: When clicking on "Object Count" in the Misc section of the
View tab, you get a count of the selected objects in the display divided by type.
6. True or False: You can change the level of configuration mode depending on
your level of expertise.
GraphWorX64 Tools 10
10.1 Objectives
After completing this chapter, you should know how to:
To add one of these controls to the design surface, you can click on the control in
the Controls ribbon, and then click on the design surface. This creates a control at
the default size, which you can resize on the display surface.
Alternatively, you can select the control in the Toolbox, and then drag that
Viewer to the design surface to create the control.
NOTE: The Toolbox is often docked at the left side of the configuration
window. You can show or hide it using the Show/Hide tab group on the View
ribbon. The Toolbox can be pinned as a tab to a side of the display or it can float
freely when you unpin it from its docked state.
Most of our controls are viewers that provide a container portal into viewing
information that comes from different sources. A dissimilar control is the Smart
Pin. It displays a collection of squares, strategically arranged to allow users to
monitor the status of multiple data sources at the same time within a grouped set
of indicators.
A Smart Pin excels at providing a visual indicator in the midst of the dense data in
an overview. For example, when applied to geographically dispersed system, by
making use of color and blink control, you can give users instant access to
changing conditions. When you enable tooltips, it becomes possible for users to
easily drill down to underlying data and address time-sensitive issues quickly.
Smart Pins are ideal for monitoring patients in a hospital, water pipes in a vast
water system, or toxic gas levels at numerous isolated locations
To insert a third party control, you can click on the Toolbox dropdown list and
select the type of controls you want to use.
To arrange objects in the active layer, simply select the desired objects then select
the kind of alignment you want. Note that the last object you select becomes the
referenced object, to which all other objects are arranged in accordance to it.
In the Arrange section of the Home tab, you can choose th thee alignment you want.
With this functionality, you can change some attributes, such as size, in relation to
another object, and align objects to each other.
When working on a 3D workspace, you can also align objects to each other, and
even stack them along an axis you want.
With this option, you can replace text, data sources, names of objects, titles,
descriptions, and more. You can also replace text in the current display, or in
multiple displays.
If you find a typing error or you need to change the name of a certain object
throughout many displays
displays,, this handy tool will do the trick. You can even use
wildcard characters in this dialog.
10.5 Layers
Layers can be used to selectively display information based on user selection or
currently active security levels. Additionally, layers can be used to clutter and de-
de
clutter the screen content based on zoom level.
When you create a new GraphWorX64 display, any object that you draw d or add to
the work surface is placed on a primary layer of the display. The primary layer
provides the same capability as a background in a paint program – the layer
always exists and visible, but is not shown in the hierarchy of objects, groups, and
layers
ayers that appear in the Explorer pane.
As you add objects to your display, those objects are drawn in order from front to
back regardless of layers. The object drawn last is the top
top-most
most object.
You can change the order of the objects by using the option
optionss in the Arrange
section of the Home tab. In the following example, the selected rectangle is being
brought to the front from the back.
A different way would be to cut and paste the object, or you can drag and drop an
object inside the Object Explorer. You can also right
right-click
click on the object and select
the appropriate function from the pop
pop-up menu, as shown in Figure 10.11.
To add a layer to a display, click on the Layer button in the Shapes section of the
Home tab, as shown in Figure 10.12.
The new layer is added to the top of your drawing, no matter what the currently
selected object is, and is numbered sequentially as “Layer n”, where n is
numbered numerically starting at one.
You can select any number of layers at a time. When highlighted in gray, a layer
is active; when highlighted in blue, a layer is selected.
Layers can be renamed in the Object Explorer; each layer’s name must be unique.
Layers can be hidden and locked as with any objects.
Objects and groups can be drawn on a layer in the contents area. Objects can be
moved into a layer by dragging the object in the Explorer, as shown in the Figure
10.15.
Figure 10.15 - Drag and Drop an Object from Layer9 into Layer12
Layers have many attributes. Selecting a layer’s attribute gives you a description
of it at the bottom of the Properties pane, as shown in Figure 10.16
16.
You should certainly note properties grouped under the Declutter heading. This
set of options allows you to hide or show the selected layer in runtime depending
on the zoom level being used by the operator.
When you open the Web Publishing Wizard, you can set up your Publishing and
Application Preferences as shown in Figure 10.18.
The Web Publishing Wizard operate operates on the Zero Install and Thin Client
philosophy. This means the client computer needs nothing but Windows and
Internet Explorer installed. For this reason, all necessary web components must be
remotely delivered and seamlessly ins installed.
talled. Therefore, it is critical that the
HTML page be built in accordance with this. The Web Publishing Wizard looks
inside the display to understand what components are necessary on the client-side
client
and then builds the corresponding HTML code.
A GraphWorX64 X64 display that is linked to other display files can include
several .NET Windows forms or controls in the work areas of each dependent
display file. Publishing such a file involves creating a single HTML file that
triggers simultaneous download and insta
installation
llation of all .NET Controls embedded
in all interlinked display files so that all displays work correctly. The Web
Publishing Wizard's embedded .NET Control support makes this possible,
allowing you to view the .NET Controls in all displays from a single client Web
browser.
Many GraphWorX64 files are linked to other display files through pick actions
such as a Load Display or PopPop-up
up Window, display tabs, or display buttons. You
would want all these links and references to work when the HTML file is
downloaded
ded to a client Web browser. The Web Publishing Wizard makes this
possible by detecting all mutually linked displays, looping through all dynamic
actions, and checking for pick actions in which a file name is specified as one of
its parameters. Putting a ccheckmark in the Multiple Display Support checkbox,
shown in Figure 10.19,, ensures that the web page will publish properly for the
selected display fil
files.
The next steps of the wizard are dedicated to the web server connection setting
and bring the publishing procedure to an end. Once you have successfully publish
the display, make sure that GenBroker is running on your server machine for the
client machines
achines to get data.
• icTonicsTemplate.tdfx
• icTonicsHome.gdfx
• icTonicsAlarms.gdfx
• icTonicsTrends.gdfx
2. Open the IcTonicsHome.gdfx display in a new tab for editing. You can do this
by right-clicking on the display in the Project Explorer and select “Edit
display on new tab”.
3. In the ribbon, go to the Home tab, in the Shapes section, click on the Layers
button.
4. In the display Explorer on the right-hand side, you should now see Layer1.
Rename this layer to “SecuredLayer”
6. Go to the Dynamics explorer of the ribbon, in the Buttons section, click on the
“Button” button and then click on the design surface.
9. In the object properties, change the Text of the button to “Mixer Tank 1”
10. Set the button size to 143 x 56 and put the button on the lower part of the
display.
11. Save the display for now, we’ll come back and edit the display some more
later. The layer is not yet secured since we have not configure security
3. Resize the control so that it fits below the mixer tank. Double-click
Double on it to
open the properties of the control.
2. In the Pick action properties, set the FileName to icTonicsTrends.gdfx and the
TargetType to “Popup Window (Display Dependent - Modal)”
4. Save the display and Open the icTonicsTrends. Apply the template to the
display.
5. Change the display size to 500 x 500 and resize the template to fit within this
screen.
6. Add a Draw Label to the display and change the text to “Tank 1”. Put this
label in the middle of the Banner of the template.
7. Add a button to the display and change the command to “Close Window” and
change the text to “Dismiss”. Place the button at tthe
he bottom right-hand
right corner
of the display. Your finished configuration may look similar to Figure L10.2.
GraphWorX64 Tools
R10
Review
10.1 Objectives Review
You should now know and understand the following topics:
• Add controls
• Working with layers
• Arranging controls and objects
• Working with “search and replace”
• Web publishing your displays
10.2 Summary
You can use controls to add Viewers that open displays created in EarthWorX64,
TrendWorX64, AlarmWorX64, and even GraphWorX64. You can use
GraphWorX64 as the container application for WPF (Windows Presentation
Foundation) or Windows Forms .NET controls, even third-party controls.
The use of layers helps you distribute the displayed information into levels. You
can also take advantage of hiding a layer under specific zoom or security
conditions to rapidly develop your application.
The ease with which you can arrange objects and align them to each other with a
simple mouse click also speeds up your development, in the 2D workspace as
well as in the 3D workspace.
In case you need to modify your project, you may benefit from the Search and
Replace feature, which is not limited to one-file jobs, but may handle multiple
files at once.
Use the Wizard to web-publish your work, eliminating the need to write any
HTML code yourself and preventing others from seeing your efforts through a
thin client.
10.3 Terms
De-cluttering Layers Reference Object
Web Publishing Wizard WPF
1. True or False: A GraphWorX64 display can hold one or more viewers (for
example, an AlarmWorX64 Viewer or TrendWorX64 Viewer).
3. True or False: It is a requirement that you create a layer for arranging objects
or controls in a display.
5. True or False: Multiple layers inside the same display can have the same name.
6. True or False: A sub-layer can be moved inside the hierarchy of layers in the
Project Explorer by using drag-and-drop.
7. True or False: An object and a control can be aligned to each other in the same
layer.
8. True or False: Objects can be put on top of each other using the Align feature
in the Arrange pane.
10. True or False: GENESIS64 uses ActiveX for making the displays web
enabled.
GenTray and
11
FrameWorX64 Server
11.1 Objectives
After completing this chapter, you should know how to:
In GENESIS64,, the architecture of getting data from ICONICS servers and third-
party OPC servers has been improved with a more centralized approach. The
ICONICS FrameWorX64 server now mediates all data. This makes
mak the ICONICS
FrameWorX64 server a very important part of GENESIS64.. Knowing how to
configure it is vital to the success of a GENESIS64 project. This chapter also
discusses the various functions of the ICONICS FrameWorX64
FrameWorX server and
outlines the areas tha
that can be configured.
Expand either folder to see the services; an icon indicates the service’s status.
The running icon (with a green arrow) indicates that the service is running and
the stopped icon (with a red square) indicates that it is stopped.
In this dialog, the Startup Type determines how this service behaves. An
Automatic service starts up when Windows starts up without requiring any login.
A Manual service must be started manually, as needed. A Disabled service is a
service that is not needed; it will be prevented from starting up.
You can start and stop the service by clicking on the Start and Stop buttons.
11.4.1 GenEvents
GenEvents are messages generated by a GENES
GENESIS64
IS64 component. They can be
error messages or general operation messages. These messages can be published
to the NT Event Log on Windows and can be viewed using the Windows NT
Event Viewer.
Specify the Severity Level of the messages that you want published to the NT
Event Log. The higher the number, the higher the message’s severity must be in
order to be published to the NT EveEvent Log. Setting it to 0 (zero) publishes all
event messages; setting it to 1000 publishes no event messages.
Messages can also be published using the local time stamp by checking the Use
local time stamp checkbox. If this checkbox is not checked, event messages
mes are
published using UTC time stamp.
In addition, in the NT Event Log Applications box, put a checkmark next to each
component whose messages you want published. Then save the configuration.
Messages from the selected components that meet the severity criteria will be
published to the NT Event Log as they happen.
11.4.2 GenBroker
GenBroker is a proprietary ICONICS communication protocol that is the
preferred communication protocol between ICONICS GENESIS64 and other non-
non
OPC UA ICONICS products. ICONICS GenBro GenBroker
ker technology allows the
communication of legacy OPC information through TCP/IP or SOAP/XML.
11.4.2.1 Channels
By default, legacy OPC communication is done over the TCP/IP Direct channel.
On the GenBroker Channels tab, you can configure a different default channel by
right-clicking
clicking on the desired channel and then selecting Set ass Default.
Default
A new TCP, SOAP or DCOM channel can be added with a mediator node
specified so that legacy OPC communication will be mediated through that node.
To configure this, click the TCP Channel, SOAP Channel, or DCOM Channel
button to add the channel for a mediato
mediator node.
A user can change the characters to avoid issues if their standard OPC tag
addresses contain
in any of these symbols.
11.4.2.3 Miscellaneous
The GenBroker Miscellaneous tab contains various settings that affect
performance of an OPC tag connection. Client Side Cache forces GENESIS64 to
cache an OPC item for the specified amount of time.
Tag retry rate specifies the rate at which GENESIS64 will retry an OPC
connection when a previous connection attempt failed.
Sync call timeout specifies the time at which GENESIS64 will stop waiting for a
response from an OPC connection and will decide that the connection attempt
failed and will try to reconnect.
OPC DA group names define the group name format for an OPC server.
Miscellaneous contains settings that affect the runtime queue and status.
FrameWorX64 server. This means that all licensing, security, and data
communication come from the remote FrameWorX64 server. Furthermore, all
local connections are local to the F
FrameWorX64
rameWorX64 server, not local to the client.
Type the URL for the remote FrameWorX64 server and click on Apply. Once
you do this, all GENESIS64 communication is mediated by this remote
rem
FrameWorX64 server.
Click on Servers Add then fill in the server name or IP address, display name,
and the port to communicate on, as shown iin Figure 11.8.
Click on OK and the new entry is added to the servers list, as shown in Figure
11.9.
Close the Add/Remove Project Server dialog. In the Change Project Server dialog
box, put a checkmark next to Remote Server, as shown in Figure 11.10.
Download and install the latest .NET Framework 3.0 from Microsoft:
http://www.microsoft.com/downloads/details.aspx?FamilyID=10CC340B-F857-
4A14-83F5-25634C3BF043&displaylang=en
http://Genesis64server/GENESIS64/WebSites/PubDisplay/Workbench.htm
Lab: Remote
11
Configuration
11.1 Lab Overview
In today's globalized business environment, companies need to provide a window
into production information that transcends geographical boundaries. It is
extremely important for icTonics’ personnel to be able to view and control the
production from a remote location as their personnel travels frequently. They
would also like to allow the managers to view and control the plant at home in
case emergencies arise late at night. We will provide them with this ability by
publishing our displays, allowing it to work on remote computers.
• Publish displays
• View displays in Internet Explorer
• icTonicsHome.gdfx
• icTonicsTankMonitor.gdfx
• icTonicsTrends.gdfx
2. Click on the GraphWorX64 button (the big round button on the upper-left-
upper
hand corner of the application) and select Publish.
3. In the Web Publishing Wizard that opens, click on “Next >” to proceed.
6. It will then show you a progress window. Notice that although we’ve only
selected to publish the icTonicsHome.gdfx display, it published the
icTonicsTankMonitor.gdfx and icTonicsTrends.gdfx. This is because we’ve
checked the “Enable Multiple Display SupSupport”
port” option. This allows you to
publish displays that have links (load display pick action) to the files being
published.
7. Click on “Next >” to select the web server to publish the three files.
8. In the Select a Web Server dialog, click on “New…” to create a new web
server.
9. In the Web Server Configuration, change the Protocol to ftp and type in your
computer name in the Host Name or IP Address section.
11. Check the “Use Descriptive Name option and type in “icTonics Web Server”.
The next time we publish the displays, we can just choose this one. Your
finished configuration should look similar to Figure L11.2.
12. Click on OK to finish the server configuration. You should now be in the
Select a Web Server dialog. Click on “Nex
“Next >” to proceed.
13. In the user name and password dialog, enter a local administrator user and its
password, and then click on “Publish >”.
14. It may take a bit to publish, but once it finishes, you should see a dialog
indicating the status of the publishing as shown in Figure L11
11.3.
1. Checked that you have .Net Framework 3.0 installed on the client machine.
You can do this by going to the Add/Remove Programs (or Programs and
Features) in the Control Panel. Depending on the OS, it could be under the
installed program list or in the Windows Features list.
2. Open the command prompt, by going to Start Run and type in “cmd”
(without quotes).
4. In the command line, type in: caspol -cg Trusted_Zone FullTrust, and hit enter
to run the command. It will ask you to acknowledge the change of settings.
5. Open an internet explorer page, and add your server to the list of trusted sites.
9. Go to back to the site, and you should now be able to use your Workbench on
a remote server in the 32-bit system.
GenTray and
R11
FrameWorX64 Review
11.1 Objectives Review
You should now know and understand the following topics:
11.2 Summary
ICONICS GenTray is a tool that can be used to control all ICONICS and non-
ICONICS Windows services. Any Windows service can be started and stopped
from GenTray. A service’s startup type can also be modified from GenTray.
GenTray is accessed from the Workbench.
11.3 Terms
FrameWorX64 GenBroker GenEvent
GenTray
a. All communication
b. Local only
c. Remote only
a. TCP/IP
b. DCOM
c. SOAP/SML
a. The Workbench
b. FrameWorX64 Enterprise Workbench
c. A command window
d. FrameWorX64 Server Location setup tool
12.1 Objectives
After completing this chapter, you should know how to:
• Create items in the Unified Data Manager that you can use throughout
GENESIS64
• Simplify application development using expressions, value sets, groups,
registers, and triggers.
12.2 Introduction
The Unified Data Manager (UDM) provides a centralized approach for managing
and configuring commonly used items. You can configure expressions, value sets,
tag groups, triggers, and registers by using the Unified Data Manager
configuration interface, shown in Figure 12.1, in the Workbench. All of the items
and their settings are stored in a dedicated SQL database. These items are exposed
as OPC items and can be accessed from ICONICS applications via the Data
Browser. By using the UDM, you can reduce development time and eliminate
redundant work.
You can open the UDM within the Workbench or the Start menu command in the
GENESIS64 Tools folder.
The purpose of this chapter is to familiarize you with the capabilities of the
Unified Data Manager. You will start by learning the operations that are common
to all objects: creating items, folders, editing, etc. Then this lesson will proceed to
each node in the UDM navigation tree. In turn, you will learn what an expression,
group, value set, register, and trigger is, what capabilities each one has, and how
you can use each in your work.
You can create as many folders as you wish, and give them names that are
meaningful to you. Folders are listed alphabetically, followed by items that are
contained within a folder. You can also create as many items as you wish, up to
the limits of your dat
database.
To create an item in the navigation tree hierarchy go to the object just above that
item and use the menu items found on the context (right
(right-click)) menu:
• To create a folder
folder, select the Folder command from the data type node
• To create an item
item, select the Add <data type> command from the data
type node or folder. The command varies based on the data type (for (
example, Add Expression
Expression, Add Register, etc.)
• To edit or modify an itemitem, select a command from the item’s context
menu.
Nearly all of the work done in the UDM is found in the configuration forms, the
remainder of this chapter focuses on these different forms. Note that the
configuration forms for folders have one and only one text field in which you can
assign or edit the name.
12.4 Expressions
An expression is a function that takes input, performs a specified calculation, and
returns an output. The calculation is carried out periodically
periodically, at a user-configured
rate. The user can use parameters and make the expressions writable. Such
expressions can be accessed from a large variety of ICONICS products as single
tags.
The essential actions of an expression are contained on the Read Expression and
Write Expression tabs. There are some minor, but important
mportant differences between
the options that you see on each, both of which are shown in Figure 12.5. It is
very important to understand that you do nnot ot need to configure the Write
Expression tab at all unless you intend to write values. In such a case, you should
remember that the input value, which an operator writes into the expression tag, is
represented by a special string called {{input}}. Note the different content of
Read and Write expression.
x= (<<Thermometer>>*1.8)+32
The Thermometer parameter is surrounded by double carets << and >>. This
parameter will be substituted when the expression is in use.. In this case the
substituted value would be a read/write OPC data point (because in the example,
we are also going to write into the point
point, as you will see later).
You do not have to use the Expression Editor at all. Instead, you can write your
expression directly
ectly into the text box on the Read Expression tab.
tab The expression
will be evaluated whenever one of its inputs changes; or you can put a checkmark
in the checkbox Use Trigger tags so that the expression will be calculated
whenever one of the trigger tags becomes true, becomes false, or simply changes
value as specified by the user.
Write expressions require that you check the Enable Expression check box to
have the values calculated. They are configured similar to Read expressions with
two exceptions. First, you should mark a place in your expression, where you
expect an operator’s input. This place is represented by the special string
{{input}}.. For instance the write expression of th
thee thermometer is:
x= ({{input}}*1.8)+32
Second, the Write Expression tab contains an Output tag text box where you
should specify a data point where the result of write expression will be stored. In
cases of conversions, it often makes sense to use the sa
same
me tag as the one used in
the read expression.
Note the string “Thermometer” enclosed by parenthesis is the data point name.
At this point,
nt, it is a good time to substitute the parameter with the name of the real
thermometer OPC data point enclosed in double braces. The resulting syntax may
look similar to this:
@exp64:Units.celsius_to_fahrenheit({{@KEPware.KEPServerEx.V4\
@exp64:Units.celsius_to_fahrenheit({{@KEPware.KEPServerEx.V4
Channel_1.Device_1
Channel_1.Device_1.Tag_1.Value}}).Value
12.5 Groups
A group is a collection of data tags that are manipulated as a single item and is
represented by a single group tag. Each group tag is treated as a READ/WRITE
data type. Any value written to a group tag is written to all the tags included in the
group, such that all of the tags in the Group have the same value. For example,
this feature can be deployed when controlling lights in a building. You can switch
on or off all lights on a particular floor by changing only one single value.
v The
figures in this section show a group tag that controls lights on floor one of a
building.
Group data tags are organized in a tree structure of folders and group items. Since
each group is represented as a data tag, a group data tag may also be included
i in
other groups. Group items have two configuration forms
forms.
On the Group Properties tab, you can change data type of the tag, add its
description, and create parameters that can be used in the same way as parameters
in expressions or other UDM item
items.
On the Group Tags tab, you can create a list of the tagss to be associated with the
group tag. Whenever a value is written to the group tag, it is automatically written
to all tags in this list.
A group data tag can contain an unlimited number of data tags. Each data tag
consists of the following attributes:
GraphWorX64 provides an interface to write values into a group tag. You just
need to insert a process point into a display and browse for your group tag in Data
Browser by clicking
licking the ellipsis […] button to open the UDM and browsing in the
Groups folder, as shown in Figure 12.10, on the server that holds the Unified
Data Manager configuration.
parameters with vvalue set data tags, just like you can use them with expressions
and groups, which you have already seen.
Value sets
ets are created and configu
configured using a three
ree tabbed configuration form. On
the ValueSet Properties tab,, you can create a parameter and define a description.
Add members to the value set by using the ValueSet Tags tab.. For F any individual
color, the color name or ID is written to one tag, then red is written to a second
tag, green is written to a third tag, and blue is written to the fourth.
fourth You can see
the configuration on the ValueSet Tags tab in the figure below.
Once you associate tags with the value set, you need to add the colors that are part
of the value set
et to the ValueSet Values tab as shown in Figure 12.12.
12
You can use, for instance, GraphWorX64 to write values to a value set tag. You
just need to insert a process point into a display and browse for the value set tag in
the Data Browser in the same wawayy you browse for an expression or group, except
that you select the Value Set folder, as shown in Figure 12.13.
Figure 12.13 - Selecting the Value Sets folder in the Data Browser
12.7 Registers
A register is a named address into which you can store values. In general,
registers
egisters are named variables that all GENESIS
GENESIS64 clients can use.
use In the Unified
Data Manager a register consists of two configuration tabs.
In the Register Properties tab, shown in Figure 12.14,, you define the Data Type
and a Description
Description, and you decide whether the register is read only or Writable.
You can also enable or disable Input Updates Propagation,, which indicates
whether values changed on input tag will be sent to an output tag.
How you configure the Register Input/Output depends on the type of the
register you need. The options in the Input Tag area are designed for definition
of an input signal for the register. Enable the Output Tag and define it if you
need values of the register to be propagated to a tag. The Tags Management
section contains only the Release tag when not in use checkbox ckbox which, when
checked, disconnects the input tag as well as the output tag when no client is
connected to the register. This may save points counting toward your license. On
the other hand, it will cost your client time to request the point again, and it will
disallow bridging.
As mentioned before, there are different types of registers. You can configure a
register to achieve
chieve data aggregation, or provide a mechanism for data bridging
where the value of one tag is written though the intermediate register to another
tag. You can also use the register to pre
pre-fetch
fetch data or hold a value you enter into it.
For bridging, you only need to specify an Input OPC Point Tag and an Output
Tag. To select a tag,
ag, click the field’s ellipsis […] button to open the Data Browser.
NOTE: Doo not check Release tags when not in use checkbox,, and do not
change Output Propagation style to Disabled. if you do, bridging will not
work.
You may find that you have hardware devices that cannot handle the volume of
requests that are being sent to them. This happens if a device’s tags are requested
frequently or from several OPC clients, or if the device has a limited ability to
cope with I/O requests. If the device cannot handle the requests, data becomes
bottlenecked,
cked, and clients must wait for data to be returned.
One way you can overcome this problem is by using data aggregation.
aggregation Data
aggregation collects multiple requests for a tag into one request, reducing network
traffic.
In the example shown in Figure 12.18,, there are three OPC clients that request the
same temperature reading from a device. You can create a UDM register that
handles those requests. The register acts as an intermediary that aggregates the
three incoming client requests, sends one request to the device, gets one return
from the device, which the register then forwards back to the three clients.
Using the UDM register, you define one register for each tag whose requests you
want to aggregate. Once you set up the register to aggregate tag requests, the
register intercepts all client requests for the tag and pools them into one request
that it sends to the device. In turn
turn, the device returns one reply, which the register
then broadcasts to the OPC clients that requested the tag.
In order to use this feature enter the OPC tag for the data point you are
aggregating in both the Input OPC Data Tag field and the Output Tag field.
Make sure you also disable input updates propagation under Register Properties
tab, otherwise it may happen that your values could be running in circles.
NOTE: You can also enable/disable the propagation based upon an OPC data
point value.
Data prefetch loads data from a device onto the server even if no clients are
requesting the data. Because the data is preloaded onto the server, the data is
available when a client requests it; the client doesn’t have to wait for the I/O from
the device.
• Your older or slower devices do not have the capacity to fulfill their I/O
requirements.
• Geographical distance separates clients from the server, or the server from
the device.
For example, a client requests second-by-second polling data from a device that is
located on the other side of the continent, and your limited hardware device
cannot accommodate the requests in a timely way. In this case, data pre-fetch
might provide the solution you are looking for.
Note: There is a downside to using data pre-fetch. The ongoing loading of data
from the device to the server creates a continuous stream of traffic between the
device and the server. For that reason, it is important that you use restraint when
choosing the data points you use pre-fetch for; this is not a solution you want to
overuse. You will have to determine whether the volume of traffic that pre-fetch
creates works to your advantage. For example, even if a hardware device has 30
data points, there may be only one data point on that device where pre-fetch
benefits you.
Also, keep in mind that any register that does data pre-fetch consumes a license
point because the input/output tag is in constant use by the register
you must uncheck the Enabled checkbox in Output area of the Register
Input/Output tab.
Now you have a register that you can use to read an OPC point defined as Input
OPC point or you can create a holding register by selecting the None radio
button. If you do so you can decide to define an Initial value.. For the holding
register, you should also go to the Register Properties tab and make the register
Writeable.
NOTE: It is not recommended that you make a register writeable if it has an
input OPC Data Point but no output tag. If you enter a value in such a register,
the value is stored in the register but the input OPC Data Point value does not
change. The entered value is propagated to nowhere because there is no tag
defined as the regis
register’s output.
You can use the UDM registers in the same way as any other OPC points. Hence
they may be selected using the Data Browser as shown in Figure 12.20.
12
12.8 Triggers
A trigger is a rule, which defines the conditions
ditions under which an event occurs.
There are two types of triggers: data triggers and time triggers. Which type you
use depends on the application function, but data triggers establish a condition
that is necessary for actions or events while time triggers execute an event based
on the time or sets of times that are part of the time trigger’s definition. Moreover,
each trigger can be scheduled for activity or idle time in its Advanced tab of
Trigger configuration dialog, as shown in Figure 12.21.
An event trigger is a one shot trigger used for triggering an immediate action.
Where you need a continuous rather than single
single-shot
shot action (for instance, for
logging purposes), use a Condition trigger.
To select the data source that must meet the condition so that the trigger fires,
click the Browse button next to the Data Tag field.
Date and time triggers are used in Hyper Historian. When you browse for triggers
in Hyper Historian, the dialog box looks like Figure 12.24.
Lab: Recipes 12
• icTonicsTankMonitor.gdfx
6. Right-click
click on this folder and select Add Value Set to add an item. Name this
item “Mixers’.
7. Click on the ValueSet Tags tab, in the Alias, type in Syrup. Put the cursor in
the Tag Name field and click oon
n the “…” button to bring up the Data Browser
and select the Syrup tag.
8. Repeat steps 7 for the water and product tags. Your finished configuration
should
hould look similar to Figure L12.1.
9. Click on the ValueSet Values tab. IIn n the Value, type in “Chocobeer”, and give
it the same value in the Name and ProductName field. In the Syrup field, give
it a value of 85, in the water field, a value of 15.
10. Repeat the above steps to insert two more value sets. Your finished
configuration should look like Figure L12.2.
2. Select the producing tag in the Data Browser and click on OK.
3. Add a draw label above the process point and give it the text “Now Producing:”
4. Add a button to the display and select Popup Men as the Command.
5. In the MenuItmes field, click on the ellipse button to bring up the Edit menu
Items dialog.
6. Add a menu item for each of the recipe you created and set the DataSource to
point to @vset64:icTonicsRec
@vset64:icTonicsRecipes.Mixers.Value.
7. Change the command to Write Value for each of the command item and enter
the appropriate OnUpValue as well as the MenuText. You should have three
menu items, one of each of the recipes, when you are done.
2. On the ValueSet Tags tab, change the part of the tag where it says “Tank1” to
“ <<Tank>>” to use the parameter we set in the Properties tab.
5. Change the data source in each of the menu items to include a parameter value.
You can either reselect the tag, or simply add “(“Tank1”)” at the end of the
tag.
6. Try running the display again, it should work just the same as if you did not
have parameters.
• How to create items in the Unified Data Manager that you can use
throughout GENESIS64
• Why and how to use expressions, value sets, groups, registers, and triggers
12.2 Summary
The Unified Data Manager (UDM) provides centralized storage of data such as
expressions, groups, value sets, registers, and triggers, that you can benefit from
when developing a project. UDM configuration is stored in an SQL database and
its management is performed in Workbench.
You create items in the UDM by right-clicking nodes in the navigation tree pane
and selecting options from a popup menu. Each node has its own hierarchical tree
into which you can add folders and items.
Items are modified using forms that appear in the UDM when the object is
selected. When you save your changes to the UDM configuration database, those
settings are immediately available to anyone connected to the database.
12.3 Terms
Data Aggregation Data Bridging Data Pre-fetch
UDM Expression UDM Group UDM Register
UDM Trigger UDM Value Set Unified Data Manager
a. Sets of values
b. Groups of users
c. Expressions and calculations
d. Triggers that are based on conditions
a. To store data
b. To bridge data from one tag to another
c. To aggregate data
d. All of the above
e. None of the above
3. True or False: You can use a UDM group in another UDM group?
4. True or False: You can make use of parameters in value sets, groups, or
expressions?
a. Expressions
b. Value sets
c. Groups
d. Registers
e. Triggers
Global Aliases 13
13.1 Objectives
After completing this chapter, you should be familiar with:
When you design a display, any process point can contain one or more global
aliases. The Global Aliasing Server is able to resolve the reference and provide
the correct value for the tag at runtime. That tag is then used to display the current
data being observed or controlled. In practice, you might define a button that
opens a popup menu where you can select one out of ten different data sources.
Each selection will change the value of the global alias reference in the displays.
This in turn changes the data source for a process point in the GraphWorX64
display, so that in runtime, the data changes on your display. With this system in
place, a single process point and a button can do the work of ten process points on
a single display or alternatively the work of ten displays with a single process
point. This is the power of global aliasing.
Global Aliasing System follows a certain structure of values that groups common
objects into categories.
Consider Table 13.1, which demonstrates the global aliasing hierarchy in the left
column on an example of building control in the right column.
13.3 Architecture
Global aliases are stored and maintained in a SQL Server database and those
aliases can be accessed over the network through the GAS Server.
Server When you
install GENESIS64, the installer creates a GAS server database with a default
configuration.. However, you may want to or need to create and configure your
own GAS databases bbefore
efore you create global aliases configuration.
Figure 13.1 below shows the GAS architecture. Note the role of the FrameWorX
server. If global aliases do not resolve, or connections to the data sources are
missing, make sure the FrameWorX server is functioning correctly and the service
is running.
The Global Aliasing system provides global storage for a string of aliases and
resolves the aliases in runtime. The aliases can be used in OPC tags, menu values,
file names, and almost any other place where you can insert text values. Figure
13.2 shows how a global alias is used to switch between multiple OPC tags in a
GraphWorX64 display. The values that a global alias resolves to are called alias
values. All global aliases and alias values are created and configured in the Global
Aliasing interface in the Workbench.
With global aliases, this can be greatly simplified with the following: define a
Building_ID alias for the building; substitution of which into your path would
yield:
@Buildings.<#Building_ID#>.Floor_4.Room_403.Light_08
This single substitution reduces the number of unique tags by a factor of three, to
4,080 tags that you would have to identify in the display. Defining additional
aliases could reduce the path to the following:
@Buildings.<#Building_ID#>.<#Floor_ID#>.<#Room_ID#>.<#Light_ID#>
This leaves you with one unique path to 12,240 individual tags that you can use
anywhere! To accommodate the actual alias values, you would define values for:
the three different buildings, floors 1 through 6, rooms 01 through 34, and lights
01 through 20.
That sums to sixty-three global alias values you need to define along with the four
global aliases. In your display, the process point would use only four global
aliases. As you can reuse global aliases, this becomes a valuable, time-saving
solution.
Global aliases can also aid in display design. For the sake of this example, all
three displays are of the same design. We will look at what you do as the user,
and what happens behind the scenes.
First, at runtime, when you click on the Administration building (which assigns
the value Administration to the Building_ID global alias), the display changes to
show the label “Administration” in the title bar identifying the building you are
looking at.
Then, on the same display, you select the fourth floor (which assigns the value
Floor_4 to the Floor_ID alias and is used for selecting a floor diagram). The
display then shows a diagram of the fourth floor with the rooms it contains. You
only need to have one floor diagram for all of your buildings.
Finally, you click on room number 403 (which assigns the value Room_403 to the
Room_ID alias and is used for selecting a room diagram) and another diagram
appears, showing the lights in that room. Again, you only need to have one room
diagram (as long as all the rooms are similar). The room diagram shows a status
indicator showing each light’s condition.
This solves your design problem. The complete path to each data source is built
using the aliases you supplied. This automated construction of a path to the data
source is a process that is referred to as alias resolution.
Each global alias can be associated with a theme. A theme links a global alias to
one or more data values (e.g. tags). The Global Aliasing engine allows you to
assign different values to aliases based on the currently selected theme value.
Theme values can be selected dynamically; either programmatically through
automation API or by a GENESIS64 pick action.
Figure 13.3 shows how a generic single alias can be used, for example, to link
multiple tags to a single process point in GENESIS64. The Global Aliasing
Server resolves the alias based on the selected theme value, which associates the
alias to the data values (tags).
Each theme can have one or more theme values associated with it, and each alias
value is then associated with a theme value. A theme value allows you to switch
between the data values that are linked to the theme, as shown in Figure 13.4. For
example, if you have one theme with three theme values, and each theme value is
associated with a tag, you can toggle between the theme values and therefore the
tags. Thus, you have a single process point associated with three different values,
as shown in Figure 13.4. All themes and theme values are created and configured
in the Global Aliasing configuration interface in the Workbench.
In addition, a single alias can be read by many different applications (for example,
GraphWorX64, TrendWorX64, and AlarmWorX64), as shown in Figure 13.4.
You can also associate multiple aliases with a single theme.
The power of a theme is in the number of aliases that you associate with it. For
example, the Buildings theme might also be associated with a second global alias
called Floor_ID, a third called Room_ID, and a fourth called Light_ID. Plan the
themes that you create so that by applying a theme at runtime you essentially
enable an effective, efficient system for obtaining global aliases and their values.
Note that one global alias can only be associated with one theme only.
The resolution of aliases is controlled by the theme scope (that is, on what level a
theme is applied to your application). The Global Aliasing system supports three
different levels of aliases:
in the Project Explorer to view existing global aliases and themes already created
in the database.
Once you have created the theme, you can define theme values for it. From the
tree in the navigation pane, right
right-click the theme, then select Theme Value from
the popup menu.
In Figure 13.8,, a theme value of Building C is being added to the theme called
Buildings.. Note the Default Theme Value checkbox. A checkmark here indicates
that the alias value that gets assigned to that particular theme value will be the
default value for its global alias. For most themes, you will want to identify one
theme value as the default so that, during runtime, when no value is selected, the
global alias resolves to a value in all instances. Tips for easily identifying the
default include:
In Figure 13.8,, the theme value is enabled and will be listed under the Theme tab
that appears in the Data Browser.
navigation tree then select Alias.. The form for adding aliases, shown in Figure
13.9, appears.
If you assign a theme, the theme’s values appear in the Alias Values pane at the
bottom of the form. In the Alias Value column, you provide the values that will
be assigned to the global alias when the theme is in use. There are a few things
you should keep in mind when entering alias values:
• You can type an alias value in the field, oorr choose a value such as a
language alias from the Data Browser.
• One of the theme values may be the default value.
• You can nest a global alias in an alias value, as demonstrated in the figure
below. When adding a global alias to the alias value, use the following
f
syntax: <#
#GlobalAlias#>.
Once you have defined your themes, theme values, and global aliases, you can use
them, for example, in GraphWorX64, AlarmWorX64, TrendWorX64, and
EarthWorX64.
@Buildings.Administration.Floor_4.Room_403.Light_08
Could become:
@Buildings.<#Building_ID#>.Floor_4.Room_403.Light_08
When you go into runtime, you will see the default value of the Global Alias.
However, GAS enables you to dynamically resolve an alias during runtime and to
simultaneously apply one alias on different scopes.
You have two main options on how to set Global Aliasing themes or Aliases in
GraphWorX64. First, you can automatically set them as your display enters
runtime. Second, you can make use of Pick actions to give the operator control
over current resolution of your Aliases.
Put the cursor in the Global Aliases property, and then click the ellipsis button.
The Set Global Themes and Aliases dialog box appears, as shown in Figure 13.12.
Use the Set Global Themes and Aliases dialog box to establish the initial setting
of Global Themes and Aliases for the display when going into runtime.
runtime
To set the scope for a theme or theme value, click the Add button in the top
Themes section of the dialog box. This displays the Edit Global Themes dialog
box as shown in Figure 13.13 where you select a theme and its scope for the
display.
You can apply the Alias theme to the machine, the process, a specified document
level, or relative to the document level that is current during runtime.
Alternatively, you can dynamically define a global aliases and its value. That is,
defining a global alias that is not in the GAS configuration database. To set the
global alias or value, click the Add button in the bottom Aliases section of the
dialog box. This display
displays the Edit Global Aliases dialog box as shown in Figure
13.15 where you select a global alias, optionally a value, and the scope.
• Pick action
action-Load display: Sets the global aliases in the newly loaded
display.
• Pick action
action-Set global aliases: Sets the specified global alias theme value
in the currently open display; can apply to the whole display or a specified
object or symbol.
• Display tabs: Each tab can include a set of global aliases.
To use global
obal aliases in EarthWorX64, click on the Main tab of the shape’s
Properties dialog box and click on the name or description’s ellipsis button to
open the Unified Data Browser.
Go to the Global Aliases tab in the Unified Data Browser, and double-click
double on the
global alias you want to use. This adds the global alias to the top of the dialog box.
Type double quotation marks (“) around the alias definition, as shown in Figure
13.18.. The quotation marks indicate that you want actual values to display in the
EarthWorX64 display. Instead of typing, you can select the Treat as a Literal
String checkbox.
Click OK to confirm the selection. The Main Tab appears as shown Figure 13.19.
The {{braces}} that wrap around the Global Alias definition let EarthWorX64
know that the text is an alias definition, not plain text.
In configuration mode, the shape appears as shown in Figure 13.2013 on top, and
the alias definition is shown as the shape name. At runtime, the definition is
substituted with its value, as shown on the bottom of Figure 13.20
20.
Figure 13.20 - A Global Alias in Configuration Mode (Top) and in Runtime Mode (Bottom)
• icTonicsHome.gdfx
• icTonicsTankMonitor.gdfx
• icTonicsTrends.gdfx
1. Open the Workbench if you closed it after finishing the previous lab.
3. Right-click
lick on localhost and select “New Database…” to create a new
configuration database
4. Click next in the Create Database wizard. Change the database name to
“icTonicsGAConfig”. Uncheck the Include Sample Data box and click on the
“Finish” button.
6. Right-click
click on Themes and select Add Theme to create a new theme
7. In the theme tab that comes up, give this theme the name of “Tanks” and click
on Apply.
10. Right-click
click on Tank1 and select “Multiply”
11. In the Multiply Options dialog, change the Number items to two. Change the
first number to two and the numeric places to one. Also, change
cha the Base
Value to Tank. Your dialog should look like Figure L13.1.. Click on OK to
start the multiplication.
12. Right-click
click on Aliases and select Add Alias to create a new one
13. Call this Alias “Tanks” and choose Tanks as the theme. Notice once you’ve
chosen the theme, the Alias Values expands with the number of theme values.
14. Set the Alias value according to Table L13.1,, and then click on “Apply” to
save the configurations.
Table L13.1 - Alias Values
15. Once you are done with the configuration, set the database as the active
configuration by right
right-clicking
clicking on icTonicsGAConfig and select “Make
Active”.
3. Check the “Treat the result as a Literal String” box and click on OK.
4. Notice that the text changed from “Tank1” to “*.??”. That’s ok; the default
text for a process point looks like that.
5. Double-click
click on the Trend Viewer control to bring up the configuration dialog.
dialog
Click on your real
real-time
time pen, find “Tank1” in the data source, and change it to
<#Tanks#>. “<#” and “#>” are the delimiters for Global Aliases.
6. Do the same thing for the other tags configured in the control.
7. Save and close the display, and then open the iicTonicsTankMonitor
cTonicsTankMonitor display.
8. In the Home tab of the ribbon, locate the text section and click on the down
arrow for the Find action. Select Replace.
9. When the Replace dialog comes up, in the Find Type, select Dynamic Data
Source.
10. In the Find What field, type in “Tank1” and in the replace field, type in
“<#Tanks#>”, then click on Replace All to start the replacement. Your
Replace dialog should look like
12. Open the icTonicsHome display. Edit the button on the SecuredLayer called
Mixer Tank 1. In the previous lab, we’ve set this button to open Mixer
Mi Tank1.
13. In the Dynamic Properties of the button, find the GlobalAliases field under the
Command Parameters section and click on the “…” button in the field.
14. In the Select Global Themes and Aliases dialog, click on “Add” button in the
Themes section to bbring up the Edit Global Themes dialog.
15. In the Themes dropdown, select Tanks. Select Tank1 in the Theme Items
window and click on OK all the way back to the display.
16. Duplicate “Mixer Tank 1” button and repeat steps 13-15.. Except, set the
global alias theme value to Tank2 and Tank3 and change the text of the button
accordingly.
17. Go into runtime and load the icTonicsTankMonitor display with the different
buttons. You should see your tags resolve to different paths and showing
showin
different values. Note that you will not see alarms or trend for Tank2 and
Tank3 if you have not configured them by doing the advanced labs.
13.2 Summary
A global alias is a data string that enables you to reference multiple data sources
with one unique name. Any process point can contain one or more global aliases.
Global aliases are stored and maintained in an SQL database called the Global
Aliasing System (GAS) database, and those aliases can be accessed over the
network by clients. Global aliases, themes, and alias values are created and
configured in the Global Aliasing interface of Workbench.
Each global alias can be associated with a theme. The power of a theme is in the
number of aliases that you associate with it. A theme links Global Aliases
together. The Global Aliasing database allows you to assign to aliases different
values based on the currently selected theme. Themes can change dynamically;
either programmatically through automation API or by a GENESIS64 pick action.
Alias resolution is the process of assigning a specific tag value to an alias. The
resolution of aliases is controlled by the theme scope (that is, on what level a
theme is applied to your application). The Global Aliasing system supports three
different levels of aliases: machine-level, process-level, and document-level.
13.3 Terms
Global Alias Alias Theme Alias Value
1. True or False: All global aliases must be configured and stored in the GAS
database.
2. True or False: You can use a global alias anywhere in the path of an OPC tag.
5. True or False: A dynamically created global alias can be reused in any display
created using any ICONICS viewer.
Language Aliases 14
14.1 Objectives
After completing this chapter, you should know how to:
The LAS translates and converts using aliases. An alias is a name for an object
that is different from the object’s “real” name. In English, a rose is “a rose”, but in
Italian a rose is “una rosa”, in German it is “eine rose”, in Dutch “een roos”, and
so forth. Using a language alias, you can define the text string for “a rose” in each
language so that the displays you create can switch to the local client machine’s
language; your Italian users see “una rosa” and your German users see “eine rose”.
There are two major components of the LAS: the centralized database and any
client application that uses the language switching mechanism. All language
variations and conversion expressions are stored in and retrieved from a
centralized database configuration (Microsoft SQL Server or Microsoft SQL
Server Express). The centralized database is maintained using the Language
Aliasing configurator in the GENESIS64 Workbench. Language aliases are stored
in the central global database and those aliases can be accessed over the network
by clients. Changes you make to the LAS database are propagated to clients
within roughly 1 to 3 seconds. In this chapter, you will learn to configure
language aliases and use them in client applications.
14.3 Background
The language/locale setting in Windows is based on an ISO standard. A locale is
similar to a culture, differentiating English (United States) from English (United
Kingdom). There are 264 defined settings available in Windows Vista, including
language/locale. When a language is set in Windows on a client machine,
Windows’ user interfaces retrieve the language alias translations for that language
and cache the information locally on the client displaying the translations in the
local display.
In Vista, this language/locale setting establishes the language for the user account.
GENESIS64 uses that same setting to determine the language/locale properties to
be used in GENESIS64 applications at runtime. GENESIS64’s LAS returns
language settings for that language for any alias objects needing it for language
translation. Similarly, GENESIS64 reads the unit binding for the current language
to obtain unit conversions for values in the display.
Although GENESIS64 uses the language setting to determine the program action,
it does not use any other Windows feature or dictionary to supply conversions. In
order for your displays to have the correct language alias support, you must
configure translations and conversions for the languages in which you need them,
by using the LAS configurator.
Language aliases are applied to the client based on the active configuration. Only
one configuration is active at any one time, and that database can use only one
language setting for displaying data on the client. Languages cannot be mixed in a
display. This means that when you use a Pick action to change the language/locale
in a display, all of the language aliases defined in that display change to the
currently selected language.
The LAS configurator contains a tree control in the Project Explorer, where you
select
ct items you want to edit or add. As with all GENESIS64 applications,
whenever you edit or view an item, a configuration form opens in the content area.
You can perform different actions for different types of items in the tree. All
actions allowed for an item appear in the Ribbon when you select an item. You
can also right-click
click an item to pop up a menu, as shown in Figure 14.2.
used for converting units of measure for the locale. Therefore, both the language
and the locale are important for each language definition.
• Language InfoInfo: Select the Culture Name (that is, the language and locale)
from the list provided by clicking the Change Language button. Give it
the Display Name you want to use for its identification.
• Properties
Properties: Enable or disable the translation, enter a Description for it,
and indicate whether the language should be the active default language
for clients that access the LAS.
Once you have defined all of your languages, you can create language aliases.
Remember there are two types of language aliases: translation aliases and
conversion aliases. E
Each
ach type is created in a different way. The following sections
will walk you through both of them.
Translation Language Aliases are bubundled under Aliases in the Project Explorer
tree. You can create language aliases in the Aliases root folder or you can create
subfolders for them. To add an alias, you need to specify the following
information, as is shown in Figure 14.4:
• Give the alias a name that identifies the text that it translates. Describe the
alias, and specify the Default Translation text that will be used if no
language-specific
specific translation is available for the language that is active
during runtime.
• Then provi
provide
de text to be used for each language you have created. A client
will see only the translation text that corresponds to the currently active
language for the client machine.
In the field at the top of the tab, you can easily recognize the language alias by its
special syntax. The language alias name is deli delimited
mited by the characters /+ at the
beginning and +/ at the end. For example, the alias name Title when used in your
application will look like this: /+Title+/ or {{/+Title+/}}.. A language alias is
considered to be a data point; when it is not part of a data source, enclose it in
double braces {{ }}}}.
NOTE: If you are planning a new project, consider the advantages of integrating
translation capabilities as part of the initial project development. Integrating
translation capabilities after a project is done will
ill require a considerable amount
of rework.
You define Unit Conversion and Unit Binding objects in the LAS configurator.
Each is described in ththis section using the example of converting a temperature
display in Celsius (formerly Centigrade) to Fahrenheit.
After you define a conversion, make sure you define its reciprocal conversion
(that is, the conversion in the other direction). Using the Celsius-to-Fahrenheit (C-
to-F) conversion as an example, you need to define C-to-F and F-to-C, but you
also need to define F-to-F and C-to-C for situations where no conversion is
performed.
NOTE: The number of conversions you must define is n2 where n is the number
of different units of measure being converted. For example, if you are
performing conversions among the three different types of tonnage – short tons
(ST), long tons (LT), and metric tons (MT) – then you would need definitions
for ST-to-ST, LT-to-LT, MT-to-MT, ST-to-LT, ST-to-MT, LT-to-ST, LT-to-
MT, MT-to-ST, and MT-to-ST – or nine separate conversions.
a given language. For example, which unit conversion, if any, should take place
plac
while the language Dutch is currently active?
For the following example, refer to Figure 14.8.. In this example, the default unit
conversion is C--to-C (no conversion is performed), which means that all
languages/locales use this as default unless otherwise specified. You define two
unit bindingss called FromCelsius and FromFahrenheit. Each contains a table of
languages/locales.
/locales. For FromCelsius, the C-to-C
C default is overridden for only two
language/locales: English (United States) and Chinese (People’s
People’s Republic of
China) where the temperature must be displayed in Fahrenheit
Fahrenheit.
When adding a new unit binding, you have to define the following, as shown in
Figure 14.8:
• Name: the name of this unit binding, more information can be entered in
the Description field.
• Properties
Properties: select the Data Type of the alias and select the Default Unit
Conversion that will be used for all languages/locales unless specified
otherwise in the Language Unit Conversions table.
• Language Unit Conversions table: specify fy the unit conversion to be used
if you do not want the default unit conversion to be used for a particular
language/locale. The unit conversion that will be performed during
runtime will be determined by the language that is currently active.
@sim64:Long.Ramp(10,
@sim64:Long.Ramp(10,-50.0,50.0,140).Value
To convert its value using the FromCelsius unit binding conversions located in
Temperature folder, you need to add the following prefix:
=Temperature
=Temperature\FromCelsius:Value=
=Temperature
=Temperature\FromCelsius:Value=@sim64:Long.Ramp(10,
FromCelsius:Value=@sim64:Long.Ramp(10,-
50.0,50.0,140).Value
Fortunately, you do not have to remember this syntax. Instead, you can use the
Data Browser to create it. To do so, first, select the data point you would like to
use in your application. Next, keep the Data Browser open and go to the
Language Conversions tab and select the conversion you would like to apply for
this data point, as shown in Figure 14.9.
Figure 14.9 above has been enlarged so that you can see that the syntax of the
conversion alias is made up of the path and name of the alias as well as a special
string delimited by a colon (as in :Value). ). This string signifies the conversion
output type.. You can insert the output type manually or you can select it from the
dropdown menu in the Data Browser, as is shown in Figure 14.10 10.
Figure 14.11 shows a selected object (the flag surrounded by squares) with the Set
Language command assigned to it (shown at the right). Clicking on the object in
runtime will change the current active language to the one defined in the Set
Language box (which,
which, in Figure 14.11, is en-US).
The Set Language box contains a Pick action command parameter. To set a value
for this parameter, you select a language from the list of the languages you
defined earlier, as shown in Figure 14.12.
Figure 14
14.12 - Selecting a Language for Set Language
anguage Command Parameter
NOTE: For demonstration and testing purposes, choose a language other than
the language that will be active on the machine where you are testing.
When you click on the button in runtime, the Pick action for the button changes
the GENESIS64 localization (current language/culture) setting. The display
shows the translated value stored in the language alias database for that alias in
that particular language.
Remember that language aliases are applied to the client based on the active SQL
database. Because only one SQL database is active at any one time, and that
database can use only one language setting for displaying data on the client, only
one language is used in any given display. This means that when you use a Pick
action to change the language/locale in a display, all of the language aliases
defined in that display change to the currently selected language.
Lab: A Multi-Lingual
14
System
14.1 Lab Overview
icTonics is an international company. With facilities in different locations of the
world, it’s crucial that they have dynamic displays where it displays the local
language for the operators. In this lab, we will edit our displays and create
translation file to accommodate for different languages.
• icTonicsHome.gdfx
1. If you closed the Workbench after the previous lab, reopen it.
3. Right-click
click on localhost and select “New Database…” to create a new
configuration database
7. Right-click
click on Aliases and select Add Alias Group to add a group; name this
group “icTonics”
8. Right-click
click on the icTonics group and select Alias; name this alias
“Welcome”. You can give it a description if you wish.
9. Give this a default translation of “Welcome”. You can set the language
translation
anslation according to Table L14.1.
Table L14.1 - Translation of Welcome
Language Translation
English Welcome
Czech Vítejte
German Willkommen
Italian Benvenuto
Spanish Bienvenido
Chinese 欢迎
NOTE: If you are using a training image, you can change the language
to Chinese by pressing Left Alt + Shift+1 and type “HuanYing” to
select the correct Chinese characters. You can use Left+Alt+0 to switch
back to English.
10. Repeat steps 8-9, only this time, name the alias “Login” and give it the
translation according to Table L14.2.
Table L14.2 - Translation for Login
Language Translation
English Login
Czech Přihlášení
German Anmelden
Italian Accesso
Spanish Acceso
Chinese 登录
NOTE: You can change the language to Czech by pressing Left Alt +
Shift +2 and type in 5 for ř and 3 for š. You can also change to the
Chinese keyboard and type in “denglu” to select the correct characters.
11. Once you are done configuring, apply the changes. Right-click on the
icTonicsLanguageConfig and select “Make Active” to make this configuration
database active
3. Select the Login button and change the text of the button to
/+icTonics\Login+/.
4. Create a pick action button and set the command to “Set Langauge”.
5. In the Set Language field in the Command Parameters section, click in the
field and then click on the “…” button. This should bring up the language
selector dialog.
6. Select English and click on OK to close the dialog. Change the text of the
button to “English”
7. Duplicate this button five times and set the language to each of the translated
language we are using. These buttons will allow us to change the language
displayed during runtime.
8. Resize your buttons and align them on the bottom of the display accordingly.
9. Go into runtime and switch to the different languages. You may need to resize
your Welcome message or the login button to show the entire translated
phrase.
10. Notice that date/time dynamic in the template changes language automatically.
Language Aliasing
R14
Review
14.1 Objectives Review
You should now know and understand the following topics:
14.2 Summary
Language Aliasing configuration is stored in one central MS SQL database and
is maintained by Language Aliasing interface that can be run from ICONICS
Workbench. The configuration structure holds four items: Languages, Aliases,
Unit Conversions, and Unit Bindings. You will always need to define Languages,
however you may not need to configure an expression or translation depending on
your goal.
If you want to translate strings in your project, you have to add and edit Aliases.
If you need to convert units, you ought to create new Unit Conversions and their
Bindings to your languages. Any change to the database is immediately
propagated to all connected clients.
You can use Language aliases all over the ICONICS product range. Usually you
browse for your Aliases using Data Browser. The appropriate Language Aliasing
tab will always appear if you are allowed to use Language Aliases or Language
Conversions. The easiest way to change the language in runtime is to create a
button with pick action Set Language.
14.3 Terms
Conversion Alias Language Alias Translation Alias
Unit Binding Unit Conversion
a. An SQL database
b. An MS Access database
c. A Proprietary database
a. Nothing.
b. Refresh the database
c. Deactivate and reactivate the database
3. True or False: Two functions of Language aliasing are conversion of units and
translation strings.
5. How do you easily access the Aliases stored in your configuration when
developing your project?
a. <#LanguageAlias#>
b. “$LanguageAlias$”
c. /+LanguageAlias+/
d. <<LanguageAlias>>
e. ~~LanguageAlias~~
Security 15
15.1 Objectives
After completing this chapter, you should know how to:
You can set individual rights and access based on users and groups, create named
policy settings that can be applied to users and groups, and control access to
individual applications, features, systems, and more. These settings can also be
time based.
Security settings for the sserver are set from the Security Server configuration
forms,, an example of which is shown in Figure 15.2.. To launch the Security
Server:
If using the Active Directory mode, it is possible to use groups and users defined
in the domain to create your security settings. The Security Server is able to read
data coming from Active Directory. Since we are connected to the Active
Directory constantly, whenever there is a change in users and groups in the
domain, the Security Server automatically gets the update. To preserve domain
security, you will not be able to add domain users or groups within the
Workbench from a domain node. The Domain Administrator will need to access
the domain controller in order to alter domain accounts.
Clicking on the Settings button next to the Security Mode, allows you to
configure domain connection settings and credentials, as shown in Figure 15.4.
• Domain name: the name of the domain that you wish to synchronize with
• Map username: sAMAccountName or userPrincipleName, as shown in
Figure 15.4. The sAMAccountName is the name of the Windows account
in the domain. The userPrincipleName is the Internet login style based on
the RFC 822 standard, and is typically the e-mail address in the form of
username@domain.com.
1. The user must be granted rights to the critical point via his or her user
configuration or via one of the explicit groups he or she belongs to; rights
cannot be granted from the Default Group.
2. The user must have logged in within the Time window for interacting
with critical
ritical events configured on the General tab of the Global Settings
dialog box.
If condition 1 is met, but not condition 2, the client application (for example,
GraphWorX32) will launch the Security Login dialog, requ
requiring
iring the user to login
again and satisfy condition 2. This identifies and authenticates the user who is
writing the value.
Critical points use the same include/exclude lists with wildcards concept as the
Points configuration (which we will discuss in details
ils in section 15.6.2) in the
user and group properties dialogs. This lets you specify multiple tags without
listing them individually.
Critical alarms use the same include (allow ack)/exclude (deny ack) lists with
wildcards concept as the Alarms configuration (which we will also discuss later in
section 15.6.3)) in the user and group properties dialogs. This allows you to
specify multiple alarms without listing them individually.
There is an intricate relationship between these objects. Let us first understand the
difference between a group and a user and how they relate before we talk about
account policies.
15.5.1 Group
A group is a collection of users that share the same privileges. By default, there
are no groups and any newly created group has the least restrictive permissions.
Meaning the group is allowed to do everything. You can edit the security settings
from the various tabs
After a group is created, you can add users as members of the group. You can add
any user to any number of groups, but only users can belong to groups. That
means you cannot have a group belonging to another group. However, you can
duplicate a group and then make changes to the duplicate if you want to create
similar groups.
15.5.2 User
A user is an account that has a name, password, and specific privileges. When you
first open the Security Server, there are no defined users. The first account you
create is the Security System Administrator account. After you apply the
configuration for this account, the Security Server requires you to login to it to
continue, which you should do in order to create additional user accounts.
Like groups, by default, when creating a new user, it has the least restrictive
permissions. Meaning the user is allowed to do everything. You can edit the
security settings from the various tabs.
When you define a user account, first you must fill in the Name field on the
Properties tab, as shown in Figure 15.7. You can use the Properties tab to change
account policies or, by checking the Account locked checkbox, to quickly disable
a user or group account.
Figure 15.7 shows the Properties tab for a user account. A group account would
have a Properties tab with only the Name field for the account showing. Groups
do not have an account policy and they cannot be locked.
Just as in a group,, you can duplicate a user and make changes to it accordingly for
users with similar settings.
Use the Membership command for a group to open the Group Properties dialog
as shown in Figure 15.9.
You can then add users to a group by clicking on the Add button and select one or
more user accounts to add to the group, as shown in Figure 15.10..
The procedure for adding groups to a user account is nearly identical. When you
select the Membership command from the user account's context menu, you will
see a dialog box for User Properties that is nearly identical to the Group
Properties dialog shown in Figure 15.9.. Associate groups to a user by clicking
Add and select the groups, as shown in Figure 15.11.
15.5.3.1 Permissions
When you add a user to a group, the user takes on the additional privileges of the
group, that is, the user inherits the group’s permissions. For example, if the group
has an allow permission to write to a certain process point, the users belonging to
this group should have permission to write to the point as well, without
specifically specifying the permission again in the user permissions.
Settings on the
he Account Policy form
form, as shown in Figure 15.12
12, determine how
passwords are useusedd and whether user accounts automatically locks out after a
series of incorrect login attempts.
The four sections on the Account Policy tab are very similar to the ones you
would see in a Windows domain
domain-based
based policy. You can use these settings to force
manipulate a user’s password settings, force a user’s password complexity,
complexity set an
automatic logout policy, and to specify password requirement on logout. Users
with access to sensitive data should be subjec
subjected
ted to more stringent policies than
users who access non-sensitive data. The following policies are recommended for
users with access to sensitive data:
• Enforce a change of passwords after no more than 30 days; fewer for more
sensitive data access.
• Lock the account after three or four failed login attempts, and force the
locked out user to contact an administrator if access is not time-sensitive.
For time-sensitive access, consider an appropriate timeout period in the
Lock account for option.
• For the Auto Logout after option, set a reasonable logout time so that, if a
user leaves a console unattended, the system cannot be compromised.
• Enforce password length and complexity. A password of six characters or
more with mixed characters (alphabetic and numeric) is considered the
minimum required to defeat brute-force attacks.
The table below lists the fields and descriptions for the Account Policy tab.
Table 15.1 - Account Policies
• ^[a-zA-Z''-'\s]{1,40}$
Sets a name up to 40 characters with some extra symbols such as apostrophe or
comma. An example would be John Smith.
• ^\d{3}-\d{2}-\d{4}$
Useful for a social security number. An example would be 123-45-6789.
• (?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{8,10})$
Sets a strong password between 8 and 10 characters which must contain at least
one digit and one alphabetic characters, and must not contain a special character.
You can use the Shift and Ctrl keys to make your selections. When you want to
create a range or extend a range of selected time for inclusion, hold down the
Shift key and click the start and end of the range. If you already have a range
selected, hold down the Shift key then click on the point to which you would like
to extend the selected range. Holding down the Ctrl key allows you to click and
select noncontiguous areas of the time sheet.
1. If a user lacks a privilege and is added to a group that has that privilege,
the privilege is extended to the user.
action. When you create a new account, all application actions are enabled. You
should begin the configuration of an account by visiting the Application
Applic Actions
tab and setting the proper application restrictions.
For example, you can expand the Pick Actions node and uncheck the Run Script
item to prevent the user from bbeing
eing able to execute scripts. This lets you set up
security so that some users can perform actions that others cannot.
Before a GENESIS64 client reads a value from or writes a value to an OPC server,
the OPC point address is sent to the Security Server to determine if the operation
should be allowed based on the currently logged
logged-in
in user(s) and or the groups to
which they belong. Use the Points tab, shown in Figure 15.15,, to configure which
OPC output points are allowed to be read from and written to by the user or group.
1. Security Server compares the OPC point address with each string in the
include list until a match is found. If no match is found, access is denied.
2. If a match is found in the include list, Security Server compares the OPC
point
oint string with each string in the exclude list. If no match is found in the
exclude list, access to the point is granted, and no further testing of active
groups and users is performed. But if a match is found, access is denied.
Please see section 15.6.6 for more information about Permissions and section
15.6.7 for more information about Wildcards and Performance Optimization.
15.6.3 Alarms
You can also protect individual alarms and groups of alarms by placing alarm
names, with or without wildcards, into tthe he include list (to allow
acknowledgement
acknowledgement) or the exclude list (to deny acknowledgement)
acknowledgement for a user or
group. GENESIS64 applications will query the Security Server for alarm access
before acknowledging an alarm. The Alarms tab, shown in Figure 15.16, is used
to allow or deny user acknowledgement of alarms during runtime.
The runtime processing and wildcard pattern matching for the Points tab apply
here as well. Please see section 15.6.7 for more information about Wildcards and
Performance Optimization.
15.6.4 Files
You can also protect individual files and groups of files by placing file names,
with or without wildcards
wildcards, into the include list (to allow access) or into the
exclude list (to deny access) for a user or group. When opening a file, Security
Server
erver checks for GENESIS64 permission to see if the user has permission to
read, write, and/or modify the file. Files that are typically secured in this way are
GraphWorX64 display files.
• Read lets a user open existing files in runtime and configuration mode.
• Write lets a user create and save new files.
• Modify lets a user modify and save existing files.
The Files tab, shown in Figure 15.17,, controls access to files that GENESIS64
applications may open at runtime. Entries here would be used to restrict certain
users or groups from viewing, for example, specific GraphWorX64 displays.
The runtime processing and wildcard pattern matching for the Points tab apply
here as well with the following differences:
• The pattern matching is done on the file extension, separate from the file
name, to match the DOS wildcard semantics. For example, the wildcard
string to indicate all files is *.*
• File names entered without a path are considered a match no matter what
directory they are in.
Please see section 15.6.7 for more information about Wildcards and Performance
Optimization.
15.6.5 Stations
Use the Stations tab, shown in Figure 15.18,, to grant access to (allow
( login) or
restrict access from ((deny login) specific nodes on the network. Each node on a
Microsoft network is identified by a unique computer name.
To add a station to either list, click on the Ellipsis button. This displays the Select
Selec
a Station dialog, as shown in Figure 15.19. Select the Station Name from the
dropdown list, or enter the name or system IP address to define the station sta
criteria. Then click on OK.
15.6.6 Permissions
Permission to access a certain resource is granted to a user only after a security
check is performed. The security check verifies the user’s permission for the
resource, as well as his or her groups’ permissions on that resource. It is important
that you understand how the system evaluates the permissions so that you set
them up correctly. You should keep in mind the following security behaviors
when setting up permissions.
A group identifies permissions for its user members. When a user, who is a
member of multiple groups, tries to access a resource, the most restrictive
permission in place for that resource is used. For example, group G1 allows write
access to Tag1, while group G2 denies write access to Tag1. If User1 is a member
of only G1, he will be able to write values to Tag1. But if he is member of both
G1 and G2, he will not be able to write values to Tag1 because the denial of
access from G2 (that is, the more restrictive permission) is used.
Explicit permissions set for the user are combined with the user’s group
permissions. Following the example above, if User1 has explicit access that
allows him to write to Tag1 and he is a member of G2, he will be allowed to write
a value to Tag1, because the user setting overrules the group one.
Restrictions posed by the Deny list overrule permissions granted in the Allow list.
This means that if a resource is in both lists, the user will not be allowed to access
the resource. Although it may seem strange that a resource would be in both lists,
this is likely to happen when you use wildcards. For example, if you want to deny
a user access to resource R1 only, you might put ‘R1’ in the Deny list and the
wildcard character ‘*’ in the Allow list (which also matches with R1). As a result,
the system will find R1 in both lists, and will deny access to R1 because the Deny
list overrules the Allow list.
To better understand this, it is important to note that the system will always
perform a security check when a user tries to access a resource. For example,
when a user performs an action to read a tag value, the system uses the
information in the user’s Allow and Deny lists, as well as the Allow and Deny
lists for the user’s group. A comparison with all the strings in these lists is needed
to check for access permissions. If there are many strings in those lists, the whole
system slows down. Additionally, because access to a tag is granted now may be
denied a second later (because the security privileges may have changed), a
security check is performed each time the user accesses the tag, further slowing
the system.
For this reason, having fewer strings to compare would improve overall
performance. Therefore, it is always a good idea to try to use wildcards and to set
up your system with these limitations in mind. Here are some examples of
wildcard characters:
In GENESIS64, it is possible to log in and log out in both GraphWorX64 and the
Workbench. It does not matter where users log in, they will be able to use all the
GENESIS64 applications they have permission to access. The same is true for
logging out; a logout takes effect throughout all GENESIS64 applications.
Open the Security Login dialog from the Workbench by clicking the Log In\Log
Out button from the Workbench menu as shown in Figure 15.20.
Figure 15.20 - Opening the Security Login Dialog from the Workbench
Once the Security Login is open, as shown in Figure 15.22,, enter your login
information, and then click on Log In to authenticate. If the information you have
provided is correct, you will be logged in to the system. Otherwise, you will be
notified of that you have entered erroneous information and the Security Login
dialog stays open for you to try again.
It is also
so possible to show a Keypad window for touch screen systems. This can
be helpful if you do not have a keyboard available.
You can also use the Security Login dialog to change your password. You will be
asked to type your current password, and then to type a new password twice for
confirmation.
To log out, use the Security Login dialog by clicking on the Log Out button.
Depending on how your security profile is set up, you might be asked to enter
your password to log out as well.
Using multiple logins is helpful if you need someone with additional permissions
to perform a task you don’t have rights for, or when you are getting help from an
Administrative user. For example, someone with administrative rights may come
to your machine to perform a task that requires administrative permissions. He
wouldd log in with his credentials, do what he needs to do, and then log out,
returning control to you.
To help you in this task, GraphWorX64 allows you to show and hide layers based
on users’ security permissions. In this way, yo
youu can create a single display with
information separated into layers that shows or hides depending on the logged in
credentials.
What this achieves is that the critical information will be hidden to a user whose
security denies it from viewing the layer. However, the you still need to configure
the Security
ity Server to allow or deny a user access to the SecuredLayer.
This can be done in the Files tab of a user or group. By default, one layer is
always accessible to everyone, but you can easily deny a user access to it by
adding the layer to the list of deni
denied points, using custom syntax.
The custom syntax you use in the list of denied files is FileName|LayerName
FileName –
consisting of the file name and the layer name separated by a pipe (|) symbol. In
the security example below, the GraphWorX64 display file is called call
MyDisplay.gdfx, and the layer is called SecuredLayer. Access to this critical layer
is denied to UserA.
With these settings, when UserA accesses MyDisplay.gdfx, the layer called
SecuredLayer will not display. Restoring access to UserA is as easy as modifying
this Security form.
Suppose you want to know the current user’s permissions for the following point:
@sim64:Float.Sine(10,0,100,0).Value
@sim64:Float.Sine(10,0,100,0).Value.. If you create a Process Point using that
tag name as the point’s data source, you can see the point’s value in runtime mode.
If you modify the tag name by preceding it with ?DataPoint: you will get a
different value: a bitmask of the user’s permissions ffor or that point. Consider the
following example in Figure 15.27,, which shows the point’s value in the top line
and the security value (that is, the user’
user’ss permissions) in the bottom line:
As you can see, the security value is 3. The possible values are:
• 3:: the user can both read and write to the point (the write bit is set to 1, the
read is bit se
sett to 1, which is ‘11’ in binary, or 3 in decimal).
• 2: the user can only write to the point (the write bit is set to 1, the read is
bit set to 0, which is ‘10’ in binary, or 2 in decimal).
• 1:: the user can only read the point (the write bit is set to 0, the
th read bit is
set to 1, which is ‘01’ in binary, or 1 in decimal).
• 0: the user has no access to the point (both bits are set to 0).
In this example, the value is 3, therefore we know the user has both read and write
permissions to the point.
Tip! If you would like the process point to show up with meaningful text
instead of numbers that represent the different states, try using state fields.
NOTE: You cannot use GraphWorX64 layers to show or hide 3D objects based
on security; instead, you must show and hide them individually. The same is
true of all other GraphWorX64 objects.
Before we begin, it is important to note that a point does not need to exist in any
OPC server in order to set security permissions on it. However, the Security
Server, when asked, will tell us if a certain user has permissions to read or write to
the point.
In the first scenario, you would use an existing data source. However, in the
second scenario, you would use a non-existent point, giving it a custom name that
is meaningful for your application but does not match the name of any existing
data source. For example, you might want to be able to set permissions easily for
highly-secured objects, one type of object is called CriticalObject. You can use
CriticalObject as the custom name of a non-existent data source that you use only
for the purpose of evaluating user permissions to access the object.
Let us take a look at an example of how you might set this up.
First, you set up UserA’s permissions to deny him read/write access to the non-
existent point, which in this example is called CriticalObject. The non-existent
point acts as a real data source, but if you try to read its value, you will not get a
valid value because the point does not exist.
In Figure 15.28,, you can see the non-existent CriticalObject pointt added to the list
of denied data sources for UserA, and the user is denied both read and write
access. If you refer back to the user permissions values on page 15-24, you will
see this means that this sets the user’s security permissions value for the
CriticalObject point to 0 (zero).
Figure 15..28 - Preventing the User from Reading and Writing to CriticalObject
Next, configure a GraphWorX64 display that contains the 3D objects you will
show or hide depending on the user’s permissions.
If you login with Administrator privileges, you will see that for administrators, the
display shows all of the objects in the 3D View control, as shown in Figure 15.30.
Now, if you log in as UserA, you can see that the content has changed to reflect
the permissions granted to UserA; the sphere is no longer visible, as shown in
Figure 15.31.
This advanced feature gives you very granular control over what users can see in
a GraphWorX64 display. You can use layers for an easy-to to-configure and
powerful security integration, and you can use the ?DataPoint:
?DataPoin feature when
layers are not sufficient.
Lab: Security 15
• icTonicsHome.gdfx
1. Open the Workbench if you have closed it from the previous lab.
3. Right-click
click on Users and select User to add one
6. Log into the system by clicking on the big round button on the top left-hand
l
corner of the Workbench and then select Log In
In\Log Out
7. This should bring up the login dialog. Enter your user name and password to
log in.
8. Now add another user and call this Operator and use “operator” as the
password.
10. Go to the Files tab, in the Deny these operations section, put in
“*.*|SecuredLayer”. When you log in with operator, you will not see this layer.
Apply and Save the configuration.
12. Click on the Login button and log in as the Operator, you should only see the
welcome message and the Login button.
14. Log in again by clicking on the Login button, and login as the administrator,
you should now see your other navigation buttons on the bottom of the screen.
You should also be able to go back into configuration mode.
1. In the Project Explorer, right-click on Groups and select Role to add a new
role
3. In the Application Actions tab, give this group the same Actions that you did
for the user Operator.
4. Create a new user call “Operator2” and use “operator” as the password again.
5. Go to the Application Actions tab and click on the “Unselect All” button so
that there are no application permissions here. Click on Apply. You will get a
message giving you a warning that the user will not have any application
permissions. Click OK to acknowledge the message.
7. Click on the “Add” button, select Opeartor and Operator2 in the Select Users
dialog and click on OK.
8. Exit the Group Properties membership dialog. You can check that the two
users are in the Operators group by right-clicking on each of the user in the
Project Explorer and select “Membership”. The dialog that comes up should
display that the user belongs to the Operators group.
9. To test this functionality, bring up the log in dialog and log out any existing
user.
10. Open the icTonicsHome display and go into runtime. In the security login
dialog, choose Operator2 and type in the password to log in.
11. You should then see the display as you would if you were logged in with
Administrator, accept you cannot exit the display.
12. Log in with Operator again. Even though we did not deny access to the
Operator group for the secured layer and the user inherits the permissions
form the group, the user still cannot see the layer. That is because we
specifically denied it for Operator.
15.2 Summary
GENESIS64 Security System allows you to define users, groups, and policies in
order to determine which users are allowed to use the system, and what they can
do in it.
Security is created by adding account policies, user accounts, and groups of user
accounts to the system.
An account policy is a set of rules that you can apply to a user and group. You can
create multiple policies, but only one policy may be enforced for any one user or
group at a time. This affects aspects like password expiration, account locking,
password strength, and so on. You can also apply restrictions based on different
parameters (for example, time-based parameters) to enforce access to some
specific resources.
You also define permissions for users and groups. Permissions allow or deny the
user or group access to application actions, points, alarms, and so on.
The GENESIS64 Security System also includes advanced features that you may
find useful when working with GraphWorX64 and the other client applications.
You can, for example, prevent a user from visualizing a layer. You can also use a
special syntax to query the security status of a resource like an OPC point. Using
this feature, you can hide individual objects, like a 3D element in a 3D View
control.
15.3 Terms
Account Policy Critical Point Critical Alarm
Membership Regular Expression Security Group
Security Item Security Privilege Security System
Security User
2. What special account must you create before you can configure your Security
System?
3. What do you need to edit if you want to enforce a specific password format
for a user?
4. How do you alter the number of failed login attempts that are allowed?
a. On the user account, set the number in the Lock account after failed
login (N attempts) field
b. On the global settings, set the number in the Lock account after failed
login (N attempts) field and check the checkbox
c. On the account policy, set the number in the Lock account after failed
login (N attempts) field and check the checkbox
d. You cannot change it; the number of login attempts allowed is always 3
6. Is it possible to log in with the current Windows user, rather than having to
manually log in?
8. What is the name of the property that can be used to secure a layer inside a
GraphWorX64 display?
Glossary A
Account Policy is a set of rules that define login and logout policies for set of users and/or
groups.
Address Space is an organizational scheme for objects. One is used in OPC UA for objects,
properties, and relationships.
Alarm Area, or Area for short, is a logical folder grouping option that allows you to categorize
and organize your alarms. You can have any number of areas and subareas. You can also
associate alarms to any number of areas as you wish. Alarm clients can use area for filtering
purposes.
Alarm Filter is a rule that controls which alarms and how they display in the viewer in runtime.
Alarm Logger Columns are defined within an Alarm Logger Configuration. A column
represents an alarm attribute that you would like the log into the database. The name of the
column is the name of the table field.
Alarm Logger Configuration stores information such as the subscription the alarm and/or event
server and the database to which you want to log the alarm information. You can configure as
many alarm logger configuration as you please, but you must add it under an Alarm Logger Node
to make the configuration active. This should not be confused with the Alarm Logger
Configuration Database. You can only have on active alarm logger configuration database at a
time.
Alarm Logger Node refers to a computer where you want to use the Alarm Logger
Configurations. The node is typically the local computer name or IP address where the
AlarmWorX64 Logger is installed.
Alarm Indication Dictionary contains a set of conditions along with symbols or icon to display
when the condition for the alarm becomes true.
Alarm State Value is used by digital alarms to indicate which state to trigger an alarm. Since the
alarm is digital, the two values that this state can have is 1 or 0.
Alarm Subscription is the connection between the alarm client and the alarm server. This
determines which alarms the server will send to the client.
AlarmWorX64 is a set of application that can be used to monitor device conditions and events.
The applications are split into the Alarm Server, Alarm Logger, Alarm Viewer. Once alarms are
configured in the server, you can log the data using the Alarm Logger or view it through the
AlarmWorX64 viewer. The AlarmWorX64 viewer can run within the Workbench, or as a viewer
within GraphWorX64.
AlarmWorX64 Server is the application used to generate alarms notifications. It receives OPC
complaint DA or UA data and generates alarms based on configured information. It sends
generated alarms to any subscribed clients.
Alarm Tag is an OPC AE tag that defines an alarm. You can associate an OPC DA or OPC UA
tag to monitor the values. Inside this tag, you can set up the different alarm types.
AlarmWorX64 Viewer is a client application that subscribes to OPC UA or OPC AE serves. The
viewer allows you to view alarms and events based on the Alarm Subscription and properties set
in the viewer.
Alias Theme is a type of classification that links a global alias to one or more data values and
bundle Global Aliases together.
Alias Value is a predefined value for a Global Alias that can resolve to during runtime when the
correct theme is set.
Client Side Filtering is a type of alarm filter. You can create client side filtering from OPC AE
clients to limit the amount of alarm going to the destination. This does not limit the server from
sending the alarms to the alarm client.
Common Object Model (COM) is a Windows communication protocol designed for inter-
application communication.
Configuration Mode is a design mode for GENESIS64 that can display sample data, but not live
or historical data.
Conversion Alias is a type of language alias. This type of alias converts one type of
measurement unit to another. The final real-time value depends on Unit Bindings and Unit
Conversions defined in the Language Alias configuration.
Critical Alarm is defined in the security system. When acknowledging Critical Alarms you must
login again and acknowledge the alarms within a defined period.
Critical Point is defined in the security system. When you try to write to this point, you must
login again and write to the point within a defined period.
Database Group is a hierarchical grouping in the TrendWorX64 configuration that allows you to
connect to a database for storing data. You can also optionally connect to a secondary database
for redundancy.
Data Aggregation is a feature of UDM Registers, which pools together OPC tag requests from
clients to reduce I/O traffic to a hardware device.
Data Bridging is a feature of UDM Registers, which sends a device’ s output to another device.
Data Collection Rate is the rate at which samples are collected (read) from the OPC server.
Data Entry Object is a Process Point Object that allows you to write to during runtime.
Data Pre-fetch is a feature of UDM Registers, which polls and collects output from a hardware
device in anticipation of incoming client requests.
De-cluttering is a method of showing or hiding details of a display based on the zoom level
using Layers.
Deviation Alarms is one of the alarm types. It uses two inputs and takes the absolute value of the
difference between these two inputs. Alarms are generated when this difference exceeds the Hi
and HiHi limit or falls below the Lo and LoLo limit.
Digital Alarm is one of the alarm types. It tags a Boolean tag or expression that evaluates to
either 1 or 0 and triggers an alarm based on the Alarm State Value you entered.
Display Refresh Rate is the rate at which the TrendWorX64 Viewer updates the viewer with
new data. This rate along with the Data Collection Rate determines how much data is in the
viewer buffer.
Distributed Control System (DCS) is a control system whereby the controllers are
geographically distributed and independent. Data from these remote devices are usually collected
by a central server.
Dynamic is an action property of an object that makes the object actionable or changeable.
Dynamic actions include dimension, color, selectors, and other actions available in
GraphWorX64.
GENESIS64 Controls is a set of controls that allows you to view other data. The viewers
include: AlarmWorX64, TrendWorX64, GraphWorX64, EarthWorX64, and Smartpins.
GenBroker is a service that uses COM/DCOM to communicate with GENESIS32 clients for
backward compatibility.
GenEvent is an event generated by ICONICS. The event can be, but not limited to, a write to
OPC tag ora startup of a service.
GenTray is an application used to configure the GenBroker service that communicates with
legacy OPC data sources.
Global Alias is a reusable variable that can have one or more values. A global alias is configured
and stored in the Global Aliasing System (GAS) database is available for use with all
GENESIS64 applications and can optionally be assigned to a theme; a global alias created
dynamically in a GENESIS64 file is available only in that file and does not have a theme
GraphWorX64 is the GENESIS64 display technology that allows you to build HMI or SCADA
GUIs. GraphWorX64 is the lone GENESIS64 application that can run as a standalone
application outside the Workbench.
GraphWorX64 Content Area is the defined display space where you can add GraphWorX64
objects. In this area, you can build your HMI display.
GraphWorX64 Template takes a .tdfx extension. You can use this to create displays with
uniformed information in it.
GUI stands for Graphical User Interface, which is the screen that an operator uses to control an
application
HMI stands for Human Machine Interface, a GUI display for automation and control software.
History Refresh Rate is similar to the Data Refresh Rate. However, instead of refreshing and
updating the viewer with real-time data, the History Refresh Rate determines how often the
viewer is updated with historic data.
Home Page is a dedicated space of GENESIS64 Workbench’s content area reserved for a web-
based display of your choosing. You can incorporate contents such as RSS feed or a web site into
this page.
Hyper Historian is a high speed data logger that can store data to disk for later analysis.
IAC stands for Inter-application communication, which are methods for applications to pass data.
Key Performance Indicator (KPI) is a set of variables used to determine the success of an
operation. For example, managers may use KPIs to indicate if the resources in a plant floor are
used to maximize productivity.
Language Alias is used to substitute one string for another but allows you to define each value
for different languages.
Layer are levels of a display that you can arrange objects into. You can hide or show layers
under specified security or zoom conditions.
Limit Alarm is one of the alarm types available. When configured, it can generate alarms based
on thresholds that you configure. The thresholds for this alarm type are LoLo, Lo, Hi, and HiHi.
Values at LoLo or below generates a LoLo alarm; values between LoLo and Lo, including Lo
generates a Lo alarm; values between lo and Hi (exclusive) are considered normal; values at Hi
or above, but below HiHi generates a Hi alarm; values at HiHi or above generates a HiHi alarm.
Logging Group defines the table structure for the logged data. You can define the data collection
rate, logging rate, and manage the database tables.
Membership refers to the relationship between security groups and users. You can extend
Security Group membership to Security Users by adding the user to the group.
Object Explorer, also known as the “Explorer” or “Project Explorer”, is the panel inside
GraphWorX64 that lists all objects, including hidden ones, in the currently open display. You
may find it easier to select objects within a group using the Object Explorer.
OLE stands for Object Linking and Embedding. This was originally implemented by Microsoft
to allow application communication.
OPC AE stands for OPC Alarms and Events, which is used to monitor devices for conditions and
provide a reporting function.
OPC Client can receive information from OPC Server if both use the OPC Foundation standards.
GraphWorX64, AlarmWorX64, TrendWorX64, etc are all examples of OPC Client.
OPC DA is OPC Data Access, which is used for reading real time data.
OPC HDA is OPC Historical Data Access, which is a format that allows you to log data into data
files either held in memory or written to disk as database files so that the data can be replayed or
analyzed at a later time.
OPC Server can communicate with OPC devices through PLC or other I/O channels and can
format the data into something that an OPC client can work with.
OPC stands for OLE for Process Control, which is a standard for connection and communicating
with industrial automation devices based on the specification form OPC Foundation (OPC.org).
Pen Group contains a set of pens that will use the same chart type. In the configuration dialog of
the viewer, it is display as chart in the tree control.
Pick Action is a type of Dynamic used to assign command to a shape or object that can open a
display or a popup, downloads a value to an OPC Tag, runs a script, or performs one of many
other actions as the result of user interactions or other actions.
PLC stands for Programmable Logic Controllers, which are programmable devices used to
provide industrial automation controls. OPC servers can connect to these devices to obtain
human readable data.
Preferences Explorer allows you to configure default settings for various objects and behaviors
for GraphWorX64.
Process Point Object or generally called a Process Point, is a dynamic that connects to an OPC
DA or OPC UA data source to display the value inside a GraphWorX64 display.
Project is the founding concept of the GENESIS64 Workbench. A project is the set of
applications and related resources, such as database configurations, services, and project files
that belongs to a single project and should be available inside the Workbench.
Project Explorer is the navigational component of the GENESIS64 Workbench. You can use the
Project Explorer to navigation to different applications within the GENESIS64 Suite.
Project File is the wrapper for a set of displays and settings in GENESIS64 that can be opened
and worked with as a set.
Properties Explorer allows you to configure properties of each object on your GraphWorX64
display. If there is no object selected, the properties shown are the properties for ThisDisplay.
Rate of Change Alarm is one of the alarm types. This type of alarm is generated when the OPC
value changes faster than the rate you configure. The rate is calculated by taking the absolute
value of the difference between the last two reading of an OPC tag, divided by the change in
time (timestamps) from the last two reading. The rate you enter is the Limit per Second rate.
Reference Object is last object selected among many. When you arrange the selected objects, all
objects are arranged based on the properties of this object
Regular Expression is a syntax that can be used to define the format of a string. This is a
standard syntax whose details can be easily found on the internet.
Ribbon is synonymous to the old style application menu at the top of an application. For many
GENESIS64 applications, you will find a Ribbon at the top with different tabs that groups
different commands. The tabs and command could change depending upon the object you are
working within the application.
Runtime Preview Mode allows you to view how the GraphWorX64 display would look like in
runtime. However, since this is only a preview, you can still edit the display because you are still
in Configuration Mode.
Runtime Mode as oppose to Configuration Mode, allows for viewing live or historical data. You
may not edit data or make configuration changes in this mode in viewers. Some ICONICS
servers, such as the AlarmWorX64 server, allows for updates to the configuration while the
service is running.
SCADA stands for Supervisory Control and Data Access, is a system that provides the means to
observe and control automated systems.
Security Item is a resource whose access is allowed only to users authorized by an Administrator.
Security System defines the security configuration for and prevents unauthorized user access in
GENESIS64 resources.
Server Side Filtering is a type of alarm filter. You can use this type of filtering to limit the
amount of alarms that the alarm server sent to the client. This is most useful when the alarm
server and the alarm clients are on different machine to reduce network traffic.
Service Oriented Architecture (SOA) is a software architecture whereby each user does not start
the software application individually. Instead, the software is started and managed by the
operating system as services and can serve multiple users concurrently.
Signal Name is the OPC tag path that you choose to log trend data.
Symbols Library is a collection of symbols within GraphWorX64 designed to help you quickly
build a display.
Tags, also known as Process Points, are a named data source formatted into an OPC
communications standard.
Text Object allows you to enter static text into the text area. This is similar to a text box or label
in MS Word.
Time Date Object is a dynamic text object that displays the current date and time in a
GraphWorX64 display during runtime.
Transitions are special effects, such as a fade out, applied to a display as it closes or loses focus
when another display is opened in the same window. It is similar to transitions in MS Power
Point.
Translation Alias is a type of language alias, which is replaced by the equivalent string defined
in the Language Alias configuration.
TrendWorX64 is a set of applications used to log numerical data into memory or database for
historical viewing or data analysis. Included in TrendWorX64 is a historical server for logging
data and a graphing and charting module for viewing data. The TrendWorX64 Viewer can run
within the Workbench, or as a control within GraphWorX64.
TrendWorX64 Configuration houses the database groups, logging groups, and data tags for
TrendWorX64. You can only have on active configuration at a time.
TrendWorX64 Logger is the application that collects OPC data and stores the information into a
database. The TrendWorX64 Configuration dictates how the data collection and logging occurs.
TrendWorX64 Viewer is the control that allows you to view real-time or historical trend data in
different chart types.
UDM Expression is a function that takes an input, performs a specified calculation, and returns
an output.
UDM Group is a collection of data tags that are manipulated as a single item, which are
represented by a single group tag.
UDM Register is a named address into which you can store values.
UDM Trigger is a rule that defines conditions under which an event occurs. There are two types
of triggers: data triggers and time triggers.
UDM Value Set allows you to write pre-configured sets of values into a group of data tags.
Unified Data Browser is a utility that can browse OPC data sources, select them, and return their
addresses.
Unified Data Manager (UDM) is a front end to a set of SQL databases that are used to store
information used in the various GENESIS64 applications, including expression, local aliases,
and others.
Unit Binding is a list of languages with specific conversions assigned to each. It is maintained in
the Language Alias configuration.
UTC Time stands for Universal Coordinated Time. When using this time, you can be worry free
about time zones and daylight saving time.
Web Publishing Wizard is the ICONICS GraphWorX64 tool that publishes displays as standard
HTML pages.
Workbench is a centralized location where you can manage, configure, and run all of
GENESIS64’s applications, and most of its tools.
Workbench Layout stores specific arranged files for the content area in the Workbench. Opening
a layout opens the designated files in a designated arrangement. You can look at it as a
Workbench Template with specific files assigned in the different areas.
Workbench Template stores arrangement information for use with any files in the content area
of the Workbench. Opening a template arranges any open files to fit the template.
Workbench’s Contents Area is the location where you can create, edit, and display different files
in the Workbench. This area can also span a configuration of multiple monitors.
WPF stands for Windows Presentation Foundation. You can insert WPF objects into any
GraphWorX64 display.
Z-order, in GraphWorX64, is the sequence of objects, from front to back, on the display surface.