1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 <2022> 2023 2024 2025 | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 <2022> 2023 2024 2025 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: Timing in seq record |
From: | Mark Rivers via Tech-talk <tech-talk at aps.anl.gov> |
To: | Freddie Akeroyd - STFC UKRI <freddie.akeroyd at stfc.ac.uk> |
Cc: | "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov> |
Date: | Thu, 3 Mar 2022 02:36:59 +0000 |
Hi Freddie,
Thanks for pointing out that issue.
That issue was closed on March 12, 2021, saying there has been a pull request.
7.0.6 was release on July 3, 2021, and 7.0.6.1 on October 6, 2021. But I don't see anything about this issue in the release notes for either of these.
Is there a release of base that fixes this fairly serious issue?
Mark
From: Freddie Akeroyd - STFC UKRI <freddie.akeroyd at stfc.ac.uk>
Sent: Wednesday, March 2, 2022 7:54 PM To: Mark Rivers <rivers at cars.uchicago.edu> Subject: RE: Timing in seq record Hi Mark,
This might be related to Timers expire early · Issue #106 · epics-base/epics-base (github.com) as I think it may use timers for the delay
Freddie
From: Tech-talk <tech-talk-bounces at aps.anl.gov>
On Behalf Of Mark Rivers via Tech-talk
I see the same thing with base 7.0.5.
From: Tech-talk <tech-talk-bounces at aps.anl.gov>
On Behalf Of Mark Rivers via Tech-talk
I have the following simple database with a seq record which just writes 1 and 0 to the Shutter record. There is a delay of $(DELAY) before writing 1 and before writing 0.
record(seq,"$(P)OpenCloseShutter") { field(PINI, "YES") field(DLY0,"$(DELAY)") field(DOL0,"1") field(LNK0,"$(P)Shutter PP MS") field(DLY1,"$(DELAY)") field(DOL1,"0") field(LNK1,"$(P)Shutter PP MS") field(FLNK,"$(P)OpenCloseShutter.PROC CA") }
record(bo, "$(P)Shutter") { field(ZNAM, "Done") field(ONAM, "Moving") }
If DELAY is 0.1 I see the following with camonitor on Shutter:
Test:Shutter 2022-03-02 18:22:24.997849 Moving Test:Shutter 2022-03-02 18:22:25.092984 Done Test:Shutter 2022-03-02 18:22:25.188102 Moving Test:Shutter 2022-03-02 18:22:25.283205 Done Test:Shutter 2022-03-02 18:22:25.378332 Moving Test:Shutter 2022-03-02 18:22:25.473436 Done Test:Shutter 2022-03-02 18:22:25.568547 Moving Test:Shutter 2022-03-02 18:22:25.663681 Done Test:Shutter 2022-03-02 18:22:25.758885 Moving Test:Shutter 2022-03-02 18:22:25.854026 Done Test:Shutter 2022-03-02 18:22:25.949228 Moving
The period is about 190 ms rather than the expected 200 ms, but not too far off.
However, if I set DELAY=0.01 then I see this:
Test:Shutter 2022-03-02 18:25:44.341923 Done Test:Shutter 2022-03-02 18:25:44.347055 Moving Test:Shutter 2022-03-02 18:25:44.352186 Done Test:Shutter 2022-03-02 18:25:44.357367 Moving Test:Shutter 2022-03-02 18:25:44.362523 Done Test:Shutter 2022-03-02 18:25:44.367682 Moving Test:Shutter 2022-03-02 18:25:44.372816 Done Test:Shutter 2022-03-02 18:25:44.377965 Moving Test:Shutter 2022-03-02 18:25:44.383104 Done Test:Shutter 2022-03-02 18:25:44.388263 Moving Test:Shutter 2022-03-02 18:25:44.393372 Done Test:Shutter 2022-03-02 18:25:44.398496 Moving Test:Shutter 2022-03-02 18:25:44.403633 Done
The period is 10 ms when it should be 20 ms. The DELAY appears to be 5 ms, not 10 ms.
If I set DELAY=.005 then the Shutter PV has no monitor events.
Something seems wrong here, since I know that epicsThreadSleep on Linux is capable of good accuracy down to 100 microseconds or so.
This is base 7.0.4 on Centos 7. Is this expected?
Mark
This email and any attachments are intended solely for the use of the named recipients. If you are not the intended recipient you must not use, disclose, copy or distribute this email or any of its attachments and should notify the sender immediately and delete this email from your system. UK Research and Innovation (UKRI) has taken every reasonable precaution to minimise risk of this email or any attachments containing viruses or malware but the recipient should carry out its own virus and malware checks before opening the attachments. UKRI does not accept any liability for any losses or damages which the recipient may sustain due to presence of any viruses. |