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")
}