In the depth of UNICOS …

85
In the depth of UNICOS Hervé Milcent EN/ICE How to create a new package

description

In the depth of UNICOS …. How to create a new package. Hervé Milcent EN/ICE. Outline. Introduction Concept of the core of UNICOS What can be added/modified in package New package: step by step description Introduction, rules and procedure Configuration Check, delete, import, export - PowerPoint PPT Presentation

Transcript of In the depth of UNICOS …

Page 1: In the depth of UNICOS …

In the depth of UNICOS …

Hervé Milcent EN/ICE

How to create a new package

Page 2: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 2

Outline1. Introduction2. Concept of the core of UNICOS3. What can be added/modified in package4. New package: step by step description

Introduction, rules and procedure Configuration Check, delete, import, export Front-end systemIntegrity Widget, faceplate, device action, right click,

snapshot, trending Alarm list CPC event list Packaging

Page 3: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 3

1.1. IntroductionIntroduction2. Concept of the core of UNICOS3. What can be added/modified in package4. New package: step by step description

Introduction, rules and procedure Configuration Check, delete, import, export Front-end systemIntegrity Widget, faceplate, device action, right click,

snapshot, trending Alarm list CPC event list Packaging

Page 4: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 4

Preliminary UNICOS: primary for cryogenics control Process control in the front-end Process supervision with a SCADA Keeping in mind:

Development of user interface by operators Less work as possible for the developer (non SCADA

expert) Control system as a whole (abstraction of SCADA & front-

end) UNICOS:

SCADA: UNICORE: unCore, unLHCServices Based on PVSS & JCOP

Front-end: UNICORE: TSPP protocol

Page 5: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 5

UNICOS framework: Package Package

Extend UNICORE to a specific domain Set of components combined/configured together

Ex: Device component, utilities, etc.

Application A

UNICORE

UNICOS CPC package

PLCs CPCPLCs

(non CPC)FECs

(FESA)

Application packages(PIC, ..)

Application packages

(QPS, SURVEY, ..)

Control layer

UN ICOS

Supervision layer

Page 6: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 6

UNICOS framework: application

Set of package combined and configured together to produce control/monitoring application

Proce

ss co

ntrol a

pplicationUNICORE

UNICOS CPC package

PLCs CPCControl layer

UN ICOS

Supervision layer LHC

Cryogenics

LHC GCS

Page 7: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 7

Do not forget … Process control in the front-end & Process

supervision with a SCADA & less work as possible for the developer (non SCADA expert) Link between Front-end & SCADA from a unique source No manual configuration

Development of user interface by operators Building synoptics with drag & drop features

Control system as a whole (abstraction of SCADA & front-end) User: little or no SCADA knowledge Errors in log =>useless Handle remote system as is local All the relevant information on data quality in one shot

Page 8: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 8

1. Introduction2.2. Concept of the core of UNICOSConcept of the core of UNICOS3. What can be added/modified in package4. New package: step by step description

Introduction, rules and procedure Configuration Check, delete, import, export Front-end systemIntegrity Widget, faceplate, device action, right click,

snapshot, trending Alarm list CPC event list Packaging

Page 9: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 9

Concept …. Based on front-end device:

PLC, FEC, OPC, Soft Front-end, etc. With or without hardware link

And device: Analog Input, Digital Input, etc. With or without hardware link Attached to one and only one front-end

The unCore will trigger your device functions

Placeholder in well defined places Lib functions & panels

Page 10: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 10

Some rules … No use of PARA module by application developer, operators Device configuration:

Import utility Device configuration utility: device DPE configs, etc.

GEDI just for to create the user panels (synoptics) Easy & understandable Diagnostic Configuration Intensive use of

DistributedControl component: check the connection/disconnection of remote system DistributedControl callback functions Can use variables global to the panels, libs, even without the

global keyword evalScript and execScript

Be careful with global variables (in panels, libs, etc.), $-param

Page 11: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 11

unCore: concept … Import: mass configuration

Import device configuration Delete device configuration

Export: Export device configuration

Widget: summarized view of the device data as many as needed

Faceplate: detail view of the device data Just one

Many device trend configuration

Device action interface Action on the device Device access control

4 privileges, many domains

File access control 3 privileges, many domains

Page 12: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 12

Naming & hierarchies … Device – front-end device name: logical name of the device, PVSS

alias ‘:’ not allowed, is the PVSS system name separator PVSSsystemName:PVSSAlias Ex:

DFBA_CV981, MB.A12R3, P8_82:DFBA_CV981, QPS_34:MB.A12R3

Device – front-end device DP name: hardware name of the device, PVSS DP name PVSSsystemName:prefix-fe-application-deviceType-xxxxx A…Z and 0…9 allowed characters ‘-’ as separator, ‘:’ is the PVSS system name separator Ex:

un-CFP_SHC8_LHC8-QSCB-Analog-00123, qps-CFC_SR3_DR3BC_IP3_DR3B-A34-DQAMCMB-10320, P8_82:un-CFP_SHC8_LHC8-QSCB-Analog-00123, QPS_34:qps-CFC_SR3_DR3BC_IP3_DR3B-A34-DQAMCMB-10320

Page 13: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 13

Link & proxy … Link: device can be linked together

Link between UNICOS devices: relationship between devices Ex: PID linked to AnalogInput

Unidirectional or bi-directional link Device can have access to the linked device No UNICOS device type limitation, as many as needed Linked device not configured with the device config during the import

phase Proxy: device & front-end device as a proxy for non-UNICOS device

Allow non UNICOS device to be seen by UNICOS utilities Import/export Trending Widget, faceplate, device action

Integration of JCOP device into UNICOS Ex: UnFwElmb_AI UNICOS device proxy of FwElmbAi device (JCOP)

Unidirectional link: UNICOS device proxy devices Proxy of only configured types, as many as needed Proxy can be also with UNICOS device type Proxy device can be created and configured during the import phase with

the device Proxy in the same system as the device

Page 14: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 14

systemIntegrity: concept Checks the integrity of an application Interface to add new type of integrity check Periodic check of the front-end state

Check of alive counter Callback on errors, front-end DPE, etc. Create one or many _UnSystemAlarm devices

Use different value for different problem, not the same for many different problems diagnostic easier

systemIntegrity component Configuration of the component Component:

PVSS libs Configuration panel Operation panel

Page 15: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 15

Front-end device and device Device type Set of libraries

Recommended solution: load via the config file

“#uses keyword” Set of panels Configuration

Page 16: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 16

Front-end device Represents a real or soft front-end holding devices

E.g.: OPC Server, MODBUS PLC, FEC, SIEMENS PLC, etc. Can have many devices grouped by

Application: device grouped together to build a control application (historical, comes from cryogenics first implementation)

Device type Number from 00000 to 99999

Device data through the front-end communication link Quality of the front-end link systemIntegrity

Widget, faceplate, access control via file access control Many trending configuration Proxy allowed No link with device

Page 17: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 17

Device Represents a piece of hardware or software

entity E.g.: AnalogInput, etc.

Belongs to one and only one front-end in one and only one application

Widget, faceplate, device action, device access control

Device can be selected: exclusive lock No action allowed if not selected Automatic de-selection

Many trending configuration Link allowed Proxy allowed

Page 18: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 18

Grouping devices Hardware by device DP name

Device device type application front-end

subsystem1 (domain in UNICOS vocabulary)

subsystem2 (nature in UNICOS vocabulary) Sub group of subsystem1

Device one or many subsystem2 one or many subsystem1

Page 19: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 19

Test All panels, libs with different conditions All possible errors All possible cases With simulated values Document describing the tests

Page 20: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 20

1. Introduction2. Concept of the core of UNICOS3.3. What can be added/modified in packageWhat can be added/modified in package4. New package: step by step description

Introduction, rules and procedure Configuration Check, delete, import, export Front-end systemIntegrity Widget, faceplate, device action, right click,

snapshot, trending Alarm list CPC event list Packaging

Page 21: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 21

Modification in a package Device component: any device UNICOS

configuration Widget behavior Device action behavior Import/export Etc.

Must be discussed and checked with the responsible of the package

Page 22: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 22

Add: device for new front-end, front-end with new device

Import/export Device imported with new front-end

Device for new front-end Device configuration can be different See corresponding slide on check,

delete, import, export

Page 23: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 23

Add new widget in a package Must be discussed and checked with

the responsible of the package See corresponding slide on widget

Create a new widget Add it into the catalog Modify the device functions test it (see slide on testing)

Page 24: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 24

1. Introduction2. Concept of the core of UNICOS3. What can be added/modified in package4.4. New package: step by step descriptionNew package: step by step description

Introduction, rules and procedureIntroduction, rules and procedure Configuration Check, delete, import, export Front-end systemIntegrity Widget, faceplate, device action, right click,

snapshot, trending Alarm list CPC event list Packaging

Page 25: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 25

New package: for which purpose

Exiting device with new front-end See slides on front-end import/export See slides on device front-end

import/export Existing front-end with new device

See slides on adding a device New front-end and new device New utilities

Page 26: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 26

New package: do not forget! If you overwrite a package setting

Your package must be always re-installed after an installation

Dependency between packages A package is not an application A package can contains a customized

HMI Recommended to configure the provided HMI See doc: UNICOS-HMI.pdf

Page 27: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 27

New front-end & new device Create the front-end Create the front-end system integrity

component Create the device Test it Package the development

Note: a front-end device is less configurable than a device Some of the functions are based on a strict naming

convention based on the device type and/or front-end type and suffix.

Page 28: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 28

Naming convention ‘preFix’

String, e.g.: qps ‘package’:

String, e.g.: qps ‘FrontEndType’

String, e.g.: DQGTW Function: ‘FronfEndType’_getArchiveProxyDPE e.g.: DQGTW_getArchiveProxyDPE

‘DeviceType’ String, e.g.: DQAMCMB Function: ‘DeviceType’_getArchiveProxyDPE e.g.: DQAMCMB_getArchiveProxyDPE

Check DeviceType function Function: entirely configurable.

Page 29: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 29

Rules for development Panels

Use prefix, group the panels by functionalities Widgets in objects/… Faceplate, device action in vision/‘package’/‘DeviceType’ Panels re-used in many places in the package in

vision/‘package’/common Libs

All constants in a lib ‘preFix’ConstantDeclarations.ctl Function used many time during import

‘preFix’ConfigGenericFunctions.ctl Functions used many times for widget, faceplate, device

action, etc. ‘preFix’GenericFunctions.ctl Use the MessageText (log book) to keep history of action,

inform user, etc. Use unGenericDpFunctions_debugN and

unGenericDpFunctions_debugTN functions whenever possible Allow DebugN and DebugTN with condition

Page 30: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 30

