motor_in_cs.template

Go to the documentation of this file.
00001 ############################################################
00002 #
00003 # Template to distiguish real motor record initiated moves 
00004 # from externally generated moves (eg. from a coordinate system motor).
00005 #
00006 ###############################################################
00007 
00008 #Calculate if a move was internal or not
00009 record(calcout, "$(P)$(M):MR_MIP_INTERNAL") {
00010   field(DESC, "MR internal")
00011   field(DTYP, "Soft Channel")
00012   field(CALC, "(A#0)&&(A#B)")
00013   field(INPA, "$(P)$(M).MIP CP")
00014   field(INPB, "32768")  
00015   field(OUT, "$(P)$(M):MR_MIP_INTERNAL_FLAG PP")
00016   field(DOPT, "Use CALC")
00017   field(OOPT, "Transition To Non-zero")
00018 }
00019 
00020 #Cache the internal move flag
00021 record(bo, "$(P)$(M):MR_MIP_INTERNAL_FLAG") {
00022   field(DTYP, "Soft Channel")
00023   field(ZNAM, "External")
00024   field(ONAM, "Internal")
00025   field(VAL, "0")
00026   field(OMSL, "supervisory")
00027 }
00028 
00029 #When DMOV = 1 and mip internal flag is set
00030 record(calcout, "$(P)$(M):MR_DMOV") {
00031   field(DESC, "MR Done")
00032   field(DTYP, "Soft Channel")
00033   field(CALC, "(A=1)&&(B=1)")
00034   field(INPA, "$(P)$(M).DMOV CP")
00035   field(INPB, "$(P)$(M):MR_MIP_INTERNAL_FLAG")  
00036   field(OUT, "$(P)$(M):MR_MOVE_WRITE.PROC PP")
00037   field(DOPT, "Use CALC")
00038   field(OOPT, "Transition To Non-zero")
00039 }
00040 
00041 #Write 1 to p47xx
00042 record(longout, "$(P)$(M):MR_MOVE_WRITE") {
00043   field(DESC, "Motor record move")
00044   field(DTYP, "stream")
00045   field(VAL, "1")  
00046   field(OUT, "@pmacCoord.proto moveWrite($(P)$(M)) $(SPORT)")
00047   field(FLNK, "$(P)$(M):MR_RESET_FLAGS")  
00048 }
00049 
00050 #Reset the internal move flag
00051 record(seq, $(P)$(M):MR_RESET_FLAGS) {
00052   field(DESC, "Reset MIP flags")
00053   field(DO1, "0")
00054   field(LNK1, "$(P)$(M):MR_MIP_INTERNAL_FLAG PP")
00055 }
00056 
00057 #calc mres to be written
00058 record(calcout, "$(P)$(M):MRES_CALC") {
00059   field(CALC, "B?-A*C:A*C")
00060   field(INPA, "$(P)$(M).MRES CP")
00061   field(INPB, "$(P)$(M).DIR CP")  
00062   field(INPC, "$(P)$(M):SCALE")    
00063   field(OUT, "$(P)$(M):MRES_SET PP")    
00064   field(OOPT, "When Non-zero")  
00065 }
00066 
00067 record(ao, "$(P)$(M):MRES_SET") {
00068   field(DTYP, "stream")
00069   field(OUT, "@pmacCoord.proto mresWrite($(P)$(M)) $(SPORT)")
00070   field(FLNK, "$(P)$(M):MR_MOVE_WRITE")  
00071 }
00072 
00073 #calc off to be written
00074 record(calcout, "$(P)$(M):OFF_SET") {
00075   field(DTYP, "stream")
00076   field(CALC, "A")
00077   field(INPA, "$(P)$(M).OFF CP")
00078   field(OUT, "@pmacCoord.proto offWrite($(P)$(M)) $(SPORT)")
00079   field(FLNK, "$(P)$(M):MR_MOVE_WRITE")  
00080 }
 All Classes Files Functions Variables Typedefs Defines