640 likes | 891 Views
R. Arnost, B. DeLong, U. Huenichen, A. Scherpenzeel , R. van der Tas, A. Tupaj. GENESIS32 for Power Users. HMI-40 Agenda. Introduction Configuration Databases GENESIS32 Data Mining Facilities Unified Data Manager ScriptWorX2006 Custom Command Servers
E N D
R. Arnost, B. DeLong, U. Huenichen, A. Scherpenzeel , R. van der Tas, A. Tupaj GENESIS32 for Power Users
HMI-40 Agenda • Introduction • Configuration Databases • GENESIS32 Data Mining Facilities • Unified Data Manager • ScriptWorX2006 • Custom Command Servers • Aliases – Language, Global, Local, etc. • Recipe handling with Unified Data Manager • MonitorWorX & Unified Data Browser
Configuration 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
Benefits of SQL Server • Central Storage • GENESIS32 configurations stored in a single database (e.g. Alarm Server, Logger, etc.) • Can be made highly available with clusters • Makes online/live modifications easier • Allows for modifications from a different PC • Convenient in redundant solutions • Both sides can use single (HA) database store
Data 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
Data Mining – Client • Data Mining Grid • ActiveX control • Provides extensive OLE Automation I/F • Records and columns exposed as OPC Tags • Also allows access from PDAs
Data Mining – Example • Demonstration
Unified Data Manager • Global Expressions, Groups, • Value Sets, Recipes, Triggers, • Subscriptions, Filters
Unified Data Manager • Global Expressions
Unified Data Manager • Global Groups
Unified Data Manager • Global Value Sets
Unified Data Manager • Global Triggers • Global Subscriptions • Global Filters
ScriptWorX2006 • 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
ScriptWorX2006 • 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
ScriptWorX2006 • 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
ScriptWorX2006 • 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
ScriptWorX2006 • 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
ScriptWorX2006 • 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”
ScriptWorX2006 • 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
Custom Command Servers • Custom Command Servers and Configurators • Always existed in GraphWorX32 • Runtime and Configuration Mode • V9 also adds support in the Alarm Viewer • Aggregate 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
Architecture GraphWorX32 Alarm Viewer IcoOEMSetup.ini Custom Command Server (COM Object or .net class with COM interop)
Configuration • 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
Code 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
Alarm Viewer Example • Fully customised alarm acknowledge dialog • Allows for custom alarm causes • Integration with Maintenance Systems
Aliasing 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% !
Aliasing “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 times • You can realize standard displays that can be reused • Use 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.
Aliasing 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,
Aliasing There are 4 Types of Aliases • Local Aliases • Global Aliases • Language Aliases • DataWorX Aliases
Local Aliases in Symbols Enables reusable GraphWorX Objects: Fixed address: ICONICS.Simulator.1\SimulatePLC.Valve1Open Alias address: ICONICS.Simulator.1\SimulatePLC.Valve<<ValveNumber>>Open Valve 1 Valve 3 Valve 2
Local Aliases in displays • Use Aliasing in Symbol Pop Up displays:
Global Aliasing • Designed at Core of ICONICS Products • Available 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
Global Aliasing / Configuration • A Global Alias Variable is like an one dimensional array of predefined values. • The Theme defines the number of indices • These Variables are available allover the network!
Global Alias in Runtime Theme ID 1 One action sets multiple Global Alias variables At the same time to the same Index! Hot Water Set by pick actions
GraphWorX32 Displays AlarmWorX32 Viewer TrendWorX32 Viewer Line A Line B Line .. Theme Based Aliasing • The themes are in control, aliases follow All OPC DA, HDA, A/E nodes use <#Server1#> (PC12, PC32, PC8, …) <#Server2#> (PC16, PC15, PC1, …) <#Server3#> (PC14, PC10, PC2, …) <#Server4#> (PC23, PC18, PC42, …)
Real World Example • Recurring layers appear on each display • Labels • Engineering information • Function Groups • security, fire, etc • Remember which layers are visible when switching display
Two Options • OPC Tags to control layer visibility • System wide • Or requires a set of tags for each person • Global Aliasing to control layer visibility • Is automatically (local) system aware • Single set of aliases is sufficient • Is the better solution
Why multi-language support ? • Language neutral SCADA/HMI systems • Expand your international business • Minimize costs • Simplify Internationalized Solutions • Maintenance engineers can connect to the systems viewing real-time and historical data in different languages
Technical Details GraphWorX32 TrendWorX32 AlarmWorX32 /+alias+/ Language Server (COM object) Configurator MDB CSV En DE NL Tables
Functionality • Make visual objects multi-lingual • A language alias is delimited by /+ +/ • /+your_alias_goes_here +/ • The configuration for all Aliases are stored in database • When changing Language • Aliased Text is Translated • Fonts are changed • Automatic Engineering Unit Conversion • Process values are properly formatted xx.xxx
GraphWorX32 • Text Labels, Buttons, … • Tooltips, Popup Menus,… • State Fields • Process Points • Format • Read Scaling Expression • Write Scaling Expression
TrendWorX32 • Aliased Pen Descriptions • Aliased Units Labels • Automatic Ranging • Details window header
AlarmWorX32 • ICONICS Alarm Servers • Also applies to 3rd party A/E Servers • Aliased Alarm Tags and Messages
Alarm Viewer • ICONICS Alarm Viewer • Aliased column names • Aliased alarm content is translated
Alarm Logging • ICONICS Alarm Logger • Subscribes to AE Servers and • Either translates aliased alarm strings • Or, stores aliases untranslated for multilanguage by the alarm reporter
Reporting Historical Alarm • ICONICS Alarm Reporter • Queries alarm database and translates aliased alarm strings
Recipe management • UDM for configuring recipe parameters • Recipe Selection: Tree Control ActiveX • Or PPT’s, State Fields, Pick Actions • Viewing and Editing recipes: Recipe ActiveX • Or PPT’s, State Fields, … • Control recipes: Pick actions • Download, New, Copy • Save, Delete, Restore