Musst/Maestrio scope tools
Some tools are available in module fscan.scope. The aim of these tools is to record either motor positions or camera signals for diagnostic pupose. They can be used with either a musst or a maestrio board.
timescope
description:
timescope will record musst counters/encoders inputs with a given time period. Can be used to monitor motor stability for example.
usage:
timescope(syncdev, npts, period, *motors, **kwargs)
parameters:
- syncdev : musst or maestrio bliss object
- npts : number of points to record
- period : point period in seconds
- motors [optional] : motors/encoders to record (bliss motor object)
- kwargs [optional] :
- save [default= True] : save data in file or not
- sync_motors [default= True] : when using motors, synchronise musst motor steps with current motor position before starting
example:
MANU [11]: from fscan.scope import timescope
MANU [12]: timescope(musst_bcu2, 100, 0.01, save=False)
Scan 1 Fri Jun 11 11:32:50 2021 manu user = blissadm
timescope musst_bcu2 100 0.01
Preparing ...
Running ...
trig 100
Stopping ...
Finished (took 0:00:01.486697)
MANU [13]:
motorscope
description:
motorscope will move a motor at a given speed and register its encoder/steps while moving. It can be used to check how a motor accelerates (check overshoot for example), or if its speed is really constant (closed loop stability for example).
usage:
motorscope(syncdev, motor, start, stop, speed, period, **kwargs)
parameters:
- syncdev : musst or maestrio bliss object
- motor : motor bliss object
- start, stop, speed : motor motion parameters
- period : time period in seconds to register musst inputs
- kwargs [optional] :
- save [default= True] : save data to file or not
- sync_motors [default= True] : synchronise musst motor steps with current motor position before starting
- acc_margin [default= 0.] : add a margin (in motor units) to acceleration delta
- extra_time [default= 0] : register longer time than computed move time
- constant_speed [default= True] : start recording after motor acceleration time when motor should be at constant speed
- zigzag [default= False] : move 2 times : from start to stop then go back
example:
MANU [16]: from fscan.scope import motorscope
MANU [17]: motorscope(musst_bcu2, rot2, 3800, 3805, 1.5, 0.010)
motorscope type : simple move from 3800.000000 unit to 3805.000000 unit
* maximum speed = 1.500000 unit/sec
* estimated time = 4.833333 sec
Scan 174 Fri Jun 11 11:34:30 2021 /nobackup/lid00limace1/scans/manu/data.h5 manu user = blissadm
motorscope musst_bcu2 rot2 3800 3805 1.5 0.01
Preparing ...
rot2 3800.000
Running ...
rot2 3804.9900 trig 483
Stopping ...
rot2 3805.000
Finished (took 0:00:39.723543)
MANU [18]:
limascope
description:
limascope records the time of the output signal of a camera plugged into the input trigger of the synchronization board. Lima acquisitions can be started by software or external trigger. The timer can be recorded either by input signal edge or level. This tool can be used to investigate camera readout time, frame frequency, ... Following signal are used:
signal type | MUSST | MAESTRIO |
---|---|---|
input trigger | Itrig | DI1 |
external trigger | OutA | DO1 |
usage:
limascope(musst, limadev, expotime, npoints, **kwargs)
parameters:
- musst : musst bliss object
- limadev : lima bliss object
- expotime, npoints : parameters of lima acquisition
- kwargs [optional]:
- external_trigger [default= False] : start camera acquisition with one external trigger (on musst OutA)
- record [default= RISE_AND_FALL] : specify signal type recording. Can be one of RISE_AND_FALL, RISE, FALL or HIGH_AND_LOW
- save [default= True] : save data to file or not
example:
MANU [20]: from fscan.scope import limascope
MANU [21]: limascope(musst_bcu2, bcu_mpx_tpxatl25, 0.01, 20, record="RISE_AND_FALL")
Scan 175 Fri Jun 11 11:37:37 2021 /nobackup/lid00limace1/scans/manu/data.h5 manu user = blissadm
limascope musst_bcu2 bcu_mpx_tpxatl25 0.01 20
Preparing ...
Running ...
trig 20 bcu_mpx_tpxatl25 20 (S +0)
Stopping ...
Finished (took 0:00:00.684139)
Limascope recorded signals on musst:
====================================
Mean Min Max
-------------- ----------- -------- --------
AcqTime [sec] 0.0102876 0.010287 0.010288
Period [sec] 0.0103001 0.010299 0.010301
DeadTime [sec] 1.24211e-05 1.2e-05 1.3e-05
MANU [22]: