AseptSoft Core Documentation

Algorithm Design

Algorithm Design defines when and how the execution transitions from one Step to the next. Each Step contains an Algorithm — a sequence of Conditions that must be fulfilled before the process can move on.

💡 Think of it this way: Process Design defines what the valve positions are. Algorithm Design defines when to move from one set of positions to the next — based on sensor readings, timer expirations, operator confirmations, or any combination of these.


📋 Overview

Concept

Description

Algorithm

A sequence of conditions attached to a Step, defining the transition logic

Condition

An atomic decision point in the algorithm (e.g., wait for a sensor reading, timer, or operator input)

SFC Editor

The visual Sequential Function Chart editor for managing conditions — see SFC Editor (GRAFCET)

Key relationship: Each Step has exactly one Algorithm, and each Algorithm belongs to exactly one Step.


🎛️ Accessing the Condition Editor

To open the Condition Editor, go to the Condition panel in the Module Ribbon and click the Edit button. A window opens where you can create, view, and modify conditions for the current step.

At the top left corner of the editor you will see:

Indicator

Color

Meaning

Process name

🟡 Yellow

The process you are currently working in

Step number/name

🔵 Blue

The step this condition belongs to

Condition number/name

🟢 Green

The currently selected condition within the step

💡 Tip: Click on the process, step, or condition indicator to open a dropdown and quickly switch to a different process, step, or condition.


🔧 Condition Types

Each condition has a Type that determines its behavior and which fields are available. You select the type from the icons at the top of the Condition Editor window. Each type also has its own distinct symbol in the Module Ribbon, so you can identify condition types directly from the ribbon without opening the editor.

Type

Symbol

Description

Key Fields

Transition

⬡ (branching icon)

Transitions to another step when the condition is fulfilled. This is the most common type — it acts as a gate that must be satisfied before moving forward.

Description, Prompt, Condition, Success Transition

Continuous Action

A

Executes an action continuously/perpetually while the step is active. Used for operations that run throughout the entire step, such as constantly saving a sensor reading to a variable.

Description, Prompt, Success Action

Cont. Action + Condition

ᴶᶜ A

Executes the action only while the condition is true. When the condition becomes false, the action stops.

Description, Prompt, Condition, Success Action

Stored on Activation

↑ A

Executes the action once when the step first becomes active (rising edge). Used for one-shot initialization tasks.

Description, Prompt, Success Action

Stored on Deactivation

↓ A

Executes the action once right before the step becomes inactive (falling edge). Used for cleanup or finalization tasks executed just before transitioning to the next step.

Description, Prompt, Success Action

Stored on Event

ᵐᴱ A

Executes the action once when a specific event occurs (the condition becomes true) during the step.

Description, Prompt, Condition, Success Action

Custom

⭐ (dashed box)

A fully customizable condition layout. All fields are available for you to define conditions according to your specific needs when the preset types don't fit your requirements.

Description, Prompt, Condition, Success Action, Fail Action, Success Transition, Fail Transition


📝 Condition Fields

Depending on the selected condition type, different fields are available in the editor:

Field

Icon

Description

Available For

Description

📖

A human-readable explanation of the condition. This text also becomes the name of the condition as it appears in the ribbon and other views.

All types

Prompt

🖥️

Text or Dialog shown to the operator during production. Use this when an information, a manual input, or a decision needs to be made by a human.

All types

Condition

🧮

The formal expression that defines what must be true. For example: 201-18-500-PI-311 > 70 means "if pressure indicator 201-18-500-PI-311 exceeds 70". Use the Condition Builder (click the builder icon on the right) for guided construction.

Transition, Cont. Action + Condition, Stored on Event, Custom

Success Action

The action performed when the condition succeeds. For example: var4 = 201-18-500-PI-010 saves a sensor reading to a variable. Use the Action Builder for guided construction.

Continuous Action, Cont. Action + Condition, Stored on Activation, Stored on Deactivation, Stored on Event, Custom

Fail Action

The action performed when the condition fails.

Custom

Success Transition

➡️

The step to transition to when the condition is met. For example: Step 2

Transition, Custom

Fail Transition

➡️

The step to transition to when the condition fails.

Custom

💡 Tip: The Condition and Action fields support formal expressions. Click the builder icon (🔧) to the right of each field to open the Condition Builder or Action Builder for guided expression construction.


🖥️ Using the Prompt Field with Dialogs

The Prompt field is used to show information or collect input from the operator during production. You can write plain text (e.g., "Tell the operator we want to start the CIP cycle") or reference a Dialog for structured operator interaction.

Inserting a Dialog into the Prompt

  1. In the Prompt field, click the arrows icon on the right side

  2. A window opens showing all available Dialogs

  3. Click the + button in the bottom right corner to open the Dialog Editor and create a new dialog

  4. In the Dialog Editor, you see a live preview on the right. On the left side, you can drag and drop control types:

    • Button — clickable options for the operator

    • CheckBox — multiple boxes that can be ticked simultaneously

    • RadioButton — exclusive selection (only one option can be chosen)

    • TextInput — free text entry

    • NumericInput — whole number entry

    • FloatInput — decimal number entry

  5. You can also use the built-in AI feature to generate a dialog layout automatically

  6. Drag and drop controls to reorder them, or drag to the trash to remove. Click directly on text labels to edit them

  7. Close the Dialog Editor when finished

Managing Dialogs

  • Right-click on a dialog in the overview to access options: Edit, Duplicate, or Remove

  • When you click a dialog to select it, the dialog name is inserted into the Prompt field

  • The selected dialog appears as a preview on the right side of the Prompt field

  • Click the dialog preview to reopen the Dialog Editor and make changes

  • You can combine dialog references with plain text in the Prompt field (e.g., "Please confirm the following: [Dialog Name]")

📖 For more details on creating and managing dialogs, see the Dialog page.


🔨 Condition Editor Toolbar

At the top of the Condition Editor window, you have buttons to organize your conditions:

Button

Description

➕ Add

Creates a new condition in the current step (the one shown in blue)

📋 Duplicate

Duplicates the currently selected condition (shown in green). Expand the dropdown for more options:

↳ Duplicate in the current Step

Creates a copy within the same step

↳ Select Steps to Duplicate to

Opens a Select Phases window where you can choose one or more steps (even in different processes) to copy the condition into

🗑️ Delete

Removes the currently selected condition

🖐️⬆ Move Up

Moves the selected condition up in the condition order

🖐️⬇ Move Down

Moves the selected condition down in the condition order

💡 Tip: The order of conditions matters — they define the sequence in which conditions are evaluated within a step.

Custom Fields

You can add custom fields to conditions for each project. This allows you to tailor the condition form to your specific documentation needs — adding fields like "Timeout", "Safety Class", "Reference Document", or any project-specific data.


🧭 Navigating Conditions from the Ribbon

The Module Ribbon Condition panel provides quick access to conditions without opening the editor:

Condition Symbols in the Ribbon

Each condition type has a distinct icon in the ribbon, matching its symbol in the editor. This lets you identify the type of each condition directly from the ribbon — for example, a Transition shows its branching icon, while a Custom condition appears as a star.

Hover Information

When you hover over a condition in the ribbon, a tooltip appears showing the condition's key information (type, description, condition expression, transitions) without opening the editor.

Step Navigation

In the Steps area of the ribbon, the Previous and Next buttons let you navigate through steps:

Action

Result

Click Previous / Next directly

Navigate to the previous or next step in sequential order

Expand the Previous / Next arrows

Navigate through the chain of conditions — following the transitions forward and backward. Hovering each option in the dropdown shows the name/description of the condition behind the transition.

This chain navigation is particularly useful for tracing the flow of a process: you can follow where each transition leads and trace back where a step was reached from.


