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 |
✅ Key relationship: Each Step has exactly one Algorithm, and each Algorithm belongs to exactly one Step.
🔧 Conditions
A Condition is a single decision point within an Algorithm. It contains the information that operators and automation systems need to evaluate before proceeding.
Condition Fields
|
Field |
Description |
Example |
|---|---|---|
|
Type |
The kind of condition |
"Operator input", "Sensor check", "Timer" |
|
Description |
Human-readable explanation of the condition |
"Wait for the operator to confirm WFI quantity" |
|
Prompt |
Text displayed to the operator at this step |
"Confirm that T01 is filled to target level" |
|
Condition |
Formal logic expression for the automation system |
Temperature reading ≥ Target pressure value |
|
Success Action |
Action taken when the condition is met |
Store the current flow reading into a variable |
|
Fail Action |
Action taken when the condition fails |
Increment the alarm counter |
|
Success Transition |
Next step to go to on success |
Next step in sequence (default) |
|
Fail Transition |
Next step to go to on failure |
Return to previous step or abort |
💡 Tip: The Condition and Action fields support formal expressions. Use the Condition Builder and Action Builder for guided construction of these expressions.
Condition Action Types
When working with the SFC Editor, each condition has a type that determines when and how it executes:
|
Type |
What It Means |
When It Runs |
|---|---|---|
|
Transition condition |
A gate that must be satisfied before moving to the next step |
Evaluated continuously until true |
|
Continuous action (runs while step is active) |
An action that executes repeatedly while the step is running |
Every scan cycle while the step is active |
|
Conditional continuous action |
A continuous action that only runs when its condition is true |
Every scan cycle, but only when the condition evaluates to true |
|
Execute on step activation |
An action that runs once when the step first becomes active |
Once, at the moment the step activates |
|
Execute on step deactivation |
An action that runs once when the step is about to end |
Once, just before the step deactivates |
|
Execute on event trigger |
An action that runs when a specific event occurs |
When the specified event fires |
|
Custom action |
A user-defined action type for special use cases |
Depends on the custom configuration |
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.
✏️ Condition Editor Window
The Condition Editor is the main interface for creating and managing conditions. Access it from the Conditions panel (formerly "Algorithm" panel) in the Module Ribbon.
Editor Features
|
Feature |
Description |
|---|---|
|
Create |
Add a new condition to the current step's algorithm |
|
Duplicate |
Copy the current condition as a starting point |
|
Delete |
Remove the current condition |
|
Navigate |
Move between conditions using Previous/Next buttons |
|
Reorder |
Move conditions left/right to change their position in the sequence |
|
Intelligent Suggestions |
Auto-complete for instrument names, parameters, variables, and dialogs |
|
Syntax Highlighting |
Color-coded text to distinguish different element types |
Prompt Field — Dialog Preview
The Prompt field has a special behavior: when you reference a Dialog by name, AseptSoft automatically shows a live preview of that dialog on the right side of the field editor.
How it works:
-
Type a Dialog name in the Prompt field (e.g., "WFI Fill Dialog")
-
The referenced Dialog content appears as a preview on the right
-
Click the preview to open the Dialog editor
-
Use the Swap button to replace the current Dialog reference with a different one
⚠️ Note: The swap operation preserves any other text in the field — it only replaces the Dialog reference.
📊 SFC Editor (Sequential Function Chart)
The SFC Editor provides a visual flowchart view of the algorithm. You can access it from the Conditions panel in the Module Ribbon.
In the SFC Editor, conditions are displayed as a sequential chart showing:
-
The flow from one condition to the next
-
Success and fail transitions
-
Branch points and parallel paths
This visual representation makes it easier to understand complex algorithms at a glance.
📖 How To: Build an Algorithm for a CIP Step
Follow this workflow to create the transition logic for a CIP step:
-
Navigate to your Step — In the Process Design view, select the step you want to add conditions to (e.g., "Caustic Wash").
-
Open the Condition Editor — Click the Conditions button in the Module Ribbon.
-
Add your first condition — For example, an operator confirmation: set the Type to "Operator Input" and the Prompt to "Confirm CIP solution is prepared".
-
Add sensor checks — Create conditions that monitor process variables: "Wait for temperature to reach the minimum threshold" using the Condition Builder.
-
Add timer conditions — "Circulation time must exceed the minimum hold time" to ensure sufficient contact time.
-
Set success actions — Use the Action Builder to record values when conditions pass (e.g., store the final temperature reading).
-
Configure transitions — Set where the algorithm goes on success (next step) and on failure (retry or abort).
-
Review in the SFC Editor — Open the SFC Editor to see the visual flowchart and verify the logic.
🏭 Example: CIP Caustic Wash Algorithm
Here is a typical algorithm for the "Caustic Wash" step in a CIP process:
|
# |
Type |
Prompt |
Condition |
Success Action |
|---|---|---|---|---|
|
1 |
Operator Input |
"Confirm CIP caustic solution is prepared and at correct concentration" |
— |
— |
|
2 |
Sensor Check |
"Waiting for solution to reach target temperature" |
Temperature reading ≥ Minimum temperature parameter |
Store actual temperature in RecordedTemp variable |
|
3 |
Sensor Check |
"Verifying flow rate is sufficient" |
Flow reading ≥ Minimum flow rate parameter |
Store actual flow in RecordedFlow variable |
|
4 |
Timer |
"Caustic contact time" |
Timer ≥ Circulation time parameter |
— |
|
5 |
Sensor Check |
"Final temperature verification" |
Temperature reading ≥ Minimum temperature parameter |
Store final temperature in FinalTemp variable |
When all conditions are satisfied, the process transitions to the next step (e.g., "Intermediate Rinse").
🔧 Building Expressions
For the Condition and Action fields, AseptSoft provides guided builder tools:
|
Builder |
Purpose |
What It Creates |
|---|---|---|
|
Build formal condition expressions |
Comparisons between instrument readings and parameter values |
|
|
Build variable assignment expressions |
Assignments that store instrument readings into variables |
Both builders feature:
-
Click-based selection of instruments, parameters, and variables
-
Live preview of the formula being constructed
-
Logical operators (AND, OR, XOR) for combining atomic expressions
-
Direct editing for custom values
🔗 Related Pages
-
📐 Process Design — Creating processes and steps
-
SFC Editor — Visual Sequential Function Chart editor
-
Build Condition Field — Condition Builder guide
-
Build Action Field — Action Builder guide
-
Intelligent Suggestions — Auto-complete in condition fields
-
💬 Dialog — Reusable operator interaction templates
-
Module Ribbon — Conditions panel details
-
📋 Module Data — All module-level data definitions