You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

Contents


IOC names and PV prefixes

IOC nameCPU namePV prefix (<device>:<area>:<position>)Description

Location

Associated network nodesNotes
sioc-sys0-ms01cpu-sys0-sp01

FREQ:SYS0:00

SIM01 (SIM YCPSW PVs)

PRL:SYS0:1:MO

PVs for Master Oscillator in master source rack

  • SIM modules for freq. locker (SIM01)
  • Agilent freq. counter (FREQ:SYS0:00)
  • RF-locking Matlab script soft PVs (Charlie Xu, "LCLS2_MO_Frequency_locker_PID") (PRL:SYS0:1:MO:)
L2KG02-25

Freq. counter: freq-sys0-ms01

FPGA: 192.168.1.16


sioc-sys0-ms02cpu-sys0-sp01

PRL:SYS0:02 (SIM high-level PVs)

SIM02 (SIM YCPSW PVs)

PRL:SYS0:02:L0 (Beckhoff PA PVs)

PRL:SYS0:02:01 (Beckhoff rack PVs)

BKHF:SYS0:MS02 (Beckhoff low-level PVs)

PVs for SIM modules in master source rack and Beckhoffs in laser rack

  • SIM for L0-L1 PLL master (SIM02)
  • Beckhoff for:
    • L0-L1 VCO (slave) PA
    • L2CID-04 rack temp & water flow

L2KG02-24 (SIM)

L2CID-04 (Beckhoff)

Beckhoff: apc-sys0-ms02

FPGA: 192.168.1.20


sioc-sys0-ms03cpu-sys0-sp01

PRL:SYS0:03 (SIM Pvs)

SIM03 (SIM YCPSW PVs)

PRL:SYS0:03:L2 (Beckhoff L2 VCO PVs)

PRL:SYS0:03:L3 (Beckhoff L3 PVs)

PRL:SYS0:03:LO (Beckhoff LO PVs)

PRL:SYS0:03:01 (Beckhoff rack PVs)

BKHF:SYS0:MS03 (Beckhoff low-level PVs)

PVs for SIM modules in master source rack and Beckhoffs in LLRF rack

  • SIM for L2 PLL master (SIM03)
  • Beckhoff for:
    • L2 VCO (slave) PA
    • L3 PA
    • L3 LO PA
    • L2KG02-20 rack temp & water flow

L2KG02-24 (SIM)

L2KG04-20 (Beckhoff)

Beckhoff: apc-sys0-ms03

FPGA:  192.168.1.28


sioc-sys0-ms04cpu-sys0-sp01

PRL:SYS0:04:L0 (Beckhoff L0-L1 PVs)

PRL:SYS0:04:L2 (Beckhoff L2 PVs)

PRL:SYS0:04:LO (Beckhoff LO PVs)

PRL:SYS0:04:01 (Beckhoff L2KG02-24 rack PVs)

PRL:SYS0:04:02 (Beckhoff L2KG02-25 rack PVs)

BKHF:SYS0:MS04 (Beckhoff low-level PVs)

Pvs for Beckhoffs in master source rack

  • L0-L1 return PA
  • L2 return PA
  • L0-L1 & L2 LO PA
  • L2KG02-24 rack temp & water flow
  • L2KG02-25 rack temp & water flow

L2KG02-24

L2KG02-25

Beckhoff: apc-sys0-ms04


sioc-sys0-ms05

cpu-sys0-sp01

PRL:SYS0:05 (SIM PVs)

SIM05 (SIM YCPSW PVs)

PVs for SIM modules in laser rack

  • SIM for L0-L1 PLL slave (SIM05)
L2CID-04FPGA: 192.168.1.19



sioc-sys0-ms06

cpu-sys0-sp01

PRL:SYS0:06 (SIM PVs)

SIM06 (SIM YCPSW PVs)

PVs for SIM modules in LLRF rack

  • SIM for L2 PLL slave (SIM06)
L2KG04-20FPGA:  192.168.1.24




