Skip to content

Reduce FFO fatigue and simplify commissioning state positioners through single boolean ffo off using maintenance mode#250

Draft
NSLentz wants to merge 2 commits intopcdshub:masterfrom
NSLentz:maintenance_mode_only_one_ffo
Draft

Reduce FFO fatigue and simplify commissioning state positioners through single boolean ffo off using maintenance mode#250
NSLentz wants to merge 2 commits intopcdshub:masterfrom
NSLentz:maintenance_mode_only_one_ffo

Conversation

@NSLentz
Copy link
Contributor

@NSLentz NSLentz commented Feb 24, 2026

  • I am making this PR to intentionally start debate on this topic.

Description

  • I am proposing this change in order to simplify the user experience during commissioning.
  • The proposal is for Arbiter enable/disable to still do the same thing except turning a pmps state positioner into maintenance mode would now make only one ffo occur, and that is an ffo to state you are in maintenance mode. All other ffos in the pmps state positioner would be blocked.

Motivation and Context

  • I argue that the system as is too confusing from the user perspective. Even as SME, I can never remember what the maintenance mode and arbiter enable/disable are supposed to do. This change would simplify the user experience. I argue that we will have a better user experience if they can just take the system under maintenance level control from one boolean.
  • Additionally, users already seem to expect this behavior anyways.

How Has This Been Tested?

  • This change has not yet been tested. I propose we debate the merits first before committing to implementing and testing the changes.

Where Has This Been Documented?

Pre-merge checklist

  • Code works interactively
  • Test suite passes locally
  • Code contains descriptive comments
  • Libraries are set to Always Newest version (Library, *)
  • Committed with pre-commit or ran pre-commit run --all-files

…ction block is not enabled such as when we are in maintenance mode.
@NSLentz NSLentz requested review from a team as code owners February 24, 2026 18:47
@NSLentz NSLentz requested review from yannS2016 and removed request for a team February 24, 2026 18:47
…ioner to make maintenance mode a one stop shop to stop all ffos and arbitration from occuring for a given state positioner.
@NSLentz NSLentz changed the title Made it so that invalid goal position ffo is not triggered if the fun… Reduce FFO fatigue and simplify commissioning state positioners through single boolean ffo off using maintenance mode Feb 24, 2026
@NSLentz NSLentz marked this pull request as draft February 24, 2026 19:22
@NSLentz NSLentz requested review from ZLLentz and ghalym February 24, 2026 19:22
@ZLLentz
Copy link
Member

ZLLentz commented Feb 26, 2026

I agree with the general approach here- I might have a related thought about reducing the number of FFOs in general. But this is a good idea.

// Trip the beam for BPTM timeouts if we want to move
// Only reset at safe beam OR at no bptm errors (some other FF should catch additional issues)
ffBPTMTimeoutAndMove.i_xOK := NOT (bArbiterTimeout AND bMoveOnArbiterTimeout AND bEnable);
ffBPTMTimeoutAndMove.i_xOK := NOT (bArbiterTimeout AND bMoveOnArbiterTimeout) OR (NOT THIS^.bEnable);
Copy link
Member

Choose a reason for hiding this comment

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

I'm rusty on my Beckhoff OOP- what do these changes do?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants