Skip to content
Snippets Groups Projects
Commit bc148e20 authored by Jean-François Denis's avatar Jean-François Denis
Browse files

ADD console PMAC and Brake command

parent 6aae282e
No related branches found
No related tags found
No related merge requests found
...@@ -421,44 +421,57 @@ pattern {DEVICE, SCAN_EF} ...@@ -421,44 +421,57 @@ pattern {DEVICE, SCAN_EF}
########################################################################## ##########################################################################
file EMU_CALCUL.template file EMU_CALCUL.template
{ {
pattern {DEVICE} pattern {DEVICE,DAQPREFIX,DET2WF,DET3WF,DET2,DET3,NELM,SCAN_EF}
{"$(DEVICE)"} {"$(DEVICE)","$(DAQNDSPREFIX)","AI-CH1-DATA","AI-CH2-DATA","DET2","DET3","$(DAQBUFSIZE)","PS"}
} }
##########################################################################
################################ BUFFER ##################################
##########################################################################
file EMU_BUFF_CHAN.template
{
pattern {DEVICE,SIGNAL,SIGNAL2,NELM,NELM_COMP,SCAN_EF,SCAN_SLIT,MTRREC}
{"$(DEVICE)","DET1","CURRENT","1000","1000","$(SCAN_EF)","$(SCAN_SLIT)","$(MTRREC)"}
}
##########################################################################
################################ ETHERCAT ################################
##########################################################################
file ecat2el41xx.template
{
pattern {PREFIX,CH_ID, SLAVE_IDX,PDO_IDX, EOFF, ESLO, DRVL, DRVH}
{"LNS-ISRC-010:PBI-EM","HVhor-SP", 1,1, 0, 0.0003051850947599719, -10, 10}
{"LNS-ISRC-010:PBI-EM","HVver-SP", 1,2, 0, 0.0003051850947599719, -10, 10}
{"SIMU","CURRENT-SP", 1,3, 0, 0.0003051850947599719, -10, 10}
}
file ecat2slave.template
{
pattern {PREFIX,DTYP,MOD_ID,SLAVE_IDX}
{"LNS-ISRC-010:PBI-EM","EL4134","EL4134",1}
}
########################################################################## ##########################################################################
################################ GEOBRICK - TEST ######################### ################################ GEOBRICK - TEST #########################
########################################################################## ##########################################################################
file console.template file EMU_PMAC-CONSOLE.template
{ {
pattern {P, M, SPORT} pattern {P, M, SPORT}
{SOURCE,EMITTANCE-METTER,pmacLV} {LNS-ISRC-010,PBI-EM,pmacLV}
} }
file get_value_pmac.template file EMU_PMAC-GETBO.template
{ {
pattern {P, M, NAME, DESC, EGU, VARIABLE, PREC, SCAN, SPORT} pattern {P, M, NAME, DESC, EGU, VARIABLE, PREC, SCAN, SPORT}
{SOURCE,EMITTANCE-METTER, V_BRAKE, "0: brake on, 1: brake off", boolean,M33, 0, "1 second", pmacLV} {LNS-ISRC-010,PBI-EM, VER-BRAKE, "0: brake on, 1: brake off", boolean,M33, 0, "1 second", pmacLV}
# {SOURCE,EMITTANCE-METTER, V_SWITCH_H, "Vertical high motor swicth", boolean,M121, 0, "1 second", pmacLV}
# {SOURCE,EMITTANCE-METTER, V_SWITCH_L, "Vertical low motor swicth", boolean,M122, 0, "1 second", pmacLV}
# {SOURCE,EMITTANCE-METTER, V_M_IN_POSITION,"Vertical low motor swicth", boolean,M140, 0, "1 second", pmacLV}
{SOURCE,EMITTANCE-METTER, V_HOME_DONE, "Vertical low motor swicth", boolean,M101, 0, "1 second", pmacLV}
# {SOURCE,EMITTANCE-METTER, V_M_POSITION, "Vertical motor position", cts, #1P, 0, "1 second", pmacLV}
} }
file set_bo_pmac.template file EMU_PMAC-SETBO.template
{ {
pattern {P, M, NAME, DESC, VAL, TIME, CALC, VARIABLE, SPORT} pattern {P, M, NAME, DESC, VAL, TIME, CALC, VARIABLE, SPORT}
{SOURCE,EMITTANCE-METTER, V_GO_HOME, "Ask to motor to go home position", 0, 1, A, P103, pmacLV} {LNS-ISRC-010,PBI-EM, VER-BRAKE, "brake", 0, 1, A, M33, pmacLV}
{SOURCE,EMITTANCE-METTER, V_GO_MAINTENANCE, "Ask to motor to go maintenance position", 0, 1, A, P104, pmacLV}
{SOURCE,EMITTANCE-METTER, V_BRAKE, "brake", 0, 1, A, M33, pmacLV}
} }
#file set_value_pmac.template
#{
#pattern {P, M, NAME, DESC, EGU, DRVL, DRVH, CALC, VAL, ADEL, MDEL, PREC, VARIABLE, SPORT}
# {SOURCE,EMITTANCE-METTER, V_ABS-POS, "Absolute position, origin: park position", "cts", -796879, 0, A, 0, 0, 0, 0, "#1J", pmacLV}
# {SOURCE,EMITTANCE-METTER, V_VELOCITY, "velocity 1:slow 2:normal 3:fast", "cts/ms", 1, 3, A, 2, 0, 0, 0, "I122", pmacLV}
#}
...@@ -108,6 +108,7 @@ record(aSub, "$(DEVICE):CALC-FuncCalcConv") { ...@@ -108,6 +108,7 @@ record(aSub, "$(DEVICE):CALC-FuncCalcConv") {
######### FUNCTION ####### ######### FUNCTION #######
field(SNAM, "FACTOR_CONVERSION") field(SNAM, "FACTOR_CONVERSION")
} }
############################################ ############################################
## Conversion factor for MRAD to V ######### ## Conversion factor for MRAD to V #########
############################################ ############################################
...@@ -118,8 +119,6 @@ record(ao, "$(DEVICE):CALC-FactMRADtoV") ...@@ -118,8 +119,6 @@ record(ao, "$(DEVICE):CALC-FactMRADtoV")
field(PREC, "4") field(PREC, "4")
} }
############################################ ############################################
## Conversion factor for V to MRAD########## ## Conversion factor for V to MRAD##########
############################################ ############################################
...@@ -129,3 +128,66 @@ record(ao, "$(DEVICE):CALC-FactVtoMRAD") ...@@ -129,3 +128,66 @@ record(ao, "$(DEVICE):CALC-FactVtoMRAD")
field(EGU, "mrad/V") field(EGU, "mrad/V")
field(PREC, "4") field(PREC, "4")
} }
###########################################################################################
########################## CREATE THE ANGLE WAVEFORM ######################################
###########################################################################################
## Function that compute the coefficient between MRAD and VOLTAGE
record(aSub, "$(DEVICE):CALC-BLDWFAngle") {
######### INPUTS #########
## FACTOR CONVERSION VtoMRAD
field(FTA, "FLOAT")
field(NOA,1)
field(INPA, "$(DEVICE):CALC-FactVtoMRAD")
## Plate volatge 1 Waveform (PS1)
field(FTB, "FLOAT")
field(NOB,$(NELM))
field(INPB, "$(DAQPREFIX):$(DET2WF)")
## Plate volatge 2 Waveform (PS2)
field(FTC, "FLOAT")
field(NOC,$(NELM))
field(INPC, "$(DAQPREFIX):$(DET3WF)")
## Plate volatge 1 average (PS1)
field(FTD, "FLOAT")
field(NOD,1)
field(INPD, "$(DEVICE):$(DET2)-COMP")
## Plate volatge 2 average (PS2)
field(FTE, "FLOAT")
field(NOE, "1")
field(INPE, "$(DEVICE):$(DET3)-COMP")
## Counter detector (cpt det)
field(FTE, "LONG")
field(NOE, "1")
field(INPE, "$(DEVICE):$(SCAN_EF)-NORD_POS CPP")
######### OUTPUTS #########
## ANGLE Waveform converted in MRAD (to save)
field(FTVA, "FLOAT")
field(NOVA, "$(NELM)")
field(OUTA, "$(DEVICE):CALC-ANGLEwf PP")
## ANGLE AVG value converted in VOLT
field(FTVB, "FLOAT")
field(NOVB, "1")
field(OUTB, "$(DEVICE):CALC-ANGLE PP")
######### FUNCTION #######
field(SNAM, "ANGLE_CALCUL")
}
################ RESULTAT ANGLE ##############
## AVERAGE ANGLE
record(ao, "$(DEVICE):CALC-ANGLE") {
}
## WAVEFORM ANGLE
record(waveform, "$(DEVICE):CALC-ANGLEwf") {
field(FTVL, "FLOAT")
field(NELM, "$(NELM)")
}
#DEBUG #DEBUG
#sends ASCII string to pmac #sends ASCII string to pmac
record(stringout, "$(P)_$(M):ASK") { record(stringout, "$(P):$(M):PMAC-ASK") {
field(DESC, "sends ASCII string to pmac") field(DESC, "sends ASCII string to pmac")
field(OUT, "$(P)_$(M):ANSWER CP") field(OUT, "$(P):$(M):PMAC-ANSWER CP")
field(FLNK, "$(P)_$(M):ANSWER") field(FLNK, "$(P):$(M):PMAC-ANSWER")
} }
#receives ASCII string from pmac #receives ASCII string from pmac
record(stringin, "$(P)_$(M):ANSWER") { record(stringin, "$(P):$(M):PMAC-ANSWER") {
field(DESC, "receives ASCII string from pmac") field(DESC, "receives ASCII string from pmac")
field(DTYP, "stream") field(DTYP, "stream")
field(INP, "@pmacVariables.proto sendString($(P)_$(M):ASK) $(SPORT)") field(INP, "@pmacVariables.proto sendString($(P):$(M):PMAC-ASK) $(SPORT)")
} }
File moved
#set data to send to the Geo brick #set data to send to the Geo brick
record(ao, "$(P)_$(M):$(NAME)_SET") { record(bo, "$(P)_$(M):$(NAME)_SET") {
field(DESC, "$(DESC)") field(DESC, "$(DESC)")
field(EGU, "$(EGU)") field(HIGH, "$(TIME)")
field(DRVL, "$(DRVL)")
field(DRVH, "$(DRVH)")
field(LOPR, "$(DRVL)")
field(HOPR, "$(DRVH)")
field(VAL, "$(VAL)") field(VAL, "$(VAL)")
field(ADEL, "$(ADEL)")
field(MDEL, "$(MDEL)")
field(PREC, "$(PREC)")
} }
#send the data to the Geo brick #send the data to the Geo brick
record(calcout, "$(P)_$(M):$(NAME)_WRITE") { record(calcout, "$(P)_$(M):$(NAME)_WRITE") {
......
...@@ -11,13 +11,16 @@ record(calcout, "$(DEVICE):PROC-VoltMax") { ...@@ -11,13 +11,16 @@ record(calcout, "$(DEVICE):PROC-VoltMax") {
field(VAL, "0") field(VAL, "0")
field(INPA,"$(DEVICE):PROC-AngleMax-SP") field(INPA,"$(DEVICE):PROC-AngleMax-SP")
field(INPB,"$(DEVICE):CALC-FactMRADtoV") field(INPB,"$(DEVICE):CALC-FactMRADtoV")
field(CALC, "(A*B)/2") ### /1000 => conversion in 0/10V ###
field(CALC, "(A*B)/2000")
field(PREC, "4")
field(EGU,"kV")
field(OUT,"$(DEVICE):PROC-VoltMax-SP PP") field(OUT,"$(DEVICE):PROC-VoltMax-SP PP")
} }
record(dfanout,"$(DEVICE):PROC-VoltMax-SP"){ record(dfanout,"$(DEVICE):PROC-VoltMax-SP"){
field(OUTA,"$(DEVICE):$(SCAN_EF).P1SP PP") field(OUTA,"$(DEVICE):$(SCAN_EF).P1EP PP")
field(OUTB,"$(DEVICE):$(SCAN_EF).P2EP PP") field(OUTB,"$(DEVICE):$(SCAN_EF).P4SP PP")
} }
############################################# #############################################
...@@ -33,18 +36,22 @@ record(calcout, "$(DEVICE):PROC-VoltMin") { ...@@ -33,18 +36,22 @@ record(calcout, "$(DEVICE):PROC-VoltMin") {
field(VAL, "0") field(VAL, "0")
field(INPA,"$(DEVICE):PROC-AngleMin-SP") field(INPA,"$(DEVICE):PROC-AngleMin-SP")
field(INPB,"$(DEVICE):CALC-FactMRADtoV") field(INPB,"$(DEVICE):CALC-FactMRADtoV")
field(CALC, "(A*B)/2") ### /1000 => conversion in 0/10V
field(CALC, "(A*B)/2000")
field(PREC, "4")
field(EGU,"kV")
field(OUT,"$(DEVICE):PROC-VoltMin-SP PP") field(OUT,"$(DEVICE):PROC-VoltMin-SP PP")
} }
record(dfanout,"$(DEVICE):PROC-VoltMin-SP"){ record(dfanout,"$(DEVICE):PROC-VoltMin-SP"){
field(OUTA,"$(DEVICE):$(SCAN_EF).P1EP PP") field(OUTA,"$(DEVICE):$(SCAN_EF).P1SP PP")
field(OUTB,"$(DEVICE):$(SCAN_EF).P2SP PP") field(OUTB,"$(DEVICE):$(SCAN_EF).P4EP PP")
} }
############################################# #############################################
############ ANGLE STP ###################### ############ ANGLE STP ######################
############################################# #############################################
record(calcout, "$(DEVICE):PROC-StepAngle") { record(calcout, "$(DEVICE):PROC-StepAngle") {
field(INPA,"$(DEVICE):PROC-AngleMax-SP CPP") field(INPA,"$(DEVICE):PROC-AngleMax-SP CPP")
field(INPB,"$(DEVICE):PROC-AngleMin-SP CPP") field(INPB,"$(DEVICE):PROC-AngleMin-SP CPP")
...@@ -53,3 +60,12 @@ record(calcout, "$(DEVICE):PROC-StepAngle") { ...@@ -53,3 +60,12 @@ record(calcout, "$(DEVICE):PROC-StepAngle") {
field(EGU, "mrad") field(EGU, "mrad")
field(PREC, "3") field(PREC, "3")
} }
#############################################
############ SIMULATION #####################
#############################################
record(bo,"$(DEVICE):PROC-SIMU") {
field(ZNAM,"HARD")
field(ONAM,"SIMU")
}
record(ao, "$(PREFIX):$(SIGNAL)-SP")
{
field(FLNK, "$(PREFIX):$(SIGNAL)-RBV")
field(EGU, "kV")
field(DRVH, "10")
field(DRVL, "-10")
field(PREC, 2)
}
record(ai, "$(PREFIX):$(SIGNAL)-RBV")
{
field(INP, "$(PREFIX):$(SIGNAL)-SP")
field(EGU, "kV")
field(PREC, 2)
}
file console.template
{
pattern {P M SPORT}
{SOURCE EMITTANCE-METTER GEOBRICK_ASYN}
}
file get_value_pmac.template
{
pattern {P M NAME DESC EGU VARIABLE PREC SCAN SPORT}
{SOURCE EMITTANCE-METTER V_BRAKE "0: brake on, 1: brake off" boolean M33 0 ".1 second" GEOBRICK_ASYN}
{SOURCE EMITTANCE-METTER V_SWITCH_H "Vertical high motor swicth" boolean M121 0 ".1 second" GEOBRICK_ASYN}
{SOURCE EMITTANCE-METTER V_SWITCH_L "Vertical low motor swicth" boolean M122 0 ".1 second" GEOBRICK_ASYN}
{SOURCE EMITTANCE-METTER V_M_IN_POSITION "Vertical low motor swicth" boolean M140 0 ".1 second" GEOBRICK_ASYN}
{SOURCE EMITTANCE-METTER V_HOME_DONE "Vertical low motor swicth" boolean M101 0 ".1 second" GEOBRICK_ASYN}
{SOURCE EMITTANCE-METTER V_M_POSITION "Vertical motor position" cts #1P 0 ".1 second" GEOBRICK_ASYN}
}
file set_bo_pmac.template
{
pattern {P M NAME DESC VAL TIME CALC VARIABLE SPORT}
{SOURCE EMITTANCE-METTER V_GO_HOME "Ask to motor to go home position" 0 1 A P103 GEOBRICK_ASYN}
{SOURCE EMITTANCE-METTER V_GO_MAINTENANCE "Ask to motor to go maintenance position" 0 1 A P104 GEOBRICK_ASYN}
}
file set_value_pmac.template
{
pattern {P M NAME DESC EGU DRVL DRVH CALC VAL ADEL MDEL PREC VARIABLE SPORT}
{SOURCE EMITTANCE-METTER V_ABS-POS "Absolute position, origin: park position" cts -796879 0 A 0 0 0 0 #1J GEOBRICK_ASYN}
{SOURCE EMITTANCE-METTER V_VELOCITY "velocity 1:slow 2:normal 3:fast" cts/ms 1 3 A 2 0 0 0 I122 GEOBRICK_ASYN}
}
Source diff could not be displayed: it is too large. Options to address this: view the blob.
...@@ -28,3 +28,92 @@ static int FACTOR_CONVERSION(aSubRecord *precord) { ...@@ -28,3 +28,92 @@ static int FACTOR_CONVERSION(aSubRecord *precord) {
} }
/* Note the function must be registered at the end. */ /* Note the function must be registered at the end. */
epicsRegisterFunction(FACTOR_CONVERSION); epicsRegisterFunction(FACTOR_CONVERSION);
/*
* This function calculates the X' (ANGLE) and convert the result WF an SCALARE value(s) in MRAD
*/
static int ANGLE_CALCUL(aSubRecord *precord) {
float FACT_VtoMRAD = *(float *)precord->a; // Factor conversion V to MRAD
float *WF_PS1 = (float *)precord->b; // Waveform PS1 (VOLT)
float *WF_PS2 = (float *)precord->c; // Waveform PS2 (VOLT)
float AVG_PS1 = *(float *)precord->d; // PS1 average (VOLT)
float AVG_PS2 = *(float *)precord->e; // PS2 average(VOLT)
int nelm = precord->nova;
float *pOutA=(float*)(precord->vala);
int i;
float val1;
float val2;
/* WAVEFORM : Calcul WF_PS1-WF_PS2, and convert the resukt MRAD */
for (i = 0; i < nelm; ++i)
{
*pOutA=((*WF_PS1 - *WF_PS2)* FACT_VtoMRAD)*1000; // *1000 : to reconvert in mrad
pOutA++;
WF_PS1++;
WF_PS2++;
}
/* SCALARE : Calcul AVG_PS1-AVG_PS2, and Convert he result in MRAD*/
*(float *) precord->valb=((AVG_PS1- AVG_PS2)*FACT_VtoMRAD)*1000; // *1000 : to reconvert in mrad
return 0;
}
/* Note the function must be registered at the end. */
epicsRegisterFunction(ANGLE_CALCUL);
/*
* This function allows to create the complete waveform for X' (ANGLE) and Y(CURRENT)
*/
static int CREATE_TAB(aSubRecord *precord) {
float *ptr_WF = (float *)precord->a; // datas to add
float *ptr_WF_REENT = (float *)precord->b; // Waveform reentrance
long mtr_cpt = *(long *)precord->c; //Motor compter
long nbAngle = *(long *)precord->d; // Nb Angle
long nbPosition = *(long *)precord->e; // Nb position
int nelmComp = precord->nova;
int nelm = precord->novb;
float *ptr_WF_OUT=(float*)(precord->vala);
int i;
int cpt_for=0.0;
float val1;
float val2;
/***** REFILL old DATA ******/
if(mtr_cpt>1)
{
cpt_for=mtr_cpt*nbAngle;
for (i = 0 ; i < cpt_for; ++i)
{
*ptr_WF_OUT=*ptr_WF_REENT;
ptr_WF_OUT++;
ptr_WF_REENT++;
}
}
/***** FILL new DATA ******/
if(mtr_cpt>0)
{
cpt_for=(mtr_cpt-1);
ptr_WF_OUT=(float*)(precord->vala);
ptr_WF_OUT=ptr_WF_OUT+cpt_for;
ptr_WF = (float *)precord->a;
/*DATA from the COMPRESS waveform */
for (i = 0 ; i < nbAngle; ++i)
{
*ptr_WF_OUT=*ptr_WF;
ptr_WF_OUT=ptr_WF_OUT+nbAngle;
ptr_WF++;
}
}
return 0;
}
/* Note the function must be registered at the end. */
epicsRegisterFunction(CREATE_TAB);
...@@ -4,10 +4,11 @@ require singlemotion ...@@ -4,10 +4,11 @@ require singlemotion
require mrfsample require mrfsample
require pev require pev
require EMU,jfdenis require EMU,jfdenis
require ecat2db,0.3.2
### MACROS ### ### MACROS ###
# PMAC common macros3 ) # PMAC common macros3 )
epicsEnvSet("PMACPREFIX", "PMAC" ) epicsEnvSet("PMACPREFIX", "PMAC")
epicsEnvSet("PMACPORT", "pmacLV") epicsEnvSet("PMACPORT", "pmacLV")
epicsEnvSet("MOTOR_PORT", "pmac1" ) epicsEnvSet("MOTOR_PORT", "pmac1" )
epicsEnvSet("NB_AXES", "1" ) epicsEnvSet("NB_AXES", "1" )
...@@ -70,7 +71,7 @@ epicsEnvSet("SCAN_POINTS_SLIT", "100" ) ...@@ -70,7 +71,7 @@ epicsEnvSet("SCAN_POINTS_SLIT", "100" )
epicsEnvSet(EPICS_CA_MAX_ARRAY_BYTES, 400000000) epicsEnvSet(EPICS_CA_MAX_ARRAY_BYTES, 400000000)
# Connection to PMAC and setup for $(NUM_MOTORS) motors # Connection to PMAC and setup for $(NUM_MOTORS) motors
pmacAsynIPConfigure($(PMACPORT), "192.6.94.2:1025") pmacAsynIPConfigure($(PMACPORT), "10.2.139.237:1025")
pmacCreateController($(MOTOR_PORT), $(PMACPORT), 0, $(NB_AXES), 50, 300) pmacCreateController($(MOTOR_PORT), $(PMACPORT), 0, $(NB_AXES), 50, 300)
pmacCreateAxis($(MOTOR_PORT), $(AXIS_NO1)) pmacCreateAxis($(MOTOR_PORT), $(AXIS_NO1))
...@@ -98,8 +99,6 @@ dbLoadRecords(IFCDAQAIChannelGroup.template, "PREFIX=$(DAQPREFIX),CH_GRP_ID=AI") ...@@ -98,8 +99,6 @@ dbLoadRecords(IFCDAQAIChannelGroup.template, "PREFIX=$(DAQPREFIX),CH_GRP_ID=AI")
dbLoadRecords(IFCDAQAIChannel.template, "PREFIX=$(DAQPREFIX),CH_GRP_ID=AI,CH_ID=CH0, NELM=$(DAQBUFSIZE)") dbLoadRecords(IFCDAQAIChannel.template, "PREFIX=$(DAQPREFIX),CH_GRP_ID=AI,CH_ID=CH0, NELM=$(DAQBUFSIZE)")
dbLoadRecords(IFCDAQAIChannel.template, "PREFIX=$(DAQPREFIX),CH_GRP_ID=AI,CH_ID=CH1, NELM=$(DAQBUFSIZE)") dbLoadRecords(IFCDAQAIChannel.template, "PREFIX=$(DAQPREFIX),CH_GRP_ID=AI,CH_ID=CH1, NELM=$(DAQBUFSIZE)")
dbLoadRecords(IFCDAQAIChannel.template, "PREFIX=$(DAQPREFIX),CH_GRP_ID=AI,CH_ID=CH2, NELM=$(DAQBUFSIZE)") dbLoadRecords(IFCDAQAIChannel.template, "PREFIX=$(DAQPREFIX),CH_GRP_ID=AI,CH_ID=CH2, NELM=$(DAQBUFSIZE)")
dbLoadRecords(IFCDAQAIChannel.template, "PREFIX=${DAQPREFIX},CH_GRP_ID=AI,CH_ID=CH3, NELM=$(DAQBUFSIZE)")
# #
# Load Single motions records # Load Single motions records
...@@ -121,17 +120,21 @@ dbLoadRecords("motorStatus.template", "PREFIX=$(PMACPREFIX),MOTOR_NAME=$(MOTOR_N ...@@ -121,17 +120,21 @@ dbLoadRecords("motorStatus.template", "PREFIX=$(PMACPREFIX),MOTOR_NAME=$(MOTOR_N
# Homing procedure records # Homing procedure records
# #
#dbLoadRecords("motorHoming.template", "PREFIX=$(PMACPREFIX),MOTOR_NAME=$(MOTOR_NAME1),ASYN_PORT=$(PMACPORT),AXIS_NO=$(AXIS_NO1),PREC=$(PREC),EGU=$(EGU)") dbLoadRecords("motorHoming.template", "PREFIX=$(PMACPREFIX),MOTOR_NAME=$(MOTOR_NAME1),ASYN_PORT=$(PMACPORT),AXIS_NO=$(AXIS_NO1),PREC=$(PREC),EGU=$(EGU)")
dbLoadRecords("EMU.db", "DEVICE=$(SCANPREFIX), SCAN_SLIT=$(SCAN_SLIT), SCAN_EF=$(SCAN_EF), MTRREC=$(PMACPREFIX):$(MOTOR_NAME1), MAX_POINTS_EF=$(SCAN_POINTS_EF), MAX_POINTS_SLIT=$(SCAN_POINTS_SLIT), DAQNDSPREFIX=$(DAQPREFIX), DAQBUFSIZE=$(DAQBUFSIZE), DET1WF=AI-CH0-DATA, DET2WF=AI-CH1-DATA, DET3WF=AI-CH2-DATA, TR_TL=$(SYS)-$(EVR):Pul0-Ena-Sel, TR_TLTSEL=$(SYS)-$(EVR):Event-$(EVR_PUL0_EVENT)-SP.TIME, PSU_SP=LNS-ISRC-010:PBI-EM:HVhor-SP, PSU_RBV=LNS-ISRC-010:PBI-EM:HVhor-RBV, PSU2_SP=LNS-ISRC-010:PBI-EM:HVver-SP, PSU2_RBV=LNS-ISRC-010:PBI-EM:HVver-RBV") dbLoadRecords("EMU.db", "DEVICE=$(SCANPREFIX), SCAN_SLIT=$(SCAN_SLIT), SCAN_EF=$(SCAN_EF),MTRREC=$(PMACPREFIX):$(MOTOR_NAME1), MAX_POINTS_EF=$(SCAN_POINTS_EF), MAX_POINTS_SLIT=$(SCAN_POINTS_SLIT), DAQNDSPREFIX=$(DAQPREFIX), DAQBUFSIZE=$(DAQBUFSIZE), DET1WF=AI-CH0-DATA, DET2WF=AI-CH1-DATA, DET3WF=AI-CH2-DATA, TR_TL=$(SYS)-$(EVR):Pul0-Ena-Sel, TR_TLTSEL=$(SYS)-$(EVR):Event-$(EVR_PUL0_EVENT)-SP.TIME, PSU_SP=LNS-ISRC-010:PBI-EM:HVhor-SP, PSU_RBV=LNS-ISRC-010:PBI-EM:HVhor-SP, PSU2_SP=LNS-ISRC-010:PBI-EM:HVver-SP, PSU2_RBV=LNS-ISRC-010:PBI-EM:HVver-SP")
# #
# Simulated PSU # Init ETHERCAT module
dbLoadRecords (EMU_PS-SIM.template, "PREFIX=LNS-ISRC-010:PBI-EM, SIGNAL=HVhor") ecat2configure(0,500,1,1)
dbLoadRecords (EMU_PS-SIM.template, "PREFIX=LNS-ISRC-010:PBI-EM, SIGNAL=HVver")
#############################################################################
######################### iocInit ###########################################
#############################################################################
iocInit iocInit
seq motorHoming "PREFIX=$(PMACPREFIX),MOTOR_NAME=$(MOTOR_NAME1)" seq motorHoming "PREFIX=$(PMACPREFIX),MOTOR_NAME=$(MOTOR_NAME1)"
...@@ -188,4 +191,21 @@ dbpf $(SYS)-$(EVR):FrontOut0-Ena-SP 1 ...@@ -188,4 +191,21 @@ dbpf $(SYS)-$(EVR):FrontOut0-Ena-SP 1
#dbpf $(SYS)-$(EVR):Time-I.TSE -2 #dbpf $(SYS)-$(EVR):Time-I.TSE -2
### Setup reasonable values for sscan record ###
# Initialize Motor positioners
dbpf $(SCANPREFIX):$(SCAN_SLIT).P4SP -10
dbpf $(SCANPREFIX):$(SCAN_SLIT).P4EP -20
dbpf $(SCANPREFIX):$(SCAN_SLIT).P2SP 1
dbpf $(SCANPREFIX):$(SCAN_SLIT).P2EP 1
dbpf $(SCANPREFIX):$(SCAN_SLIT).NPTS 11
# Initialize Power supply positioners
dbpf SCAN:PROC-AngleMax-SP 80
dbpf SCAN:PROC-AngleMin-SP -80
dbpf $(SCANPREFIX):$(SCAN_EF).NPTS 11
dbpf $(SCANPREFIX):$(SCAN_EF).PDLY 0.5
seq RampCurrent "PREFIX_PS=LNS-ISRC-010:PBI-EM,CONS_PS2=HVhor-SP,DEVICE=SCAN,SCAN_SLIT=$(SCAN_SLIT)"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment