Skip to content

Downstream Processing (DSP): Chromatography, TFF/UF/DF & Viral Filtration Integration Guide

Connecting Cytiva ÄKTA™ (UNICORN™ 7), Sartorius Sartoflow® / Resolute®, and MilliporeSigma Mobius® / Cogent® Skids to GxPHistorian GxP Industrial Historian


1. Overview of Downstream Purification Skids

Downstream Processing (DSP)—Protein A affinity capture, ion-exchange polishing, viral inactivation, ultrafiltration/diafiltration (UF/DF / TFF), and nanofiltration—requires high-frequency, lossless signal capture (0.5 s to 1 s scan rates) with LTTB peak preservation. Unlike slow upstream temperature trends, a chromatography UV 280 nm elution peak or transmembrane pressure (TMP) spike occurs over seconds, and peak height/area (AUC) directly governs pooling gates and yield calculations.

GxPHistorian GxP Industrial Historian is pre-seeded with a chromatography UV 280 nm tag (Tag 401: CHROM_UV280_PV in init-postgres/01_control_plane_part11.sql) and includes a production Windows localhost OPC DA forwarder (edge-collector/scripts/opcda_windows_forwarder.py) specifically designed for chromatography skid workstations.

Downstream Purification Equipment Product Photo Gallery: Cytiva ÄKTA Chromatography System & Tangential Flow Filtration (TFF) Skid

Downstream Chromatography, TFF Filtration & LTTB UV280 Peak Preservation Visual Wiring Guide


1.5 Non-Technical Step-by-Step Physical & Software Connection Walkthrough

Downstream purification skids (Cytiva ÄKTA™, Sartorius Sartoflow®, MilliporeSigma Mobius® / Cogent®) use a dual-network design to protect internal real-time pump/UV control. Follow this exact checklist to plug in safely:

Downstream SkidCRITICAL Physical Connection Rule (Where to Plug In)Software Menu / Service to EnableSampling & Peak Rule
1. Cytiva ÄKTA™ avant, ÄKTA™ pilot, ÄKTA™ ready & readyflux (UNICORN™ 7)WARNING: Never unplug the Ethernet cable going to the CU-950 Control Box (192.168.0.x private instrument link) or the ÄKTA will immediately fault! Instead, plug your Cat6 cable into NIC 2 (Plant Network) on the UNICORN™ 7 Windows Workstation PC (or connect to the central UNICORN™ Database Server).Install the UNICORN™ OPC Server option (UNICORN.OPCServer.1 for OPC DA or UNICORN 7.6+ OPC UA Server). Run edge-collector/scripts/opcda_windows_forwarder.py locally on the UNICORN PC so zero Windows DCOM firewall ports need to be opened!Poll UV1_280, Cond, P901, Flow every 0.5 s – 1.0 s (is_step_tag = false) so ClickHouse LTTB preserves exact elution peak height (mAU\text{mAU}) and area (AUC\text{AUC}).
2. Cytiva ÄKTA™ process (Figurate™ Automation)Open the stainless Figurate™ PLC Cabinet on the ÄKTA process skid. Plug a Cat6A Shielded cable into the Northbound Plant LAN (X2) port on the Emerson DeltaV™ PK Controller or Rockwell ControlLogix 1756-EN2T.Enable the onboard OPC UA Server (Port 4840) on the secondary interface (10.20.60.15:4840) with Basic256Sha256 security.Poll every 500 ms (0.5 s) during ELUTION and VIRAL_INACTIVATION phases.
3. Sartorius Sartoflow® Advanced / Modular & Resolute® AutoPakLocate the Siemens S7-1500 (Biobrain) inside the skid control cabinet (or the external M12 D-coded washdown bulkhead). Plug a Cat6A cable into Port X2 (Plant Network).On the Biobrain / BioPAT® MFCS 4 screen, enable OPC UA Server (Port 4840) (or enable Permit PUT/GET for S7comm on Port 102).Tracks Feed Pressure (PfeedP_{\text{feed}}), Retentate (PretP_{\text{ret}}), Permeate (PpermP_{\text{perm}}), TMP=Pfeed+Pret2−Pperm\text{TMP} = \frac{P_{\text{feed}}+P_{\text{ret}}}{2} - P_{\text{perm}}, and Retentate Scale Weight (kg).
4. MilliporeSigma Mobius® Chrom 20 / FlexReady & Cogent® Process Scale TFFOpen the Rockwell CompactLogix / ControlLogix enclosure on the rear of the Mobius or Cogent skid. Plug a Cat6A cable into Port 2 (Plant LAN) of the dual-IP processor/switch.On the skid HMI (or FactoryTalk Linx Gateway), enable OPC UA Server (Port 4840) and assign Read-Only historian permissions.Automatically triggers an ISA-88 Event Frame when Low-pH Viral Inactivation (pH <= 3.60) hold timer starts and ends.

2. Downstream Integration Architecture

flowchart LR
  subgraph DSP["Downstream Processing (DSP) Skids"]
    AKTA["Cytiva ÄKTA™ process / ÄKTA™ ready / readyflux\n(UNICORN™ 7 OPC DA / OPC UA / Figurate™)"]
    SART["Sartorius Sartoflow® Advanced / Resolute®\n(BioPAT® MFCS / Siemens S7-1500)"]
    MERCK["MilliporeSigma Mobius® Chrom 20 / Cogent® TFF\n(Rockwell ControlLogix / PlantPAx®)"]
  end

  subgraph Edge["Pillar 1: Edge Collector (edge-collector)"]
    OPCDA["Windows Localhost OPC DA Forwarder\n(opcda_windows_forwarder.py + LocalSpoolBuffer)"]
    OPCUA["Telegraf [[inputs.opcua]]\n(500ms–1s High-Speed Scan)"]
    ING["HTTP Ingest (:8080/ingest)"]
    WAL["Telegraf Disk WAL Buffer\n(/var/lib/telegraf/buffer)"]
    OPCDA -->|"JSON Batch"| ING --> WAL
    OPCUA --> WAL
  end

  subgraph Core["GxPHistorian GxP Historian"]
    CH["ClickHouse 24.8 Archive\n(Gorilla Float64 + LTTB Peak Preservation)"]
    PG["PostgreSQL 16 Control Plane\n(Elution Peak & Viral Inactivation Event Frames)"]
  end

  AKTA -->|"Local COM OPC DA 2.05a"| OPCDA
  AKTA -->|"OPC UA (:4840)"| OPCUA
  SART -->|"OPC UA (:4840)"| OPCUA
  MERCK -->|"PlantPAx OPC UA (:4840)"| OPCUA
  WAL -->|"JSONEachRow"| CH
  PG <--> CH

3. Platform-Specific Integration Guides

3.1 Cytiva ÄKTA™ process, ÄKTA™ ready, ÄKTA™ readyflux & UNICORN™ 7

Cytiva’s ÄKTA™ chromatography and tangential flow filtration (TFF) family is controlled either by UNICORN™ 7 workstation/client-server software or by Figurate™ (Emerson DeltaV™ / Rockwell PlantPAx®) on larger ÄKTA™ process skids.

Pathway 1: UNICORN™ OPC Server on Windows (opcda_windows_forwarder.py)

Many GMP UNICORN™ installations run the licensed UNICORN OPC Server (UNICORN.OPCServer.1) on the local Windows control PC or UNICORN Server. Opening Windows DCOM ports (TCP 135 + dynamic RPC range) across cleanroom firewalls is a major cybersecurity and GAMP 5 validation liability.

Instead, deploy edge-collector/scripts/opcda_windows_forwarder.py directly on the UNICORN Windows workstation:

  1. It connects to UNICORN.OPCServer.1 over localhost COM (OpenOPC).
  2. Polls UV absorbance (UV 1_280), conductivity (Cond), system/pre-column/delta-column pressure (P901, DeltaP), pH, flow velocity (Flow), gradient concentration (Conc B), and RunLog phase strings at 1.0 s intervals.
  3. Applies Stage 1 exc_dev / exc_max deadband filtering (WindowsOpcDaForwarder.poll_once) so baseline equilibration noise is compressed while steep UV elution peaks are captured at full 1-second resolution.
  4. Buffers to LocalSpoolBuffer (opcda_spool.jsonl) during any network interruption and posts JSON batches to http://<edge-collector>:8080/ingest.

Example opcda_windows_forwarder.py Configuration for Cytiva ÄKTA™ ready / UNICORN™:

forwarder = WindowsOpcDaForwarder(
prog_id="UNICORN.OPCServer.1",
ingest_url="http://10.20.10.50:8080/ingest",
tags=[
OpcDaTagSpec(tag_id=401, item_id="AKTA_Ready_01.UV1_280.Value", exc_dev=0.05, exc_max=5.0),
OpcDaTagSpec(tag_id=402, item_id="AKTA_Ready_01.UV2_254.Value", exc_dev=0.05, exc_max=5.0),
OpcDaTagSpec(tag_id=403, item_id="AKTA_Ready_01.Cond.Value", exc_dev=0.02, exc_max=5.0),
OpcDaTagSpec(tag_id=404, item_id="AKTA_Ready_01.pH.Value", exc_dev=0.01, exc_max=5.0),
OpcDaTagSpec(tag_id=405, item_id="AKTA_Ready_01.SystemFlow.Value", exc_dev=0.05, exc_max=5.0),
OpcDaTagSpec(tag_id=406, item_id="AKTA_Ready_01.DeltaColumnP.Value",exc_dev=0.01, exc_max=5.0),
OpcDaTagSpec(tag_id=407, item_id="AKTA_Ready_01.ConcB.Value", exc_dev=0.10, exc_max=10.0),
OpcDaTagSpec(tag_id=408, item_id="AKTA_Ready_01.OutletValve.Pos", exc_dev=0.00, exc_max=30.0),
],
)

