Class MeasurementDeviceBaseClass

java.lang.Object
neqsim.util.NamedBaseClass
neqsim.process.measurementdevice.MeasurementDeviceBaseClass
All Implemented Interfaces:
Serializable, MeasurementDeviceInterface, NamedInterface
Direct Known Subclasses:
CompressorMonitor, FireDetector, FlowInducedVibrationAnalyser, GasDetector, LevelTransmitter, OilLevelTransmitter, PushButton, SevereSlugAnalyser, StreamMeasurementDeviceBaseClass, WaterLevelTransmitter

public abstract class MeasurementDeviceBaseClass extends NamedBaseClass implements MeasurementDeviceInterface
Base implementation for measurement devices supplying values to controllers and process equipment. The class offers unit handling as well as configurable Gaussian noise and discrete sample delay to mimic realistic transmitter behaviour.
Version:
$Id: $Id
Author:
ESOL
See Also:
  • Field Details

    • serialVersionUID

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

      protected String unit
    • maximumValue

      private double maximumValue
    • minimumValue

      private double minimumValue
    • logging

      private boolean logging
    • onlineSignal

      private OnlineSignal onlineSignal
    • isOnlineSignal

      private boolean isOnlineSignal
    • onlineMeasurementValue

      private double onlineMeasurementValue
    • onlineMeasurementValueUnit

      private String onlineMeasurementValueUnit
    • delayBuffer

      private final Deque<Double> delayBuffer
    • delaySteps

      private int delaySteps
    • noiseStdDev

      private double noiseStdDev
    • random

      private transient Random random
    • conditionAnalysis

      private boolean conditionAnalysis
    • conditionAnalysisMessage

      private String conditionAnalysisMessage
    • conditionAnalysisMaxDeviation

      private double conditionAnalysisMaxDeviation
    • alarmConfig

      private AlarmConfig alarmConfig
    • alarmState

      private final AlarmState alarmState
  • Constructor Details

    • MeasurementDeviceBaseClass

      public MeasurementDeviceBaseClass(String name, String unit)
      Constructor for MeasurementDeviceBaseClass.
      Parameters:
      name - Name of the object
      unit - Engineering unit of the measurement
  • Method Details

    • getOnlineSignal

      public OnlineSignal getOnlineSignal()

      getOnlineSignal.

      Specified by:
      getOnlineSignal in interface MeasurementDeviceInterface
      Returns:
      a OnlineSignal object
    • setOnlineSignal

      public void setOnlineSignal(OnlineSignal onlineSignal)

      Setter for the field onlineSignal.

      Parameters:
      onlineSignal - the onlineSignal to set
    • isOnlineSignal

      public boolean isOnlineSignal()

      isOnlineSignal.

      Specified by:
      isOnlineSignal in interface MeasurementDeviceInterface
      Returns:
      a boolean
    • setIsOnlineSignal

      public void setIsOnlineSignal(boolean isOnlineSignal, String plantName, String transmitterame)

      Setter for the field isOnlineSignal.

      Parameters:
      isOnlineSignal - the isOnlineSignal to set
      plantName - a String object
      transmitterame - a String object
    • getUnit

      public String getUnit()

      getUnit.

      Specified by:
      getUnit in interface MeasurementDeviceInterface
      Returns:
      a String object
    • setUnit

      public void setUnit(String unit)

      setUnit.

      Specified by:
      setUnit in interface MeasurementDeviceInterface
      Parameters:
      unit - a String object
    • getMaximumValue

      public double getMaximumValue()

      getMaximumValue.

      Specified by:
      getMaximumValue in interface MeasurementDeviceInterface
      Returns:
      a double
    • setMaximumValue

      public void setMaximumValue(double maximumValue)

      setMaximumValue.

      Specified by:
      setMaximumValue in interface MeasurementDeviceInterface
      Parameters:
      maximumValue - a double
    • getMinimumValue

      public double getMinimumValue()

      getMinimumValue.

      Specified by:
      getMinimumValue in interface MeasurementDeviceInterface
      Returns:
      a double
    • setMinimumValue

      public void setMinimumValue(double minimumValue)

      setMinimumValue.

      Specified by:
      setMinimumValue in interface MeasurementDeviceInterface
      Parameters:
      minimumValue - a double
    • getMeasuredPercentValue

      public double getMeasuredPercentValue()

      getMeasuredPercentValue.

      Specified by:
      getMeasuredPercentValue in interface MeasurementDeviceInterface
      Returns:
      a double
    • isLogging

      public boolean isLogging()

      isLogging.

      Specified by:
      isLogging in interface MeasurementDeviceInterface
      Returns:
      a boolean
    • setLogging

      public void setLogging(boolean logging)

      setLogging.

      Specified by:
      setLogging in interface MeasurementDeviceInterface
      Parameters:
      logging - a boolean
    • getMeasuredValue

      public double getMeasuredValue(String unit)

      Get Measured value in specified unit.

      Specified by:
      getMeasuredValue in interface MeasurementDeviceInterface
      Parameters:
      unit - a String object
      Returns:
      a double
    • setAlarmConfig

      public void setAlarmConfig(AlarmConfig alarmConfig)
      Description copied from interface: MeasurementDeviceInterface
      Associates an alarm configuration with the measurement device.
      Specified by:
      setAlarmConfig in interface MeasurementDeviceInterface
      Parameters:
      alarmConfig - configuration to apply, or null to disable alarms
    • getAlarmConfig

      public AlarmConfig getAlarmConfig()
      Description copied from interface: MeasurementDeviceInterface
      Returns the alarm configuration, or null if alarms are disabled.
      Specified by:
      getAlarmConfig in interface MeasurementDeviceInterface
      Returns:
      alarm configuration
    • getAlarmState

      public AlarmState getAlarmState()
      Description copied from interface: MeasurementDeviceInterface
      Returns the mutable alarm state for the device.
      Specified by:
      getAlarmState in interface MeasurementDeviceInterface
      Returns:
      alarm state
    • evaluateAlarm

      public List<AlarmEvent> evaluateAlarm(double measuredValue, double dt, double time)
      Description copied from interface: MeasurementDeviceInterface
      Evaluates the alarm state using the supplied measurement value.
      Specified by:
      evaluateAlarm in interface MeasurementDeviceInterface
      Parameters:
      measuredValue - measured value
      dt - simulation time step
      time - current simulation time
      Returns:
      events generated during the evaluation
    • acknowledgeAlarm

      public AlarmEvent acknowledgeAlarm(double time)
      Description copied from interface: MeasurementDeviceInterface
      Acknowledges the currently active alarm if one exists.
      Specified by:
      acknowledgeAlarm in interface MeasurementDeviceInterface
      Parameters:
      time - simulation time of the acknowledgement
      Returns:
      acknowledgement event, or null if nothing was acknowledged
    • applySignalModifiers

      protected double applySignalModifiers(double rawValue)
      Apply configured noise and delay to a raw measurement value.
      Parameters:
      rawValue - unmodified measurement value
      Returns:
      value after noise and delay are applied
    • setNoiseStdDev

      public void setNoiseStdDev(double noiseStdDev)
      Set Gaussian noise standard deviation for the measurement.
      Parameters:
      noiseStdDev - standard deviation of measurement noise
    • getNoiseStdDev

      public double getNoiseStdDev()
      Get the configured noise standard deviation.
      Returns:
      noise standard deviation
    • setDelaySteps

      public void setDelaySteps(int delaySteps)
      Configure discrete delay in number of samples.
      Parameters:
      delaySteps - number of samples delay
    • getDelaySteps

      public int getDelaySteps()
      Get the configured delay in number of samples.
      Returns:
      number of delayed samples
    • setRandomSeed

      public void setRandomSeed(long seed)
      Set the random seed used for noise generation to achieve deterministic measurements when required.
      Parameters:
      seed - random seed
    • displayResult

      public void displayResult()

      displayResult.

      Specified by:
      displayResult in interface MeasurementDeviceInterface
    • setOnlineMeasurementValue

      public void setOnlineMeasurementValue(double value, String unit)

      Setter for the field onlineMeasurementValue.

      Parameters:
      value - a double
      unit - a String object
    • getOnlineMeasurementValue

      public double getOnlineMeasurementValue()

      Getter for the field onlineMeasurementValue.

      Returns:
      a double
    • doConditionAnalysis

      public boolean doConditionAnalysis()

      doConditionAnalysis.

      Returns:
      a boolean
    • setConditionAnalysis

      public void setConditionAnalysis(boolean conditionMonitor)

      Setter for the field conditionAnalysis.

      Parameters:
      conditionMonitor - a boolean
    • runConditionAnalysis

      public void runConditionAnalysis()

      runConditionAnalysis.

    • getConditionAnalysisMessage

      public String getConditionAnalysisMessage()

      Getter for the field conditionAnalysisMessage.

      Returns:
      a String object
    • setQualityCheckMessage

      public void setQualityCheckMessage(String conditionAnalysisMessage)

      setQualityCheckMessage.

      Parameters:
      conditionAnalysisMessage - a String object
    • getConditionAnalysisMaxDeviation

      public double getConditionAnalysisMaxDeviation()

      Getter for the field conditionAnalysisMaxDeviation.

      Returns:
      a double
    • setConditionAnalysisMaxDeviation

      public void setConditionAnalysisMaxDeviation(double conditionAnalysisMaxDeviation)

      Setter for the field conditionAnalysisMaxDeviation.

      Parameters:
      conditionAnalysisMaxDeviation - a double