Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "In the depth of UNICOS … Hervé Milcent EN/ICE How to create a new package."— Presentation transcript:

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

2 November 19th 2009UNICOS in depth2 Outline 1. Introduction 2. Concept of the core of UNICOS 3. What can be added/modified in package 4. 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

3 November 19th 2009UNICOS in depth3 1. Introduction 2. Concept of the core of UNICOS 3. What can be added/modified in package 4. 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

4 November 19th 2009UNICOS in depth4 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

5 November 19th 2009UNICOS in depth5 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 CPC PLCs (non CPC) FECs (FESA) Application packages (PIC,..) Application packages (QPS, SURVEY,..) Control layer U N I C O S Supervision layer

6 November 19th 2009UNICOS in depth6 UNICOS framework: application Set of package combined and configured together to produce control/monitoring application … Process control application UNICORE UNICOS CPC package PLCs CPC Control layer U N I C O S Supervision layer LHC Cryogenics LHC GCS

7 November 19th 2009UNICOS in depth7 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

8 November 19th 2009UNICOS in depth8 1. Introduction 2. Concept of the core of UNICOS 3. What can be added/modified in package 4. 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

9 November 19th 2009UNICOS in depth9 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

10 November 19th 2009UNICOS in depth10 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

11 November 19th 2009UNICOS in depth11 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

12 November 19th 2009UNICOS in depth12 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

13 November 19th 2009UNICOS in depth13 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

14 November 19th 2009UNICOS in depth14 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

15 November 19th 2009UNICOS in depth15 Front-end device and device Device type Set of libraries Recommended solution: load via the config file “#uses keyword” Set of panels Configuration

16 November 19th 2009UNICOS in depth16 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

17 November 19th 2009UNICOS in depth17 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

18 November 19th 2009UNICOS in depth18 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

19 November 19th 2009UNICOS in depth19 Test All panels, libs with different conditions All possible errors All possible cases With simulated values Document describing the tests

20 November 19th 2009UNICOS in depth20 1. Introduction 2. Concept of the core of UNICOS 3. What can be added/modified in package 4. 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

21 November 19th 2009UNICOS in depth21 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

22 November 19th 2009UNICOS in depth22 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

23 November 19th 2009UNICOS in depth23 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)

24 November 19th 2009UNICOS in depth24 1. Introduction 2. Concept of the core of UNICOS 3. What can be added/modified in package 4. New package: step by step description Introduction, rules and procedure 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

25 November 19th 2009UNICOS in depth25 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

26 November 19th 2009UNICOS in depth26 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

27 November 19th 2009UNICOS in depth27 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.

28 November 19th 2009UNICOS in depth28 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.

29 November 19th 2009UNICOS in depth29 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

30 November 19th 2009UNICOS in depth30 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

31 November 19th 2009UNICOS in depth31 New Front-end 1. Create the device type: DPType 2. Set the front-end device definition 3. Create the front-end check, delete and import functions scripts/libs/‘preFix’Config‘FrontEndType’.ctl 4. Create the front-end export functions scripts/libs/‘preFix’ExportDevice.ctl 5. Create the front-end device functions scripts/libs/‘preFix’‘FrontEndType’.ctl 6. 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 7. Create the faceplate panels/vision/graphicalFrame/‘FrontEndType’_DiagnosticDetail.pnl panels/vision/graphicalFrame/Faceplate‘FrontEndType’.pnl 8. Configure the trending 9. Create the front-end system integrity panels/vision/systemIntegrity/systemIntegrity_‘FrontEndType’_configurationl.pnl panels/vision/systemIntegrity/systemIntegrity_‘FrontEndType’_operationl.pnl 10. Test import, export, widget, faceplate, right click, etc.

32 November 19th 2009UNICOS in depth32 New device 1. Create the device type: DPType 2. Set the device definition 3. Set the JCOP device definition 4. Create the device check and import functions scripts/libs/‘preFix’Config‘DeviceType’.ctl 5. Create the device export functions scripts/libs/‘preFix’ExportDevice.ctl 6. Create the device device functions scripts/libs/‘preFix’‘DeviceType’.ctl 7. 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 8. 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 9. Create the device action interface, access control and functions panels/vision/‘package’/‘preFix’‘DeviceType’_ButtonPanel.pnl 10. Configure the trending 11. Create the treeDeviceOverview function 12. Test import, export, widget, faceplate, right click, etc.