Front-end/Device function calls: three cases Check/Import

Different behavior for front-end and device Configurable

Export Different behavior for front-end and device Not configurable, function name based on front-end

type and device type Different of driver type by function based on driver

type if needed (depends on the developer) Widget, faceplate, right click, device action,

treeDeviceOverview Same behavior for front-end and device Device functions: fully configurable Front-end functions: partly configurable

Page 31: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 31

New Front-end1. Create the device type: DPType2. Set the front-end device definition3. Create the front-end check, delete and import functions

scripts/libs/‘preFix’Config‘FrontEndType’.ctl

4. Create the front-end export functionsscripts/libs/‘preFix’ExportDevice.ctl

5. Create the front-end device functionsscripts/libs/‘preFix’‘FrontEndType’.ctl

6. Create the widget, catalog of widget, widget parampanels/objects/FRONT_END/Widget_‘FrontEndType’.pnlimages/objects/FRONT_END/Widget_‘FrontEndType’.pnl/Widget_‘FrontEndType’.pngpanels/objects_paramspanel/FRONT_END/‘preFix’‘FrontEndType’_para.pnl

7. Create the faceplatepanels/vision/graphicalFrame/‘FrontEndType’_DiagnosticDetail.pnlpanels/vision/graphicalFrame/Faceplate‘FrontEndType’.pnl

8. Configure the trending9. Create the front-end system integrity

panels/vision/systemIntegrity/systemIntegrity_‘FrontEndType’_configurationl.pnlpanels/vision/systemIntegrity/systemIntegrity_‘FrontEndType’_operationl.pnl

10. Test import, export, widget, faceplate, right click, etc.

Page 32: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 32

New device1. Create the device type: DPType2. Set the device definition3. Set the JCOP device definition4. Create the device check and import functions

scripts/libs/‘preFix’Config‘DeviceType’.ctl

5. Create the device export functionsscripts/libs/‘preFix’ExportDevice.ctl

6. Create the device device functionsscripts/libs/‘preFix’‘DeviceType’.ctl

7. Create the widget, catalog of widget, widget parampanels/objects/‘PACKAGE’/‘preFix’Widget_‘DeviceType’‘Type’.pnlobjects/‘PACKAGE’/‘preFix’Widget_‘DeviceType’‘Type’.pnl/‘preFix’Widget_‘DeviceType’‘Type’.pngpanels/objects_paramspanel/‘PACKAGE’/‘preFix’‘DeviceType’_para.pnl

8. Create the faceplatepanels/vision/‘package’/‘preFix’Faceplate‘DeviceType’.pnlpanels/vision/‘package’/‘preFix’Faceplate‘DeviceType’_status.pnlpanels/vision/‘package’/‘preFix’‘DeviceType’TrendingFaceplate.pnl

9. Create the device action interface, access control and functionspanels/vision/‘package’/‘preFix’‘DeviceType’_ButtonPanel.pnl

10. Configure the trending11. Create the treeDeviceOverview function12. Test import, export, widget, faceplate, right click, etc.

Page 33: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 33

1. Introduction2. Concept of the core of UNICOS3. What can be added/modified in package4.4. New package: step by step descriptionNew package: step by step description

Introduction, rules and procedure ConfigurationConfiguration Check, delete, import, export Front-end systemIntegrity Widget, faceplate, device action, right click,

snapshot, trending Alarm list CPC event list Packaging

Page 34: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 34

Front-end/Device: DPType

Mandatory DPE

Selected stateDevice access rightDevice linkDevice log

ProcessInput: input DPE ProcessOuput: output DPE Front-end counter DPE: used in systemIntegrity

Page 35: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 35

Front-end device definition Configuration of the front-end device type

Function, proxy device type, etc.

Page 36: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 36

Device definition Configuration of the front-end device type

Function, proxy device type, etc.

Page 37: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 37

Device: JCOP device definitionpanels/fwDevice/fwDeviceRegisterType.pnl

Set the archive config

Page 38: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 38

1. Introduction2. Concept of the core of UNICOS3. What can be added/modified in package4.4. New package: step by step descriptionNew package: step by step description

Introduction, rules and procedure Configuration Check, delete, import, exportCheck, delete, import, export Front-end systemIntegrity Widget, faceplate, device action, right click,

snapshot, trending Alarm list CPC event list Packaging

Page 39: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 39

Check, Delete, Import: file File

One front-end, one application List of devices

All configuration in the same line 3 archives can be in files use instead of the default one

Front-end type, driver number

