Skip to content

Conversation

iangillingham-stfc
Copy link
Contributor

@iangillingham-stfc iangillingham-stfc commented Sep 9, 2025

Description of work

The IPS IOC now supports the SCPI protocol, which is more feature rich than Legacy mode.
Effort was made to ensure that the top level EPICS interface was was changed as little as possible.
It was particularly important that the SNL state-machine logic was not altered.
This all required some careful designing of the new interface to provide PV compatibility with the legacy mode.
There is now significantly more diagnostic information available, along with support for daughter-boards, such as He and N level meters, pressure measurement, etc., all of which have necessitated additions to the user interface in the IBEX client.
The IOC can be configured to run with either legacy or SCPI protocols via a STREAMPROTOCOL macro ("SCPI" | "LEGACY"). The IOC publishes a new PV $(P)PROTOCOL, which reflects the configuration mode, allowing the user interface to hide or show attributes and controls relevant to SCPI or LEGACY modes.

Associated PRs are prepared for:
IPS support module (EPICS-IPS: (ISISComputingGroup/EPICS-IPS#9))
IBEX GUI (ibex_gui: ISISComputingGroup/ibex_gui#1809)
IOC Test Framework - moved ips to support module (IocTestFramework: ISISComputingGroup/EPICS-IOC_Test_Framework#661)
Ibex Developer's Manual (ibex_developers_manual: ISISComputingGroup/ibex_developers_manual#84)
Release notes (IBEX: ISISComputingGroup/IBEX#8831)

To test

#8641

Acceptance criteria

  • New generation of Mercury IPS Magnet power supply can be controlled out of emulation mode
  • cryogen levels can be read
  • Has been tested against actual hardware

Code Review

Functional Tests

Alex Jones from Magnet Group has reviewed the changes using a real device. After a couple of mods and re-testing, he was happy and passed the real-life testing.

IOC Test Framework: The lewis emulator for this device has been significantly modified to support both SCPI and LEGACY modes.

in C:\Instrument\Apps\EPICS\support\IPS\master\system_tests, run bit SCPI and legacy mode tests:
run_tests.bat -t ips_scpi
run_tests.bat -t ips

  • IOC responds correctly in:
    • Devsim mode
    • Recsim mode
    • Real device, if available
  • Supplementary IOCs (..._0n where n>1) run correctly
  • Log files do not report undefined macros (search for macLib: macro to find instances of macLib: macro [macro name] is undefined...

Final steps

  • Update the IOC submodule in the main EPICS repo. See Git workflow page for details.
  • Reviewer has merged the associated PR for the release notes

iangillingham-stfc and others added 28 commits March 11, 2025 12:58
…eft in place as comment in case needed again at a future date
…alarm messages were being truncated by stringin type.
…SWEEPMODE:SP PV does not exist. It was clearer to implement a separate state machine than to have lots of complex conditionals in one file
Copy link
Member

@Tom-Willemsen Tom-Willemsen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Should: There's a few places where we have inline commentary talking about differences between SCPI & legacy mode. I think this commentary is better placed on the dev wiki, where it has more chance of being found, and then deleted from the DBs.
  • Should: In general we don't need names/dates of changes in the DB - we have git for tracking that.

…common.db. Utilised alarms template file to also create system status records. Removed SCPI statemachine and using a single one, now that the SCPI db creates a dummy SWEEPMODE:PARAMS:SP record.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants