Adds CLI for manually gauging off
This commit is contained in:
@@ -37,6 +37,11 @@ class CLScanner implements Runnable {
|
|||||||
poc.thisWell.printTotals();
|
poc.thisWell.printTotals();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void gaugeOff() {
|
||||||
|
poc.thisWell.gaugeOff();
|
||||||
|
poc.thisWell.printTotals();
|
||||||
|
}
|
||||||
|
|
||||||
private void help(){
|
private void help(){
|
||||||
System.out.println("");
|
System.out.println("");
|
||||||
System.out.println("== HELP MENU ==");
|
System.out.println("== HELP MENU ==");
|
||||||
@@ -77,6 +82,9 @@ class CLScanner implements Runnable {
|
|||||||
case "showtapers":
|
case "showtapers":
|
||||||
showTapers();
|
showTapers();
|
||||||
break;
|
break;
|
||||||
|
case "gaugeoff":
|
||||||
|
gaugeOff();
|
||||||
|
break;
|
||||||
case "help":
|
case "help":
|
||||||
help();
|
help();
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -45,8 +45,8 @@ public class Well {
|
|||||||
// CONSTANTS
|
// CONSTANTS
|
||||||
private static double YM_STEEL = 30.5;
|
private static double YM_STEEL = 30.5;
|
||||||
private static double YM_FIBERGLASS = 7.2;
|
private static double YM_FIBERGLASS = 7.2;
|
||||||
public static final int BAD_STATUS = 0;
|
static final int BAD_STATUS = 0;
|
||||||
public static final int GOOD_STATUS = 1;
|
static final int GOOD_STATUS = 1;
|
||||||
|
|
||||||
/* USER INPUTS */
|
/* USER INPUTS */
|
||||||
private double dt;
|
private double dt;
|
||||||
@@ -181,25 +181,7 @@ public class Well {
|
|||||||
inclinometer = new AnalogIn(inclinometerChannel, 0, 100, 0, 100);
|
inclinometer = new AnalogIn(inclinometerChannel, 0, 100, 0, 100);
|
||||||
loadCell = new AnalogIn(loadCellChannel, 0, 50000, 0, 50000);
|
loadCell = new AnalogIn(loadCellChannel, 0, 50000, 0, 50000);
|
||||||
|
|
||||||
strokeSpeed = new Measurement("Stroke Speed", true, db, 0.5, 600);
|
initializeMeasurements();
|
||||||
downholeGrossStroke = new Measurement("Downhole Gross Stroke", true, db, 0.5, 600);
|
|
||||||
downholeNetStroke = new Measurement("Downhole Net Stroke", true, db, 0.5, 600);
|
|
||||||
fluidLevel = new Measurement("Fluid Level", true, db, 10, 600);
|
|
||||||
fluidLoad = new Measurement("Fluid Load", true, db, 20, 600);
|
|
||||||
inflowRate = new Measurement("Inflow Rate", true, db, 0.5, 600);
|
|
||||||
peakPolishedRodLoad = new Measurement("Peak PRL", true, db, 50, 600);
|
|
||||||
minPolishedRodLoad = new Measurement("Min PRL", true, db, 50, 600);
|
|
||||||
percentRun = new Measurement("Percent Run", true, db, 1.0, 600);
|
|
||||||
polishedRodHP = new Measurement("Polished Rod HP", true, db, 0.25, 600);
|
|
||||||
pumpHP = new Measurement("Pump HP", true, db, 0.25, 600);
|
|
||||||
fluidProduced = new Measurement("Fluid Produced", true, db, 1.0, 600);
|
|
||||||
fluidProducedAdjusted = new Measurement("Fluid Produced (adjusted)", true, db, 1.0, 600);
|
|
||||||
oilProduced = new Measurement("Oil Produced", true, db, 1.0, 600);
|
|
||||||
waterProduced = new Measurement("Water Produced", true, db, 1.0, 600);
|
|
||||||
gasProduced = new Measurement("Gas Produced", true, db, 1.0, 600);
|
|
||||||
pumpIntakePressure = new Measurement("Pump Intake Pressure", true, db, 5.0, 600);
|
|
||||||
surfaceStrokeLength = new Measurement("Surface Stroke", true, db, 0.5, 1800);
|
|
||||||
tubingMovement = new Measurement("Tubing Movement", true, db, 0.5, 600);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Well(String wellName, String simFileName, int inclinometerChannel, int loadCellChannel, int runCommandChannel){
|
Well(String wellName, String simFileName, int inclinometerChannel, int loadCellChannel, int runCommandChannel){
|
||||||
@@ -211,6 +193,10 @@ public class Well {
|
|||||||
inclinometer = new AnalogIn(inclinometerChannel, 0, 100, 0, 100);
|
inclinometer = new AnalogIn(inclinometerChannel, 0, 100, 0, 100);
|
||||||
loadCell = new AnalogIn(loadCellChannel, 0, 50000, 0, 50000);
|
loadCell = new AnalogIn(loadCellChannel, 0, 50000, 0, 50000);
|
||||||
|
|
||||||
|
initializeMeasurements();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initializeMeasurements(){
|
||||||
strokeSpeed = new Measurement("Stroke Speed", true, db, 0.5, 600);
|
strokeSpeed = new Measurement("Stroke Speed", true, db, 0.5, 600);
|
||||||
downholeGrossStroke = new Measurement("Downhole Gross Stroke", true, db, 0.5, 600);
|
downholeGrossStroke = new Measurement("Downhole Gross Stroke", true, db, 0.5, 600);
|
||||||
downholeNetStroke = new Measurement("Downhole Net Stroke", true, db, 0.5, 600);
|
downholeNetStroke = new Measurement("Downhole Net Stroke", true, db, 0.5, 600);
|
||||||
@@ -490,7 +476,7 @@ public class Well {
|
|||||||
|
|
||||||
// WELL CALCULATION FUNCTIONS
|
// WELL CALCULATION FUNCTIONS
|
||||||
|
|
||||||
public static double lookupRodWeightPerFoot(double i_ym, double i_diam) {
|
private static double lookupRodWeightPerFoot(double i_ym, double i_diam) {
|
||||||
double wtPerFt;
|
double wtPerFt;
|
||||||
if (i_ym == YM_STEEL) {
|
if (i_ym == YM_STEEL) {
|
||||||
if (i_diam <= 2 && i_diam > 1.75) {
|
if (i_diam <= 2 && i_diam > 1.75) {
|
||||||
@@ -538,7 +524,7 @@ public class Well {
|
|||||||
return wtPerFt;
|
return wtPerFt;
|
||||||
};
|
};
|
||||||
|
|
||||||
public void parseJSONFile(String jsonFilename){
|
void parseJSONFile(String jsonFilename){
|
||||||
JSONParser parser = new JSONParser();
|
JSONParser parser = new JSONParser();
|
||||||
try {
|
try {
|
||||||
Object obj = parser.parse(new FileReader(jsonFilename));
|
Object obj = parser.parse(new FileReader(jsonFilename));
|
||||||
@@ -590,18 +576,14 @@ public class Well {
|
|||||||
if (newDampingFactor != null) setDampingFactor(currentTaperNum, (Double) newDampingFactor);
|
if (newDampingFactor != null) setDampingFactor(currentTaperNum, (Double) newDampingFactor);
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (FileNotFoundException e) {
|
} catch (IOException | ParseException e) {
|
||||||
e.printStackTrace();
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
} catch (ParseException e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
updateTapers();
|
updateTapers();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void printTapers(){
|
void printTapers(){
|
||||||
|
|
||||||
System.out.println("===== " + wellName + " =====");
|
System.out.println("===== " + wellName + " =====");
|
||||||
System.out.println("--- INPUT PARAMETERS ---");
|
System.out.println("--- INPUT PARAMETERS ---");
|
||||||
@@ -673,7 +655,7 @@ public class Well {
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
public void updateTapers(){
|
private void updateTapers(){
|
||||||
nT1 = numTapers + 1;
|
nT1 = numTapers + 1;
|
||||||
|
|
||||||
// start by setting everything to 0
|
// start by setting everything to 0
|
||||||
@@ -919,9 +901,8 @@ public class Well {
|
|||||||
rodDepthTotal, tubingAnchorDepth,
|
rodDepthTotal, tubingAnchorDepth,
|
||||||
tubingCrossSectionalArea, pumpArea,
|
tubingCrossSectionalArea, pumpArea,
|
||||||
frictionEstimate, structuralRating, kFactor, fluidWaterRatio, fluidOilRatio, fluidGasRatio);
|
frictionEstimate, structuralRating, kFactor, fluidWaterRatio, fluidOilRatio, fluidGasRatio);
|
||||||
for (int j = 98; j >= 0; j--) {
|
|
||||||
cardStorage[j + 1] = cardStorage[j];
|
System.arraycopy(cardStorage, 0, cardStorage, 1, cardStorage.length-1);
|
||||||
}
|
|
||||||
cardStorage[0] = currentCard;
|
cardStorage[0] = currentCard;
|
||||||
currentCard.printCard("none", true);
|
currentCard.printCard("none", true);
|
||||||
strokesSinceStart++;
|
strokesSinceStart++;
|
||||||
@@ -955,6 +936,30 @@ public class Well {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void gaugeOff(){
|
||||||
|
strokeSpeed.endOfDay();
|
||||||
|
downholeGrossStroke.endOfDay();
|
||||||
|
downholeNetStroke.endOfDay();
|
||||||
|
fluidLevel.endOfDay();
|
||||||
|
fluidLoad.endOfDay();
|
||||||
|
inflowRate.endOfDay();
|
||||||
|
peakPolishedRodLoad.endOfDay();
|
||||||
|
minPolishedRodLoad.endOfDay();
|
||||||
|
percentRun.endOfDay();
|
||||||
|
polishedRodHP.endOfDay();
|
||||||
|
pumpHP.endOfDay();
|
||||||
|
fluidProduced.endOfDay();
|
||||||
|
fluidProducedAdjusted.endOfDay();
|
||||||
|
oilProduced.endOfDay();
|
||||||
|
waterProduced.endOfDay();
|
||||||
|
gasProduced.endOfDay();
|
||||||
|
pumpIntakePressure.endOfDay();
|
||||||
|
surfaceStrokeLength.endOfDay();
|
||||||
|
tubingMovement.endOfDay();
|
||||||
|
|
||||||
|
strokesToday = 0;
|
||||||
|
}
|
||||||
|
|
||||||
public void eval(){
|
public void eval(){
|
||||||
checkSafeties();
|
checkSafeties();
|
||||||
currentSurfacePosition = inclinometer.readScaled();
|
currentSurfacePosition = inclinometer.readScaled();
|
||||||
@@ -985,30 +990,10 @@ public class Well {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(isNewDay()){
|
if(isNewDay()){
|
||||||
strokeSpeed.endOfDay();
|
gaugeOff();
|
||||||
downholeGrossStroke.endOfDay();
|
|
||||||
downholeNetStroke.endOfDay();
|
|
||||||
fluidLevel.endOfDay();
|
|
||||||
fluidLoad.endOfDay();
|
|
||||||
inflowRate.endOfDay();
|
|
||||||
peakPolishedRodLoad.endOfDay();
|
|
||||||
minPolishedRodLoad.endOfDay();
|
|
||||||
percentRun.endOfDay();
|
|
||||||
polishedRodHP.endOfDay();
|
|
||||||
pumpHP.endOfDay();
|
|
||||||
fluidProduced.endOfDay();
|
|
||||||
fluidProducedAdjusted.endOfDay();
|
|
||||||
oilProduced.endOfDay();
|
|
||||||
waterProduced.endOfDay();
|
|
||||||
gasProduced.endOfDay();
|
|
||||||
pumpIntakePressure.endOfDay();
|
|
||||||
surfaceStrokeLength.endOfDay();
|
|
||||||
tubingMovement.endOfDay();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void eval(int simPoint){
|
public void eval(int simPoint){
|
||||||
checkSafeties();
|
checkSafeties();
|
||||||
currentSurfacePosition = inclinometer.readScaledSim(sim.getPositionAtIndex(simPoint));
|
currentSurfacePosition = inclinometer.readScaledSim(sim.getPositionAtIndex(simPoint));
|
||||||
@@ -1040,25 +1025,7 @@ public class Well {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(isNewDay()){
|
if(isNewDay()){
|
||||||
strokeSpeed.endOfDay();
|
gaugeOff();
|
||||||
downholeGrossStroke.endOfDay();
|
|
||||||
downholeNetStroke.endOfDay();
|
|
||||||
fluidLevel.endOfDay();
|
|
||||||
fluidLoad.endOfDay();
|
|
||||||
inflowRate.endOfDay();
|
|
||||||
peakPolishedRodLoad.endOfDay();
|
|
||||||
minPolishedRodLoad.endOfDay();
|
|
||||||
percentRun.endOfDay();
|
|
||||||
polishedRodHP.endOfDay();
|
|
||||||
pumpHP.endOfDay();
|
|
||||||
fluidProduced.endOfDay();
|
|
||||||
fluidProducedAdjusted.endOfDay();
|
|
||||||
oilProduced.endOfDay();
|
|
||||||
waterProduced.endOfDay();
|
|
||||||
gasProduced.endOfDay();
|
|
||||||
pumpIntakePressure.endOfDay();
|
|
||||||
surfaceStrokeLength.endOfDay();
|
|
||||||
tubingMovement.endOfDay();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public void printTotals(){
|
public void printTotals(){
|
||||||
|
|||||||
Reference in New Issue
Block a user