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  <20092010  2011  2012  2013  2014  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  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: stop all motors
From: Kate Feng <[email protected]>
To: Mark Rivers <[email protected]>
Cc: [email protected]
Date: Fri, 23 Jan 2009 09:31:46 -0500
Hi Mark,

The problem happened more than one year ago that there were
really some confusions among multiple issues. I had to change
the "transform" record to "dfanout" one only because the application
would suffer if the "stopAllMotor" database is loaded.  Back then, I was
reserved in reporting this because my application went through other
debugging, too.  Once the system  ran smoothly, I had to switch to another
higher priority project that I completely forgot about the history when this
issue was probed.....

For the record, yesterday, I had a chance to access the system to verify the
"transform" record.  It turns out that the system runs fine even if the
transform record is used.  Thus, I think you can use the transform record
as you wish.

Cheers,
Kate

Mark Rivers wrote:
Actually I use Linux, Windows and Cygwin IOCs in addition to vxWorks. I have never had a problem with the transform record on any of these platforms, and others report no problems on RTEMS. I agree that the dfanout can be used instead of the transform in this particular application, but there are many applications where this is not true, the transform record provides unique capabilities. Thus, if you are convinced that you have found a bug in the transform record it would be most helpful if you could track it down. Of course it is possible that the bug is elsewhere in your application and the use of the transform record just happens to expose it. Martk
________________________________

From: Kate Feng [mailto:[email protected]]
Sent: Tue 1/13/2009 12:49 PM
To: Mark Rivers
Cc: [email protected]
Subject: Re: stop all motors



Mark Rivers wrote:
Can you figure out why the transform record is causing the crash?  It is widely used with no other problems that I know of.
You use vxWorks. We use RTEMS.
A generic record such as "dfanout" works very well for the purpose.
In fact, I do not think a custom record such as a "transform" record is
needed.

Kate
Mark


________________________________

From: [email protected] on behalf of Kate Feng
Sent: Tue 1/13/2009 11:00 AM
To: [email protected]
Subject: stop all motors



Hi,

If the "all_com_32.db" is loaded in the database, it triggered system
crash  while we were running one of our RTEMS applications.
I traced down that the bugs were caused by the "transform" record
(e.g. transformRecord.c) for the motor "allstop" function.  However,
a generic record "dfanout" can replace it to function correctly.
The attached all_com_32.db is what I used to solve the problem.
It seems to work so far.

Regards,
Kate

