Wirescanners must move at a minimum speed before intercepting the beam in order to not damage the wires.

As per  LCLS-II General Motion and Fast Wire Scanner Controls requirements (LCLSII-2.7-PR-0808)


Minimum speed/MPS Speed = 0.34 * sqrt(2) * Actual_Rate [Hz] / 600,000 ms-1


The speed of the wire during the scan from xi to xf for example is calculated by the formula

scan speed = Actual Rate*(xf – xi) / (No of points)


Scan speed must always be greater than Minimum/MPS speed.


The wirescanner controls (in ATCA Carrier FPGA code) measures current speed of the wirescanner and compares it against the minimum/MPS speed to determine if the wirescanner is moving as fast as it should.

In the instance where the speed is not fast enough, the wirescanner controls (ATCA Wirescanner carrier) will send a MPS digital message through ATCA backplane to slot 2 of the ATCA crate.


For this to work:


  • The wirescanner must be receive its triggers through backplane:
    • TPR:<IOC_LOCA>:<IOC_UNIT>:0:TCRB0:OUTPUTCONFIG 0
    • TPR:<IOC_LOCA>:<IOC_UNIT>:0:TCRB1:OUTPUTCONFIG 0
    • TPR:<IOC_LOCA>:<IOC_UNIT>:0:TCRB2:OUTPUTCONFIG 0
    • TPR:<IOC_LOCA>:<IOC_UNIT>:0:TCRB3:OUTPUTCONFIG 0
  • Next the clock source must be set to SC Mode
    • TPR:<IOC_LOCA>:<IOC_UNIT>:0:MODE
  • Items 1 and 2 will automatically get set, when the facility is set in SC mode.  But if there is some database error, we should check on it,
  • It is possible, the Facility mode is set to override, which is used for local testing. Make sure the override mode is un-selected.
    • <IOC>:FACMODE_AUTO 1 (which is global)
  • The MPS PV must be set to the correct state. This is not a PV we touch, but if the wirescanner is being finicky, we may have set the wirescanner node to NC mode, so it ignores the faults.
    • MPLN:BSYH:MP01:7:LC1_MODE 1
    • This PV sets the Wirescanner node to NC mode.
    • How to find the PV name, dbgrep in iocConsole for this MPLN PV
  • The ATCA slot should have AMC cards installed. (Already installed and PVs should be set). But check if something is wrong. This is to make sure the firmwre knows AMC is installed and knows what triggers to use.
    • AMCC:<IOC_LOCA>:<IOC_UNIT>:ADCSelect0
    • AMCC:<IOC_LOCA>:<IOC_UNIT>:ADCSelect1 0
  • For Wirescanner crate to send data, trigger 10 must be enabled and listening to a correctly configured trigger channel( In our case, it is trigger channel 10)
    • Trigger channel 10 must be set to 1MHz (TPR:L1B:MC01:0:CH10_FIXEDRATE  1MHz)
    • Trigger channel 10 SC Dest mode should be set to Dont Care (TPR:L1B:MC01:0:CH10_DESTMODE   Don\'t care)
    • Trigger Channel 10 is enabled (TPR:L1B:MC01:0:CH10_SYS2_TCTL  Enabled)
    • Trigger 10 is enabled ( TPR:L1B:MC01:0:TRG10_SYS2_TCTL Enabled)
    • Trigger 10 is listening to channel 10 (TPR:L1B:MC01:0:TRG10_SOURCE    Channel 10)
    • Trigger 10 has some width (eg 10ns) (TPR:L1B:MC01:0:TRG10_SYS2_TWID 10)
  • Do not play with Trigger 10 TDES or TPR Master Delay as if you play with it, you will momentarily cause timeout errors.

Once the timing settings are set,

we can start the MPS logic check:

  • If Wirescanner on Lower Limit, MPS is ignored.(WIRE:LTUS:785:LLimitSwitchRBV  0). Sometimes, wirescanner is springy and doesn't sit on the limit switch. Its okay/ Just check to make sure the wirescanner torque is disabled.
  • If wirescanner is not on lower limit, check if WS in MPS range,
    • WIRE:LTUS:785:MPSMonStartPosRBV < WIRE:LTUS:785:CalcPos < WIRE:LTUS:785:MPSMonStopPosRBV
    • If it is not in the range, it is okay.
  • If wirescanner is in the range, check if Speed is greater than MPS threshold.
    • If wirescanner fast, it is okay.
  • If wirescanner slow, then check if beam charge is less than Threshold.
    • If charge is less, then okay.
  • If charge is greater thatn threshold, check for beam rate.
    • If beam rate is less than MPS Threshold, ok
  • Otherwise FAULT!


  • No labels