This is the LCLS TwinCAT3 project lcls-plc-xrt-optics (formerly HOMS_XRT).
Contains code for the HOMS (Hard X-ray Offset Mirror System) Mechatronics controls.
TODO
Hard X-ray Offset Mirror System Mechatronics Controls PLC Code
Home Page: https://pcdshub.github.io/lcls-plc-xrt-optics/
License: Other
This is the LCLS TwinCAT3 project lcls-plc-xrt-optics (formerly HOMS_XRT).
Contains code for the HOMS (Hard X-ray Offset Mirror System) Mechatronics controls.
TODO
Axes which lose communication with their encoder do not properly enter an error state and remain there until reset. The FB drive block looks for a rising edge on the reset function which can occur if someone holds down the reset button and the error goes away for a cycle.
Also there is no way to clear errors from EPICS. This is a big operational problem.
Currently MR2L3 and MR1L4 have state movers implemented for motion control, but rely on fast faulting coating protection function blocks.
They should use state movers with PMPS
Need to make the deadbands persistent values in the PLC to make the power cycle process more automated.
Symptoms include: having to reissue your last command to the pitch, slightly different to get it to take.
When the pitch gets near the stepper motor transition point it cuts the stepper enable which causes an error. This error causes the next pitch setpoint requiring the stepper to be ignored.
This is not good practice for two reasons:
Gantry Difference PVs are reporting non-sensical values. This is most likely a discrepancy between floating point types.
The stepper motors do not automatically reset after a power outage. A simple script to attempt a reset of the system would aid recovery.
Use a running calculation of the noise floor on the pitch axes to set the tolerance for move done.
Clearly these fields are not implemented to the description on the motor record docs:
https://epics.anl.gov/bcda/synApps/motor/R6-10/motorRecord.html#Fields_status
needs to be fixed for all axes.
Gantry axes do not include smooth mover functionality. Not a big deal, but these axes are slow, could be really annoying if they don't have a stop or smooth mover.
Once recovered, the system may recouple with excess gantry error. A script to automatically decouple and zero the gantry error would be helpful.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.