Skip to content

BLEPS-2: BLEPS PV availability + concrete PV-to-Supply/Asset mapping #563

Description

@decarlof

# BLEPS-2: BLEPS PV availability + concrete PV-to-Supply/Asset mapping

Title: BLEPS-2: BLEPS fault/status signals are Channel Access readable — mapping to Supply/Asset

Body:

Question

Whether BLEPS fault/status signals are readable as Channel Access PVs for an external observer, referencing tags like A_Fault_Exists, GV1.Faulted, and FES.Permit / SBS.Permit.

CORA assumes they are readable via the BLEPS PLC EPICS interface, but the exact PV-to-Supply/Asset mapping is unknown.

Answer

Yes — every BLEPS signal (~385 BLEPS-domain PVs) is readable over Channel Access. The EPICS soft IOC that fronts the BLEPS PLC has been deployed and is running.

IOC deployment (as of 2026-07-14)

  • Host: arcturus, 2bmb account.
  • IOC directory: /net/s2dserv/xorApps/epics/synApps_6_3/ioc/2bmBLEPS
  • PV prefix: 2bmBLEPS: — BLEPS-domain PVs are under 2bmBLEPS:BLEPS:*.
  • PV count: 599 total (385 BLEPS-domain + 214 iocAdminSoft admin).

Full deployment + operating instructions (start/stop the IOC, MEDM bleps_status.adl summary, caQtDM bleps_all.ui full panel) are in 2bm-docs manual/item_025.rst "EPICS IOC" section.

PLC-tag → EPICS-PV naming convention

The controller-side PLC tags use dotted notation. On the EtherNet/IP-to-EPICS gateway, dots are translated to underscores. So:

CORA-referenced PLC tag Deployed EPICS PV Verify
A_Fault_Exists 2bmBLEPS:BLEPS:A_FAULT_EXISTS caget 2bmBLEPS:BLEPS:A_FAULT_EXISTS
GV1.Faulted 2bmBLEPS:BLEPS:GV1_FAULTED caget 2bmBLEPS:BLEPS:GV1_FAULTED
FES.Permit 2bmBLEPS:BLEPS:FES_PERMIT caget 2bmBLEPS:BLEPS:FES_PERMIT
SBS.Permit 2bmBLEPS:BLEPS:SBS_PERMIT caget 2bmBLEPS:BLEPS:SBS_PERMIT

All four are live in the current deployment and confirmed with caget against the running IOC.

PV-to-Supply mapping (utility signals)

From the physical assignments documented in manual/item_025.rst:

PV pattern Supply
FLOW1_CURRENT / FLOW1_SET_POINT / FLOW1_TRIP Filter + upstream Slits cooling water
FLOW2_* M1 Mirror + DMM cooling water
FLOW3_* Window 1 + Missteer Mask cooling water
FLOW4_* Windows 2 & 3 cooling water
FLOW5_* White Beam Mask + SBS Shutter cooling water
FLOW6_* Station B entrance-slits cooling water
FLOW7_* Window 4 (Station B) cooling water
FLOW8_* Station B Photon Stop cooling water
TEMP1_* M1 mirror tank — Lower thermocouple
TEMP2_* M1 mirror tank — Middle thermocouple
TEMP3_* M1 mirror tank — Upper thermocouple
IP1_STATUS / IP1_WARNING .. IP7_* Vacuum, per ion-pump controller (7 pumps)
IG1_STATUS / IG1_WARNING .. IG8_* Vacuum, per ion-gauge controller (8 gauges)
VS1_TRIP .. VS7_TRIP Vacuum, per vacuum-section (7 sections)

PV-to-Asset mapping (device signals)

PV pattern Asset
BIV_CLOSED, BIV_PERMIT, BIV_FAIL_TO_CLOSE Beamline Isolation Valve (BIV)
FES_CLOSED, FES_PERMIT, FES_FAIL_TO_CLOSE Front-End Shutter (FES)
SBS_CLOSED, SBS_PERMIT, SBS_FAIL_TO_CLOSE Station-B Shutter (SBS)
GV1_FAULTED, GV1_FAULT_* (9 sub-flags), GV1_CLOSED_LS, GV1_OPENED_LS, GV1_EPICS_OPEN, GV1_EPICS_CLOSE Gate Valve 1 (between Slits and M1 mirror tank)
GV2_FAULTED, GV2_FAULT_*, GV2_CLOSED_LS, GV2_OPENED_LS, GV2_EPICS_OPEN, GV2_EPICS_CLOSE Gate Valve 2 (between Windows 2&3 and SBS)
GV3_FAULTED, GV3_FAULT_*, GV3_CLOSED_LS, GV3_OPENED_LS, GV3_EPICS_OPEN, GV3_EPICS_CLOSE Gate Valve 3 (between transport and Station B)

Per-Asset boundary is unambiguous — every fault / permit / limit-switch flag belongs to exactly one Asset.

System-level (neither Supply nor Asset)

The three top-level aggregate booleans (A_FAULT_EXISTS, A_TRIP_EXISTS, WARNING_EXISTS) plus the fault/trip/warning FIFOs (Faults.Number[0..9], ...) do not belong to any single Supply or Asset. See BLEP
S-3 for how these fit CORA's model.

Write PVs (commandable state)

For completeness — beyond read-side status, the IOC exposes:

  • A_FAULT_RESET, TRIP_RESET (system-level fault / trip reset).
  • GV1_EPICS_OPEN / GV1_EPICS_CLOSE (per-valve command), same for GV2 and GV3.
  • BIV_PERMIT / FES_PERMIT / SBS_PERMIT (per-shutter permit outputs; primarily driven by the interlock chain, but readable and, in principle, writable).

CORA can subscribe to any of the read-side PVs directly. Recommended pattern: use monitor / camonitor rather than periodic caget — WARNING_EXISTS toggles asynchronously as vacuum conditions latch and clear.

Related

  • BLEPS-1 — utility vs device fault taxonomy (defines the Supply / Asset boundary this mapping fills in).
  • BLEPS-3 — system-level aggregate state (the three _EXISTS PVs and the reset commands).

Sources

  • Deployed PV list: dbl-all.txt in /net/s2dserv/xorApps/epics/synApps_6_3/ioc/2bmBLEPS/iocBoot/ioc2bmBLEPS/ (authoritative — dumped at IOC startup).
  • IOC substitutions: bleps.substitutions in the same directory (defines each PV's record type and PLC-tag binding).
  • Deployment doc: 2bm-docs manual/item_025.rst "EPICS IOC" section (start/stop, screen-launch instructions).
  • Physical assignments: manual/item_025.rst "Physical assignments at 2-BM" (Flow / Temp / GV → physical component mapping).

/cc @xmap

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions