Sunteți pe pagina 1din 24

The CMS Pixel PLC Code

Christian Veelken
UC Davis
last updated 03/05/08
The CMS Pixel PLC Code 1

Mission
The purpose of the Pixel PLC Code is to ensure a safe Operation of the CMS Forward and Barrel Pixel Detectors in 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

The CMS Pixel Detector CMS Detector


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 Disks
Diameter: 15m Length: 21.60m

Heart of the CMS Tracking System 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 The CMS Pixel PLC Code
Barrel

CMS Pixel PLC System


Commercial 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 4

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

Graphical User Interface


The Implementation of the Graphical User Interface is based on 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-Points by 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 6

Lets have a look at the PLC Code in a bit more Detail now...

The CMS Pixel PLC Code

Functions (FC)
The 56 Functions may be classified by the Functionality that they implement into different Groups:
19 8 4

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

The CMS Pixel PLC Code

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 35 a Timer Interrupt, which is executed every 100ms and generates a Heart-Beat Signal, indicating that the PLC is running OB 100 a Start-up Routine for Initialization of Data-Blocks, that is executed every Time the PLC is started/re-started

The CMS Pixel PLC Code

Data-Blocks (DB)
Like the Functions, the 50 Data-Blocks may be classified into different Groups, depending on the Type of Data they store:
10 9 10 7 4 3 7

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

N.B.: The Upload Data-Blocks allow to check all Configuration Parameters before they get used by the PLC
The CMS Pixel PLC Code 10

User-defined Data Types (UDT)


The 50 Data-Blocks are defined in terms of 44 user-defined Data Types. The Advantage of using user-defined Data Types is that:

Definitions of Data-Structures can be re-used for different DataBlocks


Block-Transfer Commands can be used when transfering Information from one Data-Block to another Like the Functions and Data-Blocks, the user-defined Data Types may be classified into different Groups. As you might have guessed, there is actually a close Correspondence 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 DataPoint Types, that are defined in PVSS.
The CMS Pixel PLC Code 11

Data-Flow
Settings Configuration Parameters actually processed by PLC DB 10x Operator Commands DB 20x Relay Actions DB 304 Readings (Process Values and Status Information) DB 40x

PIW I Q DB 35 DB 51 DB 52

Temperature, Humidity Sensors Digital Inputs Relay Digital Outputs

PLC Heart-Beat
PLC Frontpanel LEDs Relay, Profibus Module Diagn. AI, RTD, DI Module and Channel Diagnostics

BLKMOV DB 59

DB 60x PVSS Upload Configuration Parameter and Operator Commands S7 driver PVSS

S7 driver

PVSS

Oracle

Configuration DB

Conditions DB

Oracle

Configuration Parameters

Process Values, Status Information and read-back Configuration Parameter

The CMS Pixel PLC Code

12

Main Program Cycle (I)


Handle Configuration Parameters uploaded by PVSS
Start

1: FC 1116 computeCRC16CheckSum 2: FC 1000 checkDataBlockHeader 3: FC 1600 checkChannelAddress 4: FC 1110 isEven 5: FC 1601 checkIlkSensorMask 6: FC 1602 checkIlkRelayMask
FC 110 transferCfgPar_Temp

propagate1

1,2,3,4

FC 200 processTransferCfgParReq

1,2
FC 111 transferCfgPar_Humid

1,2,3,4

FC 120 transferCfgPar_inputMod

1,2
FC 101 transferCfgPar_AnaIlkGr

FC 124 transferCfgPar_outputMod

1,2 1,2

5,6

FC 130 transferCfgPar_profibMod

FC 108 transferCfgPar_DigIlk

FC 102 transferCfgPar_Input

1,2,3

FC 1007 processCfgParStatus

FC 104 transferCfgPar_Relay

1,2,3

FC 1009 processCfgParError

1global

Transfer Request issued by Operator to individual Data-Blocks The CMS Pixel PLC Code

13

Main Program Cycle (II)


Handle Commands issued by Operator via PVSS Graphical User Interface
FC 210 transfCommands_Temp

FC 220 transfCommands_inputMod

FC 211 transfCommands_Humid

FC 224 transfCommands_outputMod

FC 201 transfCommands_AnaIlkGr

FC 230 transfCommands_profibMod

FC 208 transfCommands_DigIlk

FC 202 transfCommands_Input

FC 240 transfCommands_PLC

FC 204 transfCommands_Relay
OB 1

The CMS Pixel PLC Code

14

Main Program Cycle (III)


Hande Operator Commands issued by PVSS Graphical User Interface

FC 1007 procGlobalKillRequest

open/close all Relays reset all Interlocks

FC 1008 procGlobalResetRequest

(provided the Conditions that triggered them are not fullfilled anymore)

FC 1006 procGlobalAcknRequest

clear all Alarms


(provided the Alarm Conditions are currently not fullfilled)

1: FC 1200 readPushButtonStatus

The CMS Pixel PLC Code

15

Main Program Cycle (IV)


Read System Diagnostics Information
Wire-breaks, Module Errors,
FC 51 execRDSYSST_1

summarized Status Information for Analog and Digital Input, RTD, Relay Digital Output and Profibus DP Communication Modules
1

FC 52 execRDSYSST_2

PLC Status Detailed Diagnostics Information for Analog Input, Digital Input and RTD Modules Check for PLC Errors and Problems with Profibus DP Connections

FC 59 execRD_REC

FC 53 checkSystemStatus

1: FC 1052 unpackBits 2: FC 1421 testBit

The CMS Pixel PLC Code

16

Main Program Cycle (V)


Read Process Values, process Diagnostics Information
FC 420 readInputModuleStatus
FC 402 readDigitalInputs

1,2,3,6,7

1,2,3
FC 424 readOutputModuleStatus

1,2,3,6,7

FC 410 readTemperatureSensors

1,2,3
FC 430 readProfibModuleStatus

1,2,3,6,7

FC 411 readHumiditySensors

1,2,3,4,5
FC 440 readPLC_Status

1: FC 1116 computeCRC16CheckSum 2: FC 1400 computeAlarmStatus 3: FC 1401 computeDurStateNotOk 4: FC 1411 computeHumidity 5: FC 1412 computeDewPoint 6: FC 1420 unpackModuleStatusBits 6: FC 1421 testBit The CMS Pixel PLC Code

17

Main Program Cycle (VI)


Evaluate Interlock Conditions, open/close Relays
FC 301 processAnaIlkGroups

Interlocks based on RTD Temperature and 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

FC 308 processDigInterlock

FC 1307 processGlobalInterlock

FC 304 setRelays

The CMS Pixel PLC Code

18

Main Program Cycle (VII)


Read Status of Relays
for Display by PVSS only

FC 404 readRelayStatus

The CMS Pixel PLC Code

19

Main Program Cycle (VIII)


Set Date and Time of PLC System

FC 1240 syncSystemDate_and_Time

End

The CMS Pixel PLC Code

20

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

21

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 Extent by 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

22

Apologies
The Pixel PLC Code Code has been ready for Review since January 25th.

When I started working on the Graphical User Interfaces for PVSS Data-Points associated to the PLC System, I realized that I wanted to extend the Code I had developed by 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 more detailed MS-Word Documentation at a few Places, however.
Sorry !!
The CMS Pixel PLC Code 23

Acknowledgements
I 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 !!

The CMS Pixel PLC Code

24

S-ar putea să vă placă și