EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: fsmRecord Initial State
From: "Costello, Charles C." <[email protected]>
To: "Steiner, Mathias" <[email protected]>, "[email protected]" <[email protected]>
Cc: "Fujita, Jiro" <[email protected]>
Date: Thu, 25 Jul 2013 16:01:42 +0000
Hey Mathias,

Thanks for the feedback. It actually turned out to be a problem with the INP fields, which I was able to figure out based on your example.

Charlie

________________________________________
From: Steiner, Mathias [[email protected]]
Sent: Wednesday, July 24, 2013 9:59 AM
To: Costello, Charles C.; [email protected]
Cc: Fujita, Jiro
Subject: RE: fsmRecord Initial State

It's been a while, but I've worked with fsmRecord and have had no such problem.
IOW, the transitions worked as advertised, right out the box.

It's not clear to me whether
   field(TST0, "1")
is a valid transition or not.

It may be worth performing a "real" test for your TST0 condition, such as "pvX > 0."
Start your IOC with pvX = 0, then set it to 1.0 and see if your record transitions then.

Before trying any "real" work, though, make sure to check .STAT to see if you don't have a trivial problem with your record.

Cheers -Mathias


----
the stuff below works for me...


#----------------------------
# Initial FSM State
# checks for auto/manual
record(fsm, "$(dipole):fsm:init") {
  field(INP, "@$(dipole):fsm;Init")
  field(SCAN, "2 second") # no hurry here
  field(VAL, "YES")
  field(TST0, "$(dipole):auto.VAL PP")
  field(TRN0, "$(dipole):fsm:matching PP")
  #
  field(TST1, "$(dipole):auto.VAL PP")
  field(INV1, "1") #
  field(TRN1, "$(dipole):fsm:manual PP") # either auto is true or not...
  # nothing else to do
}

#----------------------------
# manual state
#
record(fsm, "$(dipole):fsm:manual") {
  field(INP, "@$(dipole):fsm;Manual")
  field(SCAN, "5 second")
  field(TST0, "$(dipole):auto")
  field(TRN0, "$(dipole):fsm:matching PP") # transition to 'matching'
  # nothing else to do
}



References:
RE: fsmRecord Initial State Steiner, Mathias

Navigate by Date:
Prev: Re: Odd problems with RHEL6 diskless machines Ralph Lange
Next: Re: Simple wireless light controlled through EPICS? Richard Farnsworth
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: fsmRecord Initial State Steiner, Mathias
Next: Odd problems with RHEL6 diskless machines tom.cobb
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 20 Apr 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·