The CMS Pixel PLC Code1 Christian Veelken UC Davis last updated 03/05/08.
-
Upload
valentine-bryan-farmer -
Category
Documents
-
view
214 -
download
0
Transcript of The CMS Pixel PLC Code1 Christian Veelken UC Davis last updated 03/05/08.
The CMS Pixel PLC Code 1
The CMS Pixel PLC Code
Christian VeelkenUC Davis
last updated 03/05/08
The CMS Pixel PLC Code 2
MissionThe purpose of the Pixel PLC Code is to ensure a safeOperation of the CMS Forward and Barrel Pixel Detectorsin all Circumstances.
To be a bit more specific, the two main Tasks of the Code are:
• continuously monitor the Temperature and Humidity values measured by Pt1000 RTD and HMX Sensors mounted within the Volume of the Pixel Detector
react to Conditions that represent a Danger for the Safety of the Pixel Detector by switching-off (“Interlocking”) the CAEN Power Supplies
The CMS Pixel PLC Code 3
Heart of the CMS Tracking System
• 3 Barrel Layers (BPix) r=4.3, 7.2 and 11 cm 672 Full-Modules and 96 Half-Modules 11528 ROCs, 48 Million Pixels Total area 0.78 m2
• 4 Endcap Disks (FPix) z=34.5 and 46.5 cm
(inner Radius ~ 6 cm away from Beam Line) 96 Blades with 672 Plaquettes 4320 ROCs, 18 Million Pixels Total area 0.28 m2
Barrel
Disks
CMS DetectorDiameter: 15mLength: 21.60m
The CMS Pixel Detector
The CMS Pixel PLC Code 4
CMS Pixel PLC SystemCommercial Siemens S7-300 System:
• 1 CPU 315-DP2
• 1 Ethernet Module
• 4 Relay Modules (32 Channels for Interlock Lines)
• 1 Analog Input Module (8 Channels for HMX Humidity Sensors)
• 1 Digital Input Module(16 Channels for Status Information
provided by non-Pixel Safety Systems)
• 32 RTD Modules (256 Channels for Pt1000 RTD Temperature Sensors)
• 4 Profibus DP Communication Modules,which interconnect the 5 Crates
The CMS Pixel PLC Code 5
CMS Pixel PLC Code• 56 Functions (FC) about 2000 (estimated) Lines of Code, written in the Pascal-like Siemens Programming Language “Structured Control Language” (SCL)
• 3 Organization Blocks (OB) that implement the cyclically executed Main Program, some special Initialization, which is executed once at every PLC Start-up, and a Timer Interrupt that is executed once every 100ms
• 50 Data-Blocks (DB)which store Configuration Parameters, Process Values
and Status Information and which are based on:
• 44 user-defined Data Types (UDT)
The CMS Pixel PLC Code 6
Graphical User InterfaceThe Implementation of the Graphical User Interface is basedon the commercial SCADA1 Software “Process Visualisierungs und Steuerungs System” (PVSS)
1 “Supervisory Control and Data Acquisition”
PVSS is used to:
retrieve Configuration Parameters from an Oracle Data-Base
visualize Process Values and Status Information
implement a Finite State Machine (FSM), which allows for a convenient Operation of the whole CMS Detector
The Data-Blocks in the PLC are interfaced to PVSS Data-Pointsby means of a native Siemens S7-Driver developed at CERN
N.B.: PVSS is also used to monitor and control the CAEN Power Supplies
The CMS Pixel PLC Code 7
Let’s have a look at the PLC Code in a bit more Detail now...
The CMS Pixel PLC Code 8
Functions (FC)The 56 Functions may be classified by the Functionality that they implement into different Groups:
• Functions that handle the “Upload” of Configuration Parameters and Operator Commands from PVSS into the PLC
• Functions that read Process Values from the Digital Input, Analog Input and RTD Modules and process them
• Functions that read “Diagnostics” Information describing the Status of the PLC System as a whole
• Functions that evaluate Interlock Conditions and open/close Relays accordingly
• “auxiliary” Functions, which implement specific Functionality needed by other Funtions
19
8
4
6
19
The CMS Pixel PLC Code 9
Organization Blocks (OB)There are 3 Organization Blocks defined in the Pixel PLC Code:
• OB 1 the Main Program, which is executed endlessly by the
Operating System of the PLC
• OB 35a Timer Interrupt, which is executed every 100ms and generates a Heart-Beat Signal, indicating that the PLC is running
• OB 100a Start-up Routine for Initialization of Data-Blocks, that is executed every Time the PLC is started/re-started
The CMS Pixel PLC Code 10
Data-Blocks (DB)Like the Functions, the 50 Data-Blocks may be classified intodifferent Groups, depending on the Type of Data they store:
• Data-Blocks that store Configuration Parameters and Operator Commands uploaded by PVSS
• Data-Blocks that store the Configuration Parameters actually in use by the PLC
• Data-Blocks that store the Operator Commands actually processed by the PLC
• Data-Blocks that store the Process Values from the Digital Input, Analog Input and RTD Modules
• Data-Blocks that store “Diagnostics” Information
• Data-Blocks that store the Status of Interlocks and of the Relays
• Data-Blocks that store “global” Constants, States and Operator Commands issued via the PVSS Graphical User Interface
10
9
3
7
4
7
N.B.: The “Upload” Data-Blocks allow to check all Configuration Parameters before they get used by the PLC
10
The CMS Pixel PLC Code 11
User-defined Data Types (UDT)The 50 Data-Blocks are defined in terms of 44 user-definedData Types.
The Advantage of using user-defined Data Types is that:
• Definitions of Data-Structures can be re-used for different Data-Blocks
• Block-Transfer Commands can be used when transfering Information from one Data-Block to another
Like the Functions and Data-Blocks, the user-defined DataTypes may be classified into different Groups.
As you might have guessed, there is actually a closeCorrespondence between the different Groups of Functions,Data-Blocks and user-defined Data Types.
N.B. In C++ Language, the user-defined Data Types are like Classes and the Data-Blocks like Instances of those Classes.
The concept of user-defined Data Types maps well to the concept of Data-Point Types, that are defined in PVSS.
The CMS Pixel PLC Code 12
Data-Flow
Configuration DB
PVSS
Configuration Parameters
“PVSS Upload”Configuration Parameter and Operator Commands
S7 driver
Process Values, Status Information and read-back Configuration Parameter
DB 60x
DB 10x
SettingsConfiguration Parameters actually processed by PLC
BLKMOV
DB 40x
Readings(Process Values and Status Information)
DB 51
DB 35
AI, RTD, DI Module and Channel Diagnostics
PLC Frontpanel LEDs
Conditions DB
S7 driver
PIW
I
Q
Temperature, Humidity Sensors
Digital Inputs
Relay Digital Outputs
Oracle Oracle
DB 59
PLC Heart-Beat
DB 52 Relay, Profibus Module Diagn.
PVSS
DB 20x DB 304
OperatorCommands
Relay Actions
The CMS Pixel PLC Code 13
Main Program Cycle (I)
Start
FC 102transferCfgPar_Input
FC 104transferCfgPar_Relay
FC 120transferCfgPar_inputMod
FC 124transferCfgPar_outputMod
FC 130transferCfgPar_profibMod
FC 200processTransferCfgParReq
FC 101transferCfgPar_AnaIlkGr
FC 108transferCfgPar_DigIlk
FC 110transferCfgPar_Temp
FC 111transferCfgPar_Humid
FC 1009processCfgParError
FC 1007processCfgParStatus
Handle Configuration Parameters uploaded by PVSS
1global Transfer Request issued by Operator to individual Data-Blocks
propagate1
1,2
1,2
1,2
1,2
1,2,3
1,2,3
1,2,3,4
1,2,3,4
5,6
6
1: FC 1116 computeCRC16CheckSum2: FC 1000 checkDataBlockHeader3: FC 1600 checkChannelAddress4: FC 1110 isEven5: FC 1601 checkIlkSensorMask6: FC 1602 checkIlkRelayMask
The CMS Pixel PLC Code 14
Main Program Cycle (II)
FC 202transfCommands_Input
FC 204transfCommands_Relay
FC 220transfCommands_inputMod
FC 224transfCommands_outputMod
FC 230transfCommands_profibMod
OB 1
FC 201transfCommands_AnaIlkGr
FC 208transfCommands_DigIlk
FC 210transfCommands_Temp
FC 211transfCommands_Humid
FC 240transfCommands_PLC
Handle Commands issued by Operator via PVSS Graphical User Interface
The CMS Pixel PLC Code 15
Main Program Cycle (III)
FC 1007procGlobalKillRequest
FC 1008procGlobalResetRequest
FC 1006procGlobalAcknRequest
Hande Operator Commands issued by PVSS Graphical User Interface
open/close all Relays
reset all Interlocks(provided the Conditions that triggered them are not fullfilled anymore)
clear all Alarms(provided the Alarm Conditions are currently not fullfilled)
1
1
1
1: FC 1200 readPushButtonStatus
The CMS Pixel PLC Code 16
Main Program Cycle (IV)
FC 51execRDSYSST_1
FC 52execRDSYSST_2
FC 59execRD_REC
FC 53checkSystemStatus
Read System “Diagnostics” Information
Wire-breaks, Module Errors,…
summarized Status Information for Analogand Digital Input, RTD, Relay Digital Outputand Profibus DP Communication Modules
PLC Status
Detailed “Diagnostics” Information forAnalog Input, Digital Input and RTD Modules
Check for PLC Errors and Problems with Profibus DP Connections
1
2
1: FC 1052 unpackBits2: FC 1421 testBit
The CMS Pixel PLC Code 17
Main Program Cycle (V)
FC 402readDigitalInputs
FC 410readTemperatureSensors
FC 411readHumiditySensors
Read Process Values, process “Diagnostics” Information
FC 420readInputModuleStatus
FC 424readOutputModuleStatus
FC 430readProfibModuleStatus
FC 440readPLC_Status
1,2,3
1,2,3
1,2,3,4,5
1,2,3,6,7
1,2,3,6,7
1,2,3,6,7
1
1: FC 1116 computeCRC16CheckSum2: FC 1400 computeAlarmStatus3: FC 1401 computeDurStateNotOk4: FC 1411 computeHumidity5: FC 1412 computeDewPoint6: FC 1420 unpackModuleStatusBits6: FC 1421 testBit
The CMS Pixel PLC Code 18
Main Program Cycle (VI)
FC 301processAnaIlkGroups
FC 308processDigInterlock
FC 1307processGlobalInterlock
FC 304setRelays
Evaluate Interlock Conditions, open/close Relays
Interlocks based on RTD Temperatureand HMX Humidity Sensors
Interlocks based on Digital Inputs
global “KILL” Request issued by Operator,severe Configuration Parameter Error
open/close Relays,depending on Interlock Conditions
The CMS Pixel PLC Code 19
Main Program Cycle (VII)
FC 404readRelayStatus
Read Status of Relays
for Display by PVSS only
The CMS Pixel PLC Code 20
FC 1240syncSystemDate_and_Time
Set Date and Time of PLC System
Main Program Cycle (VIII)
End
The CMS Pixel PLC Code 21
Honorable Mention
FC 6666 auxiliary Function to initialize Configuration Parameters;called from OB 100 in case PLC Code runs “stand-alone”,i.e. without Connection to PVSS
Only used for Testing !!
The CMS Pixel PLC Code 22
Summary• The CMS Pixel PLC Code consists of about about 2000
(estimated) Lines of Code, written in the Pascal-like Siemens Programming Language SCL
• The main Objective of the Code is to interlock the CAEN Power Supplies providing the High and Low Voltages for the Operation of the Pixel Detector,based on the Process Values of 256 RTD Temperature and 8 HMX Humidity Sensors mounted within the Volume of the Pixel Detector
• The Pixel PLC Code provides a high Degree of Adaptability;its run-time Behavior can be changed to a large Extentby uploading Configuration Parameters from PVSS into the PLC(the latter Feature has been taken from the PLC Code developed by the CMS Silicon Strip Tracker DCS Group – see Acknowledgements )
The CMS Pixel PLC Code 23
ApologiesThe Pixel PLC Code Code has been ready for Review since January 25th.
When I started working on the Graphical User Interfaces forPVSS Data-Points associated to the PLC System,I realized that I wanted to extend the Code I had developedby January 25th, in order to improve the Handling of:
• Access Control
• Errors present in Configuration Parameters
So, I went ahead and modified the PLC Code.
The Information presented in this Talk is up-to-date.I might have overlooked outdated Information in the moredetailed MS-Word Documentation at a few Places, however.
Sorry !!
The CMS Pixel PLC Code 24
AcknowledgementsI would like to thank
Andromachi Tsirou and Piero Giorgio Verdini
from the CMS Silicon Strip Tracker DCS Group for kindly providing their PLC Code, which has been used as Basis for the Development of the Pixel PLC Code
- and for answering quite a few Questions concerning their Code !!