In the depth of UNICOS … Hervé Milcent EN/ICE How to create a new package.
-
Upload
bryce-ross -
Category
Documents
-
view
216 -
download
0
Transcript of In the depth of UNICOS … Hervé Milcent EN/ICE How to create a new package.
In the depth of UNICOS …
Hervé Milcent EN/ICE
How to create a new package
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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.
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.
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
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
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.
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.
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
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
November 19th 2009 UNICOS in depth 35
Front-end device definition Configuration of the front-end device type
Function, proxy device type, etc.
November 19th 2009 UNICOS in depth 36
Device definition Configuration of the front-end device type
Function, proxy device type, etc.
November 19th 2009 UNICOS in depth 37
Device: JCOP device definitionpanels/fwDevice/fwDeviceRegisterType.pnl
Set the archive config
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
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;..;
……
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
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;
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
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
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
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
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;
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
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.
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
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
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
November 19th 2009 UNICOS in depth 52
systemIntegrity: alarm screen
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
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
November 19th 2009 UNICOS in depth 55
Test Panels
Local and remote system systemIntegrity lib
All cases Document describing the tests
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
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
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
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
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!
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
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
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
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
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
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
November 19th 2009 UNICOS in depth 67
Front-end/Device data flow: treeDeviceOverview snapshot
Call DeviceType ObjectListGetValueAndTime‘FrontEndType’_ObjectListGetValueAndTime
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
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
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
November 19th 2009 UNICOS in depth 71
Front-end/Device: trend DPE configuration
November 19th 2009 UNICOS in depth 72
Front-end/Device: faceplate trend configuration
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
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.
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
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
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, …
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
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
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
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
November 19th 2009 UNICOS in depth 82
Device: CPC event listconfiguration
CPC event list
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
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!
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