GENESIS32 for Power Users G32-103 Raymond van der Tas, Netherlands Andre Scherpenzeel, United Kingdom Mike Hilligas, Michigan Nicole Dombeck, Massachusetts ICONICS 2008 Worldwide Customer Summit Boston, MA
GENESIS32 for Power Users G32-103
Raymond van der Tas, NetherlandsAndre Scherpenzeel, United Kingdom
Mike Hilligas, MichiganNicole Dombeck, Massachusetts
ICONICS 2008 Worldwide Customer Summit Boston, MA
GENESIS32 for Power Users
Advanced uses
Novel uses
Unexpected uses
Application Sizing/Scoping
ICONICS Product Stack
OPC DA Servers
ICONICS Servers
Aggregation/Common Functions
Data Distribution
Visualisation GraphWorX32
GenBroker WebHMI
DataWorX32 Unified Data Mgr.
AlarmWorX32 TrendWorX32
OPC Servers Data Mining Server
Viewers (Alarm/Trend)
Session Focus
GraphWorX32
GenBroker WebHMI
DataWorX32 Unified Data Mgr.
AlarmWorX32 TrendWorX32
OPC Servers Data Mining Server
Viewers (Alarm/Trend)
OPC DA Servers
ICONICS Servers
Aggregation/Common Functions
Data Distribution
Visualisation
Data Mining OPC Server
Data Mining OPC Server
SQL Server Time
Useful for connection time measuring
Persistent Parameter/Value Storage
Demonstration
Persistent Parameter Values
Define a table in SQL Server/SQL ExpressPersistentTag nvarchar(50) PrimaryKeyPersistentValue float
Persistent Parameter Values
Data Mining Server Add a DataConnection to
point to the SQL Server Add a DataSource to point to
the created table Add PersistentTag as a
parameter Enable Writes and Updates
Persistent Parameter Values
OPC Tag Name:
ICONICS.DatabaseOPCServer.3\G32-103.PersistentData<"Tag1">.<PersistentValue>
Tag1 The name of the persistent tag for which to read/write the value
AlarmWorX32
Interesting Settings V9.1
[AWXVIEW32]Header to flash when in alarm?
NoFlash=1
[AWX32\AWXSvr32]How often should runtime changes be accepted? DbPeriod=20000
What to do with disabled Alarm objects? ScanDisabledTags=1
Change scan time for Data Access tags? DAUpdatePeriod=1000
Post GenEvent Errors for non-communicating DA Tags? NotifyDAErrors=1
C:\Documents and Settings\All Users\Application Data\ICONICS\IcoSetup.ini
Alarm Viewer Show Header?
Show: No show:
AlarmWorX32 Server
ICONICS.Alarm Server_ OPC DA Server ! Realtime OPC DA data about A&E
environment
Allow Configuration Changesthrough GraphWorX32
ICONICS.AlarmServer_\<<alarmTag>>.Enabled
LIM_HIHI_Limit
LIM_Acked
LIM_HIHI_Severity
LIM_HIHI_MsgText
Realtime Aggregated AlarmWorX32 data
OPC DA about areas and alarm objects
Trigger Level Alarm
Detect any change in OPC value:(Return to normal after ACK)
Rate Level Alarm
Detect change per second in OPC values and alarm the range in which the change falls:
Related ValuesDowntime and Production Monitoring
AlarmWorX32 Server Related Values
Click to edit Master title styleRelated ValuesDowntime and Production Monitoring
AlarmWorX32 Server Related Values
DataWorX32
DataWorX32 IcoSetup.ini
[DWX32\Options]BrowseNetwork=0BrowseRedundancy=1BrowseMyComputer=1EditAliasesAsRegs=1OPCStartsRuntime=1MonitorRate=1000SaveSettings=1ShowSwitchoverDlgs=1ReloadMode=1ReloadFile=OverrideGBC=0OverrideGBCFile=DefaultOPCInputScanRate=50DefaultExpressionScanRate=50DefaultConditionScanRate=500RefreshOutputs=0RefreshOutputRate=60000ShowOPCTagFailMsgs=0IgnorePointSecurity=0ScanRateLimit=0
Input propagation
Avoid oscillation of
input/output when input and
output point at the same OPC
tag
Refresh output
Refresh output in case input
tag is different from the output
tag
And it is likely that input devices are switched off and on
Unified Data Manager
Unified Data Manager
UDM Registers versus DataWorX32
UDM can only be used by ICONICS products No scaling available No (redundancy, switch) aliasing available No automation interfaceDWX32 can be used by any OPC client Scaling available Aliasing available Automation interface available Can be configured to be “always on scan”
UDM Expression
Globally available to all
products
Parameterized
Read and Write Expressions
UDM groups
Logically group tags Write action to group distributes writes to
members (eliminate multiple pick actions) Groups may be grouped as well
Value Sets
Allow users to select a set of
values from a list of available
sets
GenBroker, WebHMI & Security
GenBroker
Server Security Limit access to certain OPC or ICONICS
functions Force “Read Only” for all data irrespective of
user security Require user credentials for the channelClient IDs Force clients to have a certain configurationLicense Restrictions Specify preferred nodes for licenses
GenBroker – Server Security
Overall Read OnlyRestricted Functions OPC Protocols ICONICS Protocols ICONICS/OPC
FunctionsCredentials Force logon for the
channel
GenBroker – Client IDs
Specific Nodes
Specific Security Servers
Specific License Servers
Specific Versions
GenBroker – License Restrictions
Specify the preferred nodes
Specify the reserved licenses
for the preferred nodes
Custom Security
Use within VBA in GraphWorX32
Validate currently logged-on user rights using logical security properties
rather than user or group name
Custom Security
Example Script Validates the current custom security
permissions for the token “ShowCustomForm” and shows a form based on that
Sub CustomSecurityTest(o As GwxPick) If (ThisDisplay.TestCustomSecurityItem("ShowCustomForm")) Then ' Show custom form GwxCustomSecurityTest_MainForm.Show Else MsgBox "Security Access Denied", vbCritical Or vbOKOnly, "Security" End IfEnd Sub
WebHMI
Sizing Methodologies Connection Count Methodology Memory Usage Methodology
Connection Count Methodology
Number of connections per (WebHMI) Client
Type of connections
OPC AE/DA/HDA, Security, Global Aliases, Security, Licensing, UDM Registers/Expressions, etc.
Number of threads supported by GenBroker
1,500 – 2,000 total (Limited by OS)
Typical Range
75 – 150 clients
Memory Usage Methodology
OPC DA Requirements 100 KB / OPC Server
1 KB / OPC Tag
OPC AE Requirements Maximum buffer: 1KB * Maximum Alarm Burst
Allocate maximum buffer for each AE Client
How to Scale Up
To double or triple the
maximum number of clients
that can be connected to a
single node:
Separation of OPC DA & ICONICS Servers
Separation of Administrative & Data Servers
GraphWorX32 & Trend Viewer
Visualisation
TWXViewer Drag/Drop Example Supports both DA & HDA tags
Prefix tag with hda. for HDA tags
GraphWorX32 Configuration Builder GenRegistrar interaction Symbol Library interactionDemonstration
Drag & Drop Pens on a Trend
Any OPC Tag can be turned into
a drag & drop source
Also expose HDA tags
via the hda. Prefix
Dynamic Drag & Drop Tag List
Define a tag list and appropriate descriptions in an alias file
Show the descriptions in a process point
Use a colour or hide dynamic for the tags
Enable drag/drop for this dynamic
Add buttons to load different alias files as required
Custom Command Servers Principles
Custom Command Server is implemented as a COM object Many programming languages supported: Visual Basic, C++, C#, etc.
User driven using GraphWorX32 pick fields (runtime) Supports use of multiple Custom Command Servers in a single display
User driven using GraphWorX32 custom button (configuration) Available on the property pages of dynamic and static objects
Automatic for Alarm Viewer events Available from GENESIS32 version 9
GraphWorX32
Alarm Viewer
Pick Field
CustomCommandServer
Advantages & Disadvantages
AdvantagesSingle Code Base
VBA code only shared within a single display VBScript/Jscript code defined per object
Protect IP in compiled code
VBA can be protected via password No protection for VBScript/Jscript code
Source Control VBA/VBScript/Jscipt code cannot be easily
source controlled as it is part of the display
Version Management VBA/VBScript/Jscipt code cannot be easily
source controlled as it is part of the display
WebHMI Support VBA cannot be used in WebHMI
DisadvantagesRequires Visual Studio
VBA/VBScript/Jscript programming environment provided by GENESIS32
Requires visual studio to debug
Needs distribution mechanism
VBA/VBScript/Jscript code is part of the display, custom command servers are separate entities
NeutralBetter planning required
As a separate component is created more of a software engineering approach is required
Better understanding As all interaction takes place via OLE automation
and more can happen concurrently a better understanding of the system as a whole is needed for a successful implementation
GraphWorX32 Display Builder
Access GraphWorX32 using GenRegistrar
Also available during configuration by setting:[GWX32\Compatibility Properties] DesignTimeRegistration=1
Use symbols from the library to insert objects onto the display
Configure the object’s properties using local aliases
Using GenRegistrar
Instantiate the GenRegistrar Automation Wrapper
Query the running application(s)
Dim GenReg As New AutoGenRegistrar
Dim count As Long
Dim keys, apps, nodes, dispatches
GenReg.QueryDispatch2 "*", "GWX32", "*", count, keys, apps, nodes, dispatches
Inserting Symbols
Inserting Symbols into the Display
Dim symbol As GwxSymbol
Call ThisDisplay.InsertLibraryObjectByName("1_Water\Static Water Treatment", "R.B.C")
Set symbol = ThisDisplay.GetHeadObject
Changing Aliases
Call SetAliasDefinition for the aliases
symbol.SetAliasDefinition "OPCServer", "ICONICS.Simulator.1“
symbol.SetAliasDefinition "TAG", "TAG1023"
GENESIS32 for Power Users
QuestionsExam
≈Cityview Room: Break & Expo
ICONICS 2008 Worldwide Customer Summit
Boston, MA