870 likes | 1.04k Views
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
E N D
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 • Front-end systemIntegrity • Widget, faceplate, device action, right click, snapshot, trending • Alarm list • CPC event list • Packaging UNICOS in depth
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 • Front-end systemIntegrity • Widget, faceplate, device action, right click, snapshot, trending • Alarm list • CPC event list • Packaging UNICOS in depth
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 UNICOS in depth
UNICOS framework: Package • Package • Extend UNICORE to a specific domain • Set of components combined/configured together • Ex: Device component, utilities, etc. Supervision layer Application packages (QPS, SURVEY, ..) Application packages (PIC, ..) UNICOS CPC package Application A U N I C O S UNICORE PLCs (non CPC) FECs (FESA) Control layer PLCs CPC UNICOS in depth
Supervision layer UNICOS CPC package U N I C O S UNICORE … Process control application Control layer PLCs CPC UNICOS framework: application • Set of package combined and configured together to produce control/monitoring application LHC GCS LHC Cryogenics UNICOS in depth
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 UNICOS in depth
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 • Front-end systemIntegrity • Widget, faceplate, device action, right click, snapshot, trending • Alarm list • CPC event list • Packaging UNICOS in depth
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 UNICOS in depth
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 UNICOS in depth
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 UNICOS in depth
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 UNICOS in depth
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 UNICOS in depth
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 UNICOS in depth
Front-end device and device • Device type • Set of libraries • Recommended solution: load via the config file • “#uses keyword” • Set of panels • Configuration UNICOS in depth
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 UNICOS in depth
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 UNICOS in depth
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 UNICOS in depth
Test • All panels, libs with different conditions • All possible errors • All possible cases • With simulated values • Document describing the tests UNICOS in depth
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 • Front-end systemIntegrity • Widget, faceplate, device action, right click, snapshot, trending • Alarm list • CPC event list • Packaging UNICOS in depth
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 UNICOS in depth
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 UNICOS in depth
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) UNICOS in depth
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 • Front-end systemIntegrity • Widget, faceplate, device action, right click, snapshot, trending • Alarm list • CPC event list • Packaging UNICOS in depth
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 UNICOS in depth
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 UNICOS in depth
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. UNICOS in depth
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. UNICOS in depth
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 UNICOS in depth
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 UNICOS in depth
New Front-end • Create the device type: DPType • Set the front-end device definition • Create the front-end check, delete and import functions scripts/libs/‘preFix’Config‘FrontEndType’.ctl • Create the front-end export functions scripts/libs/‘preFix’ExportDevice.ctl • Create the front-end device functions scripts/libs/‘preFix’‘FrontEndType’.ctl • Create the widget, catalog of widget, widget param panels/objects/FRONT_END/Widget_‘FrontEndType’.pnl images/objects/FRONT_END/Widget_‘FrontEndType’.pnl/Widget_‘FrontEndType’.png panels/objects_paramspanel/FRONT_END/‘preFix’‘FrontEndType’_para.pnl • Create the faceplate panels/vision/graphicalFrame/‘FrontEndType’_DiagnosticDetail.pnl panels/vision/graphicalFrame/Faceplate‘FrontEndType’.pnl • Configure the trending • Create the front-end system integrity panels/vision/systemIntegrity/systemIntegrity_‘FrontEndType’_configurationl.pnl panels/vision/systemIntegrity/systemIntegrity_‘FrontEndType’_operationl.pnl • Test import, export, widget, faceplate, right click, etc. UNICOS in depth
New device • Create the device type: DPType • Set the device definition • Set the JCOP device definition • Create the device check and import functions scripts/libs/‘preFix’Config‘DeviceType’.ctl • Create the device export functions scripts/libs/‘preFix’ExportDevice.ctl • Create the device device functions scripts/libs/‘preFix’‘DeviceType’.ctl • Create the widget, catalog of widget, widget param panels/objects/‘PACKAGE’/‘preFix’Widget_‘DeviceType’‘Type’.pnl objects/‘PACKAGE’/‘preFix’Widget_‘DeviceType’‘Type’.pnl/‘preFix’Widget_‘DeviceType’‘Type’.png panels/objects_paramspanel/‘PACKAGE’/‘preFix’‘DeviceType’_para.pnl • Create the faceplate panels/vision/‘package’/‘preFix’Faceplate‘DeviceType’.pnl panels/vision/‘package’/‘preFix’Faceplate‘DeviceType’_status.pnl panels/vision/‘package’/‘preFix’‘DeviceType’TrendingFaceplate.pnl • Create the device action interface, access control and functions panels/vision/‘package’/‘preFix’‘DeviceType’_ButtonPanel.pnl • Configure the trending • Create the treeDeviceOverview function • Test import, export, widget, faceplate, right click, etc. UNICOS in depth
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 • Front-end systemIntegrity • Widget, faceplate, device action, right click, snapshot, trending • Alarm list • CPC event list • Packaging UNICOS in depth
ProcessInput: input DPE ProcessOuput: output DPE Front-end counter DPE: used in systemIntegrity Front-end/Device: DPType Mandatory DPE Selected state Device access right Device link Device log UNICOS in depth
Front-end device definition • Configuration of the front-end device type • Function, proxy device type, etc. UNICOS in depth
Device definition • Configuration of the front-end device type • Function, proxy device type, etc. UNICOS in depth
Device: JCOP device definition panels/fwDevice/fwDeviceRegisterType.pnl • Set the archive config UNICOS in depth
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 • Front-end systemIntegrity • Widget, faceplate, device action, right click, snapshot, trending • Alarm list • CPC event list • Packaging UNICOS in depth
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 1 SystemAlarm;1;TEST_PLC_Comm_Status_with_FES7;DB1.DBW0;TRUE;Communication state with other FE; #For S7-300 2 SystemAlarm;2;pb1;DB11.DBW30;TRUE;this is a positive alarm; #For S7-300 3 SystemAlarm;3;pb2;DB11.DBW20;FALSE;this is a negative alarm; #For S7-300 4 SystemAlarm;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;..; …… UNICOS in depth
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 UNICOS in depth
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; UNICOS in depth
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 UNICOS in depth
Front-end/Device data flow: delete • Front-end type • Delete front-ends and devices • Application, device type, number • sim driver and dist not running UNICOS in depth
Front-end: delete • Delete keyword • Mandatory field: Delete;Front-end instance name Delete;Front-end device name[;Front-end application (or *);[Device type;[Device id;]]] • Optional: application name, device type, device number Delete;vac_180 Delete;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 UNICOS in depth
Front-end/Device data flow: import • Front-end type • With/without check • sim driver and dist not running UNICOS in depth
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 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; • 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; UNICOS in depth
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 UNICOS in depth
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. UNICOS in depth
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 UNICOS in depth
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 • Front-end systemIntegrity • Widget, faceplate, device action, right click, snapshot, trending • Alarm list • CPC event list • Packaging UNICOS in depth