Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Recipe text view (ISA-88)

The recipe text view shows the recipe as plain text, one verb-first line per operation, following the ISA-88 hierarchy procedure → unit procedure → operation. You can read it, copy it into an electronic lab notebook, or edit it and apply the edits back to the model.

Opening it

  • Tools ▸ Recipe (ISA-88 text)… opens the view for the selected unit procedure, or for the whole process when nothing is selected. The window title says which: Recipe — P-1 (R-101) or Recipe — whole process. The scope combo switches between Whole process and each unit procedure.
  • Tools ▸ Copy recipe as plain text copies the text of the selection (or the whole process) without opening the window.

What the text looks like

# FlowState recipe · ISA-88 procedure → unit procedure → operation · model 3f9c…
PROCEDURE "Getting Started"
UNIT PROCEDURE P-1 ON R-101  # Reaction
  CHARGE 1200 kg Water FROM S-101 TO R-101 AT 25 °C RATE 600 kg/h OVER 20 min AS CHARGE-1
  HEAT TO 80 °C WITH Steam OVER 1 h AS HEAT-1
  REACT (stoichiometric) [A + 0.5 B -> 1.5 C conversion 95 % of A] WITH "Cooling Water" OVER 4 h AS REACT-1
  TRANSFER OUT 100 % TO S-103 RATE 600 kg/h OVER 30 min AS TRANSFER-OUT-1
  • The header comment carries a fingerprint of the model the text was generated from.
  • Each UNIT PROCEDURE line names the procedure and its equipment tag.
  • Each operation line starts with its verb (CHARGE, HEAT, REACT, TRANSFER…), followed by its parameters as readable clauses, and ends with AS name. Quantities carry units (3 barg, 250 L/h, 20 min, 95 %). Parameters without a readable clause are written as key=value.
  • Scheduling is written with the keywords OVER (process time), SETUP, TURNAROUND, CALCULATED, START WITH BATCH, START WITH x, START AFTER x [OF procedure], SHIFT and LABOR; NOTE "…" adds a note.

The editor colours verbs, keywords, numbers with units, tags and comments, and shows line numbers.

Editing and applying

While you have not edited the text, it follows the model live and the status line says In sync with the model. Once you type, it says Edited — Apply to update the model, and the text is checked as you type: errors are underlined in red and marked ● in the gutter, warnings are marked ▲, and a list below gives each one as line:col: error: message.

  • Apply reads the text back into the model as one undo step (“Recipe applied (one undo step)”). It is available only when the text has no errors; if there are any, nothing is applied.
  • Revert discards your edits and shows the model’s recipe again. If the model changes while you are editing, a warning asks you to revert.
  • Copy as plain text copies the text for an electronic lab notebook.

What applying can change:

  • operations under each unit procedure named in the text are added, removed, reordered or edited, matched by name; a new line without AS gets an automatic name such as HEAT-2;
  • unit procedures that are not in the text are left unchanged;
  • unit procedures cannot be created or deleted from the text. Do that on the flowsheet.

Generating the text and applying it unchanged gives back exactly the same model.

Batch sheets

Every step of an exported batch sheet carries its recipe line, and the batch record shows the Recipe version and Model fingerprint. In batch-sheet templates (Tools ▸ Batch-sheet templates…) the placeholders {{recipe}} (the operation’s recipe line) and {{recipe_version}} (model fingerprint and date) insert them into your own operating instructions. See Reports and exports.

From the command line

flowstate-cli recipe my.flow                      # print the whole recipe
flowstate-cli recipe my.flow --procedure P-1      # one unit procedure
flowstate-cli recipe my.flow --apply edited.txt   # apply an edited text and save
flowstate-cli recipe my.flow --apply - -o out.flow < edited.txt
flowstate-cli recipe my.flow --apply edited.txt --check   # report problems, do not save

Errors are printed as file:line:col: error: …, followed by “N error(s); nothing applied”, and the exit code is 2.