Title: Siemens S7-300 Hardware Setup for the Test-Beam
1The CMS Pixel PLC Code
Christian Veelken UC Davis last updated 03/05/08
2Mission
- 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
3The CMS Pixel Detector
CMS Detector Diameter 15m Length 21.60m
- 3 Barrel Layers (BPix)
- r4.3, 7.2 and 11 cm
- 672 Full-Modules and 96 Half-Modules
- 11528 ROCs, 48 Million Pixels
- Total area 0.78 m2
Disks
Heart of the CMS Tracking System
Barrel
- 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
4CMS 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)
5CMS 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)
6Graphical 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
7Lets have a look at the PLC Code in a bit more
Detail now...
8Functions (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
9Organization 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
10Data-Blocks (DB)
- Like the Functions, the 50 Data-Blocks may be
classified into - different 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
- N.B. The Upload Data-Blocks allow to check all
Configuration Parameters before they get used by
the PLC
11User-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 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 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 Data-Point Types, that are defined in PVSS.
12Data-Flow
13Main Program Cycle (I)
1 FC 1116 computeCRC16CheckSum 2 FC 1000
checkDataBlockHeader 3 FC 1600
checkChannelAddress 4 FC 1110 isEven 5 FC 1601
checkIlkSensorMask 6 FC 1602 checkIlkRelayMask
Handle Configuration Parameters uploaded by PVSS
1,2,3,4
propagate1
1,2
1,2,3,4
1,2
5,6
1,2
6
1,2
1,2,3
1,2,3
1global Transfer Request issued by Operator to
individual Data-Blocks
14Main Program Cycle (II)
Handle Commands issued by Operator via PVSS
Graphical User Interface
15Main Program Cycle (III)
Hande Operator Commands issued by PVSS Graphical
User Interface
open/close all Relays
1
reset all Interlocks (provided the Conditions
that triggered them are not fullfilled anymore)
1
clear all Alarms (provided the Alarm Conditions
are currently not fullfilled)
1
1 FC 1200 readPushButtonStatus
16Main Program Cycle (IV)
Read System Diagnostics Information
Wire-breaks, Module Errors,
summarized Status Information for Analog and
Digital Input, RTD, Relay Digital Output and
Profibus DP Communication Modules
PLC Status
1
Detailed Diagnostics Information for Analog
Input, Digital Input and RTD Modules
Check for PLC Errors and Problems with Profibus
DP Connections
2
1 FC 1052 unpackBits 2 FC 1421 testBit
17Main Program Cycle (V)
Read Process Values, process Diagnostics
Information
1,2,3,6,7
1,2,3
1,2,3,6,7
1,2,3
1,2,3,6,7
1,2,3,4,5
1
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
18Main Program Cycle (VI)
Evaluate Interlock Conditions, open/close Relays
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
19Main Program Cycle (VII)
Read Status of Relays
for Display by PVSS only
20Main Program Cycle (VIII)
Set Date and Time of PLC System
21Honorable Mention
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 !!
FC 6666
22Summary
- 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 )
23Apologies
- 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 !!
24Acknowledgements
- 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 !!