1
UNICOS: UNIFIED INDUSTRIAL CONTROL SYSTEM
CPC (CONTINUOUS PROCESS CONTROL)
SCADA
Marco Boccioli - EN/ICE
Content• UNICOS SCADA environment• Device SCADA implementation
2
Where we are Specification file
Logic completion
PLC
SCADA
Generation toolUser templates
Instances source files Logic source files
WinCC OA importation file
S7 Instance Generator S7 Logic Generator WinCC OA Instance Generator
WinCC flexibleInstance Generator
WinCC flexibleImportation files
Touch Panel
3
UNICOS HMI
Filter
Applications tree
Devices widgets
4
UNICOS HMIHierarchy
5
UNICOS HMI
HeaderFix area (toolbar)
Process areaSynoptics
Trends
…
FooterContextual area
6
Device faceplate
7
Device configuration
8
Alarm screen
9
Mode of operation
Filters: object type, alias, etc.
Acknowledge Visible alarms
Layers integration
10
Industrial Supervision Layer
Industrial Control Layer
Object status
Human Requests
SCADA Object HMIParameters
Manual Request
Information display
SCADA
Proxy
Auto. Requests
Object logic
Orders
PLC ObjectObject status
Manual Request
ParametersProcess Inputs
Process
PlantOperator
SCADA Server(s)
CERN Control Room(s)
OWS
Industrial Field Layer
UNICOS SCADA Object Model
11
Object
Operator actionsSCADA configuration
tool
PLC
Operator screen
Requests ParametersInformation
Manual Requests PLC Object Status
UNICOS architecture
12
Application A
UNICORE
UNICOS CPC package
PLCs CPCPLCs
(non CPC)
Application packages
(PIC, CIS, ..)
Application packages
(QPS, SURVEY, ..)
Control layer
UNICOS
Supervision layer
Industrial PC
Cooling & Ventilation
Process Control applications
LHC Collimator
s Interlocks
LHC Gas Control
LHC Cryogenics
UNICOS architecture
13
UNICORE
UNICOS CPC package
Devices implementation
Generation
Animation
Diagnostics
WinCC OA device
14
Device = Data Point Device type = Datapoint Type (structure of the Data Point). Device name = Datapoint Alias
UNICOS SCADA Device
A device type is• Data Point Type• Widget• Faceplate• Import / export functions
15
The Device Implementation• Device structure definition• Importation/exportation
• Library functions for configuring the device
• Widget• Graphical objects drawing• Library functions for animating
• ParamPanel• Faceplate
• Graphical object drawing• Library functions for animating
• Access rights definition• Actions• FW/UN configurations
• Integration within those frameworks
16
UNICORE
UNICOS CPC package
The Device Implementation• Device structure definition• Importation/exportation
• Library functions for configuring the device
• Widget• Graphical objects drawing• Library functions for animating
• ParamPanel• Faceplate
• Graphical object drawing• Library functions for animating
• Access rights definition• Actions• FW/UN configurations
• Integration within those frameworks
17
UNICORE
UNICOS CPC package
PLC – SCADA interface• ProcessInput
• Bits from StsReg for digital inputs• DPEs for analogue inputs (PosSt, …)
• ProcessOutput• Bits in ManReg for digital orders• DPEs for analogue orders (MPosR, …)
18
WinCC OA
PLC
Input Output
Process input data
Process output data
File CPC.dpl
• Device Data Point Type
19
UNICOS CPC package
Device Import/Export library
Dev
def
Unicos Import/Export
20
UNICORE UNICOS CPC package D
ev d
ef
The Device Implementation• Device structure definition• Importation/exportation
• Library functions for configuring the device
• Widget• Graphical objects drawing• Library functions for animating
• ParamPanel• Faceplate
• Graphical object drawing• Library functions for animating
• Access rights definition• Actions• FW/UN configurations
• Integration within those frameworks
21
UNICORE
UNICOS CPC package
WinCC OA importation fileDevice configuration = WinCC OA importation file.
Default information:• Device name• Alias• Description• Nature• Diagnostic• Domain• Device links• Access Control Domain list• Access Control Actions• Html• Widgets list
ImportFile.txt# # Database PVSS generated at 2012.11.28 19:38:17 # # Device type: S7_PLC # #Delete;test;MultiOnOff;PLCCONFIG;S7-300;test;MultiOnOff;01;0;2;10;0;0;10;5000;137.138.192.1;DB100.DBD;# FESystemAlarm (SystemAlarm)# # Database PVSS generated at 2012.11.28 19:38:17 # # Device type: CPC_MultiOnOff # CPC_MultiOnOff;1;MOO1,TEST_PCO1,Feedback1,Feedback2,DO1_MOO1,DO2_MOO1;3 way CPC_MultiOnOff;17;MOO17,TEST_PCO1,Feedback1,Feedback2,AIR1,DO1_MOO17,DO2_MO
22
WinCC OA importation file
Values are stored in Data Point Elements (DPEs).
DPEs families:• ProcessInput• ProcessOutput
DPEs are configured with:• DPE name• DPE description• Format• Unit• Range• Alert config• Archive config• Address• Smoothing
23
24
ImportFile.txt
Importation line mapping
mNm1 m2 mi a1 a2 ai aK
Main Additional
unitPosSt unit
format
PosSt address Mask
value type
parameters
… … … … … … … …
… … … … … … … …
CPC_MultiOnOff;1;MOO1,TEST_PCO1,Feedback1,Feedback2,DO1_MOO1,DO2_MOO1;…
File cpc%DeviceType%Config.ctl
CPC_%DeviceType%_checkConfig()
CPC_%DeviceType%_checkCustomConfig()
CPC_%DeviceType%_setConfig()
CPC_%DeviceType%_setCustomConfig()
25
UNICOS CPC package
Device Import library
Impo
rt
expo
rt
Dev
def
Device Export libraryFile cpc%DeviceType%Config.ctl
CPC_%DeviceType%_getConfig()
CPC_%DeviceType%_getParamNames ()
26
UNICOS CPC package
Impo
rt
expo
rt
Dev
def
27
Unicos Import/Export
UNICORE
Unicos Import/Export libraryFile unicosImportDevice.ctl
• unicosImportDevice_check()• …• unicosImportDevice_import()• unicosImportDevice_export()
28
UNICORE
Impo
rt
expo
rt
Unicos Import/Export
29
UNICORE UNICOS CPC package
ImportFile.txt# # Database PVSS generated at 2012.11.28 19:38:17 # # Device type: S7_PLC # #Delete;test;MultiOnOff;PLCCONFIG;S7-300;test;MultiOnOff;01;0;2;10;0;0;10;5000;137.138.192.1;DB100.DBD;# FESystemAlarm (SystemAlarm)# # Database PVSS generated at 2012.11.28 19:38:17 # # Device type: CPC_MultiOnOff# CPC_MultiOnOff;1;MOO1,TEST_PCO1,Feedback1,Feedback2,DO1_MOO1,DO2_MOO1;3 way CPC_MultiOnOff;17;MOO17,TEST_PCO1,Feedback1,Feedback2,AIR1,DO1_MOO17,DO2_MO
Impo
rt
expo
rt
Impo
rt
expo
rt
Dev
def
The Device Implementation• Device structure definition• Importation/exportation
• Library functions for configuring the device
• Widget• Graphical objects drawing• Library functions for animating
• ParamPanel• Faceplate
• Graphical object drawing• Library functions for animating
• Access rights definition• Actions• FW/UN configurations
• Integration within those frameworks
30
UNICORE
UNICOS CPC package
UNICOS Widget • Represent the nature of an object• Color and letter• Body to represent the type of
widget• Pump• Heater• 3WayValve• …
31
32
Color convention
Widget layout
33
Widget interaction• Mouse over• Mouse click
• Select if user authorized: operator minimum
• Mouse double click• Select, open faceplate
• Mouse right click• Menu
• Device selected:• White box around• Contextual button
opened in context area• Device name set in the
footer of the graphicalFrame
34
Device selectedmouse over
Device selected
Device selectedBy another UIM
No action possible
Widget: graphical implementationPanel: CPCWidget_MultiOnOff_3WayValve.pnl• Should contain no logic (i.e. control code)
except• Widget variable definitions• Graphical objects naming convention
• Body1• pos_on• pos_off• …
35
UNICOS CPC package
Impo
rt
expo
rt
Dev
def
Widget: graphical implementation
main()
{
dyn_string exceptionInfo;
unGenericObject_WidgetInit($sIdentifier,
UN_CONFIG_CPC_MULTIONOFF_DPT_NAME,
exceptionInfo);
}
36
37
How does animation workDevice library
Event manager
WinCC OA Driver
dpConnect(f, dpe1, …)
upddpe1, …
updateeval f(dpe1, dpe1value, …)
UNICOS CPC package
MultiOnOff widget animationFile cpcMultiOnOff.ctl
• CPC_MultiOnOff_WidgetRegisterCB• Connect to data
• CPC_MultiOnOff_WidgetInitStatics• initialize static data (unit, format, …)
• CPC_MultiOnOff_WidgetLockDPEs• Lock/unlock device
• CPC_MultiOnOff_WidgetDPEs• specify which DPEs you want to animate
• CPC_MultiOnOff_WidgetAnimation• the animation routine
• CPC_MultiOnOff_WidgetDisconnection• the disconnection routine
38
wid
get
Impo
rt
expo
rt
Dev
def
Widget Primitive functionsFile unGenericObject.ctl
• unGenericObject_WidgetSelectAnimation• unGenericObject_WidgetWarningAnimationDoubleStsReg• cpcGenericObject_WidgetValidnessAnimation• cpcGenericObject_WidgetAlarmTextAnimationDoubleStsReg• cpcGenericObject_WidgetControlStateAnimation• unGenericObject_WidgetDisplayValueAnimation
• …
39
UNICORE
wid
get
Impo
rt
expo
rt
Unicos device widget
40
UNICORE UNICOS CPC package
wid
get
wid
get
Impo
rt
expo
rt
Impo
rt
expo
rt
Dev
def
The Device Implementation• Device structure definition• Importation/exportation
• Library functions for configuring the device
• Widget• Graphical objects drawing• Library functions for animating
• ParamPanel• Faceplate
• Graphical object drawing• Library functions for animating
• Access rights definition• Actions• FW/UN configurations
• Integration within those frameworks
41
UNICORE
UNICOS CPC package
Parampanels• Used in synoptic development on widget adding
to specify DP by alias
42
The Device Implementation• Device structure definition• Importation/exportation
• Library functions for configuring the device
• Widget• Graphical objects drawing• Library functions for animating
• ParamPanel• Faceplate
• Graphical object drawing• Library functions for animating
• Access rights definition• Actions• FW/UN configurations
• Integration within those frameworks
43
UNICORE
UNICOS CPC package
Faceplate layout
44
Status
Ranges
Operation modes
Requests
Alarms
Warnings
Actions
MultiOnOff faceplate
45
Buttons panel
Container
Status panel
46
Color convention
Faceplate colors• Status - cpcColor_Faceplate_Status• Request - cpcColor_Faceplate_Request• Alarm - cpcColor_Alarm_Bad• Warning - unFaceplate_WarningActive• Disconnected - unDataNoAccess
• Specified in animation code.
47
MOnOff faceplate animation cpcFaceplateMultiOnOff.pnl
File cpcMultiOnOff.ctl
• CPC_MultiOnOff_FaceplateInitStatics• init static data
• CPC_MultiOnOff_FaceplateLockDPEs• specify lock dpes
• CPC_MultiOnOff_FaceplateDPEs• specify which dpe you want to animate
• CPC_MultiOnOff_FaceplateStatusAnimationCB• animation routine
• CPC_MultiOnOff_FaceplateStatusDisconnection• disconnection routine
48
UNICOS CPC package
Wid
get
face
plat
eIm
port
ex
port
Dev
def
Unicos device faceplate
49
UNICORE UNICOS CPC package
wid
get
wid
get
Impo
rt
expo
rt
Impo
rt
expo
rt
Dev
def
The Device Implementation• Device structure definition• Importation/exportation
• Library functions for configuring the device
• Widget• Graphical objects drawing• Library functions for animating
• ParamPanel• Faceplate
• Graphical object drawing• Library functions for animating
• Access rights definition• Actions• FW/UN configurations
• Integration within those frameworks
50
UNICORE
UNICOS CPC package
Access rights overview• 4 users and group of
users created during the unicos installation:• Monitor• Operator• Expert• Admin
• Action accessibility depends on current user’s role
51
Access rights definitionFile cpcMultiOnOff.ctl
• Define the access level for all and each action
buttons[UN_FACEPLATE_BUTTON_SELECT] =
CPC_ACCESS_RIGHTS_OPERATOR;
buttons[UN_FACEPLATE_BUTTON_AUTO_MODE] =
CPC_ACCESS_RIGHTS_OPERATOR;
buttons[UN_FACEPLATE_BUTTON_MANUAL_MODE] =
CPC_ACCESS_RIGHTS_OPERATOR;
buttons[UN_FACEPLATE_BUTTON_FORCED_MODE] =
CPC_ACCESS_RIGHTS_EXPERT;
52
UNICOS CPC package
Wid
get
face
plat
eIm
port
ex
port
Dev
def
Unicos access control
53
UNICORE UNICOS CPC package
wid
get
wid
get
Impo
rt
expo
rt
Impo
rt
expo
rtLDAP
Dev
def
The Device Implementation• Device structure definition• Importation/exportation
• Library functions for configuring the device
• Widget• Graphical objects drawing• Library functions for animating
• ParamPanel• Faceplate
• Graphical object drawing• Library functions for animating
• Access rights definition• Actions• FW/UN configurations
• Integration within those frameworks
54
UNICORE
UNICOS CPC package
Right-click menu APIFile cpcMultiOnOff.ctl
Tags: • TAG_SCRIPT_DEVICE_TYPE_ButtonConfig
• Reused, extend if necessary.
• TAG_SCRIPT_DEVICE_TYPE_MenuConfiguration• To configure right click menu items
• TAG_SCRIPT_DEVICE_TYPE_HandleMenu• To process right click menu’ actions
55
UNICOS CPC package
Wid
get
face
plat
eIm
port
ex
port
Dev
def
Buttons panel
56
Buttons panel
Buttons panelFile: CPCMultiOnOffButtonPanel.pnl
main()
{
dyn_string exceptionInfo;
g_sFaceplateButtonType = UN_CONFIG_CPC_MULTIONOFF_DPT_NAME;
unGenericObject_ButtonInit($sDpName, g_sFaceplateButtonType, exceptionInfo);
}
57
UNICOS CPC package
Wid
get
face
plat
eIm
port
ex
port
Dev
def
Buttons animationFile cpcMultiOnOff.ctl
Tags: • TAG_SCRIPT_DEVICE_TYPE_ButtonConfig
• TAG_SCRIPT_DEVICE_TYPE_ButtonDPEsdynAppend(dpes, deviceName + ".ProcessInput.StsReg01");
dynAppend(dpes, deviceName + ".ProcessInput.StsReg01:_online.._invalid");
• TAG_SCRIPT_DEVICE_TYPE_ButtonSetState• iterate through buttons (fetched from _ButtonConfig)• “switch” to define buttonEnabled (button-related code)• “cpcButton_setButtonState” to animate
58
UNICOS CPC package
Wid
get
face
plat
eIm
port
ex
port
Dev
def
_ButtonSetState examplefor(int i = 1; i <= dynlen(dsButtons); i++) {
buttonEnabled = (dynContains(dsUserAccess, dsButtons[i]) > 0); // User access
switch (dsButtons[i]) {
...
case UN_FACEPLATE_BUTTON_ACK_ALARM:
buttonEnabled = buttonEnabled &&
!getBit(stsReg01Value, UN_STSREG01_LDST) &&
!getBit(stsReg02Value, CPC_STSREG02_SOFTLDST) &&
!bStsReg01Bad && !bStsReg02Bad;
...
}
cpcButton_setButtonState(UN_FACEPLATE_BUTTON_PREFIX + dsButtons[i],
buttonEnabled);
}
59
Unicos actions
60
UNICORE UNICOS CPC package
wid
get
wid
get
Impo
rt
expo
rt
Impo
rt
expo
rt
Dev
def
The Device Implementation• Device structure definition• Importation/exportation
• Library functions for configuring the device
• Widget• Graphical objects drawing• Library functions for animating
• ParamPanel• Faceplate
• Graphical object drawing• Library functions for animating
• Access rights definition• Actions• FW/UN configurations
• Integration within those frameworks
61
UNICORE
UNICOS CPC package
Event bits• evStsReg01• Set up accordingly to the DeviceType model
CE
RN
, De
c/20
12
62UCPC Advanced Course: SCADA Device
Creating a Synoptic panel
63
64
Uniform look and feel