######soft motor for MD2 record(motor,"$(P)Soft_x") { field(DTYP,"Soft Channel") field(DESC,"x Soft motor") field(OUT,"$(P)Convert_x.A PP MS") field(RDBL,"$(P)Convert_readback_x.C NPP MS") field(URIP,"Yes") field(STOO,"$(P)Stop_x.A PP MS") field(DINP,"$(P)Dmove_x.C NPP MS") field(MRES,"0.25") field(RRES,"1.000") field(PREC,"4") field(DHLM,"30000") field(DLLM,"-30030") field(TWV,"1") field(RTRY,"0") field(EGU,"um") } record(motor,"$(P)Soft_yaw") { field(DTYP,"Soft Channel") field(DESC,"yaw soft motor") field(OUT,"$(P)Convert_yaw.A PP MS") field(RDBL,"$(P)Convert_readback_yaw.C NPP MS") field(URIP,"Yes") field(STOO,"$(P)Stop_yaw.A PP MS") field(DINP,"$(P)Dmove_yaw.C NPP MS") field(MRES,"0.0001") field(RRES,"1.000") field(PREC,"7") field(DHLM,"4") field(DLLM,"-4.1") field(TWV,"0.001") field(RTRY,"0") field(EGU,"deg") } record(motor,"$(P)Soft_z") { field(DTYP,"Soft Channel") field(DESC,"z Soft motor") field(OUT,"$(P)Convert_z.A PP MS") field(RDBL,"$(P)Convert_readback_z.D NPP MS") field(URIP,"Yes") field(STOO,"$(P)Stop_z.A PP MS") field(DINP,"$(P)Dmove_z.D NPP MS") field(MRES,"0.25") field(RRES,"1.000") field(PREC,"5") field(DHLM,"28050") field(DLLM,"-28160") field(TWV,"1") field(RTRY,"0") field(EGU,"um") } record(motor,"$(P)Soft_pitch") { field(DTYP,"Soft Channel") field(DESC,"yaw soft motor") field(OUT,"$(P)Convert_pitch.A PP MS") field(RDBL,"$(P)Convert_readback_pitch.D NPP MS") field(URIP,"Yes") field(STOO,"$(P)Stop_pitch.A PP MS") field(DINP,"$(P)Dmove_pitch.D NPP MS") field(MRES,"0.0001") field(RRES,"1.000") field(PREC,"7") field(DHLM,"3.8") field(DLLM,"-3.8") field(TWV,"0.001") field(RTRY,"0") field(EGU,"deg") } record(motor,"$(P)Soft_roll") { field(DTYP,"Soft Channel") field(DESC,"yaw soft motor") field(OUT,"$(P)Convert_roll.A PP MS") field(RDBL,"$(P)Convert_readback_roll.C NPP MS") field(URIP,"Yes") field(STOO,"$(P)Stop_roll.A PP MS") field(DINP,"$(P)Dmove_roll.C NPP MS") field(MRES,"0.0001") field(RRES,"1.000") field(PREC,"7") field(DHLM,"0.99") field(DLLM,"-0.99") field(TWV,"0.001") field(RTRY,"0") field(EGU,"deg") } ######soft motor for detector record(motor,"$(P)Soft_DETD") { field(DTYP,"Soft Channel") field(DESC,"x Soft motor") field(OUT,"$(P)Convert_DETD.A PP MS") field(RDBL,"$(P)Convert_readback_DETD.C NPP MS") field(URIP,"Yes") field(STOO,"$(P)Stop_DETD.A PP MS") field(DINP,"$(P)Dmove_DETD.D NPP MS") field(MRES,"0.001") field(RRES,"1.000") field(PREC,"4") field(DHLM,"") field(DLLM,"") field(TWV,"1") field(RTRY,"0") field(EGU,"um") } record(motor,"$(P)Soft_DETtheta") { field(DTYP,"Soft Channel") field(DESC,"x Soft motor") field(OUT,"$(P)Convert_DETtheta.A PP MS") field(RDBL,"$(P)Convert_readback_DETtheta.C NPP MS") field(URIP,"Yes") field(STOO,"$(P)Stop_DETtheta.A PP MS") field(DINP,"$(P)Dmove_DETtheta.D NPP MS") field(MRES,"0.001") field(RRES,"1.000") field(PREC,"4") field(DHLM,"") field(DLLM,"") field(TWV,"1") field(RTRY,"0") field(EGU,"um") } ######DVAL tranform for MD2 record(transform,"$(P)Convert_x") { field(DESC,"Convert um to um") field(PREC,"4") field(CLCC,"-A-TAN(B/57.296)*825310/2") field(OUTC,"$(P)$(M1).DVAL PP MS") field(CLCD,"A-TAN(B/57.296)*825310/2") field(OUTD,"$(P)$(M2).DVAL PP MS") field(CLCE,"A") field(OUTE,"$(P)Convert_yaw.B PP MS") } record(transform,"$(P)Convert_yaw") { field(DESC,"Convert rotary to linear") field(PREC,"7") field(CLCC,"-B-TAN(A/57.296)*825310/2") field(OUTC,"$(P)$(M1).DVAL PP MS") field(CLCD,"B-TAN(A/57.296)*825310/2") field(OUTD,"$(P)$(M2).DVAL PP MS") field(CLCE,"A") field(OUTE,"$(P)Convert_x.B PP MS") } record(transform,"$(P)Convert_z") { field(DESC,"Convert um to um") field(PREC,"5") field(CLCD,"-A+TAN(C/57.296)*825310/2") field(OUTD,"$(P)$(M3).DVAL PP MS") field(CLCE,"-A+TAN(B/57.296)*420000/2") field(CLCF,"E-TAN(C/57.296)*825310/2") field(OUTF, "$(P)$(M4).DVAL PP MS") field(CLCG,"-A-TAN(B/57.296)*420000/2") field(CLCH,"G-TAN(C/57.296)*825310/2") field(OUTH,"$(P)$(M5).DVAL PP MS") field(CLCI,"A") field(OUTI,"$(P)Convert_roll.C PP MS") field(CLCJ,"A") field(OUTJ,"$(P)Convert_pitch.B PP MS") } record(transform,"$(P)Convert_pitch") { field(DESC,"Convert rotary to linear") field(PREC,"7") field(CLCD,"-B+TAN(A/57.296)*825310/2") field(OUTD,"$(P)$(M3).DVAL PP MS") field(CLCE,"-B+TAN(C/57.296)*420000/2") field(CLCF,"E-TAN(A/57.296)*825310/2") field(OUTF, "$(P)$(M4).DVAL PP MS") field(CLCG,"-B-TAN(C/57.296)*420000/2") field(CLCH,"G-TAN(A/57.296)*825310/2") field(OUTH,"$(P)$(M5).DVAL PP MS") field(CLCI,"A") field(OUTI,"$(P)Convert_roll.B PP MS") field(CLCJ,"A") field(OUTJ,"$(P)Convert_z.C PP MS") } record(transform,"$(P)Convert_roll") { field(DESC,"Convert rotary to linear") field(PREC,"7") field(CLCD,"-C+TAN(B/57.296)*825310/2") field(OUTD,"$(P)$(M3).DVAL PP MS") field(CLCE,"-C+TAN(A/57.296)*420000/2") field(CLCF,"E-TAN(B/57.296)*825310/2") field(OUTF,"$(P)$(M4).DVAL PP MS") field(CLCG,"-C-TAN(A/57.296)*420000/2") field(CLCH,"G-TAN(B/57.296)*825310/2") field(OUTH,"$(P)$(M5).DVAL PP MS") field(CLCI,"A") field(OUTI,"$(P)Convert_z.B PP MS") field(CLCJ,"A") field(OUTJ,"$(P)Convert_pitch.C PP MS") } ######DVAL tranform for detector record(transform,"$(P)Convert_DETD") { field(DESC,"Convert um to um") field(PREC,"4") field(CLCC,"(A+128200)*cos(B/57.296)+270000/2") field(OUTC,"$(P)$(M6).DVAL PP MS") field(CLCD,"(A+128200)*sin(B/57.296)") field(OUTD,"$(P)$(M7).DVAL PP MS") field(CLCE,"D+270000*tan(B/57.296)") field(OUTE,"$(P)$(M8).DVAL PP MS") field(CLCF,"A") field(OUTF,"$(P)Convert_DETtheta.B PP MS") } record(transform,"$(P)Convert_DETtheta") { field(DESC,"Convert um to um") field(PREC,"7") field(CLCC,"(B+128200)*cos(A/57.296)+270000/2") field(OUTC,"$(P)$(M6).DVAL PP MS") field(CLCD,"(B+128200)*sin(A/57.296)") field(OUTD,"$(P)$(M7).DVAL PP MS") field(CLCE,"D+270000*tan(A/57.296)") field(OUTE,"$(P)$(M8).DVAL PP MS") field(CLCF,"A") field(OUTF,"$(P)Convert_DETD.B PP MS") } ######readback transform for MD2 record(transform,"$(P)Convert_readback_x") { field(DESC,"Convert linear to linear") field(PREC,"5") field(CLCC,"(B-A)/2") field(CLCD,"C") field(INPA,"$(P)$(M1).DRBV CP MS") field(INPB,"$(P)$(M2).DRBV CP MS") field(OUTC,"$(P)Convert_x.A NPP MS") field(OUTD,"$(P)Convert_yaw.B NPP MS") } record(transform,"$(P)Convert_readback_yaw") { field(DESC,"Convert linear to rotary") field(PREC,"7") field(CLCC,"ATAN((-A-B)/825310)*57.296") field(CLCD,"C") field(INPA,"$(P)$(M1).DRBV CP MS") field(INPB,"$(P)$(M2).DRBV CP MS") field(OUTC,"$(P)Convert_yaw.A NPP MS") field(OUTD,"$(P)Convert_x.B NPP MS") } record(transform,"$(P)Convert_readback_z") { field(DESC,"Convert linear to linear") field(PREC,"5") field(CLCD,"-A/2-(B+C)/4") field(CLCE,"D") field(CLCF,"D") field(INPA,"$(P)$(M3).DRBV CP MS") field(INPB,"$(P)$(M4).DRBV CP MS") field(INPC,"$(P)$(M5).DRBV CP MS") field(OUTD,"$(P)Convert_z.A NPP MS") field(OUTE,"$(P)Convert_pitch.B NPP MS") field(OUTF,"$(P)Convert_roll.C NPP MS") } record(transform,"$(P)Convert_readback_pitch") { field(DESC,"Convert linear to rotary") field(PREC,"7") field(CLCD,"ATAN((A-(B+C)/2)/825310)*57.296") field(CLCE,"D") field(CLCF,"D") field(INPA,"$(P)$(M3).DRBV CP MS") field(INPB,"$(P)$(M4).DRBV CP MS") field(INPC,"$(P)$(M5).DRBV CP MS") field(OUTD,"$(P)Convert_pitch.A NPP MS") field(OUTE,"$(P)Convert_roll.B NPP MS") field(OUTF,"$(P)Convert_z.C NPP MS") } record(transform,"$(P)Convert_readback_roll") { field(DESC,"Convert linear to rotary") field(PREC,"7") field(CLCC,"ATAN((A-B)/420000)*57.296") field(CLCD,"C") field(CLCE,"C") field(INPA,"$(P)$(M4).DRBV CP MS") field(INPB,"$(P)$(M5).DRBV CP MS") field(OUTC,"$(P)Convert_roll.A NPP MS") field(OUTD,"$(P)Convert_z.B NPP MS") field(OUTE,"$(P)Convert_pitch.C NPP MS") } ######readback transform for detector record(transform,"$(P)Convert_readback_DETD") { field(DESC,"Convert linear to linear") field(PREC,"4") field(CLCC,"SQR((A-270000/2)^2+B^2)-128200") field(CLCD,"C") field(INPA,"$(P)$(M6).DRBV CP MS") field(INPB,"$(P)$(M7).DRBV CP MS") field(OUTC,"$(P)Convert_DETD.A NPP MS") field(OUTD,"$(P)Convert_DETtheta.B NPP MS") } record(transform,"$(P)Convert_readback_DETtheta") { field(DESC,"Convert rotary to linear") field(PREC,"7") field(CLCC,"ATAN(B/(A-270000/2))*57.296") field(CLCD,"C") field(INPA,"$(P)$(M6).DRBV CP MS") field(INPB,"$(P)$(M7).DRBV CP MS") field(OUTC,"$(P)Convert_DETtheta.A NPP MS") field(OUTD,"$(P)Convert_DETD.B NPP MS") } ##################################### #soft motor STOO LINKS TRANSFORM for MD2 #********************************************************************** record(transform,"$(P)Stop_x") { field(DESC,"soft x stop link") field(PREC,"0") field(CLCB,"A") field(OUTA,"$(P)$(M1).STOP PP MS") field(OUTB,"$(P)$(M2).STOP PP MS") } record(transform,"$(P)Stop_yaw") { field(DESC,"soft yaw stop link") field(PREC,"0") field(CLCB,"A") field(OUTA,"$(P)$(M1).STOP PP MS") field(OUTB,"$(P)$(M2).STOP PP MS") } record(transform,"$(P)Stop_z") { field(DESC,"soft y stop link") field(PREC,"0") field(CLCB,"A") field(CLCC,"A") field(OUTA,"$(P)$(M3).STOP PP MS") field(OUTB,"$(P)$(M4).STOP PP MS") field(OUTC,"$(P)$(M5).STOP PP MS") } record(transform,"$(P)Stop_pitch") { field(DESC,"soft pitch stop link") field(PREC,"0") field(CLCB,"A") field(CLCC,"A") field(OUTA,"$(P)$(M3).STOP PP MS") field(OUTB,"$(P)$(M4).STOP PP MS") field(OUTC,"$(P)$(M5).STOP PP MS") } record(transform,"$(P)Stop_roll") { field(DESC,"soft roll stop link") field(PREC,"0") field(CLCB,"A") field(OUTA,"$(P)$(M4).STOP PP MS") field(OUTB,"$(P)$(M5).STOP PP MS") } ##################################### #soft motor STOO LINKS TRANSFORM for detector #********************************************************************** record(transform,"$(P)Stop_DETD") { field(DESC,"soft DETD stop link") field(PREC,"0") field(CLCB,"A") field(CLCC,"A") field(OUTA,"$(P)$(M6).STOP PP MS") field(OUTB,"$(P)$(M7).STOP PP MS") field(OUTC,"$(P)$(M8).STOP PP MS") } record(transform,"$(P)Stop_DETtheta") { field(DESC,"soft DETtheta stop link") field(PREC,"0") field(CLCB,"A") field(CLCC,"A") field(OUTA,"$(P)$(M6).STOP PP MS") field(OUTB,"$(P)$(M7).STOP PP MS") field(OUTC,"$(P)$(M8).STOP PP MS") } #********************************************************************** #soft motor DINP LINKS TRANSFORM for MD2 #*********************************************************************** record(transform,"$(P)Dmove_x") { field(DESC,"soft x stop link") field(PREC,"0") field(CLCC,"A&&B") field(INPA,"$(P)$(M1).DMOV CP MS") field(INPB,"$(P)$(M2).DMOV CP MS") } record(transform,"$(P)Dmove_yaw") { field(DESC,"soft yaw stop link") field(PREC,"0") field(CLCC,"A&&B") field(INPA,"$(P)$(M1).DMOV CP MS") field(INPB,"$(P)$(M2).DMOV CP MS") } record(transform,"$(P)Dmove_z") { field(DESC,"soft z stop link") field(PREC,"0") field(CLCD,"A&&B&&C") field(INPA,"$(P)$(M3).DMOV CP MS") field(INPB,"$(P)$(M4).DMOV CP MS") field(INPC,"$(P)$(M5).DMOV CP MS") } record(transform,"$(P)Dmove_pitch") { field(DESC,"soft pitch stop link") field(PREC,"0") field(CLCD,"A&&B&&C") field(INPA,"$(P)$(M3).DMOV CP MS") field(INPB,"$(P)$(M4).DMOV CP MS") field(INPC,"$(P)$(M5).DMOV CP MS") } record(transform,"$(P)Dmove_roll") { field(DESC,"soft roll stop link") field(PREC,"0") field(CLCC,"A&&B") field(INPA,"$(P)$(M4).DMOV CP MS") field(INPB,"$(P)$(M5).DMOV CP MS") } #*********************************************************************** #soft motor DINP LINKS TRANSFORM for detector #********************************************************************** record(transform,"$(P)Dmove_DETD") { field(DESC,"soft DETH stop link") field(PREC,"0") field(CLCD,"A&&B&&C") field(INPA,"$(P)$(M6).DMOV CP MS") field(INPB,"$(P)$(M7).DMOV CP MS") field(INPC,"$(P)$(M8).DMOV CP MS") } record(transform,"$(P)Dmove_DETtheta") { field(DESC,"soft yaw stop link") field(PREC,"0") field(CLCD,"A&&B&&C") field(INPA,"$(P)$(M6).DMOV CP MS") field(INPB,"$(P)$(M7).DMOV CP MS") field(INPC,"$(P)$(M8).DMOV CP MS") } #-------------------------------------------- # use DETH.DMOV to controll the braker #------------------------------------------- record(transform,"$(P)HBraker") { field(DESC,"soft link between DMOV and MOX") field(INPA,"$(P)$(M6).DMOV CP MS") field(CLCB,"!A") field(OUTB,"$(P)DETH-DO0:DO PP MS") } record(transform,"$(P)V1Braker") { field(DESC,"soft link between DMOV and MOX") field(INPA,"$(P)$(M7).DMOV CP MS") field(CLCB,"!A") field(OUTB,"$(P)DETV1-DO1:DO PP MS") } record(transform,"$(P)V2Braker") { field(DESC,"soft link between DMOV and MOX") field(INPA,"$(P)$(M8).DMOV CP MS") field(CLCB,"!A") field(OUTB,"$(P)DETV2-DO2:DO PP MS") }