00001 #! Generated by VisualDCT v2.6 00002 #! DBDSTART 00003 #! DBD("../../dbd/pmacCoord_vdct.dbd") 00004 #! DBDEND 00005 00006 00007 # # \file 00008 # # This template allows setting of variables for a set of aperture slits, 00009 # # made up of 2 square or rectangular apertures, each probably driven in X and 00010 # # Y. A separate instance of this CS is needed for X and Y. It needs 00011 # # PROG10_CS_motion.pmc and Each instance requires an instantiation of 00012 # # CS_aperture_slits.pmc with the variables shown in the image below: 00013 # # \image html aperture_slits-help.png "Setup of aperture slits in X or Y" 00014 # # Build instructions for an example IOC are available 00015 # # \ref build_instructions_apertureSlits "here", with a pmc file containing 00016 # # the CS definition available in iocs/apertureSlits/defs.pmc 00017 # % macro, __doc__, Supporting template that allows setting of variables for a 00018 # set of aperture slits 00019 # % macro, P, Pv Prefix 00020 # % macro, PORT, Motor controller serial port 00021 # % macro, COORD, Co-ordinate system number 00022 # % macro, PREC, Precision to display variables 00023 # % macro, APPV, Pv of real AP motor, e.g. $(P):XA 00024 # % macro, AMPV, Pv of real AM motor, e.g. $(P):XB 00025 # % macro, name, Object name and gui association name 00026 # This associates an edm screen with the template 00027 # % gui, $(name=), edm, aperture_slits.edl, slits=$(P) 00028 # # This record will zero raw motors when processed 00029 record(fanout, "$(P):ZERO") { 00030 field(LNK1, "$(P):ZEROAP") 00031 field(LNK2, "$(P):ZEROAM") 00032 } 00033 00034 record(calcout, "$(P):ZEROAP") { 00035 field(CALC, "-B/2-A") 00036 field(INPA, "$(APPV).DRBV") 00037 field(INPB, "$(P):ASIZE:RBV") 00038 field(OUT, "$(APPV).OFF PP") 00039 } 00040 00041 record(calcout, "$(P):ZEROAM") { 00042 field(CALC, "B/2-A") 00043 field(INPA, "$(AMPV).DRBV") 00044 field(INPB, "$(P):ASIZE:RBV") 00045 field(OUT, "$(AMPV).OFF PP") 00046 } 00047 00048 expand("pmacVariableWriteSync.vdb", pmacVariableWriteSync) { 00049 macro(VAR, "&$(COORD)Q20") 00050 macro(Q, ":ASIZE") 00051 macro(EGU, "mm") 00052 macro(PREC, "$(PREC=3)") 00053 } 00054 00055 #! Further lines contain data used by VisualDCT 00056 #! View(0,0,1.0) 00057 #! Record("$(P):ZERO",20,76,0,0,"$(P):ZERO") 00058 #! Field("$(P):ZERO.LNK1",16777215,1,"$(P):ZERO.LNK1") 00059 #! Link("$(P):ZERO.LNK1","$(P):ZEROAP") 00060 #! Field("$(P):ZERO.LNK2",16777215,1,"$(P):ZERO.LNK2") 00061 #! Link("$(P):ZERO.LNK2","$(P):ZEROAM") 00062 #! Record("$(P):ZEROAP",280,108,0,0,"$(P):ZEROAP") 00063 #! Field("$(P):ZEROAP.INPA",16777215,1,"$(P):ZEROAP.INPA") 00064 #! Field("$(P):ZEROAP.INPB",16777215,1,"$(P):ZEROAP.INPB") 00065 #! Field("$(P):ZEROAP.OUT",16777215,1,"$(P):ZEROAP.OUT") 00066 #! Record("$(P):ZEROAM",280,308,0,0,"$(P):ZEROAM") 00067 #! Field("$(P):ZEROAM.INPA",16777215,1,"$(P):ZEROAM.INPA") 00068 #! Field("$(P):ZEROAM.INPB",16777215,1,"$(P):ZEROAM.INPB") 00069 #! Field("$(P):ZEROAM.OUT",16777215,1,"$(P):ZEROAM.OUT") 00070 00071 #! TemplateInstance("pmacVariableWriteSync",500,20,0,"") 00072 #! TemplateField("pmacVariableWriteSync","VAR",16777215,0,1) 00073 #! TemplateField("pmacVariableWriteSync","EGU",16777215,0,1) 00074 #! TemplateField("pmacVariableWriteSync","Q",16777215,0,1) 00075 #! TemplateField("pmacVariableWriteSync","PORT",16777215,0,1) 00076 #! TemplateField("pmacVariableWriteSync","P",16777215,0,1) 00077 #! TemplateField("pmacVariableWriteSync","PREC",16777215,0,1) 00078