# # Database PVSS generated at 2008.06.01 22:03:40 # # Device type: S7_PLC # #Delete;PLC_Quique;Sector81;PLCCONFIG;S7-300;PLC_Quique;Sector81;0A;0;3;10;0;0;AB;500;137.138.37.232;DB10.DBD0;DB10.DBW20;DB10.DBW30;DB10.DBW40;DB10.DBD4F;0.1;2;# FESystemAlarm (SystemAlarm)#For S7-300 1SystemAlarm;1;TEST_PLC_Comm_Status_with_FES7;DB1.DBW0;TRUE;Communication state with other FE;#For S7-300 2SystemAlarm;2;pb1;DB11.DBW30;TRUE;this is a positive alarm;#For S7-300 3SystemAlarm;3;pb2;DB11.DBW20;FALSE;this is a negative alarm;#For S7-300 4SystemAlarm;4;positive_true;DB11.DBW10;TRUE;hola positive_true;# # Database PVSS generated at 2008.06.01 22:03:40 # # Device type: Alarm # Alarm;1001;QXD4N_A_SEPH_P_FS1S7;Full Stop;diagnostic.pnl;info.html;;SEPH;alarm;Alarm;0;DB69.DBW0;DB69.DBD2;DB69.DBW6;;;ValueArchive_0000;1;Alarm;1002;QXD4N_A_SEPH_P_FS2S7;Full Stop;diagnostic.pnl;info.html;;SEPH;alarm;Alarm;0;DB69.DBW0;DB69.DBD22;DB69.DBW26;;;;1;Alarm;1001;QQXD4N_A_SEPH_P_FS1S7;Full Stop;diagnostic.pnl;info.html;;SEPH;alarm;Alarm;0;DB669.DBW0;DB669.DBD2;DB669.DBW66;ValueArchive_0000;;ValueArchive_0000;1;Alarm;1002;QQXD4N_A_SEPH_P_FS2S7;Full Stop;diagnostic.pnl;info.html;;SEPH;alarm;Alarm;0;DB669.DBW0;DB669.DBD22;DB669.DBW266;ValueArchive_0000;;ValueArchive_0000;1;# # Database PVSS generated at 2008.06.01 22:03:40 # # Device type: AnaDig # AnaDig;1001;Q_A_ADO1S7;Description Q_A_ADO1;diagnostic.pnl;info.html;NONE;SPARE;anadig;AnaDigValveVertical;%;EXP;100.0;0.0;90.0;10.0;0;0;N;0;0;DB168.DBW0;….38F;;;ValueArchive_0000;1;AnaDig;1002;Q_A_ADO2S7;Description Q_A_ADO1;diagnostic.pnl;info.html;NONE;SPARE;anadig;AnaDigValveVertical;%;EXP;100.0;0.0;90.0;10.0;0;0;N;0;0;DB168.DBW0;..;

……

Page 40: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 40

Front-end/Device data flow: check Front-end type 3 archives, valarch & RDB:

Boolean, Analog, Event: in device config line from file or panel Default behavior

Boolean: bool, char DPE Analog: float DPE Event: int, uint, struct DPE

Check the available free space sim driver and dist not running

Call FrontEndType check_deleteCommand

function

Delete line

PLCONFIG line

PLCONFIG Communication

line

Call FrontEndType checkConfig function

Call FrontEndType checkConfig functioncall ‘FrontEndType’_getFrontEndArchiveDp and

‘FrontEndType’_getArchiveProxyDPE

Call DeviceType checkConfig function and ‘DeviceType’_getArchiveProxyDPE

yesno

yes

yes

Errorno

no

Call FrontEndType checkConfig function for _UnSystemAlarm and SystemAlarm devicescall ‘FrontEndType’_getFrontEndArchiveDp and ‘FrontEndType’_getArchiveProxyDPEDevice?

yes

no

Retrieve archive DeviceType info from function

‘DeviceType’_getArchiveDPE or use default rule

End file?

no

yes

Page 41: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 41

Front-end: check ‘FrontEndType’_getFrontEndArchiveDp: evalScript

Return the list of front-end, systemAlarm or FESystemAlarms DPEs to be archived

‘FrontEndType’_getArchiveProxyDPE: evalScript Returns the list of proxy DPEs linked to the front-end For boolean, analog and event archives

FrontEndType checkConfig: check the _UnSystemAlarm, SystemAlarm, Front-end configuration, front-end DPE configs, proxy configs, etc. evalScript PLCCONFIG keyword :

Mandatory field: PLCONFIG;front-end instance name;front-end application Front-end configuration: as many as needed

PLCCONFIG;PREMIUM;vac_180;VAC;4; _UnSystemAlarm keyword: _UnSystemAlarm;nbr;Checked PLC;address; SystemAlarm keyword: SystemAlarm;1;vac_180;2;true;Communication state with PLC: vac_180;

Page 42: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 42

Device: check ‘DeviceType’_getArchiveDPE: returns the list of device DPE for

boolean, analog and event archives evalScript

‘DeviceType’_getArchiveProxyDPE evalScript Returns the list of proxy DPEs linked to the device For boolean, analog and event archives

DeviceType checkConfig: check the device configuration, device DPE configs, proxy configs, etc. evalScript DeviceType keyword

Mandatory fields: “DeviceType;Device number (unique);Device name (Device Identifier);description;Diagnostic panel;HTML page;Default panel;subsystem1 (Domain);subsystem2 (Nature);Widget Name"; Diagnostic panel: panel for the device diagnostic HTLM page (link) Default panel: panel that can be poped-up Widget Name: widget used in the treeDeviceOverview =

‘DeviceType’‘Type’ of ‘preFix’Widget_‘DeviceType’‘Type’.pnl Device configuration: as many as needed

Page 43: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 43

Front-end/Device data flow: delete Front-end type Delete front-ends and devices

Application, device type, number sim driver and dist not running

Call FrontEndType check_deleteCommand

function

Delete line

Call FrontEndType

deleteCommand function

yes

no

Page 44: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 44

Front-end: delete Delete keyword

Mandatory field: Delete;Front-end instance nameDelete;Front-end device name[;Front-end application (or *);[Device type;[Device

id;]]]

Optional: application name, device type, device number

Delete;vac_180Delete;vac_180;Sector12; Delete;vac_180;Sector*2*;AnalogInput*3*;

