190 likes | 302 Views
LCLS Phase I Upgrade; IOC CAMAC Support Requirements. Robert C. Sass Sheng Peng. Overview. General Database Camac I/O Supported Camac Modules 360Hz Processing Crate Management Analog Inputs and Outputs Digital Inputs & Outputs Klystron Support Timing Support BPM Support
E N D
LCLS Phase I Upgrade; IOC CAMAC Support Requirements Robert C. Sass Sheng Peng
Overview • General • Database • Camac I/O • Supported Camac Modules • 360Hz Processing • Crate Management • Analog Inputs and Outputs • Digital Inputs & Outputs • Klystron Support • Timing Support • BPM Support • Magnet Support • Remote Camac Operation • Unresolved Issues
General • No support for SLC message service or database • No support for powerfail recovery of a crate • A reboot is necessary if a crate fails and is brought back online • No support for the old MPS system • We assume that the new MPS will be fully functional • Support only for the following micros: • LI20-LI30 • CA01, CA11 MC00, AB01, CB00, FB31?
Database • Mostly automated tool to translate relevant SLC database primaries for supported micros to EPICS database records. • All relevant crates and supported modules must be translated for each micro. • PV names preserved for HLA when underlying hardware changes. • EPICS database records will receive data from Camac I/O. • Asynchronous records for output processing.
Camac I/O • Existing CAM* routines updated for the FECC project. • Thread safe • All 32 bit pointers • GCC compatible • Using them is the required implementation. • Some Camac modules have special I/O “needs” • All micro code made GCC compatible as part of the FECC project • Much existing micro Camac code can be used with minimal change • Take advantage of new PCSD features • Three priorities; use highest for 360Hz • Optional interrupts • Changeable timeout • Actual package execution time available
Supported Camac Modules • IDIM/LDIM – Isolated/Latching Digital Input Module. • IDOM – Isolated Digital Output Module. • SAM – Smart Analog Monitor. • DAC – Digital to Analog Converter. • PDU – Programmable Delay Unit. • BPM – Linac Beam Position Monitor (remaining EP-BPMs replaced) • PPOM – Pulsed Power Output Module. • PIOP – Parallel Input/Output Processor. • SBI – Subbooster Interface. • PSC II – Power supply controller • SMC Stepping Motor Controller • CV - Crate Verifier (optional).
360Hz Processing • Only support PDU timing device. • Use high priority request of the PCSD sans interrupt. • Provide user callback mechanism at defined set of fiducial sub-harmonics. • 120Hz, 60Hz, 30Hz, 10Hz, 5Hz, 1Hz, 0.5Hz • Selectable callback priority.
Crate Management • All crates initialized at IOC boot/reboot. • Similar to what micro crate job does • Special initialization for individual modules: • PDU, IDOM, SAM, PIOP • PIOP image and tmatrix available as files • No access by other threads until crate is initialized. • No access to PDU, IDOM, SAM and PIOP until they have been initialized. • Periodic crate operational check.
Analog Inputs and Outputs • Only the SAM is supported for analog inputs. • Process all analog inputs at 1Hz. • Support for the following E.U conversions: • Linear. • Logarithmic. • Polynomial. • Ion Guage. • Phase Mixer. • Parabolic Interpolation. See VMS ref_rmx_anlg:polyint.f86 • Thermocouples. See VMS ref_rmx_anlg:thermist.f86 • Calculated values. • Dynamic Disk Loaded Waveguide dynamic tolerance adjustment. • Interpret E.U. tolerances in two ways: • E.U. = Lim1 +/- Lim2 • Lim1 <= E.U. <= Lim2 • Analog outputs are done by each job. What conversions are needed?
Digital Inputs & Outputs • IDIM, LDIM and IDOM are the only digital modules supported • Process all digital inputs at 1Hz. • Process digital outputs on demand.
Klystron Support • Implement both types of FTP reads: • Ordinary • System Volt • Periodic status checks and trim phase. • Implement all functions that update the PIOP • KLYS_UPDATE_PIOP - General PIOP update • KLYS_UPDATE_PIOP_PADONLY - Update PAD block • KLYS_UPDATE_PIOP_MK2ONLY - Update MK2 block • KLYS_UPDATE_PIOP_NEWPHASE – Set new phase • KLYS_TRIM_SLED – Move SLED to position in database • KLYS_TRIM_PHASE – Move Fox shifter within tolerance of designated phase • KLYS_PTRB_PHASE - Perturb phase by requested amount • KLYS_FOXHOME - Set Fox phase shifter to home
Timing Support • Update of single PDU value. • Update of modulo-36 time slot counter. • May support diagnostic readout of PDU status registers and memory.
BPM Support • No private calibrations. • PVs to support Beam Synchronous Acquisition (BSAC) functions in IOC for BPMs. • Public Calibration • Set x & y offsets attenuator and pedestal • Pulse based readout resulting in X, Y and tmit • Standard Linac BPMs map into EPICS BSAC Application PVs.
Magnet Support • Existing EPICS magnet function • Support PSC II and SMC for EPICS magnet functions. • No support for self test. • PSC II is complicated • Analog output for setpoint • 2 Analog inputs for shunts or transductors • 8 bits of digital input • 6 bits of digital output • Selectable ramping rates • Some “special” code required e.g. set mode before ADC read, delay when switching analog inputs etc. • Kristi assures me that these will map into EPICS PVs for magnet support • SMC is fairly simple • Set number of steps • Start/stop • Read status and counter • Front panel adjustments for acceleration and frequency
Remote Camac Operation • Support execution of a Camac package originating outside of the IOC. • This means rebuilding the package to use PCSD dual-ported memory. • Only accept requests and return results via Channel Access. • Should support repeated execution of a package for diagnostic purposes.
Unresolved Issues • FB31 Energy loop needed? • Not all PSCs in linac are needed. Can they be replaced with EPICS H/W? • Supported output conversions?