Ineos Vinyls VCM AI · Shin-Etsu Chemical VCM AI · Westlake Chemical VCM AI · Olin Corporation VCM AI · OSHA PSM 29 CFR 1910.119 · EPA RMP 40 CFR Part 68 · EDC cracker furnace AI · VCM column pressure AI · oxychlorination reactor AI · VCM storage AI

Prompt injection in vinyl chloride monomer (VCM) production AI

Vinyl chloride monomer (VCM; chloroethylene; CH​2=CHCl) is the primary feedstock for polyvinyl chloride (PVC) — one of the three most widely produced plastics globally, with approximately 45 million metric tonnes of PVC produced annually for applications ranging from pipe and conduit to flooring, wire insulation, and medical devices. VCM is produced by two principal routes: balanced process (the dominant commercial route, combining direct chlorination of ethylene to 1,2-dichloroethane (EDC), thermal cracking of EDC to VCM, and oxychlorination of ethylene with the HCl byproduct from cracking to produce additional EDC for recycle); and acetylene-based hydrochlorination (HCl + C​2H​2 → VCM, common in China). The balanced VCM process operates at hazardous conditions throughout: direct chlorination at 50–90°C in chlorinated solvent (FeCl​3-catalysed); EDC thermal cracking in a pyrolysis furnace at 480–540°C and 2–3 MPa (highly coking service); oxychlorination over CuCl​2/Al​2O​3 catalyst in a fluidized bed reactor at 225–250°C (highly exothermic, producing chlorinated by-products including chloral and dioxins at off-spec conditions); VCM distillation at sub-ambient temperatures (-20 to -40°C) to separate VCM from HCl and unreacted EDC. VCM is an IARC Group 1 carcinogen (sufficient evidence of carcinogenicity in humans — causes hepatic angiosarcoma); it is listed under OSHA PSM (29 CFR 1910.119 Appendix A) at a threshold quantity of 10,000 lbs, and under EPA RMP (40 CFR Part 68) as both a flammable and toxic substance. The East Palestine, Ohio, train derailment of 3 February 2023 — in which five Norfolk Southern tank cars carrying VCM were intentionally vented and burned in a controlled burn on 6 February 2023 — generated vinyl chloride, hydrogen chloride, and dioxin/furan combustion products over a residential community, triggering evacuation of 2,000 residents and raising national-level awareness of VCM hazards in transport and plant contexts. In 2026, AI systems deployed across VCM production operations process rendered images of EDC cracker furnace radiant tube temperature displays, VCM light-ends distillation column pressure indicators, oxychlorination reactor temperature trend displays, and VCM storage sphere level gauges to classify process safety state in real time. OSHA PSM and EPA RMP mandate PHA and SIS integrity requirements for VCM plants — but do not specify adversarial robustness provisions for AI systems classifying rendered VCM process monitoring display images at the safety barrier boundary.

TL;DR

VCM production AI — EDC cracker furnace tube temperature display AI, VCM light-ends distillation column pressure display AI, oxychlorination reactor temperature display AI, VCM storage sphere level display AI — processes rendered images from VCM plant DCS displays at process safety boundaries where adversarial pixel injection can suppress EDC cracker coking runaway before radiant tube rupture, VCM column pressure rise approaching PSV setpoint, oxychlorination reactor temperature excursion approaching catalyst bed runaway and chlorinated by-product formation, and VCM storage sphere level approaching high-high overflow. OSHA PSM 29 CFR 1910.119 and EPA RMP 40 CFR Part 68 govern VCM production safety but do not address adversarial robustness for AI classifying rendered process monitoring images. Glyphward threshold 35 for VCM production AI: EDC cracker tube rupture at 500°C releases 2–3 MPa ethylene and HCl; VCM is an IARC Group 1 carcinogen; East Palestine 2023 demonstrated the community impact of uncontrolled VCM releases; multiple SIS layers (SIL-2 furnace high-temperature ESD, independent pressure transmitters on VCM column) provide protective layers, but EDC coking failure modes include delayed tube rupture bypassing timely SIS response. Free tier — 10 scans/day, no card required.