Pathway 2: Modern OPC UA (UNICORN™ OPC UA Wrapper or Figurate™ ÄKTA™ process)

For ÄKTA™ process skids running Figurate™ (DeltaV / PlantPAx) or UNICORN™ 7 with an OPC UA Server/Gateway, configure [[inputs.opcua]] in edge-collector/telegraf-clickhouse.conf with a 500ms or 1s scan interval.


3.2 Sartorius Sartoflow® Advanced / Modular TFF & Resolute® Chromatography

Sartorius Sartoflow® crossflow (UF/DF) systems and Resolute® chromatography skids run on Siemens SIMATIC S7-1500 PLCs and BioPAT® MFCS with native OPC UA:

  • Critical TFF/UF/DF Parameters to Archive:
    • Feed Pressure (PfeedP_{\text{feed}}), Retentate Pressure (PretP_{\text{ret}}), Permeate Pressure (PpermP_{\text{perm}}): bar or psig (is_step_tag = false, exc_dev = 0.01)
    • Transmembrane Pressure (TMP=Pfeed+Pret2−Pperm\text{TMP} = \frac{P_{\text{feed}} + P_{\text{ret}}}{2} - P_{\text{perm}}): bar (low_limit = 0.2, high_limit = 2.0 bar)
    • Permeate Flux (JJ): LMH (L/m2/h\text{L/m}^2\text{/h}, is_step_tag = false, exc_dev = 0.2)
    • Retentate Vessel Weight & Diafiltration Volumes (DV): kg and dimensionless DV (is_step_tag = false)
    • Permeate Conductivity & UV 280 nm Breakthrough: mS/cm and mAU (is_step_tag = false)

3.3 MilliporeSigma (Merck) Mobius® Chrom 20 / FlexReady & Cogent® TFF

MilliporeSigma’s Mobius® single-use chromatography systems and Cogent® process-scale TFF skids use Rockwell Automation ControlLogix PLCs with FactoryTalk® / PlantPAx®:

  • Connect edge-collector via OPC UA to the skid’s FactoryTalk Linx OPC UA server (opc.tcp://<skid-ip>:4840).
  • Map ISA-88 recipe step numbers (Recipe_Step_ID, is_step_tag = true) alongside continuous pressure, flow, conductivity, and UV tags.

4. Standard DSP Chromatography & TFF Tag Catalog

Tag IDTag NameSkid / Unit OperationParameterEng Unitsis_step_tagexc_devTypical DSP Limits (Low / High)
401CHROM_UV280_PVProtein A / IEX Chrom SkidUV 280 nm AbsorbancemAUfalse (LINEAR)0.050.0 / 2000.0
402CHROM_UV254_PVProtein A / IEX Chrom SkidUV 254 nm Nucleic AcidmAUfalse (LINEAR)0.050.0 / 1500.0
403CHROM_COND_PVProtein A / IEX Chrom SkidEluate ConductivitymS/cmfalse (LINEAR)0.020.5 / 150.0
404CHROM_PH_PVViral Inactivation / ChromEluate / Hold Vessel pHpHfalse (LINEAR)0.013.50 / 3.70 (Low-pH VI)
405CHROM_FLOW_PVProtein A / IEX Chrom SkidLinear Flow Velocitycm/hfalse (LINEAR)0.5050.0 / 300.0
406CHROM_DELTAP_PVProtein A / IEX Chrom SkidDelta-Column Pressure (ΔP\Delta P)barfalse (LINEAR)0.010.0 / 3.0
408CHROM_OUT_VALVEProtein A / IEX Chrom SkidFraction/Outlet Valve Position (0=Waste, 1=Pool)postrue (LOCF)0.000.0 / 5.0
411TFF01_TMP_PVUF/DF TFF Skid 01Transmembrane Pressure (TMP)barfalse (LINEAR)0.010.2 / 2.0
412TFF01_FLUX_PVUF/DF TFF Skid 01Permeate FluxLMHfalse (LINEAR)0.2010.0 / 120.0
413TFF01_DV_COUNTUF/DF TFF Skid 01Diafiltration Volumes ExchangedDVfalse (LINEAR)0.010.0 / 10.0

5. Why ClickHouse LTTB Downsampling (URS-014) is Essential for Chromatography

Standard time-bucket averaging (GROUP BY toStartOfMinute(ts)) flattens sharp chromatography UV 280 nm elution peaks and hides transient column over-pressure spikes.

GxPHistorian GxP Historian’s /api/v1/trends/plot-values endpoint (app/main.py) uses ClickHouse’s native largestTriangleThreeBuckets(N) (LTTB) algorithm over raw quality >= 192 samples:

  • Whether an operator views a 6-hour chromatography run across 200 screen pixels in Grafana (gxphistorian_bioreactor_hmi.json) or exports plot values for batch review, LTTB mathematically preserves the exact maximum apex (mAU) and inflection shoulders of every elution peak (verified by automated qualification test test_oq_09_lttb_peak_preservation in gxp-validation-package/tests/test_03_oq_historian_core.py).