Sunteți pe pagina 1din 20

WinCC OA User Days Bilbao 2015

Customizing with WinCC Open Architecture


Rainer Glocknitzer WinCC OA Product Support / Customer Care
WinCC OA User Days Bilbao 2015
Customizing WinCC Open Architecture Table of contents

Themes:
Product setup OEM license contract needed!

General visual appearance


Modifications of the product standard
functionality
Modifications, using configuration
Short presentation for an overview
Live presentation at points of interest
Product Setup

Splash screen of setup

Background images / colors

Modifying product name and version

Adapting feature names and descriptions

Languages / Transformations

Packages / Files cant be added to our product setup !


(separate umbrella- MSI setup creation necessary, calling
our setup silently and adding your data/projects/patches)

Example: http://wixtoolset.org/
Product Setup Edit with Orca (Microsoft SDK)

At first you need the Tool Orca for editing our MSI-Installation-Database:
https://www.microsoft.com/en-us/download/details.aspx?id=3138

Splashscreen -> Modify Splash.bmp

Other Setup-Pictures -> Edit with Orca

English Setup-Texts -> Edit with Orca

German Setup-Texts:

You have to use transformations


General visual appearance

Splashscreen of Userinterface

Window-Titles

Pictures / Icons

About-Panel

Login-Panel

Color-Database

Stylesheets
Stylesheets

Just create a new stylesheet.css and place it


in your project/config folder:

QPushButton { color: white; background-color: blue}

QComboBox { color: grey; background-color: blue}

QPushButton[type="Userdays"] { color: red; background-


color: yellow}
QComboBox[type="Userdays"] { color: red; background-
color: yellow}

PanelQT[type="Stylesheet"] { background-color: darkgray }

Almost everything is possible !


http://doc.qt.io/qt-5/stylesheet-reference.html
Color Database

Draw your panels and shapes, using the standard colors

Example:

Define your personal grey/lightgrey


=> Supervision_grey, Supervision_lightgrey

Assign these Colors to your Shapes

Now change your new colors to your personal grey-color (here


red-oriented)

All shapes, using your colors will change automatically


Modifications of the product standard functionality

Standard Panels / Scripts / Libs

HOOK-functions

Gedi-Menus

Script-Editor enhancements

Powerconfigs

Branding of WinCC OA standard help


Modifications of standard panels and scripts, HOOK-Functions

Almost every panel and script can be modified !


Except encrypted scripts/libs (*.ctc)

Some standard functionality of encrypted scripts can also be modified, using HOOK-functions:

1.) Search for HOOK (filecontent) in your product-directory


2.) Look for

If (isFunctionDefined(HOOK_<functionname>))
{
HOOK_<functionname>();
}

3.) Implement your HOOK-Function fitting to your needs

=> If you create own branch specific libraries, you can always foreseen HOOK-functions, for easy
project specific adaptation of special functionality ! Especially, if your encrypted code would be
affected.
Adding own menus in your graphical Editor (GEDI / WCCOAUI.exe m gedi)

Just place a new script, called <yourchoosenname>_ext.ctl within /scripts/gedi !

To add a new menu, call the following:

Main()
{
Int id = moduleAddMenu(<yourchoosenname>);

moduleAddAction(<Entry1>,....... callBack1);
}

void callBack1()
{
/* Feel free to implement what you need! */
}
Other functions to extend your graphical Editor (GEDI / WCCOAUI.exe m
gedi)

moduleAddMenu()
moduleAddSubMenu()
moduleAddToolBar()

moduleAddDockModule("Console", "projAdmin/console.pnl");

Change the functionality


of your menus during
Runtime with:

moduleGetAction()
moduleSetAction()
Enhancement of the Script-Editor within GEDI

Just place a new script, called <yourchoosenname>_ext.ctl within /scripts/scriptEditor !

To add a new menu, call the following:

Main()
{
Int id = moduleAddMenu(<yourchoosenname>);

moduleAddAction(<Entry1>,....... callBack1);
}

void callBack1()
{
/* For example : */
/* Insert Code samples, you will always need */
/* Create/Insert your own function headers */
}
This code sample was inserted by pressing Ctrl +3
Creation of your own Powerconfigs (1/2)

A Config defines a set of special attributes for a Datapoint Element (DPE)/ Tag
A Powerconfig defines a set of Configs per DPE and the information, which attributes can be changed at the
datepoint instances

Insert Simatic Input Powerconfig


Insert Config
(for S7-Address)

Insert Config
(for Smoothing)
Creation of your own Powerconfigs (2/2)

To create and/or modify you just have to edit the file config/powerconfig !
Is there anything to prepare,
The Powerconfig-Editor is doing the same, but he supports you graphically:
before the entered values are
Which values should be written back to database ?
read out for
Calculation and Write back the modified
configuration ? values into database !

Which default values should


Is there anything to prepare be written once, when the
before the engineer gets the powerconfig is created (on
changeable values Master-DPs and new
presented ? Instances)

Which values should be Tipp: Take an existing one


provided for modification by (similar to your needs),
the engineer at the
datapoint instance?
copy & modifiy it !
Using your own help files is quite simple !

Just use the control-function std_help() ! (#uses std.ctl)

std_help("PVSS"); //data/keywords.txt

std_help("CTRL"); //data/keywords.txt

std_help("http://portal.etm.at");

std_help("c:/test.txt");

std_help("c:/test.pdf");

For branding the original WinCC OA help, youll need an OEM-license contract,
the Tool Rational Robohelp and our WinCCOA-Help-Sources for Robohelp !
Standard configurations

Alarm- and Eventscreen configurations


change graphical look
add/remove own columns
add special functionality

Variable trend configurations


Create/save special configurations for your project
Add comparison trends

System management
Add/Remove Systemmanagement Functions + Icons
Add/Remove Tabs

Panel Topology / Templates


The easy way for creating visualization projects
With including Panelnavigation and Sum-Alarming
Branch specific libraries / business logic

Use Subprojects,
If theres a need to change standard files from Updates/Patches Version
the WinCCOA version
If you want to build an own branch package
If you want to have a logical/functional Subproject Common
separation of common- and project-specific
things
Subproject Energy
Use encryption, Merge !
If you want to protect your know how Subproject Subproject
(panes/scripts/libs) HighVoltage LowVoltage
Especially in your subprojects

Branch specific help files End-customer project


Just place them within your subprojects/help-
folders and use stdhelp() Project Database
Protect your projects an your know how !

1.) Dont use readable passwords in your config files

2.) If you implement additional authorization mechanisms using passwords, allways crypt() them

3.) Protect your Scripts/Libs (GEDI)


Rightclick on your script -> Encrypt Script
Your script will be transformed from *.ctl into *.ctc (original file remains on disk)
Only your *.ctc script should be loaded by other scripts (#uses test.ctc, LoadCtrlLibs = test.ctc
Dont ship your *.ctl-Files !

4.) Protect your Panels (GEDI)


Rightclick on your panel -> Encrypt Panel
Your panel will be saved as *.pnl (but encrypted)
The original file remains on disk, but with ending *.bak
Dont ship your *.bak-Files !

Always save your unencrypted panels and scripts in house !


ETM doesnt provide a kind of general key for emergency help !
Thank you for your attention !

ETM professional control GmbH A Siemens Company:


WinCC OA Customer Care
Contact page

ETM professional control GmbH A Siemens Company


Ing. Rainer Glocknitzer
WinCC OA Product Center / Customer Care
Marktstrasse 3
7000 Eisenstadt
AUSTRIA
Phone: +43 (2682) 741 - 0

E-mail:
rainer.glocknitzer@etm.at

siemens.com/wincc-oa-user-days-2015

S-ar putea să vă placă și