Hi Keith
the error messages you get should only be issued if you have at least
one pvGet for these variable(s) in your code with an explicit ASYNC
flag. This doesn't seem to be the case though, which indicates something
strange going on (like a bug in the sequencer or the compiler). Can you
send me the generated SNL code (including header files)? Also, which
release of version 2.2 is this?
Cheers
Ben
Am 23.08.2017 um 18:49 schrieb keith.thorne:
> Dear EPICS team
>
> At LIGO, we use the EPICS SNC Sequencer to provide communication
> between our real-time code and the user variables, expressed in an EPICS IOC.
> We use auto-generated SNC files to build and compile our EPICS executable.
>
> We had been using SNC version 2.1 and all was working (even with latest 2.1
> revision). However, if we use SNC version 2.2, we are not able to get data from
> EPICS PVs on IOCs on other computers.
>
> Our existing SNC code (elided for relevancy - see attached x2hpiboot.i ) is
>
> ss monitorFilt{
> state init
> {
> when() {
> ...
> pvGet(evar_X2_CDS_EXTERNAL_TEST);
> ...
> } state daqInit
> }
> state daqInit
> {
> when()
> {
> ...
> pvGet(evar_X2_CDS_EXTERNAL_TEST);
> evar_X2_CDS_EXTERNAL_TEST_ERR = pvConnected(evar_X2_CDS_EXTERNAL_TEST);
> ...
> } state daqProcess
> }
>
> This gets converted to (again elided - see attached snctest_2-2.c)
> # line 4369 "x2hpiboot.i"
> seq_pvGetTmo(seqg_env,
> 552/*evar_X2_CDS_EXTERNAL_TEST*/, DEFAULT, DEFAULT_TIMEOUT);
> ...
> # line 6196 "x2hpiboot.i"
> seq_pvGetTmo(seqg_env,
> 552/*evar_X2_CDS_EXTERNAL_TEST*/, DEFAULT, DEFAULT_TIMEOUT);
>
> # line 6198 "x2hpiboot.i"
> evar_X2_CDS_EXTERNAL_TEST_ERR =
> seq_pvConnected(seqg_env, 552/*evar_X2_CDS_EXTERNAL_TEST*/);
>
> However, when we run it, we get X2_CDS_EXTERNAL_TEST_ERR become 1, but we never
> get any updates to the variable, but continuous log messages like
>
> sevr=major pvGet(ss monitorFilt, var evar_X2_CDS_EXTERNAL_TEST, pv
> X2:CDS-EXTERNAL_TEST): user error (there is already a pvGet pending for this
> channel/state set combination)
> sevr=major pvGet(ss monitorFilt, var evar_X2_CDS_EXTERNAL_TEST, pv
> X2:CDS-EXTERNAL_TEST): user error (there is already a pvGet pending for this
> channel/state set combination)
> sevr=major pvGet(ss monitorFilt, var evar_X2_CDS_EXTERNAL_TEST, pv
> X2:CDS-EXTERNAL_TEST): user error (there is already a pvGet pending for this
> channel/state set combination)
>
> I had thought the change to seq_pvGetTmo() merely implemented the existing
> behavior, but perhaps I am wrong?
>
> How should we code thing that monitor external IOC variables for changes?
>
> Sincerely
> Keith Thorne
>
>
>
> ------
> Keith Thorne <[email protected]>
> CDS Software Engineer
> LIGO Livingston Laboratory
> Livingston, LA 70754
> Phone: (225)686-3168 Fax: (225)686-7189
>
Attachment:
signature.asc
Description: OpenPGP digital signature
- References:
- SNC Sequencer 2.2 not working when reading remote IOC variables? keith.thorne
- Navigate by Date:
- Prev:
Re: Problems building seq 2.2.4 on Linux Ben Franksen
- Next:
RE: Problems building seq 2.2.4 on Linux Mark Rivers
- 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
- Navigate by Thread:
- Prev:
SNC Sequencer 2.2 not working when reading remote IOC variables? keith.thorne
- Next:
SNC Sequencer 2.2 not working when reading remote IOC variables? (no attachments) keith.thorne
- 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
|