On Wed, 22 Nov 2023 at 09:43, Gerrit Kühn via Tech-talk
<tech-talk at aps.anl.gov <mailto:tech-talk at aps.anl.gov>> wrote:
Instead, I'd like to send an "enable" command, have the device
running for
a configurable time (like 5min), then send a "disable" command and wait
for a longer time (like 55min) until the next cycle is started.
As so often, the best solution depends on your requirements.
- Simple: seq record that fires links with delay. A single record could
do the job, but once it runs, you have zero control and zero visibility.
- Flexible: sequencer state machine. Define the interface you need
(control and monitoring) then implement the business logic in SNL. Yet
another tool and workflow. Any change needs recompilation.
- Transparent: use a few calcout records that basically count down,
initiating actions on "change to zero". More records for the interface
as needed.
I would probably go for the database solution, because of the full
transparency and online modifiable functionality (good when developing).
Also, counters are good for displaying progress bars on the GUI.
But that's clearly personal preference. I know colleagues that would
without hesitation use a sequencer state machine or a client-side Python
script.
In case you eventually have a generic database solution, please consider
posting it to https://github.com/epics-docs/database-examples
<https://github.com/epics-docs/database-examples>, which is a good place
to share such patterns.
Cheers,
~Ralph