33 November 19th 2009UNICOS in depth33 1. Introduction 2. Concept of the core of UNICOS 3. What can be added/modified in package 4. New package: step by step description Introduction, rules and procedure Configuration Configuration Check, delete, import, export Front-end systemIntegrity Widget, faceplate, device action, right click, snapshot, trending Alarm list CPC event list Packaging

34 November 19th 2009UNICOS in depth34 Front-end/Device: DPType Mandatory DPE Selected state Device access right Device link Device log ProcessInput: input DPE ProcessOuput: output DPE Front-end counter DPE: used in systemIntegrity

35 November 19th 2009UNICOS in depth35 Front-end device definition Configuration of the front-end device type Function, proxy device type, etc.

36 November 19th 2009UNICOS in depth36 Device definition Configuration of the front-end device type Function, proxy device type, etc.

37 November 19th 2009UNICOS in depth37 Device: JCOP device definition panels/fwDevice/fwDeviceRegisterType.pnl Set the archive config

38 November 19th 2009UNICOS in depth38 1. Introduction 2. Concept of the core of UNICOS 3. What can be added/modified in package 4. New package: step by step description Introduction, rules and procedure Configuration Check, delete, import, export Check, delete, import, export Front-end systemIntegrity Widget, faceplate, device action, right click, snapshot, trending Alarm list CPC event list Packaging

39 November 19th 2009UNICOS in depth39 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;..; ……

40 November 19th 2009UNICOS in depth40 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

41 November 19th 2009UNICOS in depth41 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;

42 November 19th 2009UNICOS in depth42 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

43 November 19th 2009UNICOS in depth43 Front-end/Device data flow: delete Front-end type Delete front-ends and devices Application, device type, number sim driver and dist not running

44 November 19th 2009UNICOS in depth44 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

45 November 19th 2009UNICOS in depth45 Front-end/Device data flow: import Front-end type With/without check sim driver and dist not running

46 November 19th 2009UNICOS in depth46 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;

47 November 19th 2009UNICOS in depth47 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

48 November 19th 2009UNICOS in depth48 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.

49 November 19th 2009UNICOS in depth49 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

50 November 19th 2009UNICOS in depth50 1. Introduction 2. Concept of the core of UNICOS 3. What can be added/modified in package 4. New package: step by step description Introduction, rules and procedure Configuration Check, delete, import, export Front-end systemIntegrity Front-end systemIntegrity Widget, faceplate, device action, right click, snapshot, trending Alarm list CPC event list Packaging

51 November 19th 2009UNICOS in depth51 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

52 November 19th 2009UNICOS in depth52 systemIntegrity: alarm screen

53 November 19th 2009UNICOS in depth53 Front-end: system integrity Configuration panel panels/vision/systemIntegrity/systemIntegrity_‘FrontEndType’_configurationl.pnl $-param $sComponent: the system integrity component Operation panel panels/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

54 November 19th 2009UNICOS in depth54 Front-end: diagnostic panels/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

55 November 19th 2009UNICOS in depth55 Test Panels Local and remote system systemIntegrity lib All cases Document describing the tests

56 November 19th 2009UNICOS in depth56 1. Introduction 2. Concept of the core of UNICOS 3. What can be added/modified in package 4. 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 Widget, faceplate, device action, right click, snapshot, trending Alarm list CPC event list Packaging

57 November 19th 2009UNICOS in depth57 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 selected mouse over Device selected By another UIM No action possible WA M Mode Alarm Data quality Body Selection

58 November 19th 2009UNICOS in depth58 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 name Front-end: ‘FrontEndType’_WidgetRegisterCB Device: 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

59 November 19th 2009UNICOS in depth59 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

60 November 19th 2009UNICOS in depth60 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!