📐 Algorithm Frame on the P&ID

If you want to see condition details directly on the P&ID drawing (without opening the editor), you can insert an Algorithm Frame:

  1. In the Module Ribbon, click Data to expand the dropdown

  2. Click Headers and Notes

  3. In the window that opens, click Algorithm Frame

  4. Click on a location on your P&ID to place the frame

  5. Choose a base point to scale the size, then click again to confirm

The Algorithm Frame displays the details of the currently active condition, including:

  • Condition number (e.g., "Condition nr: 1 / 5")

  • Type, Description, Condition expression

  • Prompt, Success Action, Fail Action

  • Success Transition, Fail Transition

💡 Tip: When you click on different conditions in the ribbon, the Algorithm Frame automatically updates to show the selected condition's details. This makes it easy to review conditions during P&ID walkthroughs.

For individual field tracking, see also the Algorithm Tracker which tracks a single condition field value.


📊 SFC Editor (Sequential Function Chart)

The SFC Editor (GRAFCET) provides a visual flowchart view of the algorithm. You can access it from the SFC button in the Condition panel of the Module Ribbon.

In the SFC Editor, conditions are displayed as a sequential chart showing:

  • The flow from one step to the next

  • Which conditions lead to which transitions

  • Non-transition conditions displayed alongside their steps

  • Branch points and parallel paths

Everything you do in the SFC Editor automatically updates the steps and conditions, and vice versa — changes made in the Condition Editor are immediately reflected in the SFC view.

📖 For detailed instructions on using the SFC Editor, see the SFC Editor (GRAFCET) page.


📖 Workflows

How to Create a Transition Condition

  1. Open the Condition Editor from the Module RibbonCondition panel → Edit

  2. Use the top-left indicators to select the correct Process and Step

  3. Click the ➕ Add button to create a new condition

  4. Select the Transition type (first icon in the type selector)

  5. Enter a Description — this becomes the condition's name (e.g., "Check pressure above threshold")

  6. Optionally enter a Prompt if operator interaction is needed

  7. In the Condition field, enter the expression (e.g., 201-18-500-PI-311 > 120). Use the Condition Builder for guided construction

  8. In the Success Transition field, specify which step to go to (e.g., Step 2)

  9. The condition is automatically saved

How to Create a Continuous Monitoring Condition

Use the Continuous Action type when you need to constantly record a value throughout a step:

  1. Open the Condition Editor and navigate to the desired step

  2. Add a new condition and select Continuous Action type

  3. In the Success Action field, enter the assignment (e.g., var4 = 201-18-500-PI-010)

  4. This will continuously save the instrument reading to the variable for the duration of the step

💡 Tip: Continuous Action is commonly used for writing the state of the step (true or false) to operators, or for continuously capturing sensor readings.

How to Export Conditions to P&IDs

Conditions can be exported and displayed on your P&ID drawings:

  1. Insert an Algorithm Frame (see above) to show condition details directly on the drawing

  2. Use the Export feature in the Module Ribbon to export conditions — see Export Processes to Excel for Excel-based exports

  3. Use the SFC Editor to export the visual flowchart as a PDF


🏭 Example: CIP Caustic Wash Algorithm

Here is a typical algorithm for the "Caustic Wash" step in a CIP process:

#

Type

Description

Condition

Success Action / Transition

1

Stored on Activation

Record batch start

Store batch ID and timestamp

2

Continuous Action

Monitor temperature

RecordedTemp = TIT-CIP-01

3

Transition

Wait for target temperature

TIT-CIP-01 >= MinCausticTemp

→ Circulation step

4

Cont. Action + Condition

Boost heater if temp drops

TIT-CIP-01 < 75

Increase heater power

5

Stored on Deactivation

Record final temperature

FinalTemp = TIT-CIP-01

This example demonstrates multiple condition types working together within a single step, which is common in pharmaceutical process design.