ORNL is managed by UT-Battelle for the US Department of Energy EPICS on SNS Instruments Matt Pearson SNS ORNL 18 th - 22 nd May 2015
EPICS on SNS Instruments SNS Beamline Control System (old) Mix of Labview and C++ applications In house network protocol Python user interface (scripting/GUI) Windows XP/7. Single user system. Separate machine for each application (motors, sample env, detectors). Close the window, shutdown the scan/experiment. Performance & reliability issues No use of version control system (until 2 years ago, SVN) No remote access (each beamline was it’s own island)
EPICS on SNS Instruments SNS Beamline Control System (new) EPICS IOCs running on Linux RHEL6 64-bit. procServ. Separate IOCs per subsystem. 2 Linux servers and 1-2 OPI machines for CS-Studio. Channel Access and PVAccess (for neutron event data) CS-Studio scan server (with scripting interface). PyEpics scripts / CS-Studio scripts & rules Vyatta router interface to beamline (next slide) Remote access via ssh & NX. Read-only remote displays via gateways and webopi. Version control via git. Use git tags for releases. Local file systems (RAID 5) and software builds. CFEngine (moving to Puppet).
EPICS on SNS Instruments Beamline Network & Computing b.0/ /16 (only access in beamline) Vyatta Router/Firewall Site access IP Storage/Outside b-dassrv1 (IOCs) b-dasopi1 (CSS) b = beamline ID b.0/24 Switch /16 Switch Motor Controller 1 Motor Controller 2 Power Supply 1 Etc…. GigE camera
EPICS on SNS Instruments Use existing EPICS software base V4 libraries snapshot on 12 th Jan 2015 (4.4 release + fixes) asyn/streamDevice pcaspy (Channel Access Server in Python) motor record (and drivers for Galil, PI GCS, Newport XPS) areaDetector (neutron visualization, Andor CCD & sCMOS) ether_ip, BACnet devIocStats, autosave State Notation Language (for high level applications/sequences) busy record (to handle put_callback from scans).
EPICS on SNS Instruments New device control Agilent N5741A & TDK Lambda PSU- LV detector electronics AMI 186 – Liquid helium level meter Eurotherm NanoDAC – may become our standard process controller for samples He compressor – detector cooling and sample environment Lakeshore 336/350 – sample environment Lin engineering stepper controller – needle valve control Parker 6K & GT6K – motion control Partlow series process controller – sample environment (heaters, alarms) Pfeiffer vacuum pressure gauge – sample environment Sens-Tech HV base – HV for detectors Spellman SL30 HV PSU – HV for detectors Sumitomo Cryogenics SHI F-70 compressors – detector cooling system
EPICS on SNS Instruments High Level Beamline View
EPICS on SNS Instruments High Level Motor Screen for Slits
EPICS on SNS Instruments Detailed motor screen
EPICS on SNS Instruments Parker 6K model 3 motor driver New driver based on asynPortDriver (model 3 type). Some advantages over non-asyn driver: –Detect motion outside of a normal move command –Reflect error conditions in the motor record alarm fields –Control and read controller-wide information –Additional axis specific capabilities outside of the motor record: Automatic amplifier control Configurable delay after each move (delay in the driver). Helps with large inertia stages. –Easy debugging (asyn record/logging, low level commands via waveform PVs). –Adjustable polling rates –Ability to set both motor and encoder position –Automatically restore positions on IOC reboot after a controller power cycle –Option to upload Parker controller configuration on IOC reboot. Hosted at: Used at SNS and FRIB
EPICS on SNS Instruments Power Supplies Typically use channel access security for PSUs. CAS Groups: BEAMLINE (beamline staff, controls, detector group etc) DEFAULT (all users, except when a scan is running) ALWAYS (all users, all the time, eg. stop all motors, change ROI).
EPICS on SNS Instruments Lakeshore 336/350 Temperature Control Stream Device based support: Set/Read setpoint, temperature, ramp rate, PID, etc. Support for put_callback on setpoint. Uses busy record to wait for temperature readback to be within a tolerance window. User configurable output/sensor pairs (set temperature on output 1, wait for sensor B to get within tolerance window). Alarm handling (read back lakeshore alarm, sensor status, user defined temp limits). Alarm per sensor & overall alarm record. Support for 3062 option card (4 extra sensor inputs). See: Many of our systems support put_callback for easy scan
EPICS on SNS Instruments Lakeshore High Level Screen
EPICS on SNS Instruments ILL Orange Cryostat Standard cryostat for neutron beamlines ( K) Heater controller (Lakeshore) Dual pressure gauge (Pfeiffer Vacuum) Needle valve controller (stepper motor, Lin controller) EPICS application: Control lakeshore Read pressures Control needle valve (He gas flow): PID loop (ePID record) Input is VTI pressure Output is needle valve position Table of pressure setpoints depending on temperature range and direction: Heating table Cooling table Automatically switch tables
EPICS on SNS Instruments ILL Orange Cryostat - details PID control also has a deadband + timer to allow settling. ePID output is disabled after timer expires.
EPICS on SNS Instruments Plans for SNS beamline control Convert 3-4 beamlines a year from legacy control system to EPICS –3 beamlines fully converted –All beamlines have new network/servers –>10 beamlines have subsystem controlled via EPICS (eg. neutron chopper, vacuum) Support more detector types (there is a big effort to update our detector electronics too). Support more complex sample environment systems Build an imaging/tomography beamline (high data rates) Python scripting interface to scan server Automatic builds / testing Training our staff to support EPICS systems