AustralianSynchrotron / pmac-rascan

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

RASCAN package

This repo contains RASCAN and RASCANv2.0 folders as implemented in the XFM beamline of the Australian Synchrotron in 2016-17. All of the files including epics components, GeoBrickLV controller code, python Solver and example experiment run scripts and documentation were initially intended for internal use, so there might be missing bits and obsolete information in documentation. Also, major parts of the python codes are autogenerated out of MATLAB(R) code which was used to model the whole system, so they may lack comments and proper styling.

RASCAN is a software for running time-optimized continuous-motion fly scanning. Time optimization comes down to pre-planning the two faster axes of the stack, as a 2D "RASCAN device" rather than two separate axes. Basis of the optimization is separation of "scan" and "skip" moves which are determined by science requirements and kinematic equations repetitively. The faster two axes will be controlled using optimised PVT trajectory pieces, which in a sequence make the full RASCAN trajectory.

included in the package

  • qeGui user interfaces provide information, monitoring and control to users

  • epics component, provides control of the RASCAN state machine including run, pause and restart, feeds the scan parameters to the python solver via certain PVs, and pushes the optimized PVT parameters to the controller

  • The python Solver, takes inputs from certain epics PVs, solves for time-optimal trajectory with constrains, and outputs the atomic PVT move pieces parameters to epics PVs

  • TurboPmac code which provides the state machine and loops the atomic PVT moves to render the optimized scan trajectory

  • Documentation includes some mathematical and modelling used for the Solver

  • m-files used for modelling of the whole system are also provided

Quick hints for users

  • RASCAN Solver script is here: trunk\midLayer\rascanSolveIt.py
  • an example of a scan control python script to help demonstrate the system flow is here: trunk\midLayer\rascanScanSample.py both of them need epics and trunk\midLayer\rascanLib.py

License

Copyright (c) 2017 Australian Synchrotron

This package is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This package is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this package; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.

Contact

nadera@ansto.gov.au Controls Systems ANSTO - Australian Synchrotron 800 Blackburn Road, Clayton, Victoria 3168, Australia.

Last updated:

About


Languages

Language:MATLAB 53.1%Language:Python 45.0%Language:Makefile 1.7%Language:C++ 0.2%