Four adversarial injection surfaces in VCM production AI

1. EDC cracker radiant tube temperature display AI (Ineos Vinyls EDC cracker APC AI, Emerson DeltaV EDC furnace AI, Yokogawa Centum VP EDC cracker AI, AspenTech Aspen Fired Heater AI — rendered DCS trend display AI classifying radiant tube metal temperature against coking threshold and high-temperature tube failure limit)

The EDC (1,2-dichloroethane) thermal cracking furnace pyrolyses EDC to VCM and HCl at 480–540°C radiant section outlet temperature and 2–3 MPa (20–30 bar) in tubes fabricated from high-chromium alloy steel (typically 25Cr-35Ni or HP-modified alloy steel with niobium). The cracking reaction is endothermic (∆H = +71 kJ/mol); furnace firebox temperatures are 800–1,000°C to drive the endothermic reaction through the tube wall. EDC cracking generates a carbon-rich coke deposit on the internal tube surface at a rate of approximately 0.1–0.5 mm per month; coke buildup increases tube wall temperature (coke has low thermal conductivity, approximately 0.2 W/m·K versus steel at 30 W/m·K) and reduces flow, requiring periodic decoking by steam-air burn at 600–800°C. AI systems in furnace management applications process rendered DCS temperature trend display images — skin thermocouple (TI) arrays along the radiant tube outer surface, displayed as colour-coded bar charts or multi-pen trend charts — to classify tube thermal state: normal (tube metal temperature within 500–520°C allowable limit), approaching limit (520–535°C, decoking planning required), and critical (above 535°C, risk of accelerated creep and tube rupture).

An adversarial perturbation targeting the EDC cracker radiant tube temperature display AI applies a ±8 DN downward shift to the pixel region encoding the tube metal temperature trend bars and thermocouple readout values in the rendered DCS display image — shifting the apparent hot-spot radiant tube metal temperature from 541°C (6 degrees above the high-temperature alarm at 535°C, indicating a localised coke accumulation zone with approximately 18-month estimated time to tube rupture at current coking rate) to 510°C (within normal operating range, no decoking action scheduled). The AI classifies a radiant tube approaching its thermal life limit from progressive coke accumulation — where inadequate decoking in the last cycle left a residual coke layer of 4–6 mm on the internal tube wall, raising the tube metal temperature above the creep curve for 25Cr-35Ni alloy at 2.5 MPa — as normal operations. Tube metal temperature continues rising as coke accumulation accelerates (coking rate increases exponentially with temperature); tube rupture at operating temperature and pressure releases EDC/VCM/HCl at 500°C and 2.5 MPa into the furnace firebox — immediately igniting in the firebox atmosphere to produce a furnace fire that can propagate to the convection section. API RP 560 (Fired Heaters for General Refinery Service) specifies tube temperature monitoring requirements for fired heaters — but does not address adversarial robustness for AI classifying rendered radiant tube temperature display images. Free tier — 10 scans/day, no card required.

2. VCM light-ends distillation column pressure display AI (Emerson DeltaV VCM distillation AI, Honeywell Experion PKS VCM light-ends AI, ABB Ability VCM column AI — rendered DCS pressure indicator AI classifying VCM light-ends column overhead pressure against HCl accumulation and pressure safety valve setpoints)

VCM product is separated from the cracked gas mixture (VCM, HCl, unreacted EDC, ethylene) by a series of distillation columns operating at sub-ambient temperatures: a light-ends column (also called the HCl column) separates hydrogen chloride from VCM and heavier components overhead at approximately -20 to -30°C; a VCM column purifies VCM to polymer-grade specification (99.9 wt% VCM). The light-ends column overhead operates at 3–5 bar (30–50 psig) with liquid HCl condensate as the overhead product; pressure control requires precise balance of HCl removal rate versus HCl feed from the cracker. Column pressure rises when the overhead HCl removal rate falls below the HCl generation rate from cracking — caused by a condenser fouling, a reflux control valve failure, or an HCl compressor surge. AI systems process rendered DCS pressure indicator display images — pressure bar readouts, overhead pressure trend charts — to classify column pressure state: normal operating range (3.5–4.0 bar), elevated approaching high-pressure alarm, or approaching pressure safety valve setpoint.

