SkillAgentSearch skills...

PreHAZOP

Automated Safety Assesments in an early development stage based on standardized DEXPI P&IDs and DWSIM process simulation.

Install / Use

/learn @TUDoAD/PreHAZOP
About this skill

Quality Score

0/100

Supported Platforms

Zed

README

preHAZOP

Automated Safety Assesments in an early development Stage based on standardized DEXPI P&IDs [^1] and DWSIM process simulation exports [^2].

Authors:

<figure role="group"> <img src="./figures/TUDO_AD_logo.png" alt="SelfHTML-Logo" width=300> </figure> Jonas Oeing, Tim Holtermann<br> TU Dortmund University, [Laboratory of Equipment Design](https://ad.bci.tu-dortmund.de/cms/en/laboratory/)

Install:

The preHAZOP application is available as python application.

Python installation:

  1. Install Python (anaconda) from https://www.anaconda.com/products/individual<br>

  2. Load the following python libraries

  3. Open the folder preHAZOP_Application.

  4. Running the script preHAZOP-ad@TUDO.py starts the preHAZOP tool.

Manual:

  1. The preHAZOP tool consists of an Graphical User Interface for an easy application.<br>
<figure role="group"> <img src="./figures/preHAZOP_GUI.png" alt="SelfHTML-Logo" width=350> <figcaption> Figure 1. GUI of the preHAZOP tool. </figcaption> </figure><br> <br>
  1. Load the DEXPI-P&ID as well as the DWSIM simulation export into via the BROWSE buttons.<br>
  2. Push the button START. The preHAZOP is running until its finish by showing the message Run was successful! Results in Output.<br>
  3. The results (HAZOP-table) are stored into the folder ./Output. Additionally you find a file range_check_results.txt, which shows the results of an inconsistency check in design pressure and temperatures.<br>

preHAZOP - Functionalitiy

Idea of the preHAZOP:

preHAZOP-scenario detection

The preHAZOP is able to detect the following HAZOP-scenarios automatically in an graph based P&ID (DEXPI). If necessary, the user can add more scenarios by extending the preHAZOP-database using the predefined drop-down menu.

<table> <tr> <th>Index</th> <th width=600>Description</th> <th>Guideword</th> <th>Parameter</th> <th>Cause</th> <th>Consequence</th> <th>Safeguard_1</th> <th>Safeguard_2</th> <th>Affected Equipment</th> <th>Propability</th> <th>Requirements</th> <th>Equipment_1</th> <th>Specification_1.1</th> <th>Specification_1.2</th> <th>Equipment_2</th> <th>Specification_2.1</th> <th>Specification_2.2</th> <th>Equipment_3</th> <th>Specification_3.1</th> <th>Specification_3.2</th> </tr> <tr> <td>1</td> <td>Pump effects vacuum cause of inert failure, resulting in vessel demolition</td> <td>Lower</td> <td>Pressure</td> <td>Inert system failure</td> <td>Damage</td> <td>Pressure Low Shut down</td> <td></td> <td>Equipment_1</td> <td>F1</td> <td>Check min. operation pressure of vessel</td> <td>Vessel</td> <td>Inert</td> <td></td> <td>Pump</td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td>2</td> <td>Pumping against wrongly closed valve results in damage of pump</td> <td>Higher</td> <td>Temperature</td> <td>Valve wrongly closed</td> <td>Damage</td> <td>Bypass</td> <td></td> <td>Equipment_1</td> <td>F1</td> <td></td> <td>Pump</td> <td></td> <td></td> <td>Valves (operation)</td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td>3</td> <td>Pumping against closed level control valve results in damage of pump</td> <td>Higher</td> <td>Temperature</td> <td>Valve closed by control</td> <td>Damage</td> <td>Bypass</td> <td></td> <td>Equipment_2</td> <td>F1</td> <td></td> <td>Column</td> <td>Level Control</td> <td></td> <td>Pump</td> <td></td> <td></td> <td>Valves (operation)</td> <td>Level Control</td> <td></td> </tr> <tr> <td>4</td> <td>Substance leaks out of pump cause of mechanical seal wear</td> <td>Other</td> <td>Flow</td> <td>Mechanical seal wear</td> <td>Seal leakage</td> <td>Maintenance</td> <td></td> <td>Equipment_1</td> <td>F1</td> <td></td> <td>Pump</td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td>5</td> <td>Mechanical failure of the pump</td> <td>No</td> <td>Rotation</td> <td>Mechanical failure</td> <td>Damage</td> <td>Maintenance</td> <td>Redundant</td> <td>Equipment_1</td> <td>F1</td> <td></td> <td>Pump</td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td>6</td> <td>Mechanical failure of the centrifuge</td> <td>No</td> <td>Rotation</td> <td>Mechanical failure</td> <td>Damage</td> <td>Maintenance</td> <td></td> <td>Equipment_1</td> <td>F1</td> <td></td> <td>Centrifuge</td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td>7</td> <td>Stirrer damages vessel</td> <td>Other</td> <td>Rotation</td> <td>Mechanical failure</td> <td>Damage</td> <td>Maintenance</td> <td></td> <td>Equipment_1</td> <td>F2</td> <td></td> <td>Vessel</td> <td>Agitator</td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td>8</td> <td>Cooling circiut failure leads to a higher inlet temperature, resulting in a seal leakage of vessel</td> <td>Higher</td> <td>Temperature</td> <td>Cooling circuit fails</td> <td>Seal Leakage</td> <td>Inlet Temperature High Alarm</td> <td></td> <td>Equipment_1</td> <td>F1</td> <td>Compare max. operation temperature of vessel with inlet temperature</td> <td>Cooler</td> <td></td> <td></td> <td>Vessel</td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td>9</td> <td>Too much heating leads to a higher inlet temperature, resulting in a seal leakage of vessel</td> <td>Higher</td> <td>Temperature</td> <td>Too much heating</td> <td>Seal Leakage</td> <td>Inlet Temperature High Alarm</td> <td></td> <td>Equipment_1</td> <td>F1</td> <td>Compare max. reachable temperature with max. operation temperature of vessel</td> <td>Heater</td> <td></td> <td></td> <td>Vessel</td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td>10</td> <td>Pump is turned on when there is no medium in vessel, so it runs dry</td> <td>No</td> <td>Flow</td> <td>Wrongly turned on</td> <td>Damage</td> <td>Level Low Alarm</td> <td></td> <td>Equipment_2</td> <td>F1</td> <td></td> <td>Vessel</td> <td></td> <td></td> <td>Pump</td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td>11</td> <td>Pump is turned on when there is no medium in Column, so it runs dry</td> <td>No</td> <td>Flow</td> <td>Wrongly turned on</td> <td>Damage</td> <td>Level Low Alarm</td> <td></td> <td>Equipment_2</td> <td>F1</td> <td></td> <td>Column</td> <td></td> <td></td> <td>Pump</td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td>12</td> <td>Level Control failure leads to an empty vessel, so pump runs dry</td> <td>No</td> <td>Flow</td> <td>Control failure</td> <td>Damage</td> <td>Level Low Alarm</td> <td></td> <td>Equipment_2</td> <td>F1</td> <td></td> <td>Vessel</td> <td>Level Control</td> <td></td> <td>Pump</td> <td>Level Control</td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td>13</td> <td>Level Control failure leads to an empty column, so pump runs dry</td> <td>No</td> <td>Flow</td> <td>Control failure</td> <td>Damage</td> <td>Level Low Alarm</td> <td></td> <td>Equipment_2</td> <td>F1</td> <td></td> <td>Column</td> <td>Level Control</td> <td></td> <td>Pump</td> <td>Level Control</td> <td></td> <td></td> <td></td

Related Skills

View on GitHub
GitHub Stars13
CategoryDevelopment
Updated1mo ago
Forks6

Languages

Python

Security Score

90/100

Audited on Feb 13, 2026

No findings