#! Generated by VisualDCT v2.6
#! DBDSTART
#! DBD("../../../../xxx/dbd/iocxxxVX.dbd")
#! DBDEND
record(transform, "$(P)$(Q):setMonitor") {
field(INPA, "$(P)$(Q):x.SET CP")
field(INPB, "$(P)$(Q):y.SET CP")
field(INPC, "$(P)$(Q):z.SET CP")
field(INPD, "$(P)$(Q):ax.SET CP")
field(INPE, "$(P)$(Q):ay.SET CP")
field(INPF, "$(P)$(Q):az.SET CP")
field(CLCG, "a||b||c||d||e||f")
field(OUTG, "$(P)$(T).SET CA")
}
# We already have a mechanism for stopping the table when any soft motor's
# STOP field is 1. Reimplement existing table:stop PV to drive that mechanism
record(bo, "$(P)$(Q):stop") {
field(DTYP, "Soft Channel")
field(DOL, "1")
field(OUT, "$(P)$(Q):x.STOP PP MS")
}
record(bo, "$(P)$(Q):update") {
field(SCAN, ".2 second")
field(DTYP, "Soft Channel")
field(SDIS, "$(P)$(Q):done.VAL")
field(OMSL, "closed_loop")
field(DOL, "1")
field(OUT, "$(P)$(T).READ PP MS")
field(ONAM, "Sync")
}
record(calc, "$(P)$(Q):geomIsGEOCARS") {
field(CALC, "a=1")
field(INPA, "$(P)$(T).GEOM CP MS")
}
record(calc, "$(P)$(Q):geomIsNEWPORT") {
field(CALC, "a=2")
field(INPA, "$(P)$(T).GEOM CP MS")
}
record(calc, "$(P)$(Q):geomIsSRI") {
field(CALC, "a=0")
field(INPA, "$(P)$(T).GEOM CP MS")
}
record(table, "$(P)$(T)") {
field(DESC, "Optical Table")
field(LX, "510")
field(LZ, "1080")
field(SX, "255")
field(SY, "100")
field(SZ, "540")
field(M0XL, "$(P)$(Q):setValuesWritten.PROC PP")
field(M0YL, "$(P)$(Q):setValuesWritten.PROC PP")
field(M1YL, "$(P)$(Q):setValuesWritten.PROC PP")
field(M2XL, "$(P)$(Q):setValuesWritten.PROC PP")
field(M2YL, "$(P)$(Q):setValuesWritten.PROC PP")
field(M2ZL, "$(P)$(Q):setValuesWritten.PROC PP")
field(R0XI, "$(P)$(M0X).VAL NPP NMS")
field(R0YI, "$(P)$(M0Y).VAL NPP NMS")
field(R1YI, "$(P)$(M1Y).VAL NPP NMS")
field(R2XI, "$(P)$(M2X).VAL NPP NMS")
field(R2YI, "$(P)$(M2Y).VAL NPP NMS")
field(R2ZI, "$(P)$(M2Z).VAL NPP NMS")
field(E0XI, "$(P)$(M0X).RBV NPP NMS")
field(E0YI, "$(P)$(M0Y).RBV NPP NMS")
field(E1YI, "$(P)$(M1Y).RBV NPP NMS")
field(E2XI, "$(P)$(M2X).RBV NPP NMS")
field(E2YI, "$(P)$(M2Y).RBV NPP NMS")
field(E2ZI, "$(P)$(M2Z).RBV NPP NMS")
field(V0XL, "$(P)$(M0X).VELO NPP NMS")
field(V0YL, "$(P)$(M0Y).VELO NPP NMS")
field(V1YL, "$(P)$(M1Y).VELO NPP NMS")
field(V2XL, "$(P)$(M2X).VELO NPP NMS")
field(V2YL, "$(P)$(M2Y).VELO NPP NMS")
field(V2ZL, "$(P)$(M2Z).VELO NPP NMS")
field(V0XI, "$(P)$(M0X).VELO NPP NMS")
field(V0YI, "$(P)$(M0Y).VELO NPP NMS")
field(V1YI, "$(P)$(M1Y).VELO NPP NMS")
field(V2XI, "$(P)$(M2X).VELO NPP NMS")
field(V2YI, "$(P)$(M2Y).VELO NPP NMS")
field(V2ZI, "$(P)$(M2Z).VELO NPP NMS")
field(H0XL, "$(P)$(M0X).HLM NPP NMS")
field(H0YL, "$(P)$(M0Y).HLM NPP NMS")
field(H1YL, "$(P)$(M1Y).HLM NPP NMS")
field(H2XL, "$(P)$(M2X).HLM NPP NMS")
field(H2YL, "$(P)$(M2Y).HLM NPP NMS")
field(H2ZL, "$(P)$(M2Z).HLM NPP NMS")
field(L0XL, "$(P)$(M0X).LLM NPP NMS")
field(L0YL, "$(P)$(M0Y).LLM NPP NMS")
field(L1YL, "$(P)$(M1Y).LLM NPP NMS")
field(L2XL, "$(P)$(M2X).LLM NPP NMS")
field(L2YL, "$(P)$(M2Y).LLM NPP NMS")
field(L2ZL, "$(P)$(M2Z).LLM NPP NMS")
field(LEGU, "mm")
field(AUNIT, "$(ANGLE_UNITS=degrees)")
field(PREC, "4")
field(GEOM, "$(GEOM)")
field(FLNK, "$(P)$(Q):ifValuesWritten")
}
# We're going to monitor the STOP fields of the soft motors, so we know when
# the user told a motor to stop. We're also going to write to all of those
# STOP fields when we detect that the user wants the table to stop. We need
# to distinguish our writes from the user's writes.
record(bo, "$(P)$(Q):weSaidStop") {
#field(TPRO, "1")
field(ZNAM, "No")
field(ONAM, "Yes")
}
record(transform, "$(P)$(Q):monitorStop") {
#field(TPRO, "1")
field(SDIS, "$(P)$(Q):weSaidStop")
field(DISV, "1")
# listen to our soft motors' .STOP fields
field(INPA, "$(P)$(Q):x.STOP CP MS")
field(INPB, "$(P)$(Q):y.STOP CP MS")
field(INPC, "$(P)$(Q):z.STOP CP MS")
field(INPD, "$(P)$(Q):ax.STOP CP MS")
field(INPE, "$(P)$(Q):ay.STOP CP MS")
field(INPF, "$(P)$(Q):az.STOP CP MS")
# I==any soft motor was told to stop
field(CLCI, "a||b||c||d||e||f")
field(OUTI, "$(P)$(Q):weSaidStop PP MS")
# don't write to the .STOP field that triggered us to process
field(CMTJ, "bitmask for doStop")
field(CLCJ, "!a+!b*2+!c*4+!d*8+!e*16+!f*32+64+128")
field(OUTK, "$(P)$(Q):doStop.PROC PP")
}
record(seq, "$(P)$(Q):doStop") {
#field(TPRO, "1")
field(SDIS, "$(P)$(Q):weSaidStop")
field(DISV, "0")
field(SELL, "$(P)$(Q):monitorStop.J")
field(SELM, "Mask")
field(DOL1, "1")
field(LNK1, "$(P)$(Q):x.STOP PP")
field(DOL2, "1")
field(LNK2, "$(P)$(Q):y.STOP PP")
field(DOL3, "1")
field(LNK3, "$(P)$(Q):z.STOP PP")
field(DOL4, "1")
field(LNK4, "$(P)$(Q):ax.STOP PP")
field(DOL5, "1")
field(LNK5, "$(P)$(Q):ay.STOP PP")
field(DOL6, "1")
field(LNK6, "$(P)$(Q):az.STOP PP")
field(DOL7, "1")
field(LNK7, "$(P)$(Q):stop1.A PP")
# We need to wait for all the postings resulting from puts to stop_*
# fields to be received by monitorStop's CP links before enabling
# that record to respond to new postings of those fields. Writing
# with a CA link should ensure that, but delaying by 0.1 s provides
# additional protection.
field(DOL8, "0")
field(DLY8, ".1")
field(LNK8, "$(P)$(Q):weSaidStop CA")
}
record(transform, "$(P)$(Q):stop1") {
field(DESC, "Table-stop distribution")
field(CLCB, "a")
field(CLCC, "a")
field(CLCD, "a")
field(CLCE, "a")
field(CLCF, "a")
field(OUTA, "$(P)$(M0X).STOP PP MS")
field(OUTB, "$(P)$(M0Y).STOP PP MS")
field(OUTC, "$(P)$(M1Y).STOP PP MS")
field(OUTD, "$(P)$(M2X).STOP PP MS")
field(OUTE, "$(P)$(M2Y).STOP PP MS")
field(OUTF, "$(P)$(M2Z).STOP PP MS")
}
record(calc, "$(P)$(Q):geomIsPNC") {
field(CALC, "a=2")
field(INPA, "$(P)$(T).GEOM CP MS")
}
record(sseq, "$(P)$(Q)fp") {
field(LNK2, "$(P)$(T).SX")
field(LNK3, "$(P)$(T).SY")
field(LNK4, "$(P)$(T).SZ PP")
field(STR1, "_default_")
field(DO2, "255")
field(DO3, "100")
field(SELM, "All")
field(DO4, "540")
}
record(sseq, "$(P)$(Q)fp0") {
field(LNK1, "$(P)$(Q)fp.STR1")
field(LNK2, "$(P)$(Q)fp.DO2")
field(STR1, "Default")
field(DO2, "255")
field(DO3, "100")
field(LNK3, "$(P)$(Q)fp.DO3")
field(DO4, "540")
field(SELM, "All")
field(LNK4, "$(P)$(Q)fp.DO4 PP")
field(PREC, "3")
}
record(sseq, "$(P)$(Q)fp1") {
field(LNK1, "$(P)$(Q)fp.STR1")
field(LNK2, "$(P)$(Q)fp.DO2")
field(STR1, "User 1")
field(DO2, "255")
field(DO3, "100")
field(LNK3, "$(P)$(Q)fp.DO3")
field(DO4, "540")
field(SELM, "All")
field(LNK4, "$(P)$(Q)fp.DO4 PP")
field(PREC, "3")
}
record(sseq, "$(P)$(Q)fpSeq") {
field(SELM, "Specified")
field(DOL1, "$(P)$(Q)fpSelect.ZRST")
field(LNK1, "$(P)$(Q)fp0.STR1 PP")
field(DOL2, "$(P)$(Q)fpSelect.ONST")
field(LNK2, "$(P)$(Q)fp1.STR1 PP")
field(DOL3, "$(P)$(Q)fpSelect.TWST")
field(LNK3, "$(P)$(Q)fp2.STR1 PP")
field(DOL4, "$(P)$(Q)fpSelect.THST")
field(LNK4, "$(P)$(Q)fp3.STR1 PP")
field(DOL5, "$(P)$(Q)fpSelect.FRST")
field(LNK5, "$(P)$(Q)fp4.STR1 PP")
field(DOL6, "$(P)$(Q)fpSelect.FVST")
field(LNK6, "$(P)$(Q)fp5.STR1 PP")
field(DOL7, "$(P)$(Q)fpSelect.SXST")
field(LNK7, "$(P)$(Q)fp6.STR1 PP")
field(DOL8, "$(P)$(Q)fpSelect.SVST")
field(LNK8, "$(P)$(Q)fp7.STR1 PP")
field(DOL9, "$(P)$(Q)fpSelect.EIST")
field(LNK9, "$(P)$(Q)fp8.STR1 PP")
field(DOLA, "$(P)$(Q)fpSelect.NIST")
field(LNKA, "$(P)$(Q)fp9.STR1 PP")
}
record(sseq, "$(P)$(Q)fp2") {
field(LNK1, "$(P)$(Q)fp.STR1")
field(LNK2, "$(P)$(Q)fp.DO2")
field(STR1, "User 2")
field(DO2, "255")
field(DO3, "100")
field(LNK3, "$(P)$(Q)fp.DO3")
field(DO4, "540")
field(SELM, "All")
field(LNK4, "$(P)$(Q)fp.DO4 PP")
field(PREC, "3")
}
record(sseq, "$(P)$(Q)fp3") {
field(LNK1, "$(P)$(Q)fp.STR1")
field(LNK2, "$(P)$(Q)fp.DO2")
field(STR1, "User 3")
field(DO2, "255")
field(DO3, "100")
field(LNK3, "$(P)$(Q)fp.DO3")
field(DO4, "540")
field(SELM, "All")
field(LNK4, "$(P)$(Q)fp.DO4 PP")
field(PREC, "3")
}
record(sseq, "$(P)$(Q)fp4") {
field(LNK1, "$(P)$(Q)fp.STR1")
field(LNK2, "$(P)$(Q)fp.DO2")
field(STR1, "User 4")
field(DO2, "255")
field(DO3, "100")
field(LNK3, "$(P)$(Q)fp.DO3")
field(DO4, "540")
field(SELM, "All")
field(LNK4, "$(P)$(Q)fp.DO4 PP")
field(PREC, "3")
}
record(sseq, "$(P)$(Q)fp5") {
field(LNK1, "$(P)$(Q)fp.STR1")
field(LNK2, "$(P)$(Q)fp.DO2")
field(STR1, "User 5")
field(DO2, "255")
field(DO3, "100")
field(LNK3, "$(P)$(Q)fp.DO3")
field(DO4, "540")
field(SELM, "All")
field(LNK4, "$(P)$(Q)fp.DO4 PP")
field(PREC, "3")
}
record(sseq, "$(P)$(Q)fp6") {
field(LNK1, "$(P)$(Q)fp.STR1")
field(LNK2, "$(P)$(Q)fp.DO2")
field(STR1, "User 6")
field(DO2, "255")
field(DO3, "100")
field(LNK3, "$(P)$(Q)fp.DO3")
field(DO4, "540")
field(SELM, "All")
field(LNK4, "$(P)$(Q)fp.DO4 PP")
field(PREC, "3")
}
record(sseq, "$(P)$(Q)fp7") {
field(LNK1, "$(P)$(Q)fp.STR1")
field(LNK2, "$(P)$(Q)fp.DO2")
field(STR1, "User 7")
field(DO2, "255")
field(DO3, "100")
field(LNK3, "$(P)$(Q)fp.DO3")
field(DO4, "540")
field(SELM, "All")
field(LNK4, "$(P)$(Q)fp.DO4 PP")
field(PREC, "3")
}
record(sseq, "$(P)$(Q)fp8") {
field(LNK1, "$(P)$(Q)fp.STR1")
field(LNK2, "$(P)$(Q)fp.DO2")
field(STR1, "User 8")
field(DO2, "255")
field(DO3, "100")
field(LNK3, "$(P)$(Q)fp.DO3")
field(DO4, "540")
field(SELM, "All")
field(LNK4, "$(P)$(Q)fp.DO4 PP")
field(PREC, "3")
}
record(sseq, "$(P)$(Q)fp9") {
field(LNK1, "$(P)$(Q)fp.STR1")
field(LNK2, "$(P)$(Q)fp.DO2")
field(STR1, "User 9")
field(DO2, "255")
field(DO3, "100")
field(LNK3, "$(P)$(Q)fp.DO3")
field(DO4, "540")
field(SELM, "All")
field(LNK4, "$(P)$(Q)fp.DO4 PP")
field(PREC, "3")
}
record(mbbo, "$(P)$(Q)fpSelect") {
field(DTYP, "Raw Soft Channel")
field(OUT, "$(P)$(Q)fpSeq.SELN PP")
field(ZRVL, "1")
field(ONVL, "2")
field(TWVL, "3")
field(THVL, "4")
field(FRVL, "5")
field(FVVL, "6")
field(SXVL, "7")
field(SVVL, "8")
field(EIVL, "9")
field(NIVL, "10")
field(ZRST, "Default")
field(ONST, "User 1")
field(TWST, "User 2")
field(THST, "User 3")
field(FRST, "User 4")
field(FVST, "User 5")
field(SXST, "User 6")
field(SVST, "User 7")
field(EIST, "User 8")
field(NIST, "User 9")
}
record(stringout, "$(P)$(Q)fp0Name") {
field(OUT, "$(P)$(Q)fpSelect.ZRST")
field(VAL, "Default")
}
record(stringout, "$(P)$(Q)fp1Name") {
field(OUT, "$(P)$(Q)fpSelect.ONST")
field(VAL, "User 1")
}
record(stringout, "$(P)$(Q)fp2Name") {
field(OUT, "$(P)$(Q)fpSelect.TWST")
field(VAL, "User 2")
}
record(stringout, "$(P)$(Q)fp3Name") {
field(OUT, "$(P)$(Q)fpSelect.THST")
field(VAL, "User 3")
}
record(stringout, "$(P)$(Q)fp4Name") {
field(OUT, "$(P)$(Q)fpSelect.FRST")
field(VAL, "User 4")
}
record(stringout, "$(P)$(Q)fp5Name") {
field(OUT, "$(P)$(Q)fpSelect.FVST")
field(VAL, "User 5")
}
record(stringout, "$(P)$(Q)fp6Name") {
field(OUT, "$(P)$(Q)fpSelect.SXST")
field(VAL, "User 6")
}
record(stringout, "$(P)$(Q)fp7Name") {
field(OUT, "$(P)$(Q)fpSelect.SVST")
field(VAL, "User 7")
}
record(stringout, "$(P)$(Q)fp8Name") {
field(OUT, "$(P)$(Q)fpSelect.EIST")
field(VAL, "User 8")
}
record(stringout, "$(P)$(Q)fp9Name") {
field(OUT, "$(P)$(Q)fpSelect.NIST")
field(VAL, "User 9")
}
record(fanout, "$(P)$(Q)fpInit") {
field(FLNK, "$(P)$(Q)fpInit1.PROC PP")
field(LNK1, "$(P)$(Q)fp0Name.PROC PP")
field(LNK2, "$(P)$(Q)fp1Name.PROC PP")
field(LNK3, "$(P)$(Q)fp2Name.PROC PP")
field(LNK4, "$(P)$(Q)fp3Name.PROC PP")
field(LNK5, "$(P)$(Q)fp4Name.PROC PP")
field(LNK6, "$(P)$(Q)fp5Name.PROC PP")
field(PINI, "YES")
}
record(fanout, "$(P)$(Q)fpInit1") {
field(LNK1, "$(P)$(Q)fp6Name.PROC PP")
field(LNK2, "$(P)$(Q)fp7Name.PROC PP")
field(LNK3, "$(P)$(Q)fp8Name.PROC PP")
field(LNK4, "$(P)$(Q)fp9Name.PROC PP")
field(LNK5, "$(P)$(Q)fpSelect.PROC PP")
}
record(sseq, "$(P)$(Q):writeMotors") {
field(DO1, "1")
field(LNK1, "$(P)$(Q):startMove.DO1 PP")
field(DOL2, "$(P)$(T).M0X")
field(LNK2, "$(P)$(M0X).VAL PP")
field(DOL3, "$(P)$(T).M0Y")
field(LNK3, "$(P)$(M0Y).VAL PP")
field(DOL4, "$(P)$(T).M1Y")
field(LNK4, "$(P)$(M1Y).VAL PP")
field(DOL5, "$(P)$(T).M2X")
field(LNK5, "$(P)$(M2X).VAL PP")
field(DOL6, "$(P)$(T).M2Y")
field(LNK6, "$(P)$(M2Y).VAL PP")
field(DOL7, "$(P)$(T).M2Z")
field(LNK7, "$(P)$(M2Z).VAL PP")
field(DO8, "0")
field(LNK8, "$(P)$(Q):valuesWritten PP")
}
record(bo, "$(P)$(Q):isSoftMove") {
field(OUT, "$(P)$(Q):isSoftFan PP")
field(ZNAM, "No")
field(ONAM, "Yes")
}
record(dfanout, "$(P)$(Q):isSoftFan") {
field(OUTA, "$(P)$(Q):x.LOCK")
field(OUTB, "$(P)$(Q):y.LOCK")
field(OUTC, "$(P)$(Q):z.LOCK")
field(OUTD, "$(P)$(Q):ax.LOCK")
field(OUTE, "$(P)$(Q):ay.LOCK")
field(OUTF, "$(P)$(Q):az.LOCK")
}
record(motor, "$(P)$(Q):x") {
# alias is for spec, to make it easier to manage configuration of soft motors
alias("$(P)$(Q):m1")
field(DTYP, "Soft Channel")
# ignore the SET field, we're going to implement it in the database, rather
# than in individual motor records
field(IGSET, "1")
field(OUT, "$(P)$(T).X PP")
field(RDBL, "$(P)$(T).EX")
field(MRES, ".00001")
field(RRES, "1")
field(URIP, "Yes")
field(PREC, "$(PREC=3)")
field(RTRY, "0")
field(DINP, "$(P)$(Q):done.VAL")
}
record(motor, "$(P)$(Q):y") {
alias("$(P)$(Q):m2")
field(DTYP, "Soft Channel")
field(IGSET, "1")
field(OUT, "$(P)$(T).Y PP")
field(RDBL, "$(P)$(T).EY")
field(MRES, ".00001")
field(RRES, "1")
field(URIP, "Yes")
field(PREC, "$(PREC=3)")
field(RDBD, ".00001")
field(RTRY, "0")
field(DINP, "$(P)$(Q):done.VAL")
}
record(motor, "$(P)$(Q):z") {
alias("$(P)$(Q):m3")
field(DTYP, "Soft Channel")
field(IGSET, "1")
field(OUT, "$(P)$(T).Z PP")
field(RDBL, "$(P)$(T).EZ")
field(MRES, ".00001")
field(RRES, "1")
field(URIP, "Yes")
field(PREC, "$(PREC=3)")
field(RDBD, ".00001")
field(RTRY, "0")
field(DINP, "$(P)$(Q):done.VAL")
}
record(motor, "$(P)$(Q):ax") {
alias("$(P)$(Q):m4")
field(DTYP, "Soft Channel")
field(IGSET, "1")
field(OUT, "$(P)$(T).AX PP")
field(RDBL, "$(P)$(T).EAX")
field(MRES, ".00001")
field(RRES, "1")
field(URIP, "Yes")
field(PREC, "$(PREC=3)")
field(RDBD, ".00001")
field(RTRY, "0")
field(DINP, "$(P)$(Q):done.VAL")
}
record(motor, "$(P)$(Q):ay") {
alias("$(P)$(Q):m5")
field(DTYP, "Soft Channel")
field(IGSET, "1")
field(OUT, "$(P)$(T).AY PP")
field(RDBL, "$(P)$(T).EAY")
field(MRES, ".00001")
field(RRES, "1")
field(URIP, "Yes")
field(PREC, "$(PREC=3)")
field(RDBD, ".00001")
field(RTRY, "0")
field(DINP, "$(P)$(Q):done.VAL")
}
record(motor, "$(P)$(Q):az") {
alias("$(P)$(Q):m6")
field(DTYP, "Soft Channel")
field(IGSET, "1")
field(OUT, "$(P)$(T).AZ PP")
field(RDBL, "$(P)$(T).EAZ")
field(MRES, ".00001")
field(RRES, "1")
field(URIP, "Yes")
field(PREC, "$(PREC=3)")
field(RDBD, ".00001")
field(RTRY, "0")
field(DINP, "$(P)$(Q):done.VAL")
}
record(ao, "$(P)$(Q):axHlimCopy") {
field(OUT, "$(P)$(Q):ax.HLM CA")
field(DOL, "$(P)$(T).HLAX CP")
field(OMSL, "closed_loop")
}
record(ao, "$(P)$(Q):axLlimCopy") {
field(OUT, "$(P)$(Q):ax.LLM CA")
field(DOL, "$(P)$(T).LLAX CP")
field(OMSL, "closed_loop")
}
record(ao, "$(P)$(Q):xHlimCopy") {
field(OUT, "$(P)$(Q):x.HLM CA")
field(DOL, "$(P)$(T).HLX CP")
field(OMSL, "closed_loop")
}
record(ao, "$(P)$(Q):xLlimCopy") {
field(OUT, "$(P)$(Q):x.LLM CA")
field(DOL, "$(P)$(T).LLX CP")
field(OMSL, "closed_loop")
}
record(ao, "$(P)$(Q):yHlimCopy") {
field(OUT, "$(P)$(Q):y.HLM CA")
field(DOL, "$(P)$(T).HLY CP")
field(OMSL, "closed_loop")
}
record(ao, "$(P)$(Q):yLlimCopy") {
field(OUT, "$(P)$(Q):y.LLM CA")
field(DOL, "$(P)$(T).LLY CP")
field(OMSL, "closed_loop")
}
record(ao, "$(P)$(Q):zHlimCopy") {
field(OUT, "$(P)$(Q):z.HLM CA")
field(DOL, "$(P)$(T).HLZ CP")
field(OMSL, "closed_loop")
}
record(ao, "$(P)$(Q):zLlimCopy") {
field(OUT, "$(P)$(Q):z.LLM CA")
field(DOL, "$(P)$(T).LLZ CP")
field(OMSL, "closed_loop")
}
record(ao, "$(P)$(Q):ayHlimCopy") {
field(OUT, "$(P)$(Q):ay.HLM CA")
field(DOL, "$(P)$(T).HLAY CP")
field(OMSL, "closed_loop")
}
record(ao, "$(P)$(Q):ayLlimCopy") {
field(OUT, "$(P)$(Q):ay.LLM CA")
field(DOL, "$(P)$(T).LLAY CP")
field(OMSL, "closed_loop")
}
record(ao, "$(P)$(Q):azHlimCopy") {
field(OUT, "$(P)$(Q):az.HLM CA")
field(DOL, "$(P)$(T).HLAZ CP")
field(OMSL, "closed_loop")
}
record(ao, "$(P)$(Q):azLlimCopy") {
field(OUT, "$(P)$(Q):az.LLM CA")
field(DOL, "$(P)$(T).LLAZ CP")
field(OMSL, "closed_loop")
}
record(sseq, "$(P)$(Q):startMove") {
field(LNK1, "$(P)$(Q):isSoftMove PP")
field(DO2, "0")
field(LNK3, "$(P)$(Q):gate PP")
field(DOL3, "1")
}
record(sseq, "$(P)$(Q):endMove") {
field(DO3, "1")
field(LNK3, "$(P)$(T).READ PP")
field(DO4, "0")
field(LNK4, "$(P)$(Q):isSoftMove PP")
}
record(calcout, "$(P)$(Q):dmov") {
field(DESC, "Get DMOV and check links")
field(INPA, "$(P)$(M0X).DMOV CP MS")
field(INPB, "$(P)$(M0Y).DMOV CP MS")
field(INPC, "$(P)$(M1Y).DMOV CP MS")
field(INPD, "$(P)$(M2X).DMOV CP MS")
field(INPE, "$(P)$(M2Y).DMOV CP MS")
field(INPF, "$(P)$(M2Z).DMOV CP MS")
}
record(calcout, "$(P)$(Q):done2") {
field(CALC, "A&!B&&(I||!J)&(K||!L)")
field(INPA, "$(P)$(Q):done1.VAL CP MS")
field(INPI, "$(P)$(Q):dmov.E CP MS")
field(INPJ, "$(P)$(Q):dmov.INEV CP MS")
field(INPK, "$(P)$(Q):dmov.F CP MS")
field(INPL, "$(P)$(Q):dmov.INFV CP MS")
field(OOPT, "Transition To Non-zero")
field(INPB, "$(P)$(Q):gate CP")
}
record(calcout, "$(P)$(Q):done1") {
field(CALC, "(A||!B)&(C||!D)&(E||!F)&(G||!H)")
field(INPA, "$(P)$(Q):dmov.A CP MS")
field(INPB, "$(P)$(Q):dmov.INAV CP MS")
field(INPC, "$(P)$(Q):dmov.B CP MS")
field(INPD, "$(P)$(Q):dmov.INBV CP MS")
field(INPE, "$(P)$(Q):dmov.C CP MS")
field(INPF, "$(P)$(Q):dmov.INCV CP MS")
field(INPG, "$(P)$(Q):dmov.D CP MS")
field(INPH, "$(P)$(Q):dmov.INDV CP MS")
}
record(calcout, "$(P)$(Q):done") {
field(CALC, "a")
field(INPA, "$(P)$(Q):done2 CP")
field(OUT, "$(P)$(Q):endMove.PROC PP")
field(OOPT, "Transition To Non-zero")
}
# Strategy: We need to find out when all motors have finished executing a move
# that we started. To do this without a race condition, we set a gate PV to
# "open", write to motors, and then have the last motor written to set the gate
# PV to "closed" when it finishes. But we don't know which motor will be the
# last motor written to, because the table record can work with fewer than six
# motors, and we don't know which motors don't actually exist.
# $(P)$(Q):lastMotor figures this out at init time.
# Evidently, $(P)$(Q):lastMotor's PINI==RUNNING field isn't getting
# $(P)$(Q):closeGate.INPA initialized. This seems bulletproof.
record(scalcout, "$(P)$(Q):initLastMotor") {
#field(TPRO, "1")
field(SCAN, "10 second")
# Note that this must be a CA link so it can read a link field
field(INAA, "$(P)$(Q):closeGate.INPA CA")
field(CALC, "aa==''")
field(OOPT, "When Zero")
field(DOPT, "Use OCAL")
field(OCAL, "'Passive'")
field(OUT, "$(P)$(Q):initLastMotor.SCAN CA")
field(FLNK, "$(P)$(Q):lastMotor")
}
# Find the last motor that will be written to. (Ignore motors that
# don't actually exist.) Write that motor's .DMOV PV
record(scalcout, "$(P)$(Q):lastMotor") {
field(CALC, "(f?ff:e?ee:d?dd:c?cc:b?bb:aa)[0,' ']+' CP'")
field(INPA, "$(P)$(Q):dmov.INAV CA")
field(INPB, "$(P)$(Q):dmov.INBV CA")
field(INPC, "$(P)$(Q):dmov.INCV CA")
field(INPD, "$(P)$(Q):dmov.INDV CA")
field(INPE, "$(P)$(Q):dmov.INEV CA")
field(INPF, "$(P)$(Q):dmov.INFV CA")
field(INAA, "$(P)$(Q):dmov.INPA CA")
field(INBB, "$(P)$(Q):dmov.INPB CA")
field(INCC, "$(P)$(Q):dmov.INPC CA")
field(INDD, "$(P)$(Q):dmov.INPD CA")
field(INEE, "$(P)$(Q):dmov.INPE CA")
field(INFF, "$(P)$(Q):dmov.INPF CA")
field(PINI, "RUNNING")
field(OUT, "$(P)$(Q):closeGate.INPA CA")
}
record(calcout, "$(P)$(Q):closeGate") {
field(CALC, "!a")
field(OUT, "$(P)$(Q):gate.VAL PP")
field(OOPT, "Transition To Zero")
}
record(bo, "$(P)$(Q):gate") {
field(ZNAM, "closed")
field(ONAM, "open")
}
record(bo, "$(P)$(Q):setValuesWritten") {
field(DOL, "1")
field(OUT, "$(P)$(Q):valuesWritten.VAL PP")
}
record(bo, "$(P)$(Q):valuesWritten") {
}
record(bo, "$(P)$(Q):ifValuesWritten") {
field(DISV, "0")
field(SDIS, "$(P)$(Q):valuesWritten.VAL")
field(OUT, "$(P)$(Q):writeMotors.PROC PP")
}
record(dfanout, "$(P)$(Q):syncMotors") {
field(OUTA, "$(P)$(Q):x.SYNC CA")
field(OUTB, "$(P)$(Q):y.SYNC CA")
field(OUTC, "$(P)$(Q):z.SYNC CA")
field(OUTD, "$(P)$(Q):ax.SYNC CA")
field(OUTE, "$(P)$(Q):ay.SYNC CA")
field(OUTF, "$(P)$(Q):az.SYNC CA")
}
record(dfanout, "$(P)$(Q):sync") {
field(OUTA, "$(P)$(T).SYNC PP")
field(OUTB, "$(P)$(Q):syncMotors PP")
}
record(dfanout, "$(P)$(Q):init") {
field(OUTA, "$(P)$(T).INIT PP")
field(OUTB, "$(P)$(Q):syncMotors PP")
}
record(dfanout, "$(P)$(Q):zero") {
field(OUTA, "$(P)$(T).ZERO PP")
field(OUTB, "$(P)$(Q):syncMotors PP")
}
#! Further lines contain data used by VisualDCT
#! View(0,0,0.2)
#! Record("$(P)$(Q):stop",1020,1340,0,0,"$(P)$(Q):stop")
#! Field("$(P)$(Q):stop.OUT",16777215,1,"$(P)$(Q):stop.OUT")
#! Link("$(P)$(Q):stop.OUT","$(P)$(Q):stop1.A")
#! Record("$(P)$(Q):update",2300,585,0,0,"$(P)$(Q):update")
#! Field("$(P)$(Q):update.SDIS",16777215,0,"$(P)$(Q):update.SDIS")
#! Link("$(P)$(Q):update.SDIS","$(P)$(Q):done.VAL")
#! Field("$(P)$(Q):update.OUT",16777215,1,"$(P)$(Q):update.OUT")
#! Link("$(P)$(Q):update.OUT","$(P)$(Q):update/OUT")
#! Connector("$(P)$(Q):update/OUT","$(P)$(T).READ",2540,780,16777215,"",0)
#! Visibility("$(P)$(Q):update.DTYP",2)
#! Visibility("$(P)$(Q):update.SDIS",2)
#! Visibility("$(P)$(Q):update.OUT",2)
#! Visibility("$(P)$(Q):update.ONAM",2)
#! Visibility("$(P)$(Q):update.DISV",1)
#! Record("$(P)$(Q):geomIsGEOCARS",3040,555,0,0,"$(P)$(Q):geomIsGEOCARS")
#! Field("$(P)$(Q):geomIsGEOCARS.INPA",16777215,0,"$(P)$(Q):geomIsGEOCARS.INPA")
#! Link("$(P)$(Q):geomIsGEOCARS.INPA","$(P)$(T).GEOM")
#! Visibility("$(P)$(Q):geomIsGEOCARS.INPA",2)
#! Record("$(P)$(Q):geomIsNEWPORT",3040,635,0,0,"$(P)$(Q):geomIsNEWPORT")
#! Field("$(P)$(Q):geomIsNEWPORT.INPA",16777215,0,"$(P)$(Q):geomIsNEWPORT.INPA")
#! Link("$(P)$(Q):geomIsNEWPORT.INPA","$(P)$(T).GEOM")
#! Visibility("$(P)$(Q):geomIsNEWPORT.INPA",2)
#! Record("$(P)$(Q):geomIsSRI",3040,475,0,0,"$(P)$(Q):geomIsSRI")
#! Field("$(P)$(Q):geomIsSRI.INPA",16777215,0,"$(P)$(Q):geomIsSRI.INPA")
#! Link("$(P)$(Q):geomIsSRI.INPA","$(P)$(T).GEOM")
#! Visibility("$(P)$(Q):geomIsSRI.INPA",2)
#! Record("$(P)$(T)",2660,610,0,0,"$(P)$(T)")
#! Field("$(P)$(T).ZERO",16777215,0,"$(P)$(T).ZERO")
#! Field("$(P)$(T).INIT",16777215,0,"$(P)$(T).INIT")
#! Field("$(P)$(T).SYNC",16777215,0,"$(P)$(T).SYNC")
#! Field("$(P)$(T).READ",16777215,0,"$(P)$(T).READ")
#! Field("$(P)$(T).GEOM",16777215,1,"$(P)$(T).GEOM")
#! Field("$(P)$(T).M0XL",16777215,1,"$(P)$(T).M0XL")
#! Link("$(P)$(T).M0XL","$(P)$(Q):setValuesWritten.PROC")
#! Field("$(P)$(T).M2YL",16777215,1,"$(P)$(T).M2YL")
#! Link("$(P)$(T).M2YL","$(P)$(Q):setValuesWritten.PROC")
#! Field("$(P)$(T).M2XL",16777215,1,"$(P)$(T).M2XL")
#! Link("$(P)$(T).M2XL","$(P)$(Q):setValuesWritten.PROC")
#! Field("$(P)$(T).M1YL",16777215,1,"$(P)$(T).M1YL")
#! Link("$(P)$(T).M1YL","$(P)$(Q):setValuesWritten.PROC")
#! Field("$(P)$(T).M0YL",16777215,1,"$(P)$(T).M0YL")
#! Link("$(P)$(T).M0YL","$(P)$(Q):setValuesWritten.PROC")
#! Field("$(P)$(T).M2ZL",16777215,1,"$(P)$(T).M2ZL")
#! Link("$(P)$(T).M2ZL","$(P)$(Q):setValuesWritten.PROC")
#! Field("$(P)$(T).HLX",16777215,0,"$(P)$(T).HLX")
#! Field("$(P)$(T).EX",16777215,0,"$(P)$(T).EX")
#! Field("$(P)$(T).X",16777215,0,"$(P)$(T).X")
#! Field("$(P)$(T).LLX",16777215,0,"$(P)$(T).LLX")
#! Field("$(P)$(T).M0X",16777215,1,"$(P)$(T).M0X")
#! Field("$(P)$(T).R0XI",16777215,1,"$(P)$(T).R0XI")
#! Field("$(P)$(T).R0YI",16777215,1,"$(P)$(T).R0YI")
#! Field("$(P)$(T).R1YI",16777215,1,"$(P)$(T).R1YI")
#! Field("$(P)$(T).R2YI",16777215,1,"$(P)$(T).R2YI")
#! Field("$(P)$(T).R2XI",16777215,1,"$(P)$(T).R2XI")
#! Field("$(P)$(T).R2ZI",16777215,1,"$(P)$(T).R2ZI")
#! Field("$(P)$(T).HLY",16777215,0,"$(P)$(T).HLY")
#! Field("$(P)$(T).EY",16777215,0,"$(P)$(T).EY")
#! Field("$(P)$(T).Y",16777215,0,"$(P)$(T).Y")
#! Field("$(P)$(T).LLY",16777215,0,"$(P)$(T).LLY")
#! Field("$(P)$(T).M0Y",16777215,1,"$(P)$(T).M0Y")
#! Field("$(P)$(T).E0XI",16777215,1,"$(P)$(T).E0XI")
#! Field("$(P)$(T).E0YI",16777215,1,"$(P)$(T).E0YI")
#! Field("$(P)$(T).E1YI",16777215,1,"$(P)$(T).E1YI")
#! Field("$(P)$(T).E2XI",16777215,1,"$(P)$(T).E2XI")
#! Field("$(P)$(T).E2YI",16777215,1,"$(P)$(T).E2YI")
#! Field("$(P)$(T).E2ZI",16777215,1,"$(P)$(T).E2ZI")
#! Field("$(P)$(T).HLZ",16777215,0,"$(P)$(T).HLZ")
#! Field("$(P)$(T).EZ",16777215,0,"$(P)$(T).EZ")
#! Field("$(P)$(T).Z",16777215,0,"$(P)$(T).Z")
#! Field("$(P)$(T).LLZ",16777215,0,"$(P)$(T).LLZ")
#! Field("$(P)$(T).M1Y",16777215,1,"$(P)$(T).M1Y")
#! Field("$(P)$(T).V0XL",16777215,1,"$(P)$(T).V0XL")
#! Field("$(P)$(T).V1YL",16777215,1,"$(P)$(T).V1YL")
#! Field("$(P)$(T).V0YL",16777215,1,"$(P)$(T).V0YL")
#! Field("$(P)$(T).V2XL",16777215,1,"$(P)$(T).V2XL")
#! Field("$(P)$(T).V2YL",16777215,1,"$(P)$(T).V2YL")
#! Field("$(P)$(T).V2ZL",16777215,1,"$(P)$(T).V2ZL")
#! Field("$(P)$(T).HLAX",16777215,0,"$(P)$(T).HLAX")
#! Field("$(P)$(T).EAX",16777215,0,"$(P)$(T).EAX")
#! Field("$(P)$(T).AX",16777215,0,"$(P)$(T).AX")
#! Field("$(P)$(T).LLAX",16777215,0,"$(P)$(T).LLAX")
#! Field("$(P)$(T).M2X",16777215,1,"$(P)$(T).M2X")
#! Field("$(P)$(T).V0XI",16777215,1,"$(P)$(T).V0XI")
#! Field("$(P)$(T).V0YI",16777215,1,"$(P)$(T).V0YI")
#! Field("$(P)$(T).V1YI",16777215,1,"$(P)$(T).V1YI")
#! Field("$(P)$(T).V2XI",16777215,1,"$(P)$(T).V2XI")
#! Field("$(P)$(T).V2YI",16777215,1,"$(P)$(T).V2YI")
#! Field("$(P)$(T).V2ZI",16777215,1,"$(P)$(T).V2ZI")
#! Field("$(P)$(T).HLAY",16777215,0,"$(P)$(T).HLAY")
#! Field("$(P)$(T).EAY",16777215,0,"$(P)$(T).EAY")
#! Field("$(P)$(T).AY",16777215,0,"$(P)$(T).AY")
#! Field("$(P)$(T).LLAY",16777215,0,"$(P)$(T).LLAY")
#! Field("$(P)$(T).M2Y",16777215,1,"$(P)$(T).M2Y")
#! Field("$(P)$(T).H0XL",16777215,1,"$(P)$(T).H0XL")
#! Field("$(P)$(T).H0YL",16777215,1,"$(P)$(T).H0YL")
#! Field("$(P)$(T).H1YL",16777215,1,"$(P)$(T).H1YL")
#! Field("$(P)$(T).H2XL",16777215,1,"$(P)$(T).H2XL")
#! Field("$(P)$(T).H2YL",16777215,1,"$(P)$(T).H2YL")
#! Field("$(P)$(T).H2ZL",16777215,1,"$(P)$(T).H2ZL")
#! Field("$(P)$(T).HLAZ",16777215,0,"$(P)$(T).HLAZ")
#! Field("$(P)$(T).EAZ",16777215,0,"$(P)$(T).EAZ")
#! Field("$(P)$(T).AZ",16777215,0,"$(P)$(T).AZ")
#! Field("$(P)$(T).LLAZ",16777215,0,"$(P)$(T).LLAZ")
#! Field("$(P)$(T).M2Z",16777215,1,"$(P)$(T).M2Z")
#! Field("$(P)$(T).L0XL",16777215,1,"$(P)$(T).L0XL")
#! Field("$(P)$(T).L0YL",16777215,1,"$(P)$(T).L0YL")
#! Field("$(P)$(T).L1YL",16777215,1,"$(P)$(T).L1YL")
#! Field("$(P)$(T).L2XL",16777215,1,"$(P)$(T).L2XL")
#! Field("$(P)$(T).L2YL",16777215,1,"$(P)$(T).L2YL")
#! Field("$(P)$(T).L2ZL",16777215,1,"$(P)$(T).L2ZL")
#! Field("$(P)$(T).FLNK",16777215,1,"$(P)$(T).FLNK")
#! Link("$(P)$(T).FLNK","$(P)$(T)/FLNK")
#! Field("$(P)$(T).SX",16777215,0,"$(P)$(T).SX")
#! Field("$(P)$(T).SY",16777215,0,"$(P)$(T).SY")
#! Field("$(P)$(T).SZ",16777215,0,"$(P)$(T).SZ")
#! Connector("$(P)$(T)/FLNK","$(P)$(Q):ifValuesWritten",2960,1700,16777215,"",0)
#! Visibility("$(P)$(T).DESC",2)
#! Visibility("$(P)$(T).LX",2)
#! Visibility("$(P)$(T).LZ",2)
#! Visibility("$(P)$(T).M0YL",2)
#! Visibility("$(P)$(T).M1YL",2)
#! Visibility("$(P)$(T).M2XL",2)
#! Visibility("$(P)$(T).M2YL",2)
#! Visibility("$(P)$(T).M2ZL",2)
#! Visibility("$(P)$(T).R0XI",2)
#! Visibility("$(P)$(T).R0YI",2)
#! Visibility("$(P)$(T).R1YI",2)
#! Visibility("$(P)$(T).R2XI",2)
#! Visibility("$(P)$(T).R2YI",2)
#! Visibility("$(P)$(T).R2ZI",2)
#! Visibility("$(P)$(T).E0XI",2)
#! Visibility("$(P)$(T).E0YI",2)
#! Visibility("$(P)$(T).E1YI",2)
#! Visibility("$(P)$(T).E2XI",2)
#! Visibility("$(P)$(T).E2YI",2)
#! Visibility("$(P)$(T).E2ZI",2)
#! Visibility("$(P)$(T).V0XL",2)
#! Visibility("$(P)$(T).V0YL",2)
#! Visibility("$(P)$(T).V1YL",2)
#! Visibility("$(P)$(T).V2XL",2)
#! Visibility("$(P)$(T).V2YL",2)
#! Visibility("$(P)$(T).V2ZL",2)
#! Visibility("$(P)$(T).V0XI",2)
#! Visibility("$(P)$(T).V0YI",2)
#! Visibility("$(P)$(T).V1YI",2)
#! Visibility("$(P)$(T).V2XI",2)
#! Visibility("$(P)$(T).V2YI",2)
#! Visibility("$(P)$(T).V2ZI",2)
#! Visibility("$(P)$(T).H0XL",2)
#! Visibility("$(P)$(T).H0YL",2)
#! Visibility("$(P)$(T).H1YL",2)
#! Visibility("$(P)$(T).H2XL",2)
#! Visibility("$(P)$(T).H2YL",2)
#! Visibility("$(P)$(T).H2ZL",2)
#! Visibility("$(P)$(T).L0XL",2)
#! Visibility("$(P)$(T).L0YL",2)
#! Visibility("$(P)$(T).L1YL",2)
#! Visibility("$(P)$(T).L2XL",2)
#! Visibility("$(P)$(T).L2YL",2)
#! Visibility("$(P)$(T).L2ZL",2)
#! Visibility("$(P)$(T).LEGU",2)
#! Visibility("$(P)$(T).PREC",2)
#! Visibility("$(P)$(T).GEOM",2)
#! Record("$(P)$(Q):stop1",1300,1350,0,0,"$(P)$(Q):stop1")
#! Field("$(P)$(Q):stop1.A",16777215,0,"$(P)$(Q):stop1.A")
#! Field("$(P)$(Q):stop1.OUTA",16777215,1,"$(P)$(Q):stop1.OUTA")
#! Field("$(P)$(Q):stop1.OUTB",16777215,1,"$(P)$(Q):stop1.OUTB")
#! Field("$(P)$(Q):stop1.OUTC",16777215,1,"$(P)$(Q):stop1.OUTC")
#! Field("$(P)$(Q):stop1.OUTD",16777215,1,"$(P)$(Q):stop1.OUTD")
#! Field("$(P)$(Q):stop1.OUTE",16777215,1,"$(P)$(Q):stop1.OUTE")
#! Field("$(P)$(Q):stop1.OUTF",16777215,1,"$(P)$(Q):stop1.OUTF")
#! Visibility("$(P)$(Q):stop1.DESC",2)
#! Visibility("$(P)$(Q):stop1.CLCB",2)
#! Visibility("$(P)$(Q):stop1.CLCC",2)
#! Visibility("$(P)$(Q):stop1.CLCD",2)
#! Visibility("$(P)$(Q):stop1.CLCE",2)
#! Visibility("$(P)$(Q):stop1.CLCF",2)
#! Visibility("$(P)$(Q):stop1.OUTA",2)
#! Visibility("$(P)$(Q):stop1.OUTB",2)
#! Visibility("$(P)$(Q):stop1.OUTC",2)
#! Visibility("$(P)$(Q):stop1.OUTD",2)
#! Visibility("$(P)$(Q):stop1.OUTE",2)
#! Visibility("$(P)$(Q):stop1.OUTF",2)
#! Record("$(P)$(Q):geomIsPNC",3040,715,0,1,"$(P)$(Q):geomIsPNC")
#! Field("$(P)$(Q):geomIsPNC.INPA",16777215,0,"$(P)$(Q):geomIsPNC.INPA")
#! Link("$(P)$(Q):geomIsPNC.INPA","$(P)$(T).GEOM")
#! Visibility("$(P)$(Q):geomIsPNC.INPA",2)
#! Record("$(P)$(Q)fp",1920,2435,0,1,"$(P)$(Q)fp")
#! Field("$(P)$(Q)fp.STR1",16777215,0,"$(P)$(Q)fp.STR1")
#! Field("$(P)$(Q)fp.DO2",16777215,0,"$(P)$(Q)fp.DO2")
#! Field("$(P)$(Q)fp.DO3",16777215,0,"$(P)$(Q)fp.DO3")
#! Field("$(P)$(Q)fp.DO4",16777215,0,"$(P)$(Q)fp.DO4")
#! Field("$(P)$(Q)fp.LNK2",16777215,1,"$(P)$(Q)fp.LNK2")
#! Link("$(P)$(Q)fp.LNK2","$(P)$(T).SX")
#! Field("$(P)$(Q)fp.LNK3",16777215,1,"$(P)$(Q)fp.LNK3")
#! Link("$(P)$(Q)fp.LNK3","$(P)$(T).SY")
#! Field("$(P)$(Q)fp.LNK4",16777215,1,"$(P)$(Q)fp.LNK4")
#! Link("$(P)$(Q)fp.LNK4","$(P)$(T).SZ")
#! Record("$(P)$(Q)fp0",1380,2500,0,1,"$(P)$(Q)fp0")
#! Field("$(P)$(Q)fp0.STR1",16777215,0,"$(P)$(Q)fp0.STR1")
#! Field("$(P)$(Q)fp0.LNK1",16777215,1,"$(P)$(Q)fp0.LNK1")
#! Link("$(P)$(Q)fp0.LNK1","$(P)$(Q)fp.STR1")
#! Field("$(P)$(Q)fp0.LNK2",16777215,1,"$(P)$(Q)fp0.LNK2")
#! Link("$(P)$(Q)fp0.LNK2","$(P)$(Q)fp.DO2")
#! Field("$(P)$(Q)fp0.LNK3",16777215,1,"$(P)$(Q)fp0.LNK3")
#! Link("$(P)$(Q)fp0.LNK3","$(P)$(Q)fp.DO3")
#! Field("$(P)$(Q)fp0.LNK4",16777215,1,"$(P)$(Q)fp0.LNK4")
#! Link("$(P)$(Q)fp0.LNK4","$(P)$(Q)fp.DO4")
#! Visibility("$(P)$(Q)fp0.LNK1",2)
#! Visibility("$(P)$(Q)fp0.LNK2",2)
#! Visibility("$(P)$(Q)fp0.STR1",2)
#! Visibility("$(P)$(Q)fp0.DO2",2)
#! Visibility("$(P)$(Q)fp0.DO3",2)
#! Visibility("$(P)$(Q)fp0.LNK3",2)
#! Visibility("$(P)$(Q)fp0.DO4",2)
#! Record("$(P)$(Q)fp1",1380,2660,0,1,"$(P)$(Q)fp1")
#! Field("$(P)$(Q)fp1.STR1",16777215,0,"$(P)$(Q)fp1.STR1")
#! Field("$(P)$(Q)fp1.LNK1",16777215,1,"$(P)$(Q)fp1.LNK1")
#! Link("$(P)$(Q)fp1.LNK1","$(P)$(Q)fp.STR1")
#! Field("$(P)$(Q)fp1.LNK2",16777215,1,"$(P)$(Q)fp1.LNK2")
#! Link("$(P)$(Q)fp1.LNK2","$(P)$(Q)fp.DO2")
#! Field("$(P)$(Q)fp1.LNK3",16777215,1,"$(P)$(Q)fp1.LNK3")
#! Link("$(P)$(Q)fp1.LNK3","$(P)$(Q)fp.DO3")
#! Field("$(P)$(Q)fp1.LNK4",16777215,1,"$(P)$(Q)fp1.LNK4")
#! Link("$(P)$(Q)fp1.LNK4","$(P)$(Q)fp.DO4")
#! Visibility("$(P)$(Q)fp1.LNK1",2)
#! Visibility("$(P)$(Q)fp1.LNK2",2)
#! Visibility("$(P)$(Q)fp1.STR1",2)
#! Visibility("$(P)$(Q)fp1.DO2",2)
#! Visibility("$(P)$(Q)fp1.DO3",2)
#! Visibility("$(P)$(Q)fp1.LNK3",2)
#! Visibility("$(P)$(Q)fp1.DO4",2)
#! Record("$(P)$(Q)fpSeq",980,1720,0,1,"$(P)$(Q)fpSeq")
#! Field("$(P)$(Q)fpSeq.DOL1",16777215,0,"$(P)$(Q)fpSeq.DOL1")
#! Link("$(P)$(Q)fpSeq.DOL1","$(P)$(Q)fpSelect.ZRST")
#! Field("$(P)$(Q)fpSeq.DOL2",16777215,0,"$(P)$(Q)fpSeq.DOL2")
#! Link("$(P)$(Q)fpSeq.DOL2","$(P)$(Q)fpSelect.ONST")
#! Field("$(P)$(Q)fpSeq.DOL3",16777215,0,"$(P)$(Q)fpSeq.DOL3")
#! Link("$(P)$(Q)fpSeq.DOL3","$(P)$(Q)fpSelect.TWST")
#! Field("$(P)$(Q)fpSeq.DOL4",16777215,0,"$(P)$(Q)fpSeq.DOL4")
#! Link("$(P)$(Q)fpSeq.DOL4","$(P)$(Q)fpSelect.THST")
#! Field("$(P)$(Q)fpSeq.DOL5",16777215,0,"$(P)$(Q)fpSeq.DOL5")
#! Link("$(P)$(Q)fpSeq.DOL5","$(P)$(Q)fpSelect.FRST")
#! Field("$(P)$(Q)fpSeq.DOL6",16777215,0,"$(P)$(Q)fpSeq.DOL6")
#! Link("$(P)$(Q)fpSeq.DOL6","$(P)$(Q)fpSelect.FVST")
#! Field("$(P)$(Q)fpSeq.DOL7",16777215,0,"$(P)$(Q)fpSeq.DOL7")
#! Link("$(P)$(Q)fpSeq.DOL7","$(P)$(Q)fpSelect.SXST")
#! Field("$(P)$(Q)fpSeq.DOL8",16777215,0,"$(P)$(Q)fpSeq.DOL8")
#! Link("$(P)$(Q)fpSeq.DOL8","$(P)$(Q)fpSelect.SVST")
#! Field("$(P)$(Q)fpSeq.DOL9",16777215,0,"$(P)$(Q)fpSeq.DOL9")
#! Link("$(P)$(Q)fpSeq.DOL9","$(P)$(Q)fpSelect.EIST")
#! Field("$(P)$(Q)fpSeq.DOLA",16777215,0,"$(P)$(Q)fpSeq.DOLA")
#! Link("$(P)$(Q)fpSeq.DOLA","$(P)$(Q)fpSelect.NIST")
#! Field("$(P)$(Q)fpSeq.SELN",16777215,0,"$(P)$(Q)fpSeq.SELN")
#! Field("$(P)$(Q)fpSeq.LNK1",16777215,1,"$(P)$(Q)fpSeq.LNK1")
#! Link("$(P)$(Q)fpSeq.LNK1","$(P)$(Q)fp0.STR1")
#! Field("$(P)$(Q)fpSeq.LNK2",16777215,1,"$(P)$(Q)fpSeq.LNK2")
#! Link("$(P)$(Q)fpSeq.LNK2","$(P)$(Q)fp1.STR1")
#! Field("$(P)$(Q)fpSeq.LNK3",16777215,1,"$(P)$(Q)fpSeq.LNK3")
#! Link("$(P)$(Q)fpSeq.LNK3","$(P)$(Q)fp2.STR1")
#! Field("$(P)$(Q)fpSeq.LNK4",16777215,1,"$(P)$(Q)fpSeq.LNK4")
#! Link("$(P)$(Q)fpSeq.LNK4","$(P)$(Q)fp3.STR1")
#! Field("$(P)$(Q)fpSeq.LNK5",16777215,1,"$(P)$(Q)fpSeq.LNK5")
#! Link("$(P)$(Q)fpSeq.LNK5","$(P)$(Q)fp4.STR1")
#! Field("$(P)$(Q)fpSeq.LNK6",16777215,1,"$(P)$(Q)fpSeq.LNK6")
#! Link("$(P)$(Q)fpSeq.LNK6","$(P)$(Q)fp5.STR1")
#! Field("$(P)$(Q)fpSeq.LNK7",16777215,1,"$(P)$(Q)fpSeq.LNK7")
#! Link("$(P)$(Q)fpSeq.LNK7","$(P)$(Q)fp6.STR1")
#! Field("$(P)$(Q)fpSeq.LNK8",16777215,1,"$(P)$(Q)fpSeq.LNK8")
#! Link("$(P)$(Q)fpSeq.LNK8","$(P)$(Q)fp7.STR1")
#! Field("$(P)$(Q)fpSeq.LNK9",16777215,1,"$(P)$(Q)fpSeq.LNK9")
#! Link("$(P)$(Q)fpSeq.LNK9","$(P)$(Q)fp8.STR1")
#! Field("$(P)$(Q)fpSeq.LNKA",16777215,1,"$(P)$(Q)fpSeq.LNKA")
#! Link("$(P)$(Q)fpSeq.LNKA","$(P)$(Q)fp9.STR1")
#! Record("$(P)$(Q)fp2",1380,2820,0,1,"$(P)$(Q)fp2")
#! Field("$(P)$(Q)fp2.STR1",16777215,0,"$(P)$(Q)fp2.STR1")
#! Field("$(P)$(Q)fp2.LNK1",16777215,1,"$(P)$(Q)fp2.LNK1")
#! Link("$(P)$(Q)fp2.LNK1","$(P)$(Q)fp.STR1")
#! Field("$(P)$(Q)fp2.LNK2",16777215,1,"$(P)$(Q)fp2.LNK2")
#! Link("$(P)$(Q)fp2.LNK2","$(P)$(Q)fp.DO2")
#! Field("$(P)$(Q)fp2.LNK3",16777215,1,"$(P)$(Q)fp2.LNK3")
#! Link("$(P)$(Q)fp2.LNK3","$(P)$(Q)fp.DO3")
#! Field("$(P)$(Q)fp2.LNK4",16777215,1,"$(P)$(Q)fp2.LNK4")
#! Link("$(P)$(Q)fp2.LNK4","$(P)$(Q)fp.DO4")
#! Visibility("$(P)$(Q)fp2.LNK1",2)
#! Visibility("$(P)$(Q)fp2.LNK2",2)
#! Visibility("$(P)$(Q)fp2.STR1",2)
#! Visibility("$(P)$(Q)fp2.DO2",2)
#! Visibility("$(P)$(Q)fp2.DO3",2)
#! Visibility("$(P)$(Q)fp2.LNK3",2)
#! Visibility("$(P)$(Q)fp2.DO4",2)
#! Record("$(P)$(Q)fp3",1380,2980,0,1,"$(P)$(Q)fp3")
#! Field("$(P)$(Q)fp3.STR1",16777215,0,"$(P)$(Q)fp3.STR1")
#! Field("$(P)$(Q)fp3.LNK1",16777215,1,"$(P)$(Q)fp3.LNK1")
#! Link("$(P)$(Q)fp3.LNK1","$(P)$(Q)fp.STR1")
#! Field("$(P)$(Q)fp3.LNK2",16777215,1,"$(P)$(Q)fp3.LNK2")
#! Link("$(P)$(Q)fp3.LNK2","$(P)$(Q)fp.DO2")
#! Field("$(P)$(Q)fp3.LNK3",16777215,1,"$(P)$(Q)fp3.LNK3")
#! Link("$(P)$(Q)fp3.LNK3","$(P)$(Q)fp.DO3")
#! Field("$(P)$(Q)fp3.LNK4",16777215,1,"$(P)$(Q)fp3.LNK4")
#! Link("$(P)$(Q)fp3.LNK4","$(P)$(Q)fp.DO4")
#! Visibility("$(P)$(Q)fp3.LNK1",2)
#! Visibility("$(P)$(Q)fp3.LNK2",2)
#! Visibility("$(P)$(Q)fp3.STR1",2)
#! Visibility("$(P)$(Q)fp3.DO2",2)
#! Visibility("$(P)$(Q)fp3.DO3",2)
#! Visibility("$(P)$(Q)fp3.LNK3",2)
#! Visibility("$(P)$(Q)fp3.DO4",2)
#! Record("$(P)$(Q)fp4",1380,3140,0,1,"$(P)$(Q)fp4")
#! Field("$(P)$(Q)fp4.STR1",16777215,0,"$(P)$(Q)fp4.STR1")
#! Field("$(P)$(Q)fp4.LNK1",16777215,1,"$(P)$(Q)fp4.LNK1")
#! Link("$(P)$(Q)fp4.LNK1","$(P)$(Q)fp.STR1")
#! Field("$(P)$(Q)fp4.LNK2",16777215,1,"$(P)$(Q)fp4.LNK2")
#! Link("$(P)$(Q)fp4.LNK2","$(P)$(Q)fp.DO2")
#! Field("$(P)$(Q)fp4.LNK3",16777215,1,"$(P)$(Q)fp4.LNK3")
#! Link("$(P)$(Q)fp4.LNK3","$(P)$(Q)fp.DO3")
#! Field("$(P)$(Q)fp4.LNK4",16777215,1,"$(P)$(Q)fp4.LNK4")
#! Link("$(P)$(Q)fp4.LNK4","$(P)$(Q)fp.DO4")
#! Visibility("$(P)$(Q)fp4.LNK1",2)
#! Visibility("$(P)$(Q)fp4.LNK2",2)
#! Visibility("$(P)$(Q)fp4.STR1",2)
#! Visibility("$(P)$(Q)fp4.DO2",2)
#! Visibility("$(P)$(Q)fp4.DO3",2)
#! Visibility("$(P)$(Q)fp4.LNK3",2)
#! Visibility("$(P)$(Q)fp4.DO4",2)
#! Record("$(P)$(Q)fp5",1380,3300,0,1,"$(P)$(Q)fp5")
#! Field("$(P)$(Q)fp5.STR1",16777215,0,"$(P)$(Q)fp5.STR1")
#! Field("$(P)$(Q)fp5.LNK1",16777215,1,"$(P)$(Q)fp5.LNK1")
#! Link("$(P)$(Q)fp5.LNK1","$(P)$(Q)fp.STR1")
#! Field("$(P)$(Q)fp5.LNK2",16777215,1,"$(P)$(Q)fp5.LNK2")
#! Link("$(P)$(Q)fp5.LNK2","$(P)$(Q)fp.DO2")
#! Field("$(P)$(Q)fp5.LNK3",16777215,1,"$(P)$(Q)fp5.LNK3")
#! Link("$(P)$(Q)fp5.LNK3","$(P)$(Q)fp.DO3")
#! Field("$(P)$(Q)fp5.LNK4",16777215,1,"$(P)$(Q)fp5.LNK4")
#! Link("$(P)$(Q)fp5.LNK4","$(P)$(Q)fp.DO4")
#! Visibility("$(P)$(Q)fp5.LNK1",2)
#! Visibility("$(P)$(Q)fp5.LNK2",2)
#! Visibility("$(P)$(Q)fp5.STR1",2)
#! Visibility("$(P)$(Q)fp5.DO2",2)
#! Visibility("$(P)$(Q)fp5.DO3",2)
#! Visibility("$(P)$(Q)fp5.LNK3",2)
#! Visibility("$(P)$(Q)fp5.DO4",2)
#! Record("$(P)$(Q)fp6",1380,3460,0,1,"$(P)$(Q)fp6")
#! Field("$(P)$(Q)fp6.STR1",16777215,0,"$(P)$(Q)fp6.STR1")
#! Field("$(P)$(Q)fp6.LNK1",16777215,1,"$(P)$(Q)fp6.LNK1")
#! Link("$(P)$(Q)fp6.LNK1","$(P)$(Q)fp.STR1")
#! Field("$(P)$(Q)fp6.LNK2",16777215,1,"$(P)$(Q)fp6.LNK2")
#! Link("$(P)$(Q)fp6.LNK2","$(P)$(Q)fp.DO2")
#! Field("$(P)$(Q)fp6.LNK3",16777215,1,"$(P)$(Q)fp6.LNK3")
#! Link("$(P)$(Q)fp6.LNK3","$(P)$(Q)fp.DO3")
#! Field("$(P)$(Q)fp6.LNK4",16777215,1,"$(P)$(Q)fp6.LNK4")
#! Link("$(P)$(Q)fp6.LNK4","$(P)$(Q)fp.DO4")
#! Visibility("$(P)$(Q)fp6.LNK1",2)
#! Visibility("$(P)$(Q)fp6.LNK2",2)
#! Visibility("$(P)$(Q)fp6.STR1",2)
#! Visibility("$(P)$(Q)fp6.DO2",2)
#! Visibility("$(P)$(Q)fp6.DO3",2)
#! Visibility("$(P)$(Q)fp6.LNK3",2)
#! Visibility("$(P)$(Q)fp6.DO4",2)
#! Record("$(P)$(Q)fp7",1380,3620,0,1,"$(P)$(Q)fp7")
#! Field("$(P)$(Q)fp7.STR1",16777215,0,"$(P)$(Q)fp7.STR1")
#! Field("$(P)$(Q)fp7.LNK1",16777215,1,"$(P)$(Q)fp7.LNK1")
#! Link("$(P)$(Q)fp7.LNK1","$(P)$(Q)fp.STR1")
#! Field("$(P)$(Q)fp7.LNK2",16777215,1,"$(P)$(Q)fp7.LNK2")
#! Link("$(P)$(Q)fp7.LNK2","$(P)$(Q)fp.DO2")
#! Field("$(P)$(Q)fp7.LNK3",16777215,1,"$(P)$(Q)fp7.LNK3")
#! Link("$(P)$(Q)fp7.LNK3","$(P)$(Q)fp.DO3")
#! Field("$(P)$(Q)fp7.LNK4",16777215,1,"$(P)$(Q)fp7.LNK4")
#! Link("$(P)$(Q)fp7.LNK4","$(P)$(Q)fp.DO4")
#! Visibility("$(P)$(Q)fp7.LNK1",2)
#! Visibility("$(P)$(Q)fp7.LNK2",2)
#! Visibility("$(P)$(Q)fp7.STR1",2)
#! Visibility("$(P)$(Q)fp7.DO2",2)
#! Visibility("$(P)$(Q)fp7.DO3",2)
#! Visibility("$(P)$(Q)fp7.LNK3",2)
#! Visibility("$(P)$(Q)fp7.DO4",2)
#! Record("$(P)$(Q)fp8",1380,3780,0,1,"$(P)$(Q)fp8")
#! Field("$(P)$(Q)fp8.STR1",16777215,0,"$(P)$(Q)fp8.STR1")
#! Field("$(P)$(Q)fp8.LNK1",16777215,1,"$(P)$(Q)fp8.LNK1")
#! Link("$(P)$(Q)fp8.LNK1","$(P)$(Q)fp.STR1")
#! Field("$(P)$(Q)fp8.LNK2",16777215,1,"$(P)$(Q)fp8.LNK2")
#! Link("$(P)$(Q)fp8.LNK2","$(P)$(Q)fp.DO2")
#! Field("$(P)$(Q)fp8.LNK3",16777215,1,"$(P)$(Q)fp8.LNK3")
#! Link("$(P)$(Q)fp8.LNK3","$(P)$(Q)fp.DO3")
#! Field("$(P)$(Q)fp8.LNK4",16777215,1,"$(P)$(Q)fp8.LNK4")
#! Link("$(P)$(Q)fp8.LNK4","$(P)$(Q)fp.DO4")
#! Visibility("$(P)$(Q)fp8.LNK1",2)
#! Visibility("$(P)$(Q)fp8.LNK2",2)
#! Visibility("$(P)$(Q)fp8.STR1",2)
#! Visibility("$(P)$(Q)fp8.DO2",2)
#! Visibility("$(P)$(Q)fp8.DO3",2)
#! Visibility("$(P)$(Q)fp8.LNK3",2)
#! Visibility("$(P)$(Q)fp8.DO4",2)
#! Record("$(P)$(Q)fp9",1380,3940,0,1,"$(P)$(Q)fp9")
#! Field("$(P)$(Q)fp9.STR1",16777215,0,"$(P)$(Q)fp9.STR1")
#! Field("$(P)$(Q)fp9.LNK1",16777215,1,"$(P)$(Q)fp9.LNK1")
#! Link("$(P)$(Q)fp9.LNK1","$(P)$(Q)fp.STR1")
#! Field("$(P)$(Q)fp9.LNK2",16777215,1,"$(P)$(Q)fp9.LNK2")
#! Link("$(P)$(Q)fp9.LNK2","$(P)$(Q)fp.DO2")
#! Field("$(P)$(Q)fp9.LNK3",16777215,1,"$(P)$(Q)fp9.LNK3")
#! Link("$(P)$(Q)fp9.LNK3","$(P)$(Q)fp.DO3")
#! Field("$(P)$(Q)fp9.LNK4",16777215,1,"$(P)$(Q)fp9.LNK4")
#! Link("$(P)$(Q)fp9.LNK4","$(P)$(Q)fp.DO4")
#! Visibility("$(P)$(Q)fp9.LNK1",2)
#! Visibility("$(P)$(Q)fp9.LNK2",2)
#! Visibility("$(P)$(Q)fp9.STR1",2)
#! Visibility("$(P)$(Q)fp9.DO2",2)
#! Visibility("$(P)$(Q)fp9.DO3",2)
#! Visibility("$(P)$(Q)fp9.LNK3",2)
#! Visibility("$(P)$(Q)fp9.DO4",2)
#! Record("$(P)$(Q)fpSelect",720,1945,0,0,"$(P)$(Q)fpSelect")
#! Field("$(P)$(Q)fpSelect.ZRST",16777215,1,"$(P)$(Q)fpSelect.ZRST")
#! Field("$(P)$(Q)fpSelect.ONST",16777215,1,"$(P)$(Q)fpSelect.ONST")
#! Field("$(P)$(Q)fpSelect.TWST",16777215,1,"$(P)$(Q)fpSelect.TWST")
#! Field("$(P)$(Q)fpSelect.THST",16777215,1,"$(P)$(Q)fpSelect.THST")
#! Field("$(P)$(Q)fpSelect.FRST",16777215,1,"$(P)$(Q)fpSelect.FRST")
#! Field("$(P)$(Q)fpSelect.FVST",16777215,1,"$(P)$(Q)fpSelect.FVST")
#! Field("$(P)$(Q)fpSelect.SXST",16777215,1,"$(P)$(Q)fpSelect.SXST")
#! Field("$(P)$(Q)fpSelect.SVST",16777215,1,"$(P)$(Q)fpSelect.SVST")
#! Field("$(P)$(Q)fpSelect.EIST",16777215,1,"$(P)$(Q)fpSelect.EIST")
#! Field("$(P)$(Q)fpSelect.NIST",16777215,1,"$(P)$(Q)fpSelect.NIST")
#! Field("$(P)$(Q)fpSelect.OUT",16777215,1,"$(P)$(Q)fpSelect.OUT")
#! Link("$(P)$(Q)fpSelect.OUT","$(P)$(Q)fpSeq.SELN")
#! Visibility("$(P)$(Q)fpSelect.DTYP",2)
#! Visibility("$(P)$(Q)fpSelect.ZRVL",2)
#! Visibility("$(P)$(Q)fpSelect.ONVL",2)
#! Visibility("$(P)$(Q)fpSelect.TWVL",2)
#! Visibility("$(P)$(Q)fpSelect.THVL",2)
#! Visibility("$(P)$(Q)fpSelect.FRVL",2)
#! Visibility("$(P)$(Q)fpSelect.FVVL",2)
#! Visibility("$(P)$(Q)fpSelect.SXVL",2)
#! Visibility("$(P)$(Q)fpSelect.SVVL",2)
#! Visibility("$(P)$(Q)fpSelect.EIVL",2)
#! Visibility("$(P)$(Q)fpSelect.NIVL",2)
#! Record("$(P)$(Q)fp0Name",440,1395,0,0,"$(P)$(Q)fp0Name")
#! Field("$(P)$(Q)fp0Name.OUT",16777215,1,"$(P)$(Q)fp0Name.OUT")
#! Link("$(P)$(Q)fp0Name.OUT","$(P)$(Q)fpSelect.ZRST")
#! Visibility("$(P)$(Q)fp0Name.VAL",2)
#! Record("$(P)$(Q)fp1Name",440,1495,0,0,"$(P)$(Q)fp1Name")
#! Field("$(P)$(Q)fp1Name.OUT",16777215,1,"$(P)$(Q)fp1Name.OUT")
#! Link("$(P)$(Q)fp1Name.OUT","$(P)$(Q)fpSelect.ONST")
#! Visibility("$(P)$(Q)fp1Name.VAL",2)
#! Record("$(P)$(Q)fp2Name",440,1595,0,0,"$(P)$(Q)fp2Name")
#! Field("$(P)$(Q)fp2Name.OUT",16777215,1,"$(P)$(Q)fp2Name.OUT")
#! Link("$(P)$(Q)fp2Name.OUT","$(P)$(Q)fpSelect.TWST")
#! Visibility("$(P)$(Q)fp2Name.VAL",2)
#! Record("$(P)$(Q)fp3Name",440,1695,0,0,"$(P)$(Q)fp3Name")
#! Field("$(P)$(Q)fp3Name.OUT",16777215,1,"$(P)$(Q)fp3Name.OUT")
#! Link("$(P)$(Q)fp3Name.OUT","$(P)$(Q)fpSelect.THST")
#! Visibility("$(P)$(Q)fp3Name.VAL",2)
#! Record("$(P)$(Q)fp4Name",440,1815,0,0,"$(P)$(Q)fp4Name")
#! Field("$(P)$(Q)fp4Name.OUT",16777215,1,"$(P)$(Q)fp4Name.OUT")
#! Link("$(P)$(Q)fp4Name.OUT","$(P)$(Q)fpSelect.FRST")
#! Visibility("$(P)$(Q)fp4Name.VAL",2)
#! Record("$(P)$(Q)fp5Name",440,1915,0,0,"$(P)$(Q)fp5Name")
#! Field("$(P)$(Q)fp5Name.OUT",16777215,1,"$(P)$(Q)fp5Name.OUT")
#! Link("$(P)$(Q)fp5Name.OUT","$(P)$(Q)fpSelect.FVST")
#! Visibility("$(P)$(Q)fp5Name.VAL",2)
#! Record("$(P)$(Q)fp6Name",440,2035,0,0,"$(P)$(Q)fp6Name")
#! Field("$(P)$(Q)fp6Name.OUT",16777215,1,"$(P)$(Q)fp6Name.OUT")
#! Link("$(P)$(Q)fp6Name.OUT","$(P)$(Q)fpSelect.SXST")
#! Visibility("$(P)$(Q)fp6Name.VAL",2)
#! Record("$(P)$(Q)fp7Name",440,2135,0,0,"$(P)$(Q)fp7Name")
#! Field("$(P)$(Q)fp7Name.OUT",16777215,1,"$(P)$(Q)fp7Name.OUT")
#! Link("$(P)$(Q)fp7Name.OUT","$(P)$(Q)fpSelect.SVST")
#! Visibility("$(P)$(Q)fp7Name.VAL",2)
#! Record("$(P)$(Q)fp8Name",440,2235,0,0,"$(P)$(Q)fp8Name")
#! Field("$(P)$(Q)fp8Name.OUT",16777215,1,"$(P)$(Q)fp8Name.OUT")
#! Link("$(P)$(Q)fp8Name.OUT","$(P)$(Q)fpSelect.EIST")
#! Visibility("$(P)$(Q)fp8Name.VAL",2)
#! Record("$(P)$(Q)fp9Name",440,2355,0,0,"$(P)$(Q)fp9Name")
#! Field("$(P)$(Q)fp9Name.OUT",16777215,1,"$(P)$(Q)fp9Name.OUT")
#! Link("$(P)$(Q)fp9Name.OUT","$(P)$(Q)fpSelect.NIST")
#! Visibility("$(P)$(Q)fp9Name.VAL",2)
#! Record("$(P)$(Q)fpInit",100,855,0,1,"$(P)$(Q)fpInit")
#! Field("$(P)$(Q)fpInit.LNK1",16777215,1,"$(P)$(Q)fpInit.LNK1")
#! Link("$(P)$(Q)fpInit.LNK1","$(P)$(Q)fp0Name")
#! Field("$(P)$(Q)fpInit.LNK2",16777215,1,"$(P)$(Q)fpInit.LNK2")
#! Link("$(P)$(Q)fpInit.LNK2","$(P)$(Q)fp1Name")
#! Field("$(P)$(Q)fpInit.LNK3",16777215,1,"$(P)$(Q)fpInit.LNK3")
#! Link("$(P)$(Q)fpInit.LNK3","$(P)$(Q)fp2Name")
#! Field("$(P)$(Q)fpInit.LNK4",16777215,1,"$(P)$(Q)fpInit.LNK4")
#! Link("$(P)$(Q)fpInit.LNK4","$(P)$(Q)fp3Name")
#! Field("$(P)$(Q)fpInit.LNK5",16777215,1,"$(P)$(Q)fpInit.LNK5")
#! Link("$(P)$(Q)fpInit.LNK5","$(P)$(Q)fp4Name")
#! Field("$(P)$(Q)fpInit.LNK6",16777215,1,"$(P)$(Q)fpInit.LNK6")
#! Link("$(P)$(Q)fpInit.LNK6","$(P)$(Q)fp5Name")
#! Field("$(P)$(Q)fpInit.FLNK",16777215,0,"$(P)$(Q)fpInit.FLNK")
#! Link("$(P)$(Q)fpInit.FLNK","$(P)$(Q)fpInit1")
#! Record("$(P)$(Q)fpInit1",100,1170,0,0,"$(P)$(Q)fpInit1")
#! Field("$(P)$(Q)fpInit1.LNK1",16777215,1,"$(P)$(Q)fpInit1.LNK1")
#! Link("$(P)$(Q)fpInit1.LNK1","$(P)$(Q)fp6Name")
#! Field("$(P)$(Q)fpInit1.LNK2",16777215,1,"$(P)$(Q)fpInit1.LNK2")
#! Link("$(P)$(Q)fpInit1.LNK2","$(P)$(Q)fp7Name")
#! Field("$(P)$(Q)fpInit1.LNK3",16777215,1,"$(P)$(Q)fpInit1.LNK3")
#! Link("$(P)$(Q)fpInit1.LNK3","$(P)$(Q)fp8Name")
#! Field("$(P)$(Q)fpInit1.LNK4",16777215,1,"$(P)$(Q)fpInit1.LNK4")
#! Link("$(P)$(Q)fpInit1.LNK4","$(P)$(Q)fp9Name")
#! Field("$(P)$(Q)fpInit1.LNK5",16777215,1,"$(P)$(Q)fpInit1.LNK5")
#! Link("$(P)$(Q)fpInit1.LNK5","$(P)$(Q)fpSelect")
#! Record("$(P)$(Q):x",2300,740,0,1,"$(P)$(Q):x")
#! Field("$(P)$(Q):x.RDBL",16777215,1,"$(P)$(Q):x.RDBL")
#! Link("$(P)$(Q):x.RDBL","$(P)$(Q):x/RDBL")
#! Field("$(P)$(Q):x.OUT",16777215,1,"$(P)$(Q):x.OUT")
#! Link("$(P)$(Q):x.OUT","$(P)$(Q):x/OUT")
#! Field("$(P)$(Q):x.HLM",16777215,0,"$(P)$(Q):x.HLM")
#! Field("$(P)$(Q):x.DINP",16737792,0,"$(P)$(Q):x.DINP")
#! Link("$(P)$(Q):x.DINP","$(P)$(Q):x/DINP")
#! Field("$(P)$(Q):x.LLM",16777215,0,"$(P)$(Q):x.LLM")
#! Field("$(P)$(Q):x.LOCK",52428,0,"$(P)$(Q):x.LOCK")
#! Connector("$(P)$(Q):x/DINP","$(P)$(Q):done.VAL",2200,860,16737792,"",0)
#! Field("$(P)$(Q):x.SYNC",13369548,0,"$(P)$(Q):x.SYNC")
#! Connector("$(P)$(Q):x/OUT","$(P)$(T).X",2560,1000,16777215,"",0)
#! Connector("$(P)$(Q):x/RDBL","$(P)$(T).EX",2580,980,16777215,"",0)
#! Record("$(P)$(Q):writeMotors",3080,960,0,1,"$(P)$(Q):writeMotors")
#! Field("$(P)$(Q):writeMotors.PROC",16777215,1,"$(P)$(Q):writeMotors.PROC")
#! Field("$(P)$(Q):writeMotors.LNK1",16777215,1,"$(P)$(Q):writeMotors.LNK1")
#! Link("$(P)$(Q):writeMotors.LNK1","$(P)$(Q):startMove.DO1")
#! Field("$(P)$(Q):writeMotors.LNK2",16777215,1,"$(P)$(Q):writeMotors.LNK2")
#! Field("$(P)$(Q):writeMotors.LNK3",16777215,1,"$(P)$(Q):writeMotors.LNK3")
#! Field("$(P)$(Q):writeMotors.LNK4",16777215,1,"$(P)$(Q):writeMotors.LNK4")
#! Field("$(P)$(Q):writeMotors.LNK5",16777215,1,"$(P)$(Q):writeMotors.LNK5")
#! Field("$(P)$(Q):writeMotors.LNK6",16777215,1,"$(P)$(Q):writeMotors.LNK6")
#! Field("$(P)$(Q):writeMotors.LNK7",16777215,1,"$(P)$(Q):writeMotors.LNK7")
#! Field("$(P)$(Q):writeMotors.LNK8",16777215,0,"$(P)$(Q):writeMotors.LNK8")
#! Link("$(P)$(Q):writeMotors.LNK8","$(P)$(Q):valuesWritten.VAL")
#! Field("$(P)$(Q):writeMotors.DOL2",16777215,0,"$(P)$(Q):writeMotors.DOL2")
#! Link("$(P)$(Q):writeMotors.DOL2","$(P)$(Q):writeMotors/DOL2")
#! Field("$(P)$(Q):writeMotors.DOL3",16777215,0,"$(P)$(Q):writeMotors.DOL3")
#! Link("$(P)$(Q):writeMotors.DOL3","$(P)$(Q):writeMotors/DOL3")
#! Field("$(P)$(Q):writeMotors.DOL4",16777215,0,"$(P)$(Q):writeMotors.DOL4")
#! Link("$(P)$(Q):writeMotors.DOL4","$(P)$(T).M1Y")
#! Field("$(P)$(Q):writeMotors.DOL5",16777215,0,"$(P)$(Q):writeMotors.DOL5")
#! Link("$(P)$(Q):writeMotors.DOL5","$(P)$(Q):writeMotors/DOL5")
#! Field("$(P)$(Q):writeMotors.DOL6",16777215,0,"$(P)$(Q):writeMotors.DOL6")
#! Link("$(P)$(Q):writeMotors.DOL6","$(P)$(Q):writeMotors/DOL6")
#! Field("$(P)$(Q):writeMotors.DOL7",16777215,0,"$(P)$(Q):writeMotors.DOL7")
#! Link("$(P)$(Q):writeMotors.DOL7","$(P)$(Q):writeMotors/DOL7")
#! Connector("$(P)$(Q):writeMotors/DOL2","$(P)$(T).M0X",2920,1270,16777215,"",0)
#! Connector("$(P)$(Q):writeMotors/DOL3","$(P)$(T).M0Y",2900,1390,16777215,"",0)
#! Connector("$(P)$(Q):writeMotors/DOL7","$(P)$(T).M2Z",2920,1870,16777215,"",0)
#! Connector("$(P)$(Q):writeMotors/DOL6","$(P)$(T).M2Y",2900,1750,16777215,"",0)
#! Connector("$(P)$(Q):writeMotors/DOL5","$(P)$(T).M2X",2880,1630,16777215,"",0)
#! Visibility("$(P)$(Q):writeMotors.DO1",1)
#! Record("$(P)$(Q):isSoftMove",1760,2300,0,1,"$(P)$(Q):isSoftMove")
#! Field("$(P)$(Q):isSoftMove.VAL",16777215,0,"$(P)$(Q):isSoftMove.VAL")
#! Field("$(P)$(Q):isSoftMove.OUT",16777215,1,"$(P)$(Q):isSoftMove.OUT")
#! Link("$(P)$(Q):isSoftMove.OUT","$(P)$(Q):isSoftFan.VAL")
#! Record("$(P)$(Q):isSoftFan",2020,2270,0,1,"$(P)$(Q):isSoftFan")
#! Field("$(P)$(Q):isSoftFan.VAL",16777215,0,"$(P)$(Q):isSoftFan.VAL")
#! Field("$(P)$(Q):isSoftFan.OUTA",52428,1,"$(P)$(Q):isSoftFan.OUTA")
#! Link("$(P)$(Q):isSoftFan.OUTA","$(P)$(Q):isSoftFan/OUTA")
#! Field("$(P)$(Q):isSoftFan.OUTB",52428,1,"$(P)$(Q):isSoftFan.OUTB")
#! Link("$(P)$(Q):isSoftFan.OUTB","$(P)$(Q):isSoftFan/OUTB")
#! Field("$(P)$(Q):isSoftFan.OUTC",52428,1,"$(P)$(Q):isSoftFan.OUTC")
#! Link("$(P)$(Q):isSoftFan.OUTC","$(P)$(Q):isSoftFan/OUTC")
#! Field("$(P)$(Q):isSoftFan.OUTD",52428,1,"$(P)$(Q):isSoftFan.OUTD")
#! Link("$(P)$(Q):isSoftFan.OUTD","$(P)$(Q):isSoftFan/OUTD")
#! Field("$(P)$(Q):isSoftFan.OUTE",52428,1,"$(P)$(Q):isSoftFan.OUTE")
#! Link("$(P)$(Q):isSoftFan.OUTE","$(P)$(Q):isSoftFan/OUTE")
#! Field("$(P)$(Q):isSoftFan.OUTF",52428,1,"$(P)$(Q):isSoftFan.OUTF")
#! Link("$(P)$(Q):isSoftFan.OUTF","$(P)$(Q):isSoftFan/OUTF")
#! Connector("$(P)$(Q):isSoftFan/OUTA","$(P)$(Q):x.LOCK",2240,1750,52428,"",0)
#! Connector("$(P)$(Q):isSoftFan/OUTB","$(P)$(Q):y.LOCK",2240,1870,52428,"",0)
#! Connector("$(P)$(Q):isSoftFan/OUTC","$(P)$(Q):z.LOCK",2240,2000,52428,"",0)
#! Connector("$(P)$(Q):isSoftFan/OUTD","$(P)$(Q):ax.LOCK",2240,2130,52428,"",0)
#! Connector("$(P)$(Q):isSoftFan/OUTE","$(P)$(Q):ay.LOCK",2240,2260,52428,"",0)
#! Connector("$(P)$(Q):isSoftFan/OUTF","$(P)$(Q):az.LOCK",2240,2390,52428,"",0)
#! Record("$(P)$(Q):y",2300,965,0,1,"$(P)$(Q):y")
#! Field("$(P)$(Q):y.RDBL",16777215,1,"$(P)$(Q):y.RDBL")
#! Link("$(P)$(Q):y.RDBL","$(P)$(Q):y/RDBL")
#! Field("$(P)$(Q):y.OUT",16777215,1,"$(P)$(Q):y.OUT")
#! Link("$(P)$(Q):y.OUT","$(P)$(Q):y/OUT")
#! Field("$(P)$(Q):y.HLM",16777215,0,"$(P)$(Q):y.HLM")
#! Field("$(P)$(Q):y.DINP",16737792,0,"$(P)$(Q):y.DINP")
#! Link("$(P)$(Q):y.DINP","$(P)$(Q):y/DINP")
#! Field("$(P)$(Q):y.LOCK",52428,0,"$(P)$(Q):y.LOCK")
#! Field("$(P)$(Q):y.LLM",16777215,0,"$(P)$(Q):y.LLM")
#! Connector("$(P)$(Q):y/DINP","$(P)$(Q):done.VAL",2200,980,16737792,"",0)
#! Field("$(P)$(Q):y.SYNC",13369548,0,"$(P)$(Q):y.SYNC")
#! Connector("$(P)$(Q):y/OUT","$(P)$(T).Y",2560,1230,16777215,"",0)
#! Connector("$(P)$(Q):y/RDBL","$(P)$(T).EY",2580,1210,16777215,"",0)
#! Record("$(P)$(Q):z",2300,1205,0,1,"$(P)$(Q):z")
#! Field("$(P)$(Q):z.RDBL",16777215,1,"$(P)$(Q):z.RDBL")
#! Link("$(P)$(Q):z.RDBL","$(P)$(T).EZ")
#! Field("$(P)$(Q):z.OUT",16777215,1,"$(P)$(Q):z.OUT")
#! Link("$(P)$(Q):z.OUT","$(P)$(Q):z/OUT")
#! Field("$(P)$(Q):z.HLM",16777215,0,"$(P)$(Q):z.HLM")
#! Field("$(P)$(Q):z.DINP",16737792,0,"$(P)$(Q):z.DINP")
#! Link("$(P)$(Q):z.DINP","$(P)$(Q):z/DINP")
#! Field("$(P)$(Q):z.LOCK",52428,0,"$(P)$(Q):z.LOCK")
#! Field("$(P)$(Q):z.LLM",16777215,0,"$(P)$(Q):z.LLM")
#! Connector("$(P)$(Q):z/DINP","$(P)$(Q):done.VAL",2200,1100,16737792,"",0)
#! Field("$(P)$(Q):z.SYNC",13369548,0,"$(P)$(Q):z.SYNC")
#! Connector("$(P)$(Q):z/OUT","$(P)$(T).Z",2560,1460,16777215,"",0)
#! Record("$(P)$(Q):ax",2300,1445,0,1,"$(P)$(Q):ax")
#! Field("$(P)$(Q):ax.RDBL",16777215,1,"$(P)$(Q):ax.RDBL")
#! Link("$(P)$(Q):ax.RDBL","$(P)$(T).EAX")
#! Field("$(P)$(Q):ax.OUT",16777215,1,"$(P)$(Q):ax.OUT")
#! Link("$(P)$(Q):ax.OUT","$(P)$(T).AX")
#! Field("$(P)$(Q):ax.HLM",16777215,0,"$(P)$(Q):ax.HLM")
#! Field("$(P)$(Q):ax.DINP",16737792,0,"$(P)$(Q):ax.DINP")
#! Link("$(P)$(Q):ax.DINP","$(P)$(Q):ax/DINP")
#! Field("$(P)$(Q):ax.LOCK",52428,0,"$(P)$(Q):ax.LOCK")
#! Field("$(P)$(Q):ax.LLM",16777215,0,"$(P)$(Q):ax.LLM")
#! Connector("$(P)$(Q):ax/DINP","$(P)$(Q):done.VAL",2200,1220,16737792,"",0)
#! Field("$(P)$(Q):ax.SYNC",13369548,0,"$(P)$(Q):ax.SYNC")
#! Record("$(P)$(Q):ay",2300,1685,0,1,"$(P)$(Q):ay")
#! Field("$(P)$(Q):ay.RDBL",16777215,1,"$(P)$(Q):ay.RDBL")
#! Link("$(P)$(Q):ay.RDBL","$(P)$(Q):ay/RDBL")
#! Field("$(P)$(Q):ay.OUT",16777215,1,"$(P)$(Q):ay.OUT")
#! Link("$(P)$(Q):ay.OUT","$(P)$(Q):ay/OUT")
#! Field("$(P)$(Q):ay.HLM",16777215,0,"$(P)$(Q):ay.HLM")
#! Field("$(P)$(Q):ay.DINP",16737792,0,"$(P)$(Q):ay.DINP")
#! Link("$(P)$(Q):ay.DINP","$(P)$(Q):ay/DINP")
#! Field("$(P)$(Q):ay.LOCK",52428,0,"$(P)$(Q):ay.LOCK")
#! Field("$(P)$(Q):ay.LLM",16777215,0,"$(P)$(Q):ay.LLM")
#! Connector("$(P)$(Q):ay/DINP","$(P)$(Q):done.VAL",2200,1340,16737792,"",0)
#! Field("$(P)$(Q):ay.SYNC",13369548,0,"$(P)$(Q):ay.SYNC")
#! Connector("$(P)$(Q):ay/RDBL","$(P)$(T).EAY",2560,1900,16777215,"",0)
#! Connector("$(P)$(Q):ay/OUT","$(P)$(T).AY",2580,1920,16777215,"",0)
#! Record("$(P)$(Q):az",2300,1925,0,1,"$(P)$(Q):az")
#! Field("$(P)$(Q):az.RDBL",16777215,1,"$(P)$(Q):az.RDBL")
#! Link("$(P)$(Q):az.RDBL","$(P)$(Q):az/RDBL")
#! Field("$(P)$(Q):az.OUT",16777215,1,"$(P)$(Q):az.OUT")
#! Link("$(P)$(Q):az.OUT","$(P)$(Q):az/OUT")
#! Field("$(P)$(Q):az.HLM",16777215,0,"$(P)$(Q):az.HLM")
#! Field("$(P)$(Q):az.DINP",16737792,0,"$(P)$(Q):az.DINP")
#! Link("$(P)$(Q):az.DINP","$(P)$(Q):az/DINP")
#! Field("$(P)$(Q):az.LOCK",52428,0,"$(P)$(Q):az.LOCK")
#! Field("$(P)$(Q):az.LLM",16777215,0,"$(P)$(Q):az.LLM")
#! Connector("$(P)$(Q):az/DINP","$(P)$(Q):done.VAL",2200,1460,16737792,"",0)
#! Field("$(P)$(Q):az.SYNC",13369548,0,"$(P)$(Q):az.SYNC")
#! Connector("$(P)$(Q):az/RDBL","$(P)$(T).EAZ",2560,2130,16777215,"",0)
#! Connector("$(P)$(Q):az/OUT","$(P)$(T).AZ",2580,2150,16777215,"",0)
#! Record("$(P)$(Q):axHlimCopy",1920,1580,0,1,"$(P)$(Q):axHlimCopy")
#! Field("$(P)$(Q):axHlimCopy.DOL",16777215,1,"$(P)$(Q):axHlimCopy.DOL")
#! Link("$(P)$(Q):axHlimCopy.DOL","$(P)$(Q):axHlimCopy/DOL1")
#! Field("$(P)$(Q):axHlimCopy.OUT",16777215,1,"$(P)$(Q):axHlimCopy.OUT")
#! Link("$(P)$(Q):axHlimCopy.OUT","$(P)$(Q):axHlimCopy/OUT")
#! Connector("$(P)$(Q):axHlimCopy/DOL","$(P)$(T).HLAX",2395,1580,16777215,"",0)
#! Connector("$(P)$(Q):axHlimCopy/DOL1","$(P)$(Q):axHlimCopy/DOL",2180,1635,16777215,"",0)
#! Connector("$(P)$(Q):axHlimCopy/OUT","$(P)$(Q):ax.HLM",2180,1710,16777215,"",0)
#! Record("$(P)$(Q):axLlimCopy",1920,1680,0,1,"$(P)$(Q):axLlimCopy")
#! Field("$(P)$(Q):axLlimCopy.OUT",16777215,1,"$(P)$(Q):axLlimCopy.OUT")
#! Link("$(P)$(Q):axLlimCopy.OUT","$(P)$(Q):axLlimCopy/OUT")
#! Field("$(P)$(Q):axLlimCopy.DOL",16777215,1,"$(P)$(Q):axLlimCopy.DOL")
#! Link("$(P)$(Q):axLlimCopy.DOL","$(P)$(T).LLAX")
#! Connector("$(P)$(Q):axLlimCopy/OUT","$(P)$(Q):ax.LLM",2200,1780,16777215,"",0)
#! Record("$(P)$(Q):xHlimCopy",1920,860,0,1,"$(P)$(Q):xHlimCopy")
#! Field("$(P)$(Q):xHlimCopy.DOL",16777215,1,"$(P)$(Q):xHlimCopy.DOL")
#! Link("$(P)$(Q):xHlimCopy.DOL","$(P)$(Q):xHlimCopy/DOL1")
#! Field("$(P)$(Q):xHlimCopy.OUT",16777215,1,"$(P)$(Q):xHlimCopy.OUT")
#! Link("$(P)$(Q):xHlimCopy.OUT","$(P)$(Q):x.HLM")
#! Connector("$(P)$(Q):xHlimCopy/DOL","$(P)$(T).HLX",2395,860,16777215,"",0)
#! Connector("$(P)$(Q):xHlimCopy/DOL1","$(P)$(Q):xHlimCopy/DOL",2180,915,16777215,"",0)
#! Record("$(P)$(Q):xLlimCopy",1920,960,0,1,"$(P)$(Q):xLlimCopy")
#! Field("$(P)$(Q):xLlimCopy.OUT",16777215,1,"$(P)$(Q):xLlimCopy.OUT")
#! Link("$(P)$(Q):xLlimCopy.OUT","$(P)$(Q):xLlimCopy/OUT")
#! Field("$(P)$(Q):xLlimCopy.DOL",16777215,1,"$(P)$(Q):xLlimCopy.DOL")
#! Link("$(P)$(Q):xLlimCopy.DOL","$(P)$(T).LLX")
#! Connector("$(P)$(Q):xLlimCopy/OUT","$(P)$(Q):x.LLM",2180,1050,16777215,"",0)
#! Record("$(P)$(Q):yHlimCopy",1920,1100,0,1,"$(P)$(Q):yHlimCopy")
#! Field("$(P)$(Q):yHlimCopy.DOL",16777215,1,"$(P)$(Q):yHlimCopy.DOL")
#! Link("$(P)$(Q):yHlimCopy.DOL","$(P)$(Q):yHlimCopy/DOL1")
#! Field("$(P)$(Q):yHlimCopy.OUT",16777215,1,"$(P)$(Q):yHlimCopy.OUT")
#! Link("$(P)$(Q):yHlimCopy.OUT","$(P)$(Q):y.HLM")
#! Connector("$(P)$(Q):yHlimCopy/DOL","$(P)$(T).HLY",2395,1100,16777215,"",0)
#! Connector("$(P)$(Q):yHlimCopy/DOL1","$(P)$(Q):yHlimCopy/DOL",2180,1155,16777215,"",0)
#! Record("$(P)$(Q):yLlimCopy",1920,1200,0,1,"$(P)$(Q):yLlimCopy")
#! Field("$(P)$(Q):yLlimCopy.OUT",16777215,1,"$(P)$(Q):yLlimCopy.OUT")
#! Link("$(P)$(Q):yLlimCopy.OUT","$(P)$(Q):yLlimCopy/OUT")
#! Field("$(P)$(Q):yLlimCopy.DOL",16777215,1,"$(P)$(Q):yLlimCopy.DOL")
#! Link("$(P)$(Q):yLlimCopy.DOL","$(P)$(T).LLY")
#! Connector("$(P)$(Q):yLlimCopy/OUT","$(P)$(Q):y.LLM",2200,1300,16777215,"",0)
#! Record("$(P)$(Q):zHlimCopy",1920,1340,0,1,"$(P)$(Q):zHlimCopy")
#! Field("$(P)$(Q):zHlimCopy.DOL",16777215,1,"$(P)$(Q):zHlimCopy.DOL")
#! Link("$(P)$(Q):zHlimCopy.DOL","$(P)$(Q):zHlimCopy/DOL1")
#! Field("$(P)$(Q):zHlimCopy.OUT",16777215,1,"$(P)$(Q):zHlimCopy.OUT")
#! Link("$(P)$(Q):zHlimCopy.OUT","$(P)$(Q):zHlimCopy/OUT")
#! Connector("$(P)$(Q):zHlimCopy/DOL","$(P)$(T).HLZ",2395,1340,16777215,"",0)
#! Connector("$(P)$(Q):zHlimCopy/DOL1","$(P)$(Q):zHlimCopy/DOL",2180,1395,16777215,"",0)
#! Connector("$(P)$(Q):zHlimCopy/OUT","$(P)$(Q):z.HLM",2180,1470,16777215,"",0)
#! Record("$(P)$(Q):zLlimCopy",1920,1440,0,1,"$(P)$(Q):zLlimCopy")
#! Field("$(P)$(Q):zLlimCopy.OUT",16777215,1,"$(P)$(Q):zLlimCopy.OUT")
#! Link("$(P)$(Q):zLlimCopy.OUT","$(P)$(Q):zLlimCopy/OUT")
#! Field("$(P)$(Q):zLlimCopy.DOL",16777215,1,"$(P)$(Q):zLlimCopy.DOL")
#! Link("$(P)$(Q):zLlimCopy.DOL","$(P)$(T).LLZ")
#! Connector("$(P)$(Q):zLlimCopy/OUT","$(P)$(Q):z.LLM",2200,1540,16777215,"",0)
#! Record("$(P)$(Q):ayHlimCopy",1920,1820,0,1,"$(P)$(Q):ayHlimCopy")
#! Field("$(P)$(Q):ayHlimCopy.DOL",16777215,1,"$(P)$(Q):ayHlimCopy.DOL")
#! Link("$(P)$(Q):ayHlimCopy.DOL","$(P)$(Q):ayHlimCopy/DOL1")
#! Field("$(P)$(Q):ayHlimCopy.OUT",16777215,1,"$(P)$(Q):ayHlimCopy.OUT")
#! Link("$(P)$(Q):ayHlimCopy.OUT","$(P)$(Q):ayHlimCopy/OUT")
#! Connector("$(P)$(Q):ayHlimCopy/DOL","$(P)$(T).HLAY",2395,1820,16777215,"",0)
#! Connector("$(P)$(Q):ayHlimCopy/DOL1","$(P)$(Q):ayHlimCopy/DOL",2180,1875,16777215,"",0)
#! Connector("$(P)$(Q):ayHlimCopy/OUT","$(P)$(Q):ay.HLM",2180,1950,16777215,"",0)
#! Record("$(P)$(Q):ayLlimCopy",1920,1920,0,1,"$(P)$(Q):ayLlimCopy")
#! Field("$(P)$(Q):ayLlimCopy.OUT",16777215,1,"$(P)$(Q):ayLlimCopy.OUT")
#! Link("$(P)$(Q):ayLlimCopy.OUT","$(P)$(Q):ayLlimCopy/OUT")
#! Field("$(P)$(Q):ayLlimCopy.DOL",16777215,1,"$(P)$(Q):ayLlimCopy.DOL")
#! Link("$(P)$(Q):ayLlimCopy.DOL","$(P)$(T).LLAY")
#! Connector("$(P)$(Q):ayLlimCopy/OUT","$(P)$(Q):ay.LLM",2200,2020,16777215,"",0)
#! Record("$(P)$(Q):azHlimCopy",1920,2060,0,1,"$(P)$(Q):azHlimCopy")
#! Field("$(P)$(Q):azHlimCopy.DOL",16777215,1,"$(P)$(Q):azHlimCopy.DOL")
#! Link("$(P)$(Q):azHlimCopy.DOL","$(P)$(Q):azHlimCopy/DOL1")
#! Field("$(P)$(Q):azHlimCopy.OUT",16777215,1,"$(P)$(Q):azHlimCopy.OUT")
#! Link("$(P)$(Q):azHlimCopy.OUT","$(P)$(Q):azHlimCopy/OUT")
#! Connector("$(P)$(Q):azHlimCopy/DOL","$(P)$(T).HLAZ",2395,2060,16777215,"",0)
#! Connector("$(P)$(Q):azHlimCopy/DOL1","$(P)$(Q):azHlimCopy/DOL",2180,2115,16777215,"",0)
#! Connector("$(P)$(Q):azHlimCopy/OUT","$(P)$(Q):az.HLM",2180,2190,16777215,"",0)
#! Record("$(P)$(Q):azLlimCopy",1920,2160,0,1,"$(P)$(Q):azLlimCopy")
#! Field("$(P)$(Q):azLlimCopy.OUT",16777215,1,"$(P)$(Q):azLlimCopy.OUT")
#! Link("$(P)$(Q):azLlimCopy.OUT","$(P)$(Q):azLlimCopy/OUT")
#! Field("$(P)$(Q):azLlimCopy.DOL",16777215,1,"$(P)$(Q):azLlimCopy.DOL")
#! Link("$(P)$(Q):azLlimCopy.DOL","$(P)$(T).LLAZ")
#! Connector("$(P)$(Q):azLlimCopy/OUT","$(P)$(Q):az.LLM",2200,2260,16777215,"",0)
#! Record("$(P)$(Q):startMove",3360,1265,0,1,"$(P)$(Q):startMove")
#! Field("$(P)$(Q):startMove.DO1",16777215,0,"$(P)$(Q):startMove.DO1")
#! Field("$(P)$(Q):startMove.LNK3",16777215,1,"$(P)$(Q):startMove.LNK3")
#! Link("$(P)$(Q):startMove.LNK3","$(P)$(Q):gate.VAL")
#! Field("$(P)$(Q):startMove.LNK1",16777215,1,"$(P)$(Q):startMove.LNK1")
#! Link("$(P)$(Q):startMove.LNK1","$(P)$(Q):startMove/LNK11")
#! Connector("$(P)$(Q):startMove/LNK1","$(P)$(Q):startMove/LNK12",2640,2460,16777215,"",0)
#! Connector("$(P)$(Q):startMove/LNK11","$(P)$(Q):startMove/LNK1",3580,1945,16777215,"",0)
#! Connector("$(P)$(Q):startMove/LNK12","$(P)$(Q):isSoftMove.VAL",1700,2435,16777215,"",0)
#! Visibility("$(P)$(Q):startMove.DO2",1)
#! Visibility("$(P)$(Q):startMove.DOL3",1)
#! Record("$(P)$(Q):endMove",1960,685,0,1,"$(P)$(Q):endMove")
#! Field("$(P)$(Q):endMove.PROC",16777215,0,"$(P)$(Q):endMove.PROC")
#! Field("$(P)$(Q):endMove.LNK3",16777215,1,"$(P)$(Q):endMove.LNK3")
#! Link("$(P)$(Q):endMove.LNK3","$(P)$(T).READ")
#! Field("$(P)$(Q):endMove.LNK4",16777215,0,"$(P)$(Q):endMove.LNK4")
#! Link("$(P)$(Q):endMove.LNK4","$(P)$(Q):endMove/LNK4")
#! Connector("$(P)$(Q):endMove/LNK4","$(P)$(Q):isSoftMove.VAL",1700,1630,16777215,"",0)
#! Visibility("$(P)$(Q):endMove.DO3",1)
#! Visibility("$(P)$(Q):endMove.DO4",1)
#! Record("$(P)$(Q):dmov",1000,370,0,1,"$(P)$(Q):dmov")
#! Field("$(P)$(Q):dmov.INDV",16777215,1,"$(P)$(Q):dmov.INDV")
#! Field("$(P)$(Q):dmov.D",16777215,1,"$(P)$(Q):dmov.D")
#! Field("$(P)$(Q):dmov.INCV",16777215,1,"$(P)$(Q):dmov.INCV")
#! Field("$(P)$(Q):dmov.C",16777215,1,"$(P)$(Q):dmov.C")
#! Field("$(P)$(Q):dmov.INBV",16777215,1,"$(P)$(Q):dmov.INBV")
#! Field("$(P)$(Q):dmov.B",16777215,1,"$(P)$(Q):dmov.B")
#! Field("$(P)$(Q):dmov.INAV",16777215,1,"$(P)$(Q):dmov.INAV")
#! Field("$(P)$(Q):dmov.A",16777215,1,"$(P)$(Q):dmov.A")
#! Field("$(P)$(Q):dmov.INPA",16777215,1,"$(P)$(Q):dmov.INPA")
#! Field("$(P)$(Q):dmov.INPB",16777215,1,"$(P)$(Q):dmov.INPB")
#! Field("$(P)$(Q):dmov.INPC",16777215,1,"$(P)$(Q):dmov.INPC")
#! Field("$(P)$(Q):dmov.INPD",16777215,1,"$(P)$(Q):dmov.INPD")
#! Field("$(P)$(Q):dmov.INPE",16777215,1,"$(P)$(Q):dmov.INPE")
#! Field("$(P)$(Q):dmov.INPF",16777215,1,"$(P)$(Q):dmov.INPF")
#! Field("$(P)$(Q):dmov.INFV",16777215,1,"$(P)$(Q):dmov.INFV")
#! Field("$(P)$(Q):dmov.F",16777215,1,"$(P)$(Q):dmov.F")
#! Field("$(P)$(Q):dmov.INEV",16777215,1,"$(P)$(Q):dmov.INEV")
#! Field("$(P)$(Q):dmov.E",16777215,1,"$(P)$(Q):dmov.E")
#! Visibility("$(P)$(Q):dmov.DESC",2)
#! Visibility("$(P)$(Q):dmov.INPA",2)
#! Visibility("$(P)$(Q):dmov.INPB",2)
#! Visibility("$(P)$(Q):dmov.INPC",2)
#! Visibility("$(P)$(Q):dmov.INPD",2)
#! Visibility("$(P)$(Q):dmov.INPE",2)
#! Visibility("$(P)$(Q):dmov.INPF",2)
#! Record("$(P)$(Q):done2",1360,600,0,1,"$(P)$(Q):done2")
#! Field("$(P)$(Q):done2.INPA",16777215,0,"$(P)$(Q):done2.INPA")
#! Link("$(P)$(Q):done2.INPA","$(P)$(Q):done1.VAL")
#! Field("$(P)$(Q):done2.INPI",16777215,0,"$(P)$(Q):done2.INPI")
#! Link("$(P)$(Q):done2.INPI","$(P)$(Q):dmov.E")
#! Field("$(P)$(Q):done2.INPJ",16777215,0,"$(P)$(Q):done2.INPJ")
#! Link("$(P)$(Q):done2.INPJ","$(P)$(Q):dmov.INEV")
#! Field("$(P)$(Q):done2.INPK",16777215,0,"$(P)$(Q):done2.INPK")
#! Link("$(P)$(Q):done2.INPK","$(P)$(Q):dmov.F")
#! Field("$(P)$(Q):done2.INPL",16777215,0,"$(P)$(Q):done2.INPL")
#! Link("$(P)$(Q):done2.INPL","$(P)$(Q):dmov.INFV")
#! Field("$(P)$(Q):done2.VAL",16777215,1,"$(P)$(Q):done2.VAL")
#! Field("$(P)$(Q):done2.INPB",16777215,0,"$(P)$(Q):done2.INPB")
#! Link("$(P)$(Q):done2.INPB","$(P)$(Q):done2/INPB2")
#! Connector("$(P)$(Q):done2/INPB","$(P)$(Q):gate.VAL",3880,775,16777215,"",0)
#! Connector("$(P)$(Q):done2/INPB1","$(P)$(Q):done2/INPB",2570,140,16777215,"",0)
#! Connector("$(P)$(Q):done2/INPB2","$(P)$(Q):done2/INPB1",1260,475,16777215,"",0)
#! Visibility("$(P)$(Q):done2.CALC",2)
#! Visibility("$(P)$(Q):done2.INPA",2)
#! Visibility("$(P)$(Q):done2.INPI",2)
#! Visibility("$(P)$(Q):done2.INPJ",2)
#! Visibility("$(P)$(Q):done2.INPK",2)
#! Visibility("$(P)$(Q):done2.INPL",2)
#! Visibility("$(P)$(Q):done2.OUT",2)
#! Record("$(P)$(Q):done1",1360,370,0,1,"$(P)$(Q):done1")
#! Field("$(P)$(Q):done1.INPA",16777215,0,"$(P)$(Q):done1.INPA")
#! Link("$(P)$(Q):done1.INPA","$(P)$(Q):dmov.A")
#! Field("$(P)$(Q):done1.INPB",16777215,0,"$(P)$(Q):done1.INPB")
#! Link("$(P)$(Q):done1.INPB","$(P)$(Q):dmov.INAV")
#! Field("$(P)$(Q):done1.INPC",16777215,0,"$(P)$(Q):done1.INPC")
#! Link("$(P)$(Q):done1.INPC","$(P)$(Q):dmov.B")
#! Field("$(P)$(Q):done1.INPD",16777215,0,"$(P)$(Q):done1.INPD")
#! Link("$(P)$(Q):done1.INPD","$(P)$(Q):dmov.INBV")
#! Field("$(P)$(Q):done1.INPE",16777215,0,"$(P)$(Q):done1.INPE")
#! Link("$(P)$(Q):done1.INPE","$(P)$(Q):dmov.C")
#! Field("$(P)$(Q):done1.INPF",16777215,0,"$(P)$(Q):done1.INPF")
#! Link("$(P)$(Q):done1.INPF","$(P)$(Q):dmov.INCV")
#! Field("$(P)$(Q):done1.INPG",16777215,0,"$(P)$(Q):done1.INPG")
#! Link("$(P)$(Q):done1.INPG","$(P)$(Q):dmov.D")
#! Field("$(P)$(Q):done1.INPH",16777215,0,"$(P)$(Q):done1.INPH")
#! Link("$(P)$(Q):done1.INPH","$(P)$(Q):dmov.INDV")
#! Field("$(P)$(Q):done1.VAL",16777215,0,"$(P)$(Q):done1.VAL")
#! Visibility("$(P)$(Q):done1.CALC",2)
#! Visibility("$(P)$(Q):done1.INPA",2)
#! Visibility("$(P)$(Q):done1.INPB",2)
#! Visibility("$(P)$(Q):done1.INPC",2)
#! Visibility("$(P)$(Q):done1.INPD",2)
#! Visibility("$(P)$(Q):done1.INPE",2)
#! Visibility("$(P)$(Q):done1.INPF",2)
#! Visibility("$(P)$(Q):done1.INPG",2)
#! Visibility("$(P)$(Q):done1.INPH",2)
#! Record("$(P)$(Q):done",1660,565,0,1,"$(P)$(Q):done")
#! Field("$(P)$(Q):done.INPA",16777215,0,"$(P)$(Q):done.INPA")
#! Link("$(P)$(Q):done.INPA","$(P)$(Q):done2.VAL")
#! Field("$(P)$(Q):done.VAL",16777215,1,"$(P)$(Q):done.VAL")
#! Field("$(P)$(Q):done.OUT",16777215,1,"$(P)$(Q):done.OUT")
#! Link("$(P)$(Q):done.OUT","$(P)$(Q):endMove.PROC")
#! Visibility("$(P)$(Q):done.OOPT",1)
#! Record("$(P)$(Q):lastMotor",1280,700,0,1,"$(P)$(Q):lastMotor")
#! Field("$(P)$(Q):lastMotor.INPA",16777215,0,"$(P)$(Q):lastMotor.INPA")
#! Link("$(P)$(Q):lastMotor.INPA","$(P)$(Q):dmov.INAV")
#! Field("$(P)$(Q):lastMotor.INPB",16777215,0,"$(P)$(Q):lastMotor.INPB")
#! Link("$(P)$(Q):lastMotor.INPB","$(P)$(Q):dmov.INBV")
#! Field("$(P)$(Q):lastMotor.INPC",16777215,0,"$(P)$(Q):lastMotor.INPC")
#! Link("$(P)$(Q):lastMotor.INPC","$(P)$(Q):dmov.INCV")
#! Field("$(P)$(Q):lastMotor.INPD",16777215,0,"$(P)$(Q):lastMotor.INPD")
#! Link("$(P)$(Q):lastMotor.INPD","$(P)$(Q):dmov.INDV")
#! Field("$(P)$(Q):lastMotor.INPE",16777215,0,"$(P)$(Q):lastMotor.INPE")
#! Link("$(P)$(Q):lastMotor.INPE","$(P)$(Q):dmov.INEV")
#! Field("$(P)$(Q):lastMotor.INPF",16777215,0,"$(P)$(Q):lastMotor.INPF")
#! Link("$(P)$(Q):lastMotor.INPF","$(P)$(Q):dmov.INFV")
#! Field("$(P)$(Q):lastMotor.INAA",16777215,0,"$(P)$(Q):lastMotor.INAA")
#! Link("$(P)$(Q):lastMotor.INAA","$(P)$(Q):dmov.INPA")
#! Field("$(P)$(Q):lastMotor.INBB",16777215,0,"$(P)$(Q):lastMotor.INBB")
#! Link("$(P)$(Q):lastMotor.INBB","$(P)$(Q):dmov.INPB")
#! Field("$(P)$(Q):lastMotor.INCC",16777215,0,"$(P)$(Q):lastMotor.INCC")
#! Link("$(P)$(Q):lastMotor.INCC","$(P)$(Q):dmov.INPC")
#! Field("$(P)$(Q):lastMotor.INDD",16777215,0,"$(P)$(Q):lastMotor.INDD")
#! Link("$(P)$(Q):lastMotor.INDD","$(P)$(Q):dmov.INPD")
#! Field("$(P)$(Q):lastMotor.INEE",16777215,0,"$(P)$(Q):lastMotor.INEE")
#! Link("$(P)$(Q):lastMotor.INEE","$(P)$(Q):dmov.INPE")
#! Field("$(P)$(Q):lastMotor.INFF",16777215,0,"$(P)$(Q):lastMotor.INFF")
#! Link("$(P)$(Q):lastMotor.INFF","$(P)$(Q):dmov.INPF")
#! Field("$(P)$(Q):lastMotor.OUT",16777215,1,"$(P)$(Q):lastMotor.OUT")
#! Record("$(P)$(Q):closeGate",3560,1220,0,1,"$(P)$(Q):closeGate")
#! Field("$(P)$(Q):closeGate.OUT",16777215,1,"$(P)$(Q):closeGate.OUT")
#! Link("$(P)$(Q):closeGate.OUT","$(P)$(Q):gate.VAL")
#! Record("$(P)$(Q):gate",3620,1320,0,1,"$(P)$(Q):gate")
#! Field("$(P)$(Q):gate.VAL",16777215,1,"$(P)$(Q):gate.VAL")
#! TextBox(TB0,1280,900,1480,940,0,"Dialog",14,1,16777215,"Don't edit INAA, etc. links.",null)
#! TextBox(TB6,2680,500,2860,600,0,"Dialog",12,1,16777215,"standard table sizes:\ntype LX LZ\n-----------------------\noptical table 510 1080\ndiffractometer table 525 1225\n",null)
#! TextBox(TB5,3020,400,3220,440,0,"Dialog",36,1,16777215,"Geometry",null)
#! TextBox(TB4,2000,360,2220,420,0,"Dialog",36,1,16777215,"Sync, init",null)
#! TextBox(TB3,1040,1300,1140,1340,0,"Dialog",36,1,16777215,"Stop\n",null)
#! TextBox(TB2,2280,580,2540,620,0,"Dialog",36,1,16777215,"Periodic read",null)
#! TextBox(TB1,840,260,1240,320,0,"Dialog",36,1,16777215,"Check motors done",null)
#! TextBox(TB7,3560,1220,3720,1260,0,"Dialog",12,1,16777215,"INPA link written by\n$(P)$(Q):lastMotor",null)
#! Record("$(P)$(Q):setValuesWritten",3040,860,0,1,"$(P)$(Q):setValuesWritten")
#! Field("$(P)$(Q):setValuesWritten.PROC",16777215,0,"$(P)$(Q):setValuesWritten.PROC")
#! Field("$(P)$(Q):setValuesWritten.OUT",16777215,1,"$(P)$(Q):setValuesWritten.OUT")
#! Link("$(P)$(Q):setValuesWritten.OUT","$(P)$(Q):valuesWritten.VAL")
#! Record("$(P)$(Q):valuesWritten",3060,990,0,1,"$(P)$(Q):valuesWritten")
#! Field("$(P)$(Q):valuesWritten.VAL",16777215,1,"$(P)$(Q):valuesWritten.VAL")
#! Record("$(P)$(Q):ifValuesWritten",3080,1040,0,0,"$(P)$(Q):ifValuesWritten")
#! Field("$(P)$(Q):ifValuesWritten.SDIS",16777215,0,"$(P)$(Q):ifValuesWritten.SDIS")
#! Link("$(P)$(Q):ifValuesWritten.SDIS","$(P)$(Q):valuesWritten.VAL")
#! Field("$(P)$(Q):ifValuesWritten.OUT",16777215,1,"$(P)$(Q):ifValuesWritten.OUT")
#! Link("$(P)$(Q):ifValuesWritten.OUT","$(P)$(Q):ifValuesWritten/OUT")
#! Connector("$(P)$(Q):ifValuesWritten/OUT","$(P)$(Q):writeMotors.PROC",3300,1230,16777215,"",0)
#! Visibility("$(P)$(Q):ifValuesWritten.DISV",1)
#! Record("$(P)$(Q):syncMotors",1980,390,0,1,"$(P)$(Q):syncMotors")
#! Field("$(P)$(Q):syncMotors.OUTA",13369548,1,"$(P)$(Q):syncMotors.OUTA")
#! Link("$(P)$(Q):syncMotors.OUTA","$(P)$(Q):syncFan/OUTA")
#! Field("$(P)$(Q):syncMotors.OUTB",13369548,1,"$(P)$(Q):syncMotors.OUTB")
#! Link("$(P)$(Q):syncMotors.OUTB","$(P)$(Q):syncFan/OUTB")
#! Field("$(P)$(Q):syncMotors.OUTC",13369548,1,"$(P)$(Q):syncMotors.OUTC")
#! Link("$(P)$(Q):syncMotors.OUTC","$(P)$(Q):syncFan/OUTC")
#! Field("$(P)$(Q):syncMotors.OUTD",13369548,1,"$(P)$(Q):syncMotors.OUTD")
#! Link("$(P)$(Q):syncMotors.OUTD","$(P)$(Q):syncFan/OUTD")
#! Field("$(P)$(Q):syncMotors.OUTE",13369548,1,"$(P)$(Q):syncMotors.OUTE")
#! Link("$(P)$(Q):syncMotors.OUTE","$(P)$(Q):syncFan/OUTE")
#! Field("$(P)$(Q):syncMotors.OUTF",13369548,1,"$(P)$(Q):syncMotors.OUTF")
#! Link("$(P)$(Q):syncMotors.OUTF","$(P)$(Q):syncFan/OUTF")
#! Connector("$(P)$(Q):syncFan/OUTA","$(P)$(Q):x.SYNC",2220,810,13369548,"",0)
#! Connector("$(P)$(Q):syncFan/OUTB","$(P)$(Q):y.SYNC",2220,940,13369548,"",0)
#! Connector("$(P)$(Q):syncFan/OUTC","$(P)$(Q):z.SYNC",2220,1070,13369548,"",0)
#! Connector("$(P)$(Q):syncFan/OUTD","$(P)$(Q):ax.SYNC",2220,1200,13369548,"",0)
#! Connector("$(P)$(Q):syncFan/OUTE","$(P)$(Q):ay.SYNC",2220,1330,13369548,"",0)
#! Connector("$(P)$(Q):syncFan/OUTF","$(P)$(Q):az.SYNC",2220,1460,13369548,"",0)
#! Field("$(P)$(Q):syncMotors.VAL",16777215,0,"$(P)$(Q):syncMotors.VAL")
#! Record("$(P)$(Q):sync",1680,380,0,1,"$(P)$(Q):sync")
#! Field("$(P)$(Q):sync.OUTA",16777215,1,"$(P)$(Q):sync.OUTA")
#! Link("$(P)$(Q):sync.OUTA","$(P)$(Q):sync/OUTA")
#! Field("$(P)$(Q):sync.OUTB",16777215,1,"$(P)$(Q):sync.OUTB")
#! Link("$(P)$(Q):sync.OUTB","$(P)$(Q):syncMotors.VAL")
#! Connector("$(P)$(Q):sync/OUTA","$(P)$(T).SYNC",2560,640,16777215,"",0)
#! Record("$(P)$(Q):init",1680,260,0,1,"$(P)$(Q):init")
#! Field("$(P)$(Q):init.OUTA",16777215,1,"$(P)$(Q):init.OUTA")
#! Link("$(P)$(Q):init.OUTA","$(P)$(Q):init/OUTA")
#! Field("$(P)$(Q):init.OUTB",16777215,1,"$(P)$(Q):init.OUTB")
#! Link("$(P)$(Q):init.OUTB","$(P)$(Q):syncMotors.VAL")
#! Connector("$(P)$(Q):init/OUTA","$(P)$(T).INIT",2580,570,16777215,"",0)
#! Record("$(P)$(Q):zero",1680,140,0,1,"$(P)$(Q):zero")
#! Field("$(P)$(Q):zero.OUTA",16777215,1,"$(P)$(Q):zero.OUTA")
#! Link("$(P)$(Q):zero.OUTA","$(P)$(Q):zero/OUTA")
#! Field("$(P)$(Q):zero.OUTB",16777215,1,"$(P)$(Q):zero.OUTB")
#! Link("$(P)$(Q):zero.OUTB","$(P)$(Q):syncMotors.VAL")
#! Connector("$(P)$(Q):zero/OUTA","$(P)$(T).ZERO",2600,500,16777215,"",0)