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  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 
<== Date ==> <== Thread ==>

Subject: RE: fsmRecord Initial State
From: "Costello, Charles C." <CharlesCostello@creighton.edu>
To: "Steiner, Mathias" <steiner@nscl.msu.edu>, "tech-talk@aps.anl.gov" <tech-talk@aps.anl.gov>
Cc: "Fujita, Jiro" <jiro@creighton.edu>
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 [steiner@nscl.msu.edu]
Sent: Wednesday, July 24, 2013 9:59 AM
To: Costello, Charles C.; tech-talk@aps.anl.gov
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 
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 
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 ·