Skip to main content

immediate

Short summary

Sets the stop request behavior to always process stop requests immediately for the current step.

Purpose and usage

This method configures the current step to always process stop requests immediately, regardless of the step's execution state or outcome. This setting overrides the sequence default for this specific step. Stop requests are handled as soon as they are received, potentially interrupting the current operation.

This mode provides the most responsive stop behavior for the specific step but may interrupt operations that are in progress.

typical usage patterns

  1. Non-critical steps: Allow immediate stop on safe steps
  2. Wait steps: Enable quick response during waits
  3. User interaction: Responsive stops during user steps
  4. Idle states: Allow immediate stop when idle

When to use

  • For steps where immediate stop response is acceptable
  • During wait or idle steps
  • For non-critical operations that can be interrupted
  • To override restrictive sequence defaults for specific steps

Example

// Configure specific step for immediate stop
cycleManager.configuration.configuration.step
.stopRequest
.always();

// Apply to wait steps
CASE cycleManager.steps.current OF
MySteps.WAIT_FOR_INPUT:
// This step can be interrupted immediately
cycleManager.configuration.configuration.step
.stopRequest.always();
IF inputReceived THEN
cycleManager.steps.next := MySteps.PROCESS_INPUT;
END_IF;

MySteps.IDLE:
// Idle step allows immediate stop
cycleManager.configuration.configuration.step
.stopRequest.always();
IF startCommand THEN
cycleManager.steps.next := MySteps.START_PROCESS;
END_IF;
END_CASE

Parameters

none

Code

Declaration

METHOD immediate

Implementation

THIS^.cycleManager.currentStopRequestMode := CNM_CycleManagerInterfaces.StepStopRequestMode.IMMEDIATE;