FrontEndType check_deleteCommand: evalScript Return the list of Device and proxy to be deleted

FrontEndType deleteCommand: evalScript Delete all the Device and proxy

Page 45: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 45

Front-end/Device data flow: import Front-end type With/without check sim driver and dist not

running

Call FrontEndType check_deleteCommand

function

Delete line

PLCONFIG line

PLCONFIG Communication

line

yes

no

yes

yes

Error

no

no

Call DeviceType setConfig function

Call FrontEndType setConfig function

Call FrontEndType setConfig function

0 device to delete?

yes

no

Call FrontEndType setConfig function for _UnSystemAlarm and SystemAlarm devices

Device?

yes

no End file?

yes

no

Page 46: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 46

Front-end/Device: import Front-End:

FrontEndType setConfig: evalScript set the _UnSystemAlarm, SystemAlarm, Front-end

configuration, front-end DPE configs, proxy configs, etc. PLCCONFIG keyword:

Mandatory field: PLCONFIG;front-end instance name;front-end application

Front-end configuration: as many as neededPLCCONFIG;PREMIUM;vac_180;VAC;4 _UnSystemAlarm keyword: _UnSystemAlarm;nbr;Checked PLC;address; SystemAlarm keyword: SystemAlarm;1;vac_180;2;true;Communication state with PLC: vac_180;

Device: DeviceType setConfig: evalScript

set the device configuration: DPE value, proxy configs, device DPE configs (address, alarm, SMS, archive, etc.)

Alarm;1001;QXD4N_A_SEPH_P_FS1S7;Full Stop;diagnostic.pnl;info.html;;SEPH;alarm;Alarm;0;DB69.DBW0;DB69.DBD2;DB69.DBW6;;;ValueArchive_0000;1;

Page 47: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 47

Front-end/Device data flow: export Front-end type Front-end One/many application One/many device type To produce the same file

as the one used in the import

Call ‘FrontEndType’_Com_ExportConfig function

No more application?

Call ‘FrontEndType’_’DeviceType’_ExportConfig

function

No more Device?

yes

no

yes

no

Page 48: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 48

Front-end/Device: export Front-end

‘FrontEndType’_Com_ExportConfig: for each front-end application evalScript Returns the front-end configuration: device value,

configs, proxy, etc. Returns the associated _UnSystemAlarm devices

configuration Returns the associated SystemAlarm devices

configuration Device

FrontEndType’_’DeviceType’_ExportConfig: for each device evalScript Returns the device configuration: device value, configs,

proxy, etc.

Page 49: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 49

Test All the possible errors during the check,

delete and import phase The export Final test:

export->import of export file->export The two exported files must be identical

except the time of export. Document describing the tests

Page 50: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 50

1. Introduction2. Concept of the core of UNICOS3. What can be added/modified in package4.4. New package: step by step descriptionNew package: step by step description

Introduction, rules and procedure Configuration Check, delete, import, export Front-end systemIntegrityFront-end systemIntegrity Widget, faceplate, device action, right click,

snapshot, trending Alarm list CPC event list Packaging

Page 51: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 51

Front-end systemIntegrity data flow _UnSystemAlarm device Check the communication link

with Front-end or any other relevant data from front-end

Configuration, operation panel

Call device_initialize function dpSet(command, add)dpSet(parameters, list of device)

dpConnect(device_dataCallback,…)

dpConnect(device_handleCommand,…)

Register device_handleCommand

function

Register device_dataCallback

function

SystemIntegrity script

dpSet(command, add/delete/enable/disable)

dpSet(parameters, list of devices)

dpSet(command, diagnostic)

dpSet(data, …)

At panel intialiaze dpConnect(.., result, commandResult)

At panel initialization get all _unSystemAlarm_devicePattern_deviceName

dpSet(parameters,device)

dpSet(command, enable/disable)

Mask/unmask/ack _unSystemAlarm_devicePattern_deviceName

Page 52: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 52

systemIntegrity: alarm screen

Page 53: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 53

Front-end: system integrity Configuration panel

panels/vision/systemIntegrity/systemIntegrity_‘FrontEndType’_configurationl.pnl $-param $sComponent: the system integrity component

Operation panelpanels/vision/systemIntegrity/systemIntegrity_‘FrontEndType’_operationl.pnl $-param $sComponent: the system integrity component

systemIntegrity functions in lib: Initialize: evalScript, returns the list of devices with enabled system alarms DataCallback: callback function on config data HandleCommand: callback function on the interface DPE

Add: add front-end system integrity on the front-end Delete: delete front-end system integrity on the front-end Enable: enable the front-end system integrity of the front-end Disable: disable the front-end system integrity of the front-end Diagnostic: give back the list and state of the system integrity of the front-end …

Do a periodic check on an alive counter and create system alarm, dpConnect on front-end device data, etc.

Generate _UnSystemAlarm

Page 54: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 54

Front-end: diagnosticpanels/vision/graphicalFrame/‘FrontEndType’_DiagnosticDetail.pnl $-param $sFrontEnd the front-end DP name Put all relevant and useful info from front-end or proxy for

debugging

Page 55: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 55

Test Panels

Local and remote system systemIntegrity lib

All cases Document describing the tests

Page 56: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 56

1. Introduction2. Concept of the core of UNICOS3. What can be added/modified in package4.4. New package: step by step descriptionNew package: step by step description

Introduction, rules and procedure Configuration Check, delete, import, export Front-end systemIntegrity Widget, faceplate, device action, right click, Widget, faceplate, device action, right click,

snapshot, trendingsnapshot, trending Alarm list CPC event list Packaging

Page 57: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 57

Set LockBmp invisible

LockBmp=””

$sIdentifier=””

Call DeviceType WidgetRegisterCB

‘FrontEndType’_WidgetRegisterCB function

yes

no

yes

no

Call DeviceType WidgetDisconnection

‘FrontEndType’_WidgetDisconnection function

unGenericObject_WidgetInit

Front-end/Device data flow: widget Summarized view of the device data, proxy data, linked data

Data quality: quality of the front-end communication link

Mouse over

Device selectedmouse over

Device selected

Device selectedBy another UIM

No action possible

W A

MMode

AlarmData quality

Body

Selection

Page 58: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 58

Front-end/Device: widget Widget: as many as needed

$-param: $sIdentifier, device name Mandatory variables: g_bCallbackConnected, g_sWidgetType Function call: unGenericObject_WidgetInit

Widget register DistributedControl CB on device system nameFront-end: ‘FrontEndType’_WidgetRegisterCBDevice: DeviceType WidgetRegisterCB Panel global var (outside main) allowed Check the state of the system:

DISCONNECT: call widget disconnection function DPCONNECT: do dpConnect to the device data, proxy data, linked data and

the front-end system integrity state DPDISCONNECT_DISCONNECT: do dpDisconnect to the device data, proxy

data, linked data and the front-end system integrity state Widget disconnection: execScript

Front-end: FrontEndType’_WidgetDisconnection Device: DeviceType WidgetDisconnection Only one parameter given to the function: widget type Animate the disconnection state of the widget

Everything in dark violet and disabled

Page 59: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 59

Front-end/Device: widget Catalog of widget: png file Param panel:

Device name selector, local and remote system Tips:

DPE static information in widget: description, format, unit, etc. Get it once in the functions ‘FrontEndType’_WidgetRegisterCB

and DeviceType WidgetRegisterCB in case of DPCONNECT Keep it in var in the widget panel

Conflict between widget register CB and widget disconnection when the remote system is disconnected if animation CB too long

encapsulate all setMultiValue with g_bSystemConnected Declared as a global var like g_bCallbackConnected g_bSystemConnected represents the state of the remote

system Set in widget status register

Page 60: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 60

Front-end/Device multi widget: tips … Same functionality: right click, etc.

Use evalScript/execScript based on the g_sWidgetType in the device data widget animation

E.g.: unGenericObject_WidgetHeaterAnimation, unGenericObject_WidgetHeaterDisconnection

Different functionality Use dummy device with device widget functions

E.g.: GenericDevice Overwrite the functions

Take care: package installation!

Page 61: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 61

Front-end/Device data flow: faceplate Detailed view of the device data, proxy data, linked

data Show the quality of the front-end communication link

Call DeviceType FaceplateStatusDisconnection‘FrontEndType’_FaceplateDisconnection

Any error

yes

no

unGenericObject_FaceplateStatusInit

Call DeviceType FaceplateStatusRegisterCB‘FrontEndType’_FaceplateRegisterCB

Open DeviceType faceplate panelFaceplate‘FrontEndType’.pnl

deviceName exists

yes

no

unGenericObject_OpenFaceplate

panels/objects/UN_INFOS/unWidgetArea.pnl click/double click/right click

Page 62: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 62

Front-end/Device: faceplate One faceplate

$-param: $sDpName, device DP name Front-end:

panels/vision/graphicalFrame/Faceplate‘FrontEndType’.pnl Function call: unGenericObject_FaceplateStatusInit

addSymbol/removeSymbol of panels/vision/graphicalFrame/‘FrontEndType’_DiagnosticDetail.pnl Mandatory variable: g_bCallbackConnected

Device: Status tab Trending tab:

unGenericObject_FaceplateTrendInit or unGenericObject_TabFaceplateExtendedTrendInit Trending panel

With fwTrending/fwTrendingTrendControl.pnl, fwTrending/fwTrendingTrend.pnl and wTrending/fwTrendingTrendFaceplateCaption.pnl or fwTrending/fwTrendingTrendFaceplateCaptionLarge.pnl

Status tab for Device:panels/vision/‘package’/‘preFix’Faceplate‘DeviceType’_status.pnl $-param: $sDpName device DP name Function call unGenericObject_FaceplateStatusInit Mandatory variable: g_bCallbackConnected

Page 63: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 63

Front-end/Device: faceplate Faceplate status register DistributedControl CB on device system name

Front-end: ‘FrontEndType’_FaceplateRegisterCBDevice: DeviceType FaceplateStatusRegisterCB Panel global var (outside main) allowed Check the state of the system:

DISCONNECT: call faceplate disconnection function DPCONNECT: do dpConnect to the device data, proxy data, linked data and the front-end

system integrity state DPDISCONNECT_DISCONNECT: do dpDisconnect to the device data, poxy data, linked data

and the front-end system integrity state Faceplate status disconnection: execScript

Front-end: FrontEndType’_FaceplateDisconnection Device: DeviceType FaceplateStatusDisconnection No parameter Animate the disconnection state of the faceplate

Everything in dark violet and disabled Tips:

Conflict between faceplate register CB and faceplate disconnection when the remote system is disconnected if animation CB too long

encapsulate all setMultiValue with g_bSystemConnected Declared as a global var like g_bCallbackConnected g_bSystemConnected represents the state of the remote system Set in Faceplate status register

DPE static information in widget: description, format, unit, etc. Get it once in the functions ‘FrontEndType’_WidgetRegisterCB and DeviceType

WidgetRegisterCB in case of DPCONNECT Keep it in var in the widget panel

Page 64: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 64

Front-end/Device: widget & faceplate with alert_hdl dpConnect

alert_hdl config modified Automatic disconnect

Tips: WidgetRegisterCB, FaceplateStatusRegisterCB functions DPCONNECT case

dpConnect DPE:_lock._alert_hdl._locked, in the callback do dpConnect to device data, proxy data, linked data

DPDISCONNECT_DISCONNECT case dpDisconnect DPE:_lock._alert_hdl._locked and

dpDisconnect to device data, proxy data, linked data

Page 65: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 65

Front-end/Device data flow: right click Configurable pop-up

menu

PVSS system

connected

yes

no

unGenericObject_WidgetRightClick

Call DeviceType MenuConfiguration‘FrontEndType’_MenuConfiguration

Call DeviceType HandleMenuFrontEndType’_HandleMenu

Call PVSS popup function

panels/objects/UN_INFOS/unWidgetArea.pnl right click

Page 66: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 66

Front-end/Device: right click Create the pop-up menu: evalScript

Front-end: ‘FrontEndType’_MenuConfigurationDevice: Device Type MenuConfiguration Generic functions:

unGenericObject_addSelectToMenu: add “Select” or “Deselect” unGenericObject_UnicosActionToMenu: add “Ack alarm”, etc. unGenericObject_addDefaultUnicosActionToMenu: add “Faceplate”,

“Diagnostic”, “Info” unGenericObject_addTrendActionToMenu: add the dynamic trending

and device DPE trending Handle the pop-up menu: evalScript

Front-end:‘FrontEndType’_HandleMenuDevice: Device Type HandleMenu Generic functions

unGenericObject_handleSelect: to handle “Select” or “Deselect” unGenericObject_handleDefaultUnicos: handle “Faceplate”,

“Diagnostic”, “Info” unGenericObject_handleTrendAction: handle the dynamic trending

and device DPE trending unGenericObject_HandleUnicosMenu: call above functions

Page 67: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 67

Front-end/Device data flow: treeDeviceOverview snapshot

Call DeviceType ObjectListGetValueAndTime‘FrontEndType’_ObjectListGetValueAndTime

Page 68: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 68

Front-end/Device: treeDeviceOverview snapshot

treeDeviceOverview mode snapshot Filtering on state Front-end: evalScript

‘FrontEndType’_ObjectListGetValueAndTime Device: evalScript

DeviceType ObjectListGetValueAndTime Return: dyn_string

[1]: timestamp[2]: value[3]: invalid[4]: state[5]: color

Page 69: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 69

Front-end: treeDeviceOverview./pictures/‘FrontEndType’/iconWithChildrenClose.bmp./pictures/‘FrontEndType’/iconWithChildrenOpen.bmp./pictures/‘FrontEndType’/iconWithChildrenPath.bmp./pictures/‘FrontEndType’/iconWithChildrenSelected.bmp./pictures/‘FrontEndType’/

iconWithoutChildrenNotSelected.bmp./pictures/‘FrontEndType’/iconWithoutChildrenSelected.bmp

Page 70: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 70

Front-end/Device: trend configuration Trend device data, proxy device data

Trending DPE: leaf DPE below ProcessInput and ProcessOutput DPE

PVSSSystemName:PVSSAlias.leafProcessInput/OutputDPE E.g.: QRL81:CT_PT100.PosSt

Two kind of trending DPE Faceplate trending fwTrendingPlot

Define the device DPE to be trended in faceplate and in plot

Define the list of faceplate trend tab Trend button

Page 71: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 71

Front-end/Device: trend DPE configuration

Page 72: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 72

Front-end/Device: faceplate trend configuration

Page 73: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 73

Device function call: device action Device action interface User log in/log out Device selected

Call DeviceType ButtonRegisterCB

unGenericObject_ButtonInit

Setup callback DeviceType ButtonUserCB

PVSS system

connected

yes

no

unGenericObject_ButtonUserCB

Call DeviceType ButtonDisconnection

Call DeviceType ButtonUserAccess

Call DeviceType UserLoginGetButtonState

Call DeviceType ButtonSetState

Open DeviceType faceplate panelFaceplate‘FrontEtndType’.pnl

deviceName exists

yes

no

unGenericObject_OpenFaceplate

panels/objects/UN_INFOS/unWidgetArea.pnl click/double click/right click

Page 74: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 74

Device: access control Only for device Based JCOP access control Multi domain, 4

privileges/domain List of device action per

privilege for all domain Device access rights: list of

action for a given level of privilege and domain.

Can be set during the import If not set: default behavior in

functions.

Page 75: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 75

Device: action interface Panel

panels/panels/vision/‘package’/‘preFix’‘DeviceType’_ButtonPanel.pnl

Mandatory variables: g_bCallbackConnected: the state of the PVSS system g_dsUserAccess: to keep the device access rights g_sFaceplateButtonType: device type

$-param: $sDpName device DP name Functions

DeviceType ButtonUserAccess DeviceType UserLoginGetButtonState DeviceType ButtonSetState DeviceType ButtonRegisterCB DeviceType ButtonSetState DeviceType ButtonDisconnection

