Class InstrumentDesign

java.lang.Object
neqsim.process.instrumentdesign.InstrumentDesign
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
CompressorInstrumentDesign, HeatExchangerInstrumentDesign, PipelineInstrumentDesign, SeparatorInstrumentDesign, ValveInstrumentDesign

public class InstrumentDesign extends Object implements Serializable
Base class for instrument design of process equipment.

Mirrors the ElectricalDesign and MechanicalDesign patterns. Each piece of process equipment can have an associated instrument design that determines which instruments are required, their specifications, I/O requirements, and estimated costs.

The instrument design follows ISA-5.1 for instrument identification and tagging, IEC 61508 / IEC 61511 for safety instrumented systems (SIS), and ISA-18.2 for alarm management.

Version:
1.0
Author:
Even Solbraa
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      Serialization version UID.
      See Also:
    • processEquipment

      private ProcessEquipmentInterface processEquipment
      The process equipment this instrument design belongs to.
    • instrumentList

      private InstrumentList instrumentList
      The list of instruments for this equipment.
    • hazardousAreaZone

      private String hazardousAreaZone
      Hazardous area zone classification for the equipment location.
    • protectionConcept

      private String protectionConcept
      Explosion protection concept (e.g. "Ex d", "Ex e", "Ex ia").
    • instrumentStandard

      private String instrumentStandard
      Design standard for instrumentation (e.g. "IEC", "ISA").
    • includeSafetyInstruments

      private boolean includeSafetyInstruments
      Whether to include safety instrumented function (SIF) instruments.
    • defaultSilLevel

      private int defaultSilLevel
      Default SIL level for safety instruments.
  • Constructor Details

    • InstrumentDesign

      public InstrumentDesign(ProcessEquipmentInterface processEquipment)
      Constructor for InstrumentDesign.
      Parameters:
      processEquipment - the process equipment this design belongs to
  • Method Details

    • calcDesign

      public void calcDesign()
      Run the instrument design calculation.

      Determines the required instruments based on the equipment type and process conditions. Subclasses override this to add equipment-specific instruments.

    • readDesignSpecifications

      public void readDesignSpecifications()
      Read design specifications from data sources.

      Subclasses can override to load equipment-specific instrument specifications.

    • getInstrumentList

      public InstrumentList getInstrumentList()
      Get the instrument list.
      Returns:
      the instrument list
    • getTotalIOCount

      public int getTotalIOCount()
      Get the total I/O count for this equipment.
      Returns:
      total I/O count
    • getEstimatedCostUSD

      public double getEstimatedCostUSD()
      Get the total estimated instrument cost in USD.
      Returns:
      estimated cost in USD
    • toJson

      public String toJson()
      Serialize the instrument design to JSON.
      Returns:
      JSON string with all instrument design data
    • getProcessEquipment

      public ProcessEquipmentInterface getProcessEquipment()
      Get the process equipment.
      Returns:
      the process equipment
    • getHazardousAreaZone

      public String getHazardousAreaZone()
      Get hazardous area zone.
      Returns:
      hazardous area zone classification
    • setHazardousAreaZone

      public void setHazardousAreaZone(String hazardousAreaZone)
      Set hazardous area zone.
      Parameters:
      hazardousAreaZone - hazardous area zone classification
    • getProtectionConcept

      public String getProtectionConcept()
      Get explosion protection concept.
      Returns:
      protection concept
    • setProtectionConcept

      public void setProtectionConcept(String protectionConcept)
      Set explosion protection concept.
      Parameters:
      protectionConcept - protection concept (e.g. "Ex ia", "Ex d")
    • getInstrumentStandard

      public String getInstrumentStandard()
      Get instrument standard.
      Returns:
      instrument standard
    • setInstrumentStandard

      public void setInstrumentStandard(String instrumentStandard)
      Set instrument standard.
      Parameters:
      instrumentStandard - instrument standard (e.g. "IEC", "ISA")
    • isIncludeSafetyInstruments

      public boolean isIncludeSafetyInstruments()
      Check if safety instruments are included.
      Returns:
      true if SIF instruments are included
    • setIncludeSafetyInstruments

      public void setIncludeSafetyInstruments(boolean includeSafetyInstruments)
      Set whether to include safety instruments.
      Parameters:
      includeSafetyInstruments - true to include SIF instruments
    • getDefaultSilLevel

      public int getDefaultSilLevel()
      Get default SIL level for safety instruments.
      Returns:
      SIL level (1-3)
    • setDefaultSilLevel

      public void setDefaultSilLevel(int defaultSilLevel)
      Set default SIL level for safety instruments.
      Parameters:
      defaultSilLevel - SIL level (1-3)