Interface ProcessLogic

All Known Implementing Classes:
ESDLogic, HIPPSLogic, IntegratedSafetySystemWithLogicExample.HIPPSLogic, PressureControlLogic, ProcessLogicIntegratedExample.GradualPressureReductionLogic, SafetyInstrumentedFunction, ShutdownLogic, StartupLogic

public interface ProcessLogic
Base interface for all process logic implementations.

Process logic represents automated control sequences that coordinate multiple pieces of equipment to achieve specific operational objectives such as:

  • Emergency Shutdown (ESD) sequences
  • Startup procedures
  • Shutdown sequences
  • Mode transitions
  • Batch operations

Logic execution is typically driven by triggers (manual or automatic) and proceeds through a series of steps with timing, conditions, and actions on equipment.

Version:
1.0
Author:
ESOL
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Activates the logic sequence, starting execution.
    void
    Deactivates the logic sequence, pausing or stopping execution.
    void
    execute(double timeStep)
    Executes one time step of the logic sequence.
    Gets the name of this logic sequence.
    Gets the current state of the logic.
    Gets a description of the current status.
    Gets the list of equipment targeted by this logic.
    boolean
    Checks if the logic is currently active (running).
    boolean
    Checks if the logic sequence has completed successfully.
    boolean
    Resets the logic sequence to its initial state.
  • Method Details

    • getName

      String getName()
      Gets the name of this logic sequence.
      Returns:
      logic name
    • getState

      LogicState getState()
      Gets the current state of the logic.
      Returns:
      current logic state
    • activate

      void activate()
      Activates the logic sequence, starting execution.

      If the logic is already active, this may restart it or have no effect depending on implementation.

    • deactivate

      void deactivate()
      Deactivates the logic sequence, pausing or stopping execution.

      The logic remains in its current state and can be reactivated later.

    • reset

      boolean reset()
      Resets the logic sequence to its initial state.

      This prepares the logic for a fresh execution. Reset may require certain permissive conditions to be met.

      Returns:
      true if reset was successful, false if permissives not met
    • execute

      void execute(double timeStep)
      Executes one time step of the logic sequence.

      This method should be called repeatedly in transient simulations to advance the logic through its steps.

      Parameters:
      timeStep - time increment in seconds
    • isActive

      boolean isActive()
      Checks if the logic is currently active (running).
      Returns:
      true if logic is active
    • isComplete

      boolean isComplete()
      Checks if the logic sequence has completed successfully.
      Returns:
      true if logic has completed all steps
    • getTargetEquipment

      List<ProcessEquipmentInterface> getTargetEquipment()
      Gets the list of equipment targeted by this logic.
      Returns:
      list of target equipment
    • getStatusDescription

      String getStatusDescription()
      Gets a description of the current status.
      Returns:
      status description