Tips: Use as button name the device action name E.g.: SetValue, Select, Ack

Page 76: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 76

Device: action interface functions DeviceType ButtonUserAccess: evalScript

When user log in/out no panel var, no $-param Must return the device access rights: list of allowed device actions

unGenericDpFunctions_getAccessControlPriviledgeRigth: returns the list of actions for the 4 privileges

If no device action defined, define the default behavior for the 4 privileges Kept in g_dsUserAccess and given to DeviceType ButtonSetState

DeviceType UserLoginGetButtonState: evalScript When user log in/out Device action is opened no panel var, no $-param Must return the device state, same format as the var given to DeviceType ButtonSetState Kept in g_dsUserData

DeviceType ButtonSetState: evalScript Parameter: device state, device action access rights Set the device action button according the access rights and the device state

DeviceType ButtonRegisterCB: DistributedControl CB on device system name From device action panel Panel global var (outside main) allowed Check the state of the system:

DISCONNECT: call ButtonDisconnection function DPCONNECT: Call DeviceType ButtonUserAccess, store the result in g_dsUserAccess, do dpConnect to the device

data DPDISCONNECT_DISCONNECT: do dpDisconnect to the device data

DeviceType ButtonDisconnection: evalScript Animate the disconnection state of the device action panel: all button disabled

Page 77: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 77

Front-end: access control Set buttons in front-end diagnostic panel:

panels/vision/graphicalFrame/‘FrontEndType’_DiagnosticDetail.pnl Based on file access control

3 privileges, multi domain Functions:unGenericButtonFunctionsHMI_isAccessAllowed, unGenericButtonFunctionsHMI_getUnicosPriviledgesunGenericDpFunctions_getAccessControlPriviledgeRigth, …

Page 78: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 78

Test: widget, faceplate, device action, access control, right click, snapshot Everything must be tested with local and

remote PVSS system Test with remote system: panels, utilities opened

since the beginning and before each step Remote system never connected Remote system connected the first time Remote system disconnected Remote system re-connected

With simulator: PVSS scripts, PVSS panels, simulator, etc.

With “”, unknown device, local device, remote devices, etc. as device identifier

Document describing the tests

Page 79: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 79

1. Introduction2. Concept of the core of UNICOS3. What can be added/modified in package4.4. New package: step by step descriptionNew package: step by step description

Introduction, rules and procedure Configuration Check, delete, import, export Front-end systemIntegrity Widget, faceplate, device action, right click,

snapshot, trending Alarm listAlarm list CPC event list Packaging

Page 80: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 80

Device: alarm list

Acknowledge PVSS alarm

unGenericObject_Acknowledge

Call DeviceType AcknowledgeAlarm

Acknowledge alarm in PLC

Ack PLC

yes

no

DeviceType Acknowledge alarm: evalScript Returns the DPE to acknowledge and the action Function to create and configure alarm:

unConfigGenericFunctions_setAlarmDescription, unConfigGenericFunctions_setDigitalAlert, unConfigGenericFunctions_setAnalogAlert

Page 81: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 81

1. Introduction2. Concept of the core of UNICOS3. What can be added/modified in package4.4. New package: step by step descriptionNew package: step by step description

Introduction, rules and procedure Configuration Check, delete, import, export Front-end systemIntegrity Widget, faceplate, device action, right click,

snapshot, trending Alarm list CPC event listCPC event list Packaging

Page 82: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 82

Device: CPC event listconfiguration

CPC event list

Page 83: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 83

1. Introduction2. Concept of the core of UNICOS3. What can be added/modified in package4.4. New package: step by step descriptionNew package: step by step description

Introduction, rules and procedure Configuration Check, delete, import, export Front-end systemIntegrity Widget, faceplate, device action, right click,

snapshot, trending Alarm list CPC event list PackagingPackaging

Page 84: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 84

Package the development Package to be installed via the fwInstallation tool Package files:

xml: list of all files of the package dpl: file to be ascii import

Front-end/Device configuration, settings, trending, etc. Take care of setting, can be overwritten

.config: list of libs to be added in the config file Dependencies, date .init: panel or script launched during the installation

Useful to ask a confirmation from the user for settings Panel: cannot be executed in background

.postInstall: post install script Set configuration: take care, settings can be overwritten Create the Windows and Linux OWS file

Widget: widget file, png, param panels Faceplate, device action button, trend device panel Front-end diganostic Libs: device libs, front-end libs colorDB file, catalog file Test panel Front-end type bmp files Any utilities: scripts, panels, etc.

Test: test the package on a new project!

Page 85: In the depth of UNICOS …

November 19th 2009 UNICOS in depth 85

Questions? Web: http://wikis/display/EN/PVSS

Packages, 3.6SP2 & 3.8SP1, Doc on Device, Front-end, systemIntegrity

Import/export: \\cern.ch\dfs\Departments\AB\Groups\CO\sections\IS\proj

ects\UNICOS\PVSS\framework\documentation\UNICOS-2.0-Internal\Schneider_SIEMENS_PVSS-UNICOS-export.doc

Proxy: \\cern.ch\dfs\Departments\AB\Groups\CO\sections\IS\proj

ects\UNICOS\PVSS\framework\documentation\UNICOS-2.0-Internal\device-with-UNICOS.pdf

UNICOS-HMI \\

cern.ch\dfs\Departments\AB\Groups\CO\sections\IS\projects\UNICOS\PVSS\framework\documentation\UNICOS-HMI.pdf