1 / 24

The CMS Pixel PLC Code

The CMS Pixel PLC Code. Christian Veelken UC Davis last updated 03/05/08. 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:

yana
Download Presentation

The CMS Pixel PLC Code

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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

  3. The CMS Pixel Detector CMS Detector Diameter: 15m Length: 21.60m • 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 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 The CMS Pixel PLC Code

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

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

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

  10. Data-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 10 9 10 7 4 3 7 N.B.: The “Upload” Data-Blocks allow to check all Configuration Parameters before they get used by the PLC The CMS Pixel PLC Code

  11. 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 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. The CMS Pixel PLC Code

  12. Temperature, Humidity Sensors PIW Digital Inputs I Readings (Process Values and Status Information) Settings Configuration Parameters actually processed by PLC Operator Commands Relay Actions Relay Digital Outputs Q DB 40x DB 10x DB 20x DB 304 PLC Heart-Beat DB 35 PLC Frontpanel LEDs DB 51 Relay, Profibus Module Diagn. DB 52 BLKMOV AI, RTD, DI Module and Channel Diagnostics DB 59 DB 60x “PVSS Upload” Configuration Parameter and Operator Commands S7 driver S7 driver PVSS PVSS Configuration DB Conditions DB Oracle Oracle Configuration Parameters Process Values, Status Information and read-back Configuration Parameter Data-Flow The CMS Pixel PLC Code

  13. 1: FC 1116 computeCRC16CheckSum 2: FC 1000 checkDataBlockHeader 3: FC 1600 checkChannelAddress 4: FC 1110 isEven 5: FC 1601 checkIlkSensorMask 6: FC 1602 checkIlkRelayMask Main Program Cycle (I) 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 The CMS Pixel PLC Code

  14. Main Program Cycle (II) Handle Commands issued by Operator via PVSS Graphical User Interface The CMS Pixel PLC Code

  15. Main 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 The CMS Pixel PLC Code

  16. Main 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 The CMS Pixel PLC Code

  17. Main 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 The CMS Pixel PLC Code

  18. Main 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 The CMS Pixel PLC Code

  19. Main Program Cycle (VII) Read Status of Relays for Display by PVSS only The CMS Pixel PLC Code

  20. Main Program Cycle (VIII) Set Date and Time of PLC System The CMS Pixel PLC Code

  21. Honorable 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 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 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

  23. 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

  24. 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

More Related