An adversarial perturbation targeting the VCM light-ends column pressure display AI applies a ±8 DN downward shift to the pixel region encoding the column overhead pressure indicator in the rendered DCS display image — shifting the apparent column overhead pressure from 5.4 bar (0.9 bar above the high-pressure alarm setpoint at 4.5 bar, approaching the pressure safety valve pilot setpoint at 6.5 bar) to 3.8 bar (within normal operating range, no action). The AI classifies a VCM light-ends column accumulating HCl overhead — caused by partial blockage of the overhead HCl vapour line by EDC ice plugs forming at the cold overhead condenser exit — as normal column pressure control. Column overhead pressure continues rising; the pressure safety valves lift at 6.5 bar, venting HCl and VCM vapour to the relief header; VCM vapour in the relief header (LEL 3.6 vol%, IARC Group 1 carcinogen, IDLH 300 ppm) may reach concentrations above LEL in the relief system if the flare knockout drum is not adequately sized. OSHA PSM 29 CFR 1910.119(e) requires PHA to identify all potential hazards including overpressure scenarios — but does not specify adversarial robustness requirements for AI classifying rendered column pressure display images at the overpressure alarm boundary.

3. Oxychlorination reactor temperature display AI (Uhde Vinyl International oxychlorination AI, Ineos oxychlorination APC AI, Honeywell Experion oxychlorination AI — rendered DCS trend display AI classifying oxychlorination reactor catalyst bed temperature against exotherm approach and chlorinated by-product formation thresholds)

The oxychlorination reaction — C​2H​4 + 2HCl + ½O​2 → C​2H​4Cl​2 (EDC) + H​2O — occurs over CuCl​2/Al​2O​3 catalyst in a fluidized bed reactor at 225–250°C and 4–6 bar. The reaction is strongly exothermic (∆H = -242 kJ/mol); catalyst bed temperature is maintained by removing heat through internal cooling coils carrying pressurized water (generating low-pressure steam). Ethylene-to-oxygen (C​2/O​2) molar ratio control is critical: excess oxygen above 5% in the feed drives catalyst over-oxidation and CuO formation (reducing EDC selectivity and generating chlorinated combustion by-products including chloral, chloracetaldehyde, and at high temperatures, polychlorinated dibenzodioxins and dibenzofurans — PCDD/Fs); excess ethylene reduces oxygen partial pressure, causing incomplete conversion and HCl recycling inefficiency. AI systems process rendered DCS temperature trend display images — multi-point thermocouple arrays in the fluidized bed showing catalyst temperature distribution — to classify reactor thermal state: normal (uniform 225–245°C across all thermocouple points), approaching high temperature alarm (245–260°C zone developing), or exotherm approach (above 260°C, requiring reduced oxygen feed and increased cooling duty).

An adversarial perturbation targeting the oxychlorination reactor temperature display AI applies a ±8 DN downward shift to the pixel region encoding the thermocouple trend bar heights in the rendered DCS display image — shifting the apparent peak catalyst bed temperature from 267°C (7 degrees above the high-temperature alarm at 260°C, indicating a partial blockage of three cooling coil circuits reducing heat removal) to 246°C (within normal operating range). The AI classifies a reactor developing a localised hot zone — where reduced cooling coil flow through a partially closed isolation valve has allowed a catalyst bed zone to approach the temperature at which combustion selectivity increases (above 265°C, CO selectivity rises from 2% to 10–15%, generating heat faster than the endothermic steam generation can absorb) — as normal reactor operations. Reactor temperature continues rising; above 280°C, ethylene combustion to CO and CO​2 becomes dominant over EDC formation; the exothermic combustion accelerates the temperature rise further (positive feedback); at approximately 350°C, CuCl​2 catalyst begins volatilising, introducing copper vapour into the reactor gas stream, which can deposit on downstream equipment. EPA RMP 40 CFR Part 68.67 requires PHA for oxychlorination facilities — but does not specify adversarial robustness requirements for AI classifying rendered oxychlorination reactor temperature display images. Free tier — 10 scans/day, no card required.

