The CMS Pixel PLC Code1 Christian Veelken UC Davis last updated 03/05/08.

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

Transcript of The CMS Pixel PLC Code1 Christian Veelken UC Davis last updated 03/05/08.

Page 1: 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

Page 2: The CMS Pixel PLC Code1 Christian Veelken UC 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

Page 3: The CMS Pixel PLC Code1 Christian Veelken UC Davis last updated 03/05/08.

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

Page 4: The CMS Pixel PLC Code1 Christian Veelken UC Davis last updated 03/05/08.

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

Page 5: The CMS Pixel PLC Code1 Christian Veelken UC Davis last updated 03/05/08.

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)

Page 6: The CMS Pixel PLC Code1 Christian Veelken UC Davis last updated 03/05/08.

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

Page 7: The CMS Pixel PLC Code1 Christian Veelken UC Davis last updated 03/05/08.

The CMS Pixel PLC Code 7

Let’s have a look at the PLC Code in a bit more Detail now...

Page 8: The CMS Pixel PLC Code1 Christian Veelken UC Davis last updated 03/05/08.

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

Page 9: The CMS Pixel PLC Code1 Christian Veelken UC Davis last updated 03/05/08.

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

Page 10: The CMS Pixel PLC Code1 Christian Veelken UC Davis last updated 03/05/08.

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

Page 11: The CMS Pixel PLC Code1 Christian Veelken UC Davis last updated 03/05/08.

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.

Page 12: The CMS Pixel PLC Code1 Christian Veelken UC Davis last updated 03/05/08.

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

Page 13: The CMS Pixel PLC Code1 Christian Veelken UC Davis last updated 03/05/08.

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

Page 14: The CMS Pixel PLC Code1 Christian Veelken UC Davis last updated 03/05/08.

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

Page 15: The CMS Pixel PLC Code1 Christian Veelken UC Davis last updated 03/05/08.

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

Page 16: The CMS Pixel PLC Code1 Christian Veelken UC Davis last updated 03/05/08.

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

Page 17: The CMS Pixel PLC Code1 Christian Veelken UC Davis last updated 03/05/08.

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

Page 18: The CMS Pixel PLC Code1 Christian Veelken UC Davis last updated 03/05/08.

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

Page 19: The CMS Pixel PLC Code1 Christian Veelken UC Davis last updated 03/05/08.

The CMS Pixel PLC Code 19

Main Program Cycle (VII)

FC 404readRelayStatus

Read Status of Relays

for Display by PVSS only

Page 20: The CMS Pixel PLC Code1 Christian Veelken UC Davis last updated 03/05/08.

The CMS Pixel PLC Code 20

FC 1240syncSystemDate_and_Time

Set Date and Time of PLC System

Main Program Cycle (VIII)

End

Page 21: The CMS Pixel PLC Code1 Christian Veelken UC Davis last updated 03/05/08.

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

Page 22: The CMS Pixel PLC Code1 Christian Veelken UC Davis last updated 03/05/08.

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 )

Page 23: The CMS Pixel PLC Code1 Christian Veelken UC Davis last updated 03/05/08.

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

Page 24: The CMS Pixel PLC Code1 Christian Veelken UC Davis last updated 03/05/08.

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