#Kate Feng 12/30/2008:Use "dfanout" instead of "transform" for motor
"allstop"
grecord(bo,"$(P)allstop") {
    field(DOL,"1")
    field(OUT,"$(P)allstop1.VAL  PP MS")
}
grecord(bo,"$(P)gateOpen") {
    field(ZNAM,"Closed")
    field(ONAM,"Open")
}
grecord(calc,"$(P)alldoneBlinker") {
    field(SCAN,".5 second")
    field(CALC,"B?0:!A")
    field(INPA,"$(P)alldoneBlinker.VAL  NPP NMS")
    field(INPB,"$(P)alldone.VAL  NPP NMS")
}
grecord(dfanout,"$(P)allstop5") {
    field(DESC,"allstop distribution")
    field(OMSL,"closed_loop")
    field(DOL,"1")
    field(OUTA,"$(P)m25.STOP  CA MS")
    field(OUTB,"$(P)m26.STOP  CA MS")
    field(OUTC,"$(P)m27.STOP  CA MS")
    field(OUTD,"$(P)m28.STOP  CA MS")
    field(OUTE,"$(P)m29.STOP  CA MS")
    field(OUTF,"$(P)m30.STOP  CA MS")
    field(OUTG,"$(P)m31.STOP  CA MS")
    field(OUTH,"$(P)m32.STOP  CA MS")
}
grecord(dfanout,"$(P)allstop4") {
    field(DESC,"allstop distribution")
    field(OMSL,"closed_loop")
    field(DOL,"1")
    field(OUTA,"$(P)m17.STOP  CA MS")
    field(OUTB,"$(P)m18.STOP  CA MS")
    field(OUTC,"$(P)m19.STOP  CA MS")
    field(OUTD,"$(P)m20.STOP  CA MS")
    field(OUTE,"$(P)m21.STOP  CA MS")
    field(OUTF,"$(P)m22.STOP  CA MS")
    field(OUTG,"$(P)m23.STOP  CA MS")
    field(OUTH,"$(P)m24.STOP  CA MS")
}
grecord(dfanout,"$(P)allstop3") {
    field(DESC,"allstop distribution")
    field(DOL,"1")
    field(OUTA,"$(P)m9.STOP  CA MS")
    field(OUTB,"$(P)m10.STOP  CA MS")
    field(OUTC,"$(P)m11.STOP  CA MS")
    field(OUTD,"$(P)m12.STOP  CA MS")
    field(OUTE,"$(P)m13.STOP  CA MS")
    field(OUTF,"$(P)m14.STOP  CA MS")
    field(OUTG,"$(P)m15.STOP  CA MS")
    field(OUTH,"$(P)m16.STOP  CA MS")
}
grecord(dfanout,"$(P)allstop2") {
    field(DESC,"allstop distribution")
    field(OMSL,"closed_loop")
    field(DOL,"1")
    field(OUTA,"$(P)m1.STOP  CA MS")
    field(OUTB,"$(P)m2.STOP  CA MS")
    field(OUTC,"$(P)m3.STOP  CA MS")
    field(OUTD,"$(P)m4.STOP  CA MS")
    field(OUTE,"$(P)m5.STOP  CA MS")
    field(OUTF,"$(P)m6.STOP  CA MS")
    field(OUTG,"$(P)m7.STOP  CA MS")
    field(OUTH,"$(P)m8.STOP  CA MS")
}
grecord(dfanout,"$(P)allstop1") {
    field(DESC,"allstop distribution")
    field(OMSL,"closed_loop")
    field(DOL,"1")
    field(OUTA,"$(P)AbortScans.PROC  PP MS")
    field(OUTB,"$(P)allstop2.VAL  PP MS")
    field(OUTC,"$(P)allstop3.VAL  PP MS")
    field(OUTD,"$(P)allstop4.VAL  PP MS")
    field(OUTE,"$(P)allstop5.VAL  PP MS")
}
grecord(swait,"$(P)alldone") {
    field(DESC,"All motors done moving")
    field(SCAN,"I/O Intr")
    field(PINI,"YES")
    field(INAN,"$(P)alldone_1.VAL")
    field(INBN,"$(P)alldone_2.VAL")
    field(INCN,"$(P)alldone_3.VAL")
    field(INDN,"$(P)alldone_4.VAL")
    field(ININ,"$(P)gateOpen.VAL")
    field(CALC,"A&&B&&C&&D&&!I")
    field(DOLD,"1")
}
grecord(swait,"$(P)alldone_2") {
    field(DESC,"8 motors done moving")
    field(SCAN,"I/O Intr")
    field(PINI,"YES")
    field(INAN,"$(P)m9.DMOV")
    field(INBN,"$(P)m10.DMOV")
    field(INCN,"$(P)m11.DMOV")
    field(INDN,"$(P)m12.DMOV")
    field(INEN,"$(P)m13.DMOV")
    field(INFN,"$(P)m14.DMOV")
    field(INGN,"$(P)m15.DMOV")
    field(INHN,"$(P)m16.DMOV")
    field(CALC,"(a&b&c&d&e&f&g&h)=1")
    field(OOPT,"Transition To Non-zero")
    field(DOLD,"1")
}
grecord(swait,"$(P)alldone_1") {
    field(DESC,"8 motors done moving")
    field(SCAN,"I/O Intr")
    field(PINI,"YES")
    field(INAN,"$(P)m1.DMOV")
    field(INBN,"$(P)m2.DMOV")
    field(INCN,"$(P)m3.DMOV")
    field(INDN,"$(P)m4.DMOV")
    field(INEN,"$(P)m5.DMOV")
    field(INFN,"$(P)m6.DMOV")
    field(INGN,"$(P)m7.DMOV")
    field(INHN,"$(P)m8.DMOV")
    field(CALC,"(a&b&c&d&e&f&g&h)=1")
    field(OOPT,"Transition To Non-zero")
    field(DOLD,"1")
}
grecord(swait,"$(P)alldone_3") {
    field(DESC,"8 motors done moving")
    field(SCAN,"I/O Intr")
    field(PINI,"YES")
    field(INAN,"$(P)m17.DMOV")
    field(INBN,"$(P)m18.DMOV")
    field(INCN,"$(P)m19.DMOV")
    field(INDN,"$(P)m20.DMOV")
    field(INEN,"$(P)m21.DMOV")
    field(INFN,"$(P)m22.DMOV")
    field(INGN,"$(P)m23.DMOV")
    field(INHN,"$(P)m24.DMOV")
    field(CALC,"(a&b&c&d&e&f&g&h)=1")
    field(OOPT,"Transition To Non-zero")
    field(DOLD,"1")
}
grecord(swait,"$(P)alldone_4") {
    field(DESC,"8 motors done moving")
    field(SCAN,"I/O Intr")
    field(PINI,"YES")
    field(INAN,"$(P)m25.DMOV")
    field(INBN,"$(P)m26.DMOV")
    field(INCN,"$(P)m27.DMOV")
    field(INDN,"$(P)m28.DMOV")
    field(INEN,"$(P)m29.DMOV")
    field(INFN,"$(P)m30.DMOV")
    field(INGN,"$(P)m31.DMOV")
    field(INHN,"$(P)m32.DMOV")
    field(CALC,"(a&b&c&d&e&f&g&h)=1")
    field(OOPT,"Transition To Non-zero")
    field(DOLD,"1")
}
grecord(swait,"$(P)alldoneBlink") {
    field(SCAN,"I/O Intr")
    field(INAN,"$(P)alldone")
    field(INBN,"$(P)alldoneBlinker")
    field(CALC,"a?0:b")
}









References:
stop all motors Kate Feng
RE: stop all motors Mark Rivers
Re: stop all motors Kate Feng
RE: stop all motors Mark Rivers

Navigate by Date:
Prev: Re: vdct problem with quoted strings Steve Kinder
Next: Re: RTEMS soft reboot Kate Feng
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: stop all motors Kate Feng
Next: Re: stop all motors Tim Mooney
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 31 Jan 2014 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·