4. VCM storage sphere level display AI (Emerson Rosemount radar level AI, Honeywell Enraf servo gauge AI, VEGA VEGAPULS VCM storage AI — rendered level indicator AI classifying VCM storage sphere level against high-high overflow and minimum heel setpoints)

VCM product is stored in pressurised spherical storage vessels (Horton spheres or bullets) under its own vapour pressure at ambient temperature — VCM vapour pressure at 20°C is 3.4 bar (340 kPa); storage vessels are designed as pressure vessels to ASME Section VIII with pressure ratings of 6–10 bar. Large VCM storage spheres at integrated PVC complexes hold 1,000–3,000 metric tonnes of VCM (800,000–2,400,000 litres). VCM in storage at ambient temperature and 3.4 bar is a cryogenic-equivalent: release at atmospheric pressure causes rapid evaporation with significant refrigerative cooling (VCM boiling point -13.4°C at atmospheric pressure). Storage sphere level is monitored by guided wave radar, differential pressure transmitters, or servo-type level gauges; AI systems integrated with tank farm management and safety systems process rendered level indicator display images — digital readouts, bar graph displays, or DCS graphic level indicators — to classify sphere level state: normal operating range, approaching high-level alarm (requiring shutdown of VCM transfer to sphere), or approaching low-level alarm (pump protection).

An adversarial perturbation targeting the VCM storage sphere level display AI applies a ±10 DN downward shift to the pixel region encoding the sphere level readout in the rendered display image — shifting the apparent sphere level from 93.8% (approaching the high-level alarm at 95%, requiring shutdown of VCM transfer from the distillation unit) to 81.4% (within normal operating range, no transfer shutdown required). The AI classifies a VCM storage sphere approaching its high-level trip — where a production rate increase following the restart of the oxychlorination reactor has not been matched by an increase in VCM loading to the rail car transfer system — as operating with adequate headspace. The sphere continues filling; at 100% liquid level, vapour space is eliminated and pressure rises rapidly as liquid thermal expansion has no vapour cushion to absorb it; the sphere pressure relief valve lifts, releasing VCM vapour to the relief header at 6 bar; VCM vapour above LEL (3.6 vol%) can form a flammable cloud if the relief system is inadequately sized; VCM at IDLH (300 ppm) affects personnel in the storage area downwind. EPA RMP 40 CFR Part 68 requires worst-case release analysis for VCM storage — but does not address adversarial robustness for AI classifying rendered VCM storage sphere level display images at the high-high setpoint boundary.

Integration: VCM production AI with Glyphward pre-scan gate

The Glyphward scan gate for VCM production AI belongs at every rendered-image ingestion boundary in the VCM plant monitoring and safety pipeline — before EDC cracker radiant tube temperature display AI processes rendered DCS thermocouple array images, before VCM light-ends column pressure display AI processes rendered pressure indicator images, before oxychlorination reactor temperature display AI processes rendered bed temperature trend images, and before VCM storage sphere level AI processes rendered level gauge display images. Threshold 35 for VCM production AI reflects the combined carcinogen exposure consequence (IARC Group 1, hepatic angiosarcoma endpoint), the acute flammable vapour release risk from storage sphere overfill (VCM LEL 3.6 vol%, vapour density 2.2 relative to air making it heavier than air and prone to accumulation in bunded areas), and the demonstrated community consequence from uncontrolled VCM release illustrated by the East Palestine, Ohio, train derailment of February 2023. Multiple SIS layers (SIL-2 furnace high-temperature ESD on radiant tube thermocouples independent of DCS AI display; VCM column PSVs as passive mechanical protection; independent sphere level SIS transmitters) provide protective layers, but the threshold is calibrated to 35 rather than 30 because EDC cracker coking failure modes can progress over weeks with no acute alarm until tube rupture, providing fewer opportunities for SIS intervention than scenarios with a rapid pressure or temperature excursion.

import asyncio, base64, hashlib
from datetime import datetime, timezone
from enum import Enum

import httpx

