ICONICS Worldwide Customer Summit – September 2006
GENESIS32 for Power UsersGENESIS32 for Power UsersR. Arnost, B. DeLong, U. Huenichen, A. Scherpenzeel , R. van der Tas, A. Tupaj
2
HMI-40 AgendaHMI-40 Agenda
IntroductionConfiguration DatabasesGENESIS32 Data Mining FacilitiesUnified Data ManagerScriptWorX2006Custom Command ServersAliases – Language, Global, Local, etc.Recipe handling with Unified Data ManagerMonitorWorX & Unified Data Browser
3
Configuration DatabasesConfiguration Databases
Historically configuration stored in Access• Alarm Server, Logger, Trend Data Logger,
etc.New generation products use SQL Server• MMX, BridgeWorX, ReportWorX, etc.Version 9 support SQL Server for all products
4
Benefits of SQL ServerBenefits of SQL Server
Central Storage• GENESIS32 configurations stored in a single
database (e.g. Alarm Server, Logger, etc.)• Can be made highly available with clustersMakes online/live modifications easier• Allows for modifications from a different PCConvenient in redundant solutions• Both sides can use single (HA) database store
5
Data Mining – ServerData Mining – Server
Data Mining Server• Supports access to multiple databases
concurrently• Create applications to access
- SQL Server- Oracle - MySQL- Informix (on IBM Mainframes)- and various others using ODBC
6
Data Mining – ClientData Mining – Client
Data Mining Grid• ActiveX control• Provides extensive OLE Automation I/FRecords and columns exposed as OPC Tags• Also allows access from PDAs
8
Unified Data ManagerUnified Data Manager
Global Expressions, Groups,Value Sets, Recipes, Triggers, Subscriptions, Filters
13
ScriptWorX2006ScriptWorX2006
Predictive Thread Planning• ScriptWorX32: 1 Script = Thread
- Max. # of scripts, script queuing → Unpredictable order of scripts
• ScriptWorX2006: Designer/Thread model- Scripts organized into VBA Designers- 1 Designer = 1 Thread- Script queuing on a per-designer basis
14
ScriptWorX2006ScriptWorX2006
Configurator• Project → Designer/Thread → Script• Function, Sub-Routines and Global
Variables - Available to all scripts in a designer
• Script - Associated to a trigger selected from the Unified Data Manager
15
ScriptWorX2006ScriptWorX2006
ScriptWorX2006 Global Variables• Available to all scripts within a
Designer/Thread- Share, watch, change values by each script
- Example: Counter of executed scripts within a Designer
- Available to OPC Clients as OPC DA - Implemented through GenBroker Plug-Ins
- OnVarChange event- Scan for parameters
» Global Variable name
» Thread ID
- Thread ID as input – possible conditioning on Thread ID
16
ScriptWorX2006ScriptWorX2006
Supported ScriptWorX2006 Events• OnConnection
- E.g. connect a DB
• OnDisconnection- E.g. dis-connect a DB
• OnTimer- Timer inside a script
• OnVarChange- Global Variable value changes
17
ScriptWorX2006ScriptWorX2006
Trigger Data• Input parameter of scripts
- Public Sub NewScript(td as TriggerData)
• Triggers are shared with- All Genesis applications- All BizViz applications
- E.g. a script and a report can be triggered by one trigger
• Triggers are managed by UDM
18
ScriptWorX2006ScriptWorX2006
Designer/Thread Options• Priority
- RealTime, High, Above Normal, Normal, Below Normal, Low, Idle
• StartUp Squelch • Timer
- No need to re-trigger entire scripts, use timer inside a script (see also ICONICS Timer ActiveX)
• WatchDog- Prevents scripts running out of control
• Processing Queue- “Ignore new” vs. “Remove old”
19
ScriptWorX2006ScriptWorX2006
ScriptWorX2006 and OPC DA• VBA Global Variables – available as OPC DA
data to any OPC clients• Status of Designer/Thread as OPC DA – queue
length, WatchDog time, etc.• Read / Write OPC DA
• NT Service Support- Genesis32 Tray or manual registration
20
Custom Command ServersCustom Command Servers
Custom Command Servers and Configurators• Always existed in GraphWorX32
- Runtime and Configuration Mode
• V9 also adds support in the Alarm ViewerAggregate all code into a single component• All displays automatically use the same code• Can be used with WebHMI as well• Protect IP inside compiled object• Easy to source control and manage versions
21
ArchitectureArchitecture
GraphWorX32
Alarm Viewer
IcoOEMSetup.ini Custom Command Server(COM Object or .net class with COM interop)
22
ConfigurationConfiguration
CCS defined in IcoOEMSetup.ini• […]GraphWorX32 supports override in pick field• Multiple/concurrent Custom Command
Servers supported during runtime operations
Alarm Viewer support added to• Allow customised acknowledgement dialogs• Build custom interfaces to maintenance
systems
23
Code DefinitionsCode Definitions
Alarm ViewerPublic Function CustomCommand(hWndParent As Long, _ ObjectOne As Object, ObjectOneType As String, _ EventId As Integer) As Boolean… CustomCommand = TrueEnd Function
GraphWorX32Public Function CustomCommand(hWndParent As Long, _ ObjectOne As Object, ObjectOneType As String, _ ObjectTwo As Object, ObjectTwoType As String) As Boolean… CustomCommand = TrueEnd Function
24
Alarm Viewer ExampleAlarm Viewer Example
Fully customised alarm acknowledge dialogAllows for custom alarm causesIntegration with Maintenance Systems
25
AliasingAliasing
What is Aliasing?
Aliasing is providing significant cost saving potential by reusing your:• Graphical Objects• Pop Up Display• Main Displays• Language Displays• Trend Viewer• Alarm Viewer• Scripts
With Aliasing you can reduce the TCO of your project by 30-60% !
26
AliasingAliasing
“With Aliasing you can reduce the TCO of your project by 30-60% ??”
Why ?
Because: You can realize a standard symbol library that can be reused many timesYou can realize standard displays that can be reusedUse one set of displays to visualize lots of:• Devices • Machines• Subsystems• Buildings
Every time you change your standard you are saving time!Your displays can be updated by the software.
27
AliasingAliasing
How does Aliasing work?
Special Variables in the configuration will be dynamically replaced in runtime:
• OPC Tags or part of the address string• System names or IP numbers• Text labels and button labels• Display names, file names, …• Multi language labels, alarm messages,
…• Units,
28
AliasingAliasing
There are 4 Types of AliasesLocal AliasesGlobal AliasesLanguage AliasesDataWorX Aliases
29
Local Aliases in SymbolsLocal Aliases in Symbols
Enables reusable GraphWorX Objects:
Fixed address:ICONICS.Simulator.1\SimulatePLC.Valve1Open
Alias address:ICONICS.Simulator.1\
SimulatePLC.Valve<<ValveNumber>>OpenValve 1 Valve 2 Valve 3
31
Global AliasingGlobal Aliasing
Designed at Core of ICONICS ProductsAvailable throughout all applications• GraphWorX32, AlarmWorX32, TrendWorX32, …
Centralised configuration• Server side database • Client side usage, including WebHMI
Theme based• Changing one theme can change many aliases
Alias resolution can be scoped• Local to the application, or machine wide
32
Global Aliasing / Global Aliasing / ConfigurationConfiguration
A Global Alias Variable is like an one dimensional array of predefined values.The Theme defines the number of indicesThese Variables are available allover the network!
33
Global Alias in RuntimeGlobal Alias in Runtime
Theme ID 1
Hot Water
Set by pick actions
One action sets multipleGlobal Alias variables At the same time to the sameIndex!
34
Theme Based AliasingTheme Based Aliasing
The themes are in control, aliases followGraphWorX32 DisplaysAlarmWorX32 ViewerTrendWorX32 Viewer
Line A
Line B
Line ..
All OPC DA, HDA, A/E nodes use
<#Server1#> (PC12, PC32, PC8, …)
<#Server2#> (PC16, PC15, PC1, …)
<#Server3#> (PC14, PC10, PC2, …)
<#Server4#> (PC23, PC18, PC42, …)
35
Real World ExampleReal World Example
Recurring layers appear on each display• Labels• Engineering information• Function Groups
- security, fire, etc
Remember which layers are visible when switching display
36
Two OptionsTwo Options
OPC Tags to control layer visibility• System wide• Or requires a set of tags for each personGlobal Aliasing to control layer visibility• Is automatically (local) system aware• Single set of aliases is sufficient• Is the better solution
38
Why multi-language Why multi-language support ?support ?
Language neutral SCADA/HMI systems Expand your international businessMinimize costs • Simplify Internationalized SolutionsMaintenance engineers can connect to the systems viewing real-time and historical data in different languages
39
Technical DetailsTechnical Details
Language Server(COM object)
Language Server(COM object)
GraphWorX32GraphWorX32
ConfiguratorConfigurator
EnDE NL
Tables
MDBCSV
TrendWorX32TrendWorX32 AlarmWorX32AlarmWorX32? ? ? ?
/+alias+/
40
FunctionalityFunctionality
Make visual objects multi-lingual• A language alias is delimited by /+ +/• /+your_alias_goes_here +/• The configuration for all Aliases are
stored in databaseWhen changing Language • Aliased Text is Translated• Fonts are changed• Automatic Engineering Unit Conversion• Process values are properly formatted
xx.xxx
44
GraphWorX32GraphWorX32
Text Labels, Buttons, …Tooltips, Popup Menus,…State FieldsProcess Points• Format• Read Scaling Expression• Write Scaling Expression
45
TrendWorX32TrendWorX32
Aliased Pen Descriptions Aliased Units LabelsAutomatic RangingDetails window header
46
AlarmWorX32AlarmWorX32
ICONICS Alarm Servers • Also applies to 3rd party A/E Servers• Aliased Alarm Tags and Messages
47
Alarm ViewerAlarm Viewer
ICONICS Alarm Viewer• Aliased column names • Aliased alarm content is translated
48
Alarm LoggingAlarm Logging
ICONICS Alarm Logger • Subscribes to AE Servers and
- Either translates aliased alarm strings- Or, stores aliases untranslated for multilanguage by
the alarm reporter
49
Reporting Historical AlarmReporting Historical Alarm
ICONICS Alarm Reporter • Queries alarm database and translates
aliased alarm strings
50
Recipe managementRecipe management
UDM for configuring recipe parameters Recipe Selection: Tree Control ActiveX • Or PPT’s, State Fields, Pick ActionsViewing and Editing recipes: Recipe ActiveX • Or PPT’s, State Fields, …Control recipes: Pick actions• Download, New, Copy• Save, Delete, Restore
53
MonitorWorXMonitorWorX
Collect and Expose Runtime Information• Through User’s Interface• As Points available for GraphWorX32 etc.System Tray IconReplacing Gentray and License Monitor
55
MonitorWorX: License TabMonitorWorX: License Tab
See licensed nodes on the networkSee available points, client units, mobile clients, …
56
MonitorWorX: Apps &Services MonitorWorX: Apps &Services TabTab
Start/Stop Servers, View version numbersEnable/Disable events to Windows Event Log
57
MonitorWorX: Redundancy MonitorWorX: Redundancy TabTab
View Redundancy Node Pairs• Health & Running hours• Switch primary node / backup node
58
TraceWorX32TraceWorX32
Designed at Core of ICONICS ProductsComplete Product Error TracingSimple Web Browser GUIZip and Email TraceWorX32 Files• Send to ICONICS engineers
Simplifies DebuggingUser-specified Trace Levels• Logs all Messages at or Above a Trace Level
59
Unified Data BrowserUnified Data Browser
Browse Tags from• OPC Servers, Databases, • SNMP Devices
1/5
60
Unified Data BrowserUnified Data Browser
• ScriptWorX 2006 Variables• UDM: Expressions, Groups, Value Sets,
Recipes
2/5
61
Unified Data BrowserUnified Data Browser
License Details: • Client units, mobile users, points,…
3/5
62
Unified Data BrowserUnified Data Browser
Global AliasesLocal GraphWorX Aliases, Variables and Simulation tags
4/5