61 November 19th 2009UNICOS in depth61 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

62 November 19th 2009UNICOS in depth62 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

63 November 19th 2009UNICOS in depth63 Front-end/Device: faceplate Faceplate status register DistributedControl CB on device system name Front-end: ‘FrontEndType’_FaceplateRegisterCB Device: 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

64 November 19th 2009UNICOS in depth64 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

65 November 19th 2009UNICOS in depth65 Front-end/Device data flow: right click Configurable pop-up menu

66 November 19th 2009UNICOS in depth66 Front-end/Device: right click Create the pop-up menu: evalScript Front-end: ‘FrontEndType’_MenuConfiguration Device: 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’_HandleMenu Device: 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

67 November 19th 2009UNICOS in depth67 Front-end/Device data flow: treeDeviceOverview snapshot

68 November 19th 2009UNICOS in depth68 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

69 November 19th 2009UNICOS in depth69 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

70 November 19th 2009UNICOS in depth70 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

71 November 19th 2009UNICOS in depth71 Front-end/Device: trend DPE configuration

72 November 19th 2009UNICOS in depth72 Front-end/Device: faceplate trend configuration

73 November 19th 2009UNICOS in depth73 Device function call: device action Device action interface User log in/log out Device selected

74 November 19th 2009UNICOS in depth74 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.

75 November 19th 2009UNICOS in depth75 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

76 November 19th 2009UNICOS in depth76 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

77 November 19th 2009UNICOS in depth77 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_getUnicosPriviledges unGenericDpFunctions_getAccessControlPriviledgeRigth, …

78 November 19th 2009UNICOS in depth78 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

79 November 19th 2009UNICOS in depth79 1. Introduction 2. Concept of the core of UNICOS 3. What can be added/modified in package 4. 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 Alarm list CPC event list Packaging

80 November 19th 2009UNICOS in depth80 Device: alarm list DeviceType Acknowledge alarm: evalScript Returns the DPE to acknowledge and the action Function to create and configure alarm: unConfigGenericFunctions_setAlarmDescription, unConfigGenericFunctions_setDigitalAlert, unConfigGenericFunctions_setAnalogAlert

81 November 19th 2009UNICOS in depth81 1. Introduction 2. Concept of the core of UNICOS 3. What can be added/modified in package 4. 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 CPC event list Packaging

82 November 19th 2009UNICOS in depth82 Device: CPC event list configuration CPC event list

83 November 19th 2009UNICOS in depth83 1. Introduction 2. Concept of the core of UNICOS 3. What can be added/modified in package 4. 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 Packaging

84 November 19th 2009UNICOS in depth84 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!

85 November 19th 2009UNICOS in depth85 Questions? Web: http://wikis/display/EN/PVSShttp://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\projects\U NICOS\PVSS\framework\documentation\UNICOS-2.0- Internal\Schneider_SIEMENS_PVSS-UNICOS-export.doc \\cern.ch\dfs\Departments\AB\Groups\CO\sections\IS\projects\U NICOS\PVSS\framework\documentation\UNICOS-2.0- Internal\Schneider_SIEMENS_PVSS-UNICOS-export.doc Proxy: \\cern.ch\dfs\Departments\AB\Groups\CO\sections\IS\projects\U NICOS\PVSS\framework\documentation\UNICOS-2.0- Internal\device-with-UNICOS.pdf \\cern.ch\dfs\Departments\AB\Groups\CO\sections\IS\projects\U NICOS\PVSS\framework\documentation\UNICOS-2.0- Internal\device-with-UNICOS.pdf UNICOS-HMI \\cern.ch\dfs\Departments\AB\Groups\CO\sections\IS\projects\U NICOS\PVSS\framework\documentation\UNICOS-HMI.pdf \\cern.ch\dfs\Departments\AB\Groups\CO\sections\IS\projects\U NICOS\PVSS\framework\documentation\UNICOS-HMI.pdf


Download ppt "In the depth of UNICOS … Hervé Milcent EN/ICE How to create a new package."

Similar presentations


Ads by Google