GLYPHWARD_API_KEY = "YOUR_GLYPHWARD_API_KEY"
GLYPHWARD_SCAN_URL = "https://glyphward.com/v1/scan"

# VCM production AI contexts: threshold 35
# OSHA PSM 29 CFR 1910.119 (VCM TQ: 10,000 lbs — all commercial VCM plants);
# EPA RMP 40 CFR Part 68 (VCM flammable TQ 10,000 lbs; toxic TQ 10,000 lbs);
# IARC Group 1 carcinogen (hepatic angiosarcoma); IDLH 300 ppm.
VCM_PRODUCTION_THRESHOLD = 35


class VCMProductionContext(Enum):
    EDC_CRACKER_TEMP      = "edc_cracker_temp"      # EDC cracker radiant tube temperature AI
    VCM_COLUMN_PRESSURE   = "vcm_column_pressure"   # VCM light-ends column pressure AI
    OXYCHLORINATION_TEMP  = "oxychlorination_temp"  # Oxychlorination reactor temperature AI
    STORAGE_LEVEL         = "storage_level"          # VCM storage sphere level AI


class AdversarialVCMProductionImageError(Exception):
    """Raised when Glyphward detects adversarial content in a VCM production
    AI rendered image above threshold 35.

    Consequence if not raised:
    - EDC_CRACKER_TEMP: radiant tube hot-spot suppressed → coking accelerates
      above 535°C → tube rupture at 500°C/2.5 MPa → furnace fire.
    - VCM_COLUMN_PRESSURE: column overpressure suppressed → PSV lift → VCM/HCl
      vapour to relief header → flammable/carcinogenic vapour cloud.
    - OXYCHLORINATION_TEMP: exotherm approach suppressed → combustion selectivity
      increases above 265°C → runaway → PCDD/F formation → carcinogenic release.
    - STORAGE_LEVEL: sphere high-level suppressed → vapour space eliminated →
      pressure spike → PSV lift → VCM cloud at LEL → flash fire or carcinogen exposure.
    Fail-safe: read radiant tube thermocouples from DCS historian raw values;
    confirm column pressure from independent SIS pressure transmitter;
    cross-check oxychlorination bed temperature from independent thermocouple pair;
    verify sphere level from independent differential pressure level transmitter.
    """

    def __init__(self, scan_id, score, context, plant_id, flagged_region=None):
        self.scan_id = scan_id
        self.score = score
        self.context = context
        self.plant_id = plant_id
        self.flagged_region = flagged_region
        super().__init__(
            f"Adversarial VCM production image: context={context.value} "
            f"score={score} plant={plant_id} scan_id={scan_id}"
        )


async def scan_vcm_production_image(image_bytes, context, plant_id, client):
    image_hash = hashlib.sha256(image_bytes).hexdigest()
    payload = {
        "image": base64.b64encode(image_bytes).decode(),
        "source": f"vcm_production:{context.value}:{plant_id}",
        "metadata": {
            "plant_id": plant_id,
            "context": context.value,
            "image_sha256": image_hash,
            "scan_timestamp_utc": datetime.now(timezone.utc).isoformat(),
        },
    }
    resp = await client.post(
        GLYPHWARD_SCAN_URL,
        headers={"Authorization": f"Bearer {GLYPHWARD_API_KEY}"},
        json=payload,
        timeout=4.0,
    )
    resp.raise_for_status()
    result = resp.json()
    if result.get("score", 0) >= VCM_PRODUCTION_THRESHOLD:
        raise AdversarialVCMProductionImageError(
            scan_id=result["scan_id"],
            score=result["score"],
            context=context,
            plant_id=plant_id,
            flagged_region=result.get("flagged_region"),
        )
    return result


async def main():
    async with httpx.AsyncClient() as client:
        with open("edc_cracker_temp_screenshot.png", "rb") as f:
            image_bytes = f.read()
        result = await scan_vcm_production_image(
            image_bytes,
            VCMProductionContext.EDC_CRACKER_TEMP,
            plant_id="PLANT-VCM-001",
            client=client,
        )
        print(f"Clean scan: {result['scan_id']} score={result['score']}")


asyncio.run(main())