SIM FPGA MAC-IP mapping

IOCDesc

Location

SN

MACIP
sioc-sys0-ms01Freq lockerL2KG02-251608:00:56:00:46:86192.168.1.16
sioc-sys0-ms02L0-L1 PLL masterL2KG02-242008:00:56:00:46:16192.168.1.20
sioc-sys0-ms03L2 PLL masterL2KG02-242808:00:56:00:49:55192.168.1.28
sioc-sys0-ms05L0-L1 VCO (slave)L2CID-041908:00:56:00:46:15192.168.1.19
sioc-sys0-ms06L2 VCO (slave)L2KG04-202408:00:56:00:46:FC192.168.1.24


Frequency Locker PVs

MO DAC Control PVs

<prefix> = FREQ:SYS0:00

<SIM_prefix> = SIM<NN>

NN = two-digit IOC number

PV nameDescription for PVRemarks (register name)YCPSW nameCalculaton Formula
<prefix>:SIMVERFirmware version number for MoFreqLocker ModuleVersion

<SIM_prefix>:M:MFL:Version:Rd


<prefix>:MODAC_RBVReadback value for DAC_OUTPUT3_REMOTE registerDAC_OUTPUT3_REMOTE<SIM_prefix>:M:MFL:DAC_OUTPUT3_REMOTE:Rd

Value inside FPGA is a 18bit signed 2'comp value. 

MATLAB expect value to be a non-offset signed binary range from +/-(2^(18-1))

This value should not be displayed

  Instead, there should be a separate PV that converts this value, and map to +/-5V.

Because this is the real value that makes the most sense to any operators beside the developer

<prefix>:MODACVOLTDAC readout in VoltSoft PV [-5...+5V]

/* conversion 2'scomp fixed point (18_17bit) to floating point */

#define LENGTH 18
double Fixed1817toFloat(unsigned u)

{
int u32;

u32 = (u & 1<<(LENGTH-1))? (~0x3ffff) |u : u;

return (double) u32 / (double) (0x1ffff);
}

volt = Fixed1817toFloat(u) * 5.;

<prefix>:MODACSet value to DAC_OUTPUT3_REMOTE registerDAC_OUTPUT3_REMOTE

<SIM_prefix>:M:MFL:DAC_OUTPUT3_REMOTE:St

Value inside FPGA is a 18bit signed 2'comp value. 

MATLAB expect value to be a non-offset signed binary range from +/-(2^(18-1))

This value should not be displayed

Because there is an MATLAB high level app running.  Only the readback value should be display


MO RF-locking Matlab script PVs

<prefix> = PRL:SYS0:1:MO

Script name: LCLS2_MO_Frequency_locker_PID

PV nameDescription Remarks

<prefix>:VTUNE_VOLT

V tune voltage

ao, V
<prefix>:FREQFrequency readbackao, Hz
<prefix>:LOCK_ENABLELock enable/disablebo, 0=Enable,1=Disable
<prefix>:FREQ_SETPTFrequency setpointao, Hz
<prefix>:FREQ_ERRFrequency errorao, Hz
<prefix>:WDOG_CNTWatchdog countlongout

Frequency Counter PVs

Note: all <attribute> names are from the frequency counter Agilent53220A driver module.

<prefix> = FREQ:SYS0:00

PV nameDescription for PVRemarks

<prefix>:FREQ_RBCK_PROC_

Internal PV for Agilent53220A package

When the frequency read back value is valid,

it pushes the value to the rea back PV

No use for user level

<prefix>:SET_TRIG_LEVEL

Set trigger level in voltage

<prefix>:SET_TRIG_PERCENT

Set trigger level (relative, in %)

<prefix>:asyn



<prefix>:UPDATE

Internal PV for Agilent53220A packageNo use for user level

<prefix>:GET_IMPEDANCE

Get input impedance1M Ohm or 50 Ohm

<prefix>:GET_COUPLING

Get input couplingAC or DC

<prefix>:GET_NOISE_REJ

Get noise rejectionON or OFF

<prefix>:RESET

Reset and update all status PVs

<prefix>:SET_IMPEDANCE

Set input impedance1M Ohm or 50 Ohm

<prefix>:SET_COUPLING

Set input couplingAC or DC

<prefix>:SET_NOISE_REJ

Set noise rejectionON or OFF

<prefix>:GET_AUTO_LEVEL

Get input auto level statusOFF/ON/ONCE

<prefix>:IDENTITY

Get IDN

<prefix>:FREQ_RBCK_RAW

Frequency Readback value (raw value)

<prefix>:FREQ_RBCK

Frequency Readback value (in Hz)

<prefix>:GET_TRIG_LEVEL

Get trigger level

<prefix>:GET_TRIG_PERCENT

Get trigger level (relative)

<prefix>:SET_AUTO_LEVEL

Set input auto levelOFF/ON/ONCE
<prefix>:GET_ROSC_SOURsource selection for reference oscillator (readback)INT/EXT
<prefix>:SET_ROSC_SOURsource selection for reference oscillator (set value)INT/EXT
<prefix>:GET_ROSC_EXTFREQFrequency readback for extern reference oscillator1MHz/5MHz/10MHz
<prefix>:SET_ROSC_EXTFREQFrequency Set Value for external reference oscillator1MHz/5MHz/10MHz
<prefix>:GET_DISPDIG_AUTOdisplay digit auto option (readback)OFF/ON
<prefix>:SET_DISPDIG_AUTOdisplay digit auto option (set value)OFF/ON
<prefix>:GET_DISPDIGnumber of digit for display (readback)
<prefix>:SET_DISPDIGnumber of digit for display (set value)

SIM PLL (master) PVs

<prefix> = PRL:SYS0:<NN>

<SIM_prefix> = SIM<NN>

NN = two-digit IOC number

PV nameDescription for PVRemarks (register name)YCPSW nameCalculation Formula
<prefix>:SIMVERFirmware version number for Lcls2 PRL Master SIMVersion

<SIM_prefix>:M:PRLMST:Version:Rd


<prefix>:PHASESHIFT_RBVreadback value for additional phase shiftPhaseShift

<SIM_prefix>:M:PRLMST:PhaseShift:Rd

18_17bit signed 2'comp value, so decimal value ranges +/-1.  Because this is a normalized phase value from the CORDIC:

+1 = 180degree

-1 = -180degree

Should display in degrees


/* conversion 2'scomp fixed point (18_17bit) to floating point */

#define LENGTH 18
double Fixed1817toFloat(unsigned u)

{
int u32;

u32 = (u & 1<<(LENGTH-1))? (~0x3ffff) |u : u;

return (double) u32 / (double) (0x1ffff);
}


degree = Fixed1817toFloat(u) * 180.;

<prefix>:PHASESHIFTset value for additional phase shiftPhase Shift

<SIM_prefix>:M:PRLMST:PhaseShift:St

18_17bit signed 2'comp value, so decimal value ranges +/-1.  Because this is a normalized phase value from the CORDIC:

+1 = 180degree

-1 = -180degree

Should display in degrees


/* conversion 2'scomp fixed point (18_17bit) to floating point */

#define LENGTH 18
double Fixed1817toFloat(unsigned u)

{
int u32;

u32 = (u & 1<<(LENGTH-1))? (~0x3ffff) |u : u;

return (double) u32 / (double) (0x1ffff);
}


degree = Fixed1817toFloat(u) * 180.;

<prefix>:LOOPFILTER_RESET_RBVreadback value for loop filter resetLoopReset<SIM_prefix>:M:PRLMST:LoopReset:Rd

0: for normal operation

1: Resetloopfilterintegral

<prefix>:LOOPFILTTER_RESETset value for loop filter resetLoop Reset

<SIM_prefix>:M:PRLMST:LoopReset:St

0: for normal operation

1: Resetloopfilterintegral

<prefix>:LEDreadback value for blue/red/green LEDLED

<SIM_prefix>:M:PRLMST:LED:Rd

000: Error, FPGA image not flash, there should at least one LED on between Green and Red

001: Locked, but amplitude input is too low or high

010: Unlocked, but amplitude input is too low or high

011: Error, Locked and Unlocked should not be on in the same time

100: Error, there should at least one LED on between Green and Red

101: Locked, input amplitudes are good

110: Unlocked, input amplitudes are good

111: Error, Locked and Unlocked should not be on in the same time

<prefix>:PHASEERR1

phase error before the phase shifterRawPhiErr

<SIM_prefix>:M:PRLMST:RawPhiErr:Rd

18_17bit signed 2'comp value, so decimal value ranges +/-1.  Because this is a normalized phase value from the CORDIC:

+1 = 180degree

-1 = -180degree

Should display in degrees


/* conversion 2'scomp fixed point (18_17bit) to floating point */

#define LENGTH 18
double Fixed1817toFloat(unsigned u)

{
int u32;

u32 = (u & 1<<(LENGTH-1))? (~0x3ffff) |u : u;

return (double) u32 / (double) (0x1ffff);
}


degree = Fixed1817toFloat(u) * 180.;

<prefix>:PHASEERR2phase error after the phase shifterPhiErrFinal

<SIM_prefix>:M:PRLMST:PhiErrFinal:Rd

18_17bit signed 2'comp value, so decimal value ranges +/-1.  Because this is a normalized phase value from the CORDIC:

+1 = 180degree

-1 = -180degree

Should display in degrees


/* conversion 2'scomp fixed point (18_17bit) to floating point */

#define LENGTH 18
double Fixed1817toFloat(unsigned u)

{
int u32;

u32 = (u & 1<<(LENGTH-1))? (~0x3ffff) |u : u;

return (double) u32 / (double) (0x1ffff);
}


degree = Fixed1817toFloat(u) * 180.;

<prefix>:LOCKlock logic statusLockLogicState

<SIM_prefix>:M:PRLMST:LockLogicState:Rd


<prefix>:INPUTMUX_RBVreadback input muxInput MUX

<SIM_prefix>:M:PRLMST:Input_MUX:Rd


0: Chan 1 - Chan 2

1: Chan 2 - Chan 1

<prefix>:INPUTMUXset input muxInput MUX

<SIM_prefix>:M:PRLMST:Input_MUX:St

0: Chan 1 - Chan 2

1: Chan 2 - Chan 1
<prefix>:W0SCALE_RBVreadback w0 scalew0_scale

<SIM_prefix>:M:PRLMST:w0_scale:Rd

w0 scale register.  w0 = 100Hz, this register is used to scale the w0 of the loopfilter.  Xilinx expect a 18bit signed 2's comp number with binary point at 5th bit.  Hardware register is 32bith wide, please keep value 0 after the 18th bit.
<prefix>:W0SCALEset w0 scalew0_scale

<SIM_prefix>:M:PRLMST:w0_scale:St

w0 scale register.  w0 = 100Hz, this register is used to scale the w0 of the loopfilter.  Xilinx expect a 18bit signed 2's comp number with binary point at 5th bit.  Hardware register is 32bith wide, please keep value 0 after the 18th bit.
<prefix>:W1_RBVreadback w1 value in radianw1

<SIM_prefix>:M:PRLMST:w1:Rd

w1 value in radian.  Xilinx expect a 18bit signed 2's comp number with binary point at 5th bit.  Hardware register is 32bith wide, please keep value 0 after the 18th bit.
<prefix>:W1set w1 value in radianw1

<SIM_prefix>:M:PRLMST:w1:St

w1 value in radian.  Xilinx expect a 18bit signed 2's comp number with binary point at 5th bit.  Hardware register is 32bith wide, please keep value 0 after the 18th bit.
<prefix>:PRAMPSLOPE_RBVreadback value for phase shift ramp slopePhase_ramp_gain

<SIM_prefix>:M:PRLMST:Phase_ramp_gain:Rd

Slope of the phase shift ramp function.  Internally converted to 18bit signed 2'comp value.  Entered as a decimal in the GUI
<prefix>:PRAMPSLOPEset value for phase shift ramp slopePhase_ramp_gain

<SIM_prefix>:M:PRLMST:Phase_ramp_gain:St

Slope of the phase shift ramp function.  Internally converted to 18bit signed 2'comp value.  Entered as a decimal in the GUI
<prefix>:ADCAMP0_RBVreadback value for ADC0 amplitude from CORDICADC0_Amp

<SIM_prefix>:M:PRLMST:ADC0_Amp:Rd

18_17 signed 2'comp registers, max value is between almost -1 and 1.  The value is normalized to 1 from the 1.8V amplitude ADC. This is amplitude, not peak to peak value

1 = 1.8V

-1 = -1.8V


/* conversion 2'scomp fixed point (18_17bit) to floating point */

#define LENGTH 18
double Fixed1817toFloat(unsigned u)

{
int u32;

u32 = (u & 1<<(LENGTH-1))? (~0x3ffff) |u : u;

return (double) u32 / (double) (0x1ffff);
}


volt = Fixed1817toFloat(u) * 1.8;

<prefix>:ADCAMP1_RBVreadback value for ADC1 amplitude from CORDICADC1_Amp

<SIM_prefix>:M:PRLMST:ADC1_Amp:Rd

18_17 signed 2'comp registers, max value is between almost -1 and 1.  The value is normalized to 1 from the 1.8V amplitude ADC. This is amplitude, not peak to peak value

1 = 1.8V

-1 = -1.8V


/* conversion 2'scomp fixed point (18_17bit) to floating point */

#define LENGTH 18
double Fixed1817toFloat(unsigned u)

{
int u32;

u32 = (u & 1<<(LENGTH-1))? (~0x3ffff) |u : u;

return (double) u32 / (double) (0x1ffff);
}


volt = Fixed1817toFloat(u) * 1.8;

<prefix>:LOCKDISABLE_RBVreadback value for loop lock disable setting bit in lock logic state machineLockDisable

<SIM_prefix>:M:PRLMST:LockDisable:Rd

0 - loop enable

1 - loop disable
<prefix>:LOCKDISABLEset value for loop lock disableLockDisable

<SIM_prefix>:M:PRLMST:LockDisable:St

0 - loop enable

1 - loop disable

<prefix>:LOCKRESET_RBVreadback value for reset the lock logic state machineStateReset

<SIM_prefix>:M:PRLMST:StateReset:Rd

0 - normal operation

1 - state machine reset
<prefix>:LOCKRESETset value for reset locking logicStateReset

<SIM_prefix>:M:PRLMST:StateReset:St

0 - normal operation

1 - state machine reset


SIM VCO (slave) PVs

<prefix> = PRL:SYS0:<NN>

<SIM_prefix> = SIM<NN>

NN = two-digit IOC number

PV nameDescription for PVRemarks (register name)YCPSW nameCalculation Formula
<prefix>:RXFRAMERATEFrame rate counter

<SIM_prefix>:M:HwC:RxFrameRate:Rd


<prefix>:PACKETDROPCNTPacket drop counter
<SIM_prefix>:M:HwC:RxErrDropCnt:Rd


RF Power Amplifier (PA) PVs

From Beckhoffs.

<prefix> = PRL:SYS0:<NN>:<MM>

NN = two-digit IOC number

MM = PA instance, e.g. L0, L2,...

PV nameDescriptionRemarks
<prefix>:FwdPwrForward Power

0...2V input, need to convert (polynomial)


<prefix>:RefPwrReflect Power

0...2V input, need to convert (polynomial)


<prefix>:AmpResetPower Amplifier Reset

High to reset


<prefix>:FwdPwrAlmForward Power Alarm

Normally high


<prefix>:PSAlmPower Supply Alarm

Normally high


<prefix>:TempAlmTemerature Alarm

Normally high


<prefix>:AttnBit0Attenuator data bit 0


<prefix>:AttnBit1Attenuator data bit 1


<prefix>:AttnBit2Attenuator data bit 2
<prefix>:AttnBit3Attenuator data bit 3
<prefix>:AttnBit4Attenuator data bit 4
<prefix>:AttnBit5Attenuator data bit 5
<prefix>:AttnBit6Attenuator data bit 6
<prefix>:AttnAttenuator data for all 8 bits

mbbiDirect record


<prefix>:AttnSetptAttenuator set point

AO record, limits: 0 - 31.75 dB


<prefix>:AttnSetptIncAttenuation increase

BO record, increase attenuator set point by 1 step (0.25 dB)


<prefix>:AttnSetptDecAttenuation decrease

BO record, decrease attenuator set point by 1 step (0.25 dB)


<prefix>:AttnGoMaxGo to max attenuationSeq record
<prefix>:AttnFaultCalcOn PS alarm, go to max attenuationCalcout record
<prefix>:AttnRampDownRamp down attenuationSeq record



Rack temp & water flow PVs

From Beckhoffs.

<prefix> = PRL:SYS0:<NN>:<MM>

NN = two-digit IOC number

MM = two-digit instance

PV nameDescriptionRemarks

<prefix>:WaterFlow

Water Flow Measurement  

Units = GPM


<prefix>:WaterTemp

Water Temp Measurement

Units = C



Beckhoff BK9000 Bus Coupler PVs

Typically used by experts for debugging.  Names are from bkhAsyn driver.

<prefix> = BKHF:SYS0:MS<NN>

NN = two-digit IOC number

PV nameDescriptionRemarks
<prefix>:900R_MIDID and firmwarero
<prefix>:900R_REG10PLC Interfacero
<prefix>:900R_REG11Bus terminal diagnosisro
<prefix>:900R_REG12Status bytero
<prefix>:900R_REG16Analog output lengthro
<prefix>:900R_REG17Analog input lengthro
<prefix>:900R_REG18Output image lengthro
<prefix>:900R_REG19Intput image lengthro
<prefix>:900R_REG32Watchdog timerro
<prefix>:900R_REFRefresh datarw
<prefix>:900W_REG0PLC Interfacerw
<prefix>:900W_REG1Bus terminal diagnosisrw
<prefix>:900W_REG22Watchdog timeout [ms]rw
<prefix>:900W_REG23Watchdog resetrw
<prefix>:900W_REG24Watchdog typerw
<prefix>:900W_REG25Modbus TCP moderw
<prefix>:900W_WD_RESETWatchdog resetrw
<prefix>:DBG_ALW_INLQLow priority queue lengthrw
<prefix>:DBG_MADDRSelect memory addressrw
<prefix>:DBG_MFUNCSelect modbus functionrw
<prefix>:DBG_MVALValue to write to memoryrw
<prefix>:DBG_GETMEMGet value at addressrw
<prefix>:DBG_PUTMEMPut value to addressrw
<prefix>:DBG_EN_HISTEnable histogramrw
<prefix>:DBG_GET_HISTGet hist datarw
<prefix>:DBG_CLR_HISTClear hist datarw
<prefix>:DBG_TIME_HISTHistogram dataro


Spare Beckhoff channel PVs

Shown below are a few examples; the rest differ only by channel number.

These names will not be on any displays.

<prefix> = BKHF:SYS0:MS<NN>

NN = two-digit IOC number

PV nameDescriptionRemarks
<prefix>:3122_01_CH02_I Module 3122 1, channel 2 current
<prefix>:3122_01_CH02_SBYTEModule 3122 1, channel 2 status byteFor analog modules only
<prefix>:1408_01_CH01_QModule 1408 1, channel 1 bit value
<prefix>:2408_01_CH01_QSETPTModule 2408 1, channel 1 bit